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

  • Автор темы Автор темы MeewBie
  • Дата начала Дата начала

MeewBie

Пользователь
7 Июн 2017
36
0
Здравствуйте.
Я хочу сделать в своей кастомке макс.уровень 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 писал, все равно не работало.
 
Последнее редактирование модератором:
Что красным то написано?
И читаем описание функции SetUseCustomHeroLevels
Turn on custom-defined XP values for hero level ups. The table should be defined before switching this on.
 
Не понял -> 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
------------------------------------------------------------------------------------------
 
Последнее редактирование модератором:
Прочти это. Потом почитай что в послесловии там указано. Затем по желанию прочти то, что тебе Адам скинул.
Как прочтешь - отпишись.
 
Почитал, зашел в послесловии и там почитал "[Помогите]Настройка каманд(dire(персонажи))" , "[lua] ООП и все все все".
Остальные "[Гайд] Dota 2 Lua скриптинг" и "[lua] Глобальные и локальные переменные" дочитывать?
 
Последнее редактирование модератором:
Ну я все равно не всё понял.
И да, кстати, почему сейчас если ставлю npc_dota_neutral_spawner, и потом тестирую карту, все к черту вылетает на рабочий стол?
А если убираю спавн, то работает как работало, хорошо.
 
Ну я все равно не всё понял.
И да, кстати, почему сейчас если ставлю npc_dota_neutral_spawner, и потом тестирую карту, все к черту вылетает на рабочий стол?
А если убираю спавн, то работает как работало, хорошо.
Почему ты не используешь barebones? Там максимальный уровень можно настроить и экспу кастомно расставить. По поводу спавнеров писали уже, что сломали их
 
Последнее редактирование модератором:
Ну я все равно не всё понял.

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

Если нет, то теперь получится объяснить, что ты не так делаешь.
Только скинь изначальный 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
----------------------------------------------------------------------------------
А спавн восстановят?
----------------------------------------------------------------------------------
 
Последнее редактирование модератором:
Вставь таблицу после

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

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

Если не поможет, то делай как в послесловии писал.
 
Так?

Код:
-- 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
 
Последнее редактирование модератором:
Ну проверил бы, елси так, то должно работать.


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

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

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

И емае, оформляй ты код в блок кода и в блок спойлера поверх.
 
Последнее редактирование модератором:
Красным пишет :
(1.37): ...ons\кастомка\scripts\vscripts\addon_game_mode.lua:9: '}' expected (to close '{' at line 7) near '250'
 
Пишет, что ожидается закрытие таблицы "}" на 9й строчке.
Видать у тебя там не просто переход на новую строку а какой-нить символ. Проверь этот момент.


А вообще скинь сообщение с консоли, а не так.
 
Последнее редактирование модератором:
[ ]: VConsole Rejecting Message: 'PHRA'
[ W VScript ]: Script load error for script @E:\Steam\steamapps\common\dota 2 beta\game\dota_addons\openskillsarena\scripts\vscripts\addon_game_mode.lua: ...ons\openskillsarena\scripts\vscripts\addon_game_mode.lua:9: '}' expected (to close '{' at line 7) near '250'
[ W VScript ]: LoadAndCompileScriptFile: Failed to compile script file "scripts/vscripts/addon_game_mode.lua"
 
Последнее редактирование модератором:
Ну ниче не изменилось, если это первая ошибка.

Попробуй комментарии убрать (цифры уровня), или в строчку прописать все, а когда заработает уже прееходы на новую строку сделать. У тебя там проблема с синтаксисом в этой строчке.
 
Код:
xpTable = {0,250,500,700}

Попробуй и потом увеличивай (ну и в правилах соответственно поменяй)
 
Он пишет так-же тока не near '250' а '500' . т.е. было так, чтобы получить 2 уровень, нужно 250 xp . вот он и писал near '250' . теперь я написал место 250 , 500. И теперь он место near '250' пишет near '500'.
Ладно, сейчас высплюсь, и вернусь!
 
Реклама: