скрипт на максимальный уровень 100

dander072

Пользователь
1 Апр 2016
21
0
скажите пожалуйста скрипт на максимальный уровень
 

-ExotiC-

Какой-то ноунэйм
Команда форума
11 Авг 2014
498
56
customgames.ru
С помощью этой функции SetCustomHeroMaxLevel

Код:
-- Задаем таблицу опыта
XP_PER_LEVEL_TABLE = {
  0,-- 1
  200,-- 2
  500,-- 3
  900,-- 4
  1400,-- 5
  2000,-- 6
  2600,-- 7
  3200,-- 8
  4400,-- 9
  5400,-- 10
  6000,-- 11
  8200,-- 12
  9000,-- 13
  10400,-- 14
  11900,-- 15
  13500,-- 16
  15200,-- 17
  17000,-- 18
  18900,-- 19
  20900,-- 20
  23000,-- 21
  25200,-- 22
  27500,-- 23
  29900,-- 24
  32400,-- 25
  35000,-- 26
  37700,-- 27
  40500,-- 28
  43400,-- 29
  46400,-- 30
  49500,-- 31
  52700,-- 32
  56000,-- 33
  59400,-- 34
  62900,-- 35
  66500,-- 36
  70200,-- 37
  74000,-- 38
  77900,-- 39
  81900,-- 40
  86000,-- 41
  90200,-- 42
  94500,-- 43
  98900,-- 44
  103400,-- 45
  108000,-- 46
  112700,-- 47
  117500,-- 48
  122400,-- 49
  127400 -- 50
  --и т.д. до 100
}

-- Тащим её в инит
function CAddonGameMode:InitGameMode()
  GameRules:GetGameModeEntity():SetUseCustomHeroLevels( true ) -- установка кастомной системы урвоней
  GameRules:GetGameModeEntity():SetCustomHeroMaxLevel( 100 ) -- максимальный уровень
  GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( XP_PER_LEVEL_TABLE ) -- указываем таблицу
end
 

dander072

Пользователь
1 Апр 2016
21
0
можешь мне просто отправить файл с этим скриптом?
 

dander072

Пользователь
1 Апр 2016
21
0
я вставил код он выдал ошибку [ Developer ]: ...\dota_addons\wars_of_god\scripts\vscripts\addon_init.lua:57: attempt to index global 'CAddonGameMode' (a nil value)
[ Developer ]: stack traceback:
[ Developer ]: ...\dota_addons\wars_of_god\scripts\vscripts\addon_init.lua:57: in main chunk
[ W VScript ]: Script Runtime Error: ...\dota_addons\wars_of_god\scripts\vscripts\addon_init.lua:57: attempt to index global 'CAddonGameMode' (a nil value)
[ W VScript ]: stack traceback:
[ W VScript ]: ...\dota_addons\wars_of_god\scripts\vscripts\addon_init.lua:57: in main chunk
[ W VScript ]: Error running script named addon_init
 

-ExotiC-

Какой-то ноунэйм
Команда форума
11 Авг 2014
498
56
customgames.ru
dander072,
Steam\SteamApps\common\dota 2 beta\game\dota_addons\название аддона\scripts\vscripts

После
Код:
if CAddonTemplateGameMode == nil then
  CAddonTemplateGameMode = class({})
end
Добавляем таблицу с опытом

Код:
-- XP Table:
HeroMaxLevel = 150
HeroExpTable = {0}
exp={60,120,180,240,300,360,420,480,540,600,
  660,720,780,840,900,960,1020,1080,1140,1200,
  1260,1320,1380,1440,1500,1560,1620,1680,1740,1800,
  1860,1920,1980,2040,2100,2160,2220,2280,2340,2400,
  2460,2520,2580,2640,2700,2760,2820,2880,2940,3000,
  3060,3120,3180,3240,3300,3360,3420,3480,3540,3600,
  3660,3720,3780,3840,3900,3960,4020,4080,4140,4200,
  4260,4320,4380,4440,4500,4560,4620,4680,4740,4800,
  4860,4920,4980,5040,5100,5160,5220,5280,5340,5400,
  5460,5520,5580,5640,5700,5760,5820,5880,5940,6000,
  6060,6120,6180,6240,6300,6360,6420,6480,6540,6600,
  6660,6720,6780,6840,6900,6960,7020,7080,7140,7200,
  7260,7320,7380,7440,7500,7560,7620,7680,7740,7800,
  7860,7920,7980,8040,8100,8160,8220,8280,8340,8400,
  8460,8520,8580,8640,8700,8760,8820,8880,8940,9000,
  9060,9120,9180,9240,9300,9360,9420,9480,9540,9600
  }

xp=0
for i=2,HeroMaxLevel-1 do
  HeroExpTable[i]=HeroExpTable[i-1]+exp[i-1]
end
Здесь таблица с опытом сделана с помощью массива

Ищем функцию function CAddonTemplateGameMode:InitGameMode() и добавляем в неё следующие строчки:
Код:
 	GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel(HeroExpTable)
	GameRules:GetGameModeEntity():SetCustomHeroMaxLevel(HeroMaxLevel)
 

Илья

Друзья CG
25 Сен 2015
2,348
41
dander072, если хочешь мутить "приколюхи" в кастомках, то изучай программирование.
 
Последнее редактирование модератором:

dander072

Пользователь
1 Апр 2016
21
0
а как сделать чтобы статы можно было вкачивать?
 

Илья

Друзья CG
25 Сен 2015
2,348
41
За это отвечает абилка

Код:
	//=================================================================================================================
	// Ability: Attribute Bonus
	//=================================================================================================================
	"attribute_bonus"
	{
		// General
		//-------------------------------------------------------------------------------------------------------------
		"ID"					"5002"														// unique ID number for this ability. Do not change this once established or it will invalidate collected stats.
		"AbilityType"					"DOTA_ABILITY_TYPE_ATTRIBUTES"
		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_PASSIVE"
		
		// Special
		//-------------------------------------------------------------------------------------------------------------
		"AbilitySpecial"
		{
			"01"
			{
				"var_type"						"FIELD_FLOAT"
				"attribute_bonus_per_level"		"2.0"
			}
		}
	}

Правишь ее под себя и даешь героям вместо оригинальной. Про редактирование абилок тут можешь почитать.
 
Последнее редактирование модератором:

dander072

Пользователь
1 Апр 2016
21
0
что не так с этим скриптом?
Код:
// Dota Heroes File
"DOTAAbilities"
{
	"Version"		"1"

	//=================================================================================================================
	// Templar Assassin: Refraction Holdout
	//=================================================================================================================
	"templar_assassin_refraction_holdout"
	{

		// General
		//-------------------------------------------------------------------------------------------------------------
		"ID"					"5002"														// unique ID number for this ability. Do not change this once established or it will invalidate collected stats.
		"AbilityType"					"DOTA_ABILITY_TYPE_ATTRIBUTES"
		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_PASSIVE"
		"MaxLevel"                    "130"
        "RequiredLevel"                 "-1"
        "LevelsBetweenUpgrades"              "1"

		// Special
		//-------------------------------------------------------------------------------------------------------------
		"AbilitySpecial"
		{
			"01"
			{
				"var_type"						"FIELD_FLOAT"
				"attribute_bonus_per_level"		"2.0"
			}
		}
	}

на темпларке тупо пустое место вместо него и пишет способность на макс уровне

Пользуйся тегом code. Последнее предупреждение.
 
Последнее редактирование модератором:

remeercs

Активный
24 Янв 2017
75
0
[quote author=-ExotiC- link=topic=790.msg3223#msg3223 date=1459538212]
С помощью этой функции SetCustomHeroMaxLevel

Код:
-- Задаем таблицу опыта
XP_PER_LEVEL_TABLE = {
  0,-- 1
  200,-- 2
  500,-- 3
  900,-- 4
  1400,-- 5
  2000,-- 6
  2600,-- 7
  3200,-- 8
  4400,-- 9
  5400,-- 10
  6000,-- 11
  8200,-- 12
  9000,-- 13
  10400,-- 14
  11900,-- 15
  13500,-- 16
  15200,-- 17
  17000,-- 18
  18900,-- 19
  20900,-- 20
  23000,-- 21
  25200,-- 22
  27500,-- 23
  29900,-- 24
  32400,-- 25
  35000,-- 26
  37700,-- 27
  40500,-- 28
  43400,-- 29
  46400,-- 30
  49500,-- 31
  52700,-- 32
  56000,-- 33
  59400,-- 34
  62900,-- 35
  66500,-- 36
  70200,-- 37
  74000,-- 38
  77900,-- 39
  81900,-- 40
  86000,-- 41
  90200,-- 42
  94500,-- 43
  98900,-- 44
  103400,-- 45
  108000,-- 46
  112700,-- 47
  117500,-- 48
  122400,-- 49
  127400 -- 50
  --и т.д. до 100
}

-- Тащим её в инит
function CAddonGameMode:InitGameMode()
  GameRules:GetGameModeEntity():SetUseCustomHeroLevels( true ) -- установка кастомной системы урвоней
  GameRules:GetGameModeEntity():SetCustomHeroMaxLevel( 100 ) -- максимальный уровень
  GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( XP_PER_LEVEL_TABLE ) -- указываем таблицу
end
[/quote]
я написал это в абилите гейм мод!правильно?
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Ну если правильно, то проверь и будет работать правильно. Иначе нет.

А так вообще не обязательно именно в game mode писать, можешь где угодно, главное, чтобы ты подключил таблицу через
Код:
GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel( XP_PER_LEVEL_TABLE )

там, где ты задаешь правила своему моду (где ты херачишь все эти GameRules).
 

Terrorbetch

Пользователь
24 Ноя 2021
18
0
Проект
Кастомные карты
dander072,
Steam\SteamApps\common\dota 2 beta\game\dota_addons\название аддона\scripts\vscripts

После
Код:
if CAddonTemplateGameMode == nil then
  CAddonTemplateGameMode = class({})
end
Добавляем таблицу с опытом

Код:
-- XP Table:
HeroMaxLevel = 150
HeroExpTable = {0}
exp={60,120,180,240,300,360,420,480,540,600,
  660,720,780,840,900,960,1020,1080,1140,1200,
  1260,1320,1380,1440,1500,1560,1620,1680,1740,1800,
  1860,1920,1980,2040,2100,2160,2220,2280,2340,2400,
  2460,2520,2580,2640,2700,2760,2820,2880,2940,3000,
  3060,3120,3180,3240,3300,3360,3420,3480,3540,3600,
  3660,3720,3780,3840,3900,3960,4020,4080,4140,4200,
  4260,4320,4380,4440,4500,4560,4620,4680,4740,4800,
  4860,4920,4980,5040,5100,5160,5220,5280,5340,5400,
  5460,5520,5580,5640,5700,5760,5820,5880,5940,6000,
  6060,6120,6180,6240,6300,6360,6420,6480,6540,6600,
  6660,6720,6780,6840,6900,6960,7020,7080,7140,7200,
  7260,7320,7380,7440,7500,7560,7620,7680,7740,7800,
  7860,7920,7980,8040,8100,8160,8220,8280,8340,8400,
  8460,8520,8580,8640,8700,8760,8820,8880,8940,9000,
  9060,9120,9180,9240,9300,9360,9420,9480,9540,9600
  }

xp=0
for i=2,HeroMaxLevel-1 do
  HeroExpTable[i]=HeroExpTable[i-1]+exp[i-1]
end
Здесь таблица с опытом сделана с помощью массива

Ищем функцию function CAddonTemplateGameMode:InitGameMode() и добавляем в неё следующие строчки:
Код:
     GameRules:GetGameModeEntity():SetCustomXPRequiredToReachNextLevel(HeroExpTable)
    GameRules:GetGameModeEntity():SetCustomHeroMaxLevel(HeroMaxLevel)
Привет, сорян за глупый вопрос, но можешь пожалуйста подсказать за что отвечает в этом коде данный текст?

Код:
 xp=0
for i=2,HeroMaxLevel-1 do
  HeroExpTable=HeroExpTable[i-1]+exp[i-1]
end
 

Spoof1x

Пользователь
16 Авг 2023
19
5
Проект
дота 2 кастомка
Привет, сорян за глупый вопрос, но можешь пожалуйста подсказать за что отвечает в этом коде данный текст?

Код:
 xp=0
for i=2,HeroMaxLevel-1 do
  HeroExpTable=HeroExpTable[i-1]+exp[i-1]
end
Lua:
for i = 2, HeroMaxLevel - 1 do:
Цикл for перебирает все числа от 2 до HeroMaxLevel-1 (в данном случае это 2 до 149). Мы начинаем с 2, потому что HeroExpTable[1] уже инициализирован с начальным значением опыта (0).

HeroExpTable = HeroExpTable[i-1] + exp[i-1]: Устанавливаем значение HeroExpTable (опыт, необходимый для повышения уровня героя) равным сумме HeroExpTable[i-1] (опыт, необходимый для предыдущего уровня) и exp[i-1] (значение опыта, соответствующее уровню в массиве exp).

Таким образом, после выполнения цикла for, HeroExpTable будет содержать общее количество опыта, необходимое для повышения уровня героя на каждом уровне от 1 до 149.
 
Реклама: