CustomGames.ru - Dota 2 пользовательские игры

Макс.Уровень

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MeewBie

  • 13
  • Мощь: 0
Макс.Уровень
« : 20-06-2017, 11:06:34 »
Здравствуйте.
Я хочу сделать в своей кастомке макс.уровень 150.
Я находил темы о "макс.Уровень" но делаю не так как писали.
Когда тестировал писало красным.
Что я сделал не так? Я писал все в addon_game_mode. Первый раз тут, не знаю как кинуть скрином.
Спойлер
Код
----------------------------------------------------------------------------------------------------------------
-- Generated from template

if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end

function Precache( context )
--[[
Precache things we know we'll use.  Possible file types include (but not limited to):
PrecacheResource( "model", "*.vmdl", context )
PrecacheResource( "soundfile", "*.vsndevts", context )
PrecacheResource( "particle", "*.vpcf", context )
PrecacheResource( "particle_folder", "particles/folder", context )
]]
end

-- Create the game mode when we activate
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
--print( "Template addon script is running." )
elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
return nil
end
return 1
end
    xpTable = {
0,-- 1
250,-- 2 
500,-- 3 
750,-- 4 
1000,-- 5
1500,-- 6
2000,-- 7
2500,-- 8
3000,-- 9
3750,-- 10
4500,-- 11
5250,-- 12
6000,-- 13
7000,-- 14
8000,-- 15
9000,-- 16
10000,-- 17
11250,-- 18
12500,-- 19
13750,-- 20
15000,-- 21
16500,-- 22
18000,-- 23
19500,-- 24
21000, -- 25
22750, -- 26
24500, -- 27
26250, -- 28
28000, -- 29
30000, -- 30
32000, -- 31 
34000, -- 32
36000, -- 33
38250, -- 34
40500, -- 35
42750, -- 36
45000, --37
47500, --38
50000, --39
52500, --40
55000, --41
57750, --42
60500, --43
63250, --44
66000, --45
69000, --46
72000, --47
75000, --48
78000, --49 
81250, --50
84500, --51
87750, --52
91000, --53
94500, --54
98000, --55
101500, --56
105000, --57
108750, --58
112500, --59
116250, --60
120000, --61
124000, --62
128000, --63
132000, --64
136000, --65
1000000000, --66
}

GameRules:GetGameModeEntity():SetUseCustomHeroLevels( true )
GameRules:GetGameModeEntity():SetCustomHeroMaxLevel( 66 )
GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( xpTable )
--------------------------------------------------------------------------------------
[свернуть]
В конце и end писал, все равно не работало.
« Последнее редактирование: 20-06-2017, 16:26:18 от MeewBie »

Онлайн ZLOY

  • Супермодератор
  • 369
  • Мощь: 4
Re: Макс.Уровень
« Ответ #1 : 20-06-2017, 12:00:41 »
Что красным то написано?
И читаем описание функции SetUseCustomHeroLevels
Turn on custom-defined XP values for hero level ups. The table should be defined before switching this on.

Оффлайн MeewBie

  • 13
  • Мощь: 0
Re: Макс.Уровень
« Ответ #2 : 20-06-2017, 16:56:44 »
Не понял -> Turn on custom-defined XP values for hero level ups. The table should be defined before switching this on.
под таким кодом было написано красным
Сам код :
------------------------------------------------------------------------------------------
Спойлер
Код
-- Generated from template

if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end

function Precache( context )
--[[
Precache things we know we'll use.  Possible file types include (but not limited to):
PrecacheResource( "model", "*.vmdl", context )
PrecacheResource( "soundfile", "*.vsndevts", context )
PrecacheResource( "particle", "*.vpcf", context )
PrecacheResource( "particle_folder", "particles/folder", context )
]]
end

-- Create the game mode when we activate
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( xpTable )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
--print( "Template addon script is running." )
elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
return nil
end
return 1
end
xpTable = {
     0,-- 1
250,-- 2 
500,-- 3 
750,-- 4 
1000,-- 5
1500,-- 6
2000,-- 7
2500,-- 8
3000,-- 9
3750,-- 10
4500,-- 11
5250,-- 12
6000,-- 13
7000,-- 14
8000,-- 15
9000,-- 16
10000,-- 17
11250,-- 18
12500,-- 19
13750,-- 20
15000,-- 21
16500,-- 22
18000,-- 23
19500,-- 24
21000, -- 25
22750, -- 26
24500, -- 27
26250, -- 28
28000, -- 29
30000, -- 30
32000, -- 31 
34000, -- 32
36000, -- 33
38250, -- 34
40500, -- 35
42750, -- 36
45000, --37
47500, --38
50000, --39
52500, --40
55000, --41
57750, --42
60500, --43
63250, --44
66000, --45
69000, --46
72000, --47
75000, --48
78000, --49 
81250, --50
84500, --51
87750, --52
91000, --53
94500, --54
98000, --55
101500, --56
105000, --57
108750, --58
112500, --59
116250, --60
120000, --61
124000, --62
128000, --63
132000, --64
136000, --65
1000000000, --66
}

    GameRules:GetGameModeEntity():SetUseCustomHeroLevels( true )
    GameRules:GetGameModeEntity():SetCustomHeroMaxLevel( 66 )
    GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( xpTable )
end
[свернуть]
------------------------------------------------------------------------------------------
Красная надпись во время игры :
(1.27): ...ons\кастомка\scripts\vscripts\addon_game_mode.lua:109 '<eof>' expected near 'end'
------------------------------------------------------------------------------------------
Потом убрал в конце end написало другое красным :
(1.27): ...ons\кастомка\scripts\vscripts\addon_game_mode.lua:107: attempt to index a nil value
(1.27): stack traceback:
(1.27): ...ons\кастомка\scripts\vscripts\addon_game_mode.lua:107: in main chunk
------------------------------------------------------------------------------------------
« Последнее редактирование: 20-06-2017, 21:14:09 от -ErøtiC- »

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Re: Макс.Уровень
« Ответ #3 : 20-06-2017, 17:33:10 »
« Последнее редактирование: 20-06-2017, 21:14:38 от -ErøtiC- »
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 1912
  • Мощь: 16
Re: Макс.Уровень
« Ответ #4 : 20-06-2017, 17:44:29 »
Прочти это. Потом почитай что в послесловии там указано. Затем по желанию прочти то, что тебе Адам скинул.
Как прочтешь - отпишись.

Оффлайн MeewBie

  • 13
  • Мощь: 0
Re: Макс.Уровень
« Ответ #5 : 20-06-2017, 19:06:12 »
Почитал, зашел в послесловии и там почитал "[Помогите]Настройка каманд(dire(персонажи))" , "[lua] ООП и все все все".
Остальные "[Гайд] Dota 2 Lua скриптинг" и  "[lua] Глобальные и локальные переменные" дочитывать?

Оффлайн MeewBie

  • 13
  • Мощь: 0
Re: Макс.Уровень
« Ответ #6 : 20-06-2017, 19:16:06 »
Ну я все равно не всё понял.
И да, кстати, почему сейчас если ставлю npc_dota_neutral_spawner, и потом тестирую карту, все к черту вылетает на рабочий стол?
А если убираю спавн, то работает как работало, хорошо.

Оффлайн KEKMAN

  • 168
  • Мощь: 2
  • Dota forever <3
Re: Макс.Уровень
« Ответ #7 : 20-06-2017, 19:25:23 »
Ну я все равно не всё понял.
И да, кстати, почему сейчас если ставлю npc_dota_neutral_spawner, и потом тестирую карту, все к черту вылетает на рабочий стол?
А если убираю спавн, то работает как работало, хорошо.
Почему ты не используешь barebones? Там максимальный уровень можно настроить и экспу кастомно расставить. По поводу спавнеров писали уже, что сломали их

Оффлайн Илья

  • Супермодератор
  • 1912
  • Мощь: 16
Re: Макс.Уровень
« Ответ #8 : 20-06-2017, 20:28:25 »
Ну я все равно не всё понял.


Ты реализовал свои уровни?

Если нет, то теперь получится объяснить, что ты не так делаешь.
Только скинь изначальный addon game mode, без своих туда вставок.

Оффлайн MeewBie

  • 13
  • Мощь: 0
Re: Макс.Уровень
« Ответ #9 : 20-06-2017, 20:36:37 »
Вот код без добавлений.
----------------------------------------------------------------------------------
Спойлер
Код
-- Generated from template

if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end

function Precache( context )
--[[
Precache things we know we'll use.  Possible file types include (but not limited to):
PrecacheResource( "model", "*.vmdl", context )
PrecacheResource( "soundfile", "*.vsndevts", context )
PrecacheResource( "particle", "*.vpcf", context )
PrecacheResource( "particle_folder", "particles/folder", context )
]]
end

-- Create the game mode when we activate
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
--print( "Template addon script is running." )
elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
return nil
end
return 1
end
[свернуть]
----------------------------------------------------------------------------------
А спавн восстановят?
----------------------------------------------------------------------------------
« Последнее редактирование: 20-06-2017, 21:13:40 от -ErøtiC- »

Оффлайн Илья

  • Супермодератор
  • 1912
  • Мощь: 16
Re: Макс.Уровень
« Ответ #10 : 20-06-2017, 20:38:02 »
Вставь таблицу после

Код
if CAddonTemplateGameMode == nil then
   CAddonTemplateGameMode = class({})
end

А GameRules  в тело InitGameMode() к GameRules соответственно и перед ними.

Если не поможет, то делай как в послесловии писал.
« Последнее редактирование: 20-06-2017, 20:40:29 от Илья »

Оффлайн MeewBie

  • 13
  • Мощь: 0
Re: Макс.Уровень
« Ответ #11 : 20-06-2017, 20:45:57 »
Так?

Спойлер
Код
-- Generated from template

if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end

xpTable = {
     0,-- 1
   250,-- 2 
   500,-- 3 
   750,-- 4 
   1000,-- 5
   1500,-- 6
   2000,-- 7
   2500,-- 8
   3000,-- 9
   3750,-- 10
   4500,-- 11
   5250,-- 12
   6000,-- 13
   7000,-- 14
   8000,-- 15
   9000,-- 16
   10000,-- 17
   11250,-- 18
   12500,-- 19
   13750,-- 20
   15000,-- 21
   16500,-- 22
   18000,-- 23
   19500,-- 24
   21000, -- 25
   22750, -- 26
   24500, -- 27
   26250, -- 28
   28000, -- 29
   30000, -- 30
   32000, -- 31 
   34000, -- 32
   36000, -- 33
   38250, -- 34
   40500, -- 35
   42750, -- 36
   45000, --37
   47500, --38
   50000, --39
   52500, --40
   55000, --41
   57750, --42
   60500, --43
   63250, --44
   66000, --45
   69000, --46
   72000, --47
   75000, --48
   78000, --49 
   81250, --50
   84500, --51
   87750, --52
   91000, --53
   94500, --54
   98000, --55
   101500, --56
   105000, --57
   108750, --58
   112500, --59
   116250, --60
   120000, --61
   124000, --62
   128000, --63
   132000, --64
   136000, --65
   1000000000, --66
}

function Precache( context )
--[[
Precache things we know we'll use.  Possible file types include (but not limited to):
PrecacheResource( "model", "*.vmdl", context )
PrecacheResource( "soundfile", "*.vsndevts", context )
PrecacheResource( "particle", "*.vpcf", context )
PrecacheResource( "particle_folder", "particles/folder", context )
]]
end

-- Create the game mode when we activate
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
    GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )   
    GameRules:GetGameModeEntity():SetUseCustomHeroLevels( true )
    GameRules:GetGameModeEntity():SetCustomHeroMaxLevel( 66 )   
    GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( xpTable )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
--print( "Template addon script is running." )
elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
return nil
end
return 1
end
[свернуть]
« Последнее редактирование: 20-06-2017, 20:53:26 от Илья »

Оффлайн Илья

  • Супермодератор
  • 1912
  • Мощь: 16
Re: Макс.Уровень
« Ответ #12 : 20-06-2017, 20:51:46 »
Ну проверил бы, елси так, то должно работать.


Убери запятую у миллиарда в таблице и я сказал перед

Код
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )  


а не после него пистаь свои правила (хотя по идеи без разницы).

И емае, оформляй ты код в блок кода и в блок спойлера поверх.

Оффлайн MeewBie

  • 13
  • Мощь: 0
Re: Макс.Уровень
« Ответ #13 : 20-06-2017, 21:12:01 »
Красным пишет :
(1.37): ...ons\кастомка\scripts\vscripts\addon_game_mode.lua:9: '}' expected (to close '{' at line 7) near '250'

Оффлайн Илья

  • Супермодератор
  • 1912
  • Мощь: 16
Re: Макс.Уровень
« Ответ #14 : 20-06-2017, 21:19:35 »
Пишет, что ожидается закрытие таблицы "}" на 9й строчке.
Видать у тебя там не просто переход на новую строку а какой-нить символ. Проверь этот момент.


А вообще скинь сообщение с консоли, а не так.