создание абилки на луа со стаками

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

Danis

Продвинутый
12 Июн 2016
285
0
Проект
Custom Hero Arena
Мне нужно создать абилку со стаками которая при смерти носителя будет вызывать скрипт, у абилки должно быть 2 модификатора, пассивный и активный но я хз как сделать чтобы при смерти из пассивного вызывался модификатор который будет вызывать скрипт
из луа, ведь можно сделать чтобы был недоскрипт на луа из луа абилки? в общем если у вас есть небольшой запас нервов, побольше запас терпения и времени то можете рассказать по подробее?
 
Мне нужно создать абилку со стаками которая при смерти носителя будет вызывать скрипт, у абилки должно быть 2 модификатора, пассивный и активный но я хз как сделать чтобы при смерти из пассивного вызывался модификатор который будет вызывать скрипт
из луа, ведь можно сделать чтобы был недоскрипт на луа из луа абилки? в общем если у вас есть небольшой запас нервов, побольше запас терпения и времени то можете рассказать по подробее?
Переформулируй, а то я будто прочитал сюжет трансформеров 6.
Из DD можно юзать эвент "OnOwnerDie", и оттуда вызывать скрипт. А вот что идет дальше я вообще не понял.
 
Последнее редактирование модератором:
CryDeS, ДД? и как вызывать скрипт? еще нужно чтобы он на атакующего вешался
щас скину пример как должно быть но только на луа а не так.
 
Код:
"fly_vision_bonus"
	{
		// General
		//-------------------------------------------------------------------------------------------------------------
		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_HIDDEN"
		"BaseClass"						"ability_datadriven"
		"MaxLevel"	"1"

		"AbilitySpecial"
		{
			"01"
			{
				"var_type"					"FIELD_INTEGER"
				"vision_bonus"				"2"
			}
		}

		"Modifiers"
		{
			"modifier_simple_creature_vision"
			{
				"Passive"	"1"
				"Attributes"							"MODIFIER_ATTRIBUTE_PERMANENT"
				"IsHidden"	"1"
				"Properties"
				{
					"MODIFIER_PROPERTY_BONUS_DAY_VISION"	"%vision_bonus"
				}

				"OnDeath"
				{
					"RunScript"
					{
						"ScriptFile"	"mutations_vision/uni_evo.lua"
						"Function"		"universal_system_1"
					}
				}
			}

			"modifier_fly_simple_mut"
			{
				"Passive"	"0"
				"IsHidden"	"1"
				"Attributes"							"MODIFIER_ATTRIBUTE_PERMANENT"
				"Properties"
				{
					"MODIFIER_PROPERTY_BONUS_DAY_VISION"	"%vision_bonus"
				}
			}
		}
	}
Код:
function universal_system_1(keys)
	local A = keys.caster:GetUnitName()
	local modifier = tostring("modifier_" .. A .. "_mut")
	print(modifier)
	if not keys.attacker:HasModifier(modifier) then
		keys.ability:ApplyDataDrivenModifier(keys.attacker,keys.attacker,modifier,{})
	end
И вот мне нужно сделать так чтобы запускался этот скрипт при смерти существа
 
Последнее редактирование модератором:
То есть ты хочешь сделать дебафф, который, к примеру, как пассивка скорпа создает взрыв на месте убитого? (это ток пример механики, чтобы уловить суть).

Используй, что тебе сказали, OnOwnerDie в модификаторе. А так вообще на lua бы сделал модификатор и не парился.
 
А сейчас скрипт не вызывается чтоли?
 
вы не поняли, мне нужно узнать как вызывать модификатор, как его вызвать в определенный момент??
 
Я все равно не могу понять что именно тебе нужно. :-\
 
боже мой, как же вам объяснить.
в датадрайвене способности это выглядит так:
Код:
OnDeath
{
RunScript
{
ScriptFile
Function
}
}
А как это в луа способности выглядит?
 
[quote author=Danis link=topic=1044.msg5835#msg5835 date=1470754171]
боже мой, как же вам объяснить.
в датадрайвене способности это выглядит так:
Код:
OnDeath
{
RunScript
{
ScriptFile
Function
}
}
А как это в луа способности выглядит?
[/quote]
Лев Толстой: Danis.

Заходишь такой по пути:
dota 2 beta\game\dota_addons\lua_ability_example\scripts\vscripts\modifier_pudge_flesh_heap_lua.lua
И смотришь как вызываются эвенты через луа. А еще ты бы мог чутка пораскинуть мозгами и отправиться изучать документашку.
И в луа ты можешь написать любую функцию в этом файле и вызывать ее. Или объявить класс если функция объявлена вне этого файла. Вроде:
Код:
my_lovely_class = my_lovely_class or class({})

function my_lovely_class:DoSomething(unit)
end

А после вызвать где угодно через:
my_lovely_class:DoSomething(unit)
 
Поддержу ребят: если ты собираешься мудрить какие-то неимоверные для datadriven вещи, то лучше переходи на скриптинг. Datadriven придуман вовсе не для этого, не для творчества. Его сделали затем, чтобы можно было балансить доту изменениями цифр в умениях, чтобы делать самые простые вещи. Для всего остального, для творчества - программирование.
 
Danis, если желание есть, можешь меня в команду взять, я за бесплатно с тобой карту делать буду, я в скриптинге хоть что то да знаю, так что могу за место в "титрах" поработать
Мне просто интересен концепт этой карты, в варике очень любил в эволюцию видов катать
 
Последнее редактирование модератором:
[quote author=I_GRIN_I link=topic=1044.msg5843#msg5843 date=1470767348]
Danis, если желание есть, можешь меня в команду взять, я за бесплатно с тобой карту делать буду, я в скриптинге хоть что то да знаю, так что могу за место в "титрах" поработать
Мне просто интересен концепт этой карты, в варике очень любил в эволюцию видов катать
[/quote]
ну если есть желание, можешь помочь разобраться с созданием скиллов на луа, подробнее там поговорим, хорошо?
связаться можешь в стиме со мной
 
Последнее редактирование модератором:
Реклама: