Как периодически выдавать золто?

vovak155

Пользователь
17 Янв 2017
10
0
Итак, создаю нового герыча и тут понимаю, что понабодится lua, а потом вспомнил что я в нём ноль...
Мне нужен скрипт, который будет выдавать каждые 100 сек. рандомную голду от 1 до 3к.
Как это сделать я не знаю(Скилл пассивный, похож на алхимичный). Если вы знаете, как это сделать через ДДЛ - расскажите)
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Re: LUA

Какова твоя цель: научиться скриптить на луа или попросту реализовать абилку?
 

vovak155

Пользователь
17 Янв 2017
10
0
Re: LUA

Какова твоя цель: научиться скриптить на луа или попросту реализовать абилку?
Оба варианта подходят. Вообщем, надо научиться так,как это мне понадобится в будущем для реализации других абилок. Из языков хорошо знаю только Pascal и Pawn, хотелось бы научиться LUA. Желательно реализовать абилку в datadriven, но не знаю как сделать пасивку, чтобы она использовалась по кд. Можно впринципе с фиксированным значением(не рандом), но с рандом как-то азартней
 
Последнее редактирование модератором:

vovak155

Пользователь
17 Янв 2017
10
0
Re: LUA

[quote author=Илья link=topic=1501.msg9756#msg9756 date=1497199766]
Читай тут сразу послесловие, всю статью не обязательно тебе читать, если на pascal хотя бы прогал.

И про абилки с модификаторами.
[/quote]
Как реализовать мою абилку я знаю, но как правильно работать с функцией рандом не очень.
Вот примерный код на datadriven:
"lucky"
{
"BaseClass" "ability_datadriven"
"AbilityName" "lucky"
"ID" "5666"
"AbilityTextureName" "alchemist_goblins_greed"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilityCooldown" "60 45 30"

//Как сделать "ApplyModifier" не знаю. Так как OnSpellStart не работает в пассивках

"Modifiers"
{
"GrantXPGold"
{
"Target" "CASTER"
//"XPAmount" "0"(не знаю, какое по умолчанию так, что пусть так
//"SplitEvenly" "0"(не знаю, какое по умолчанию так, что пусть так
"GoldAmount" "Рандомное от 1 до 3к"
//"ReliableGold" "0"(не знаю, какое по умолчанию так, что пусть так
}
}
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Re: LUA

Что-то твой пример совсем не показывает того, что ты знаешь, как реализовать свою абилку. Читай, что я тебе скинул и штудируй форум (начни с гайдов).
Код:
		"Random"
			{
			  "Chance"	"50"
			  "OnSuccess"
				{
                }
            }


А вот офф викки по модификаторам.
 
Последнее редактирование модератором:

I_Explorer

Друзья CG
30 Июл 2016
318
16
Проект
Жизнь в тюрьме
Re: LUA

Итак, создаю нового герыча и тут понимаю, что понабодится lua, а потом вспомнил что я в нём ноль...
Мне нужен скрипт, который будет выдавать каждые 100 сек. рандомную голду от 1 до 3к.
Как это сделать я не знаю(Скилл пассивный, похож на алхимичный). Если вы знаете, как это сделать через ДДЛ - расскажите)
Могу дать код только с фиксированным значением + % от текущей голды (можешь сделать "0" если не нужен)
Код:
"trump_gold"
		{
			// General
			//-------------------------------------------------------------------------------------------------------------
			"BaseClass"				"ability_datadriven"
			"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_PASSIVE"
			"SpellImmunityType"				"SPELL_IMMUNITY_ENEMIES_YES"
			"AbilityTextureName"			"gold"
			"MaxLevel"						"5"
			"LevelsBetweenUpgrades"		"5"
			
			// Precache
			//-------------------------------------------------------------------------------------------------------------
			"precache"
			{
				"soundfile"			"soundevents/game_sounds_heroes/game_sounds_axe.vsndevts"
				"particle"			"particles/units/heroes/hero_axe/axe_attack_blur_counterhelix.vpcf"
			}
			
			// Time		
			//-------------------------------------------------------------------------------------------------------------
			"AbilityCooldown"				"80.0 75.0 70.0 65.0 60.0"
	
	
			// Special
			//-------------------------------------------------------------------------------------------------------------
			"AbilitySpecial"
			{
				"01"
				{
					"var_type"					"FIELD_FLOAT"
					"pourcentage"				"6 7 8 9 10"
				}
			}
	
			"Modifiers"
			{
				"modifier_gold_trump"
				{
					"Passive" "1"
					"IsHidden"	"1"
	
					"ThinkInterval" "0.5"
					"OnIntervalThink"
					{
						"RunScript"
						{
							"ScriptFile"	"trump_gold.lua"
							"Function"		"trump_gold"
						}
					}
				}
			}
		}
Код:
function trump_gold(keys)

	local caster = keys.caster
	local ability = keys.ability
	local casterGold = caster:GetGold()
	local prc = ability:GetLevelSpecialValueFor("pourcentage", ability:GetLevel() - 1)	
	--local cd_agha = ability:GetLevelSpecialValueFor("cd_aghanim_scepter", ability:GetLevel() - 1)	
	local cooldown = ability:GetCooldown(ability:GetLevel() - 1)
	local obtien = casterGold * prc / 100 + 50-- 100 * 0.2 = 20
	--local scepter = HasScepter(caster)
	
	if ability:IsCooldownReady() then
		caster:ModifyGold(obtien, true, 0)
		--if scepter then
		--	ability:StartCooldown(cd_agha * GetCooldownReduction(caster))
		--else
		ability:StartCooldown(cooldown) -- * GetCooldownReduction(caster)
	end
		
end
 
Последнее редактирование модератором:

vovak155

Пользователь
17 Янв 2017
10
0
Re: LUA

[quote author=Илья link=topic=1501.msg9763#msg9763 date=1497204538]
Что-то твой пример совсем не показывает того, что ты знаешь, как реализовать свою абилку. Читай, что я тебе скинул и штудируй форум (начни с гайдов).
Код:
		"Random"
			{
			  "Chance"	"50"
			  "OnSuccess"
				{
                }
            }


А вот офф викки по модификаторам.
[/quote]
А можно сделать несколько рандомов и в OnFail ещё рандом и в том OnFail ещё рандом?
 
Последнее редактирование модератором:
Реклама: