Не работает скрипт создающий иллюзию дамми с гемом

Escapists Harmony

Активный
4 Июл 2015
70
0
При создании шрапнели снайпера дающей тру сайт по области на время действия возник затык. При создании области появляется иллюзия дамми с гемом на точке, дающая трусайт (пробовали с таймером убивающим спустя 10 секунд - время действия шрапнели, не получилось, сделали иллюзией) - это в идеале планировалось. На деле, дамми не создается. Отдельно дамми с гемом работает, проверено. Проблема либо в abilities_override:

"sniper_shrapnel"
{
"AbilityDamage" "24 24 24 24"

"OnCreated"
{
"RunScript"
{
"ScriptFile" "heroes/hero_sniper/shrapnel.lua"
"Function" "shrapnel_dummy_gem"
"Target" "POINT"
}
}
}

либо в самом скрипте:
function shrapnel_dummy_gem( event )
local point = event.point
local caster = event.caster
local ability = event.ability
local dummy = CreateUnitByName( "npc_dummy_unit_shrapnel_badguys", point, false, caster, caster, caster:GetTeamNumber() )
dummy:AddNewModifier( dummy, ability, "modifier_illusion", {duration = 10, outgoing_damage = illusion_outgoing_damage, incoming_damage = illusion_incoming_damage} )
dummy:MakeIllusion()
end
Просьба найти ошибку, потратили много времени, и есть стойкое ощущение, что это как всегда какая нибудь мелочь. С меня + :)
 
Последнее редактирование модератором:

Slavko

Продвинутый
22 Июн 2015
224
4
Escapists Harmony, сделай в конце луа скрипта print( point, caster, ability ) И скинь пожалуйста сообщение из консоли от этого принта сюда.
З.Ы. Скорее всего ситуцию должно решить local point = event.target_points[1]
 

Escapists Harmony

Активный
4 Июл 2015
70
0
function shrapnel_dummy_gem( event )
local point = event.point
local caster = event.caster
local ability = event.ability
local dummy = CreateUnitByName( "npc_dummy_unit_shrapnel_badguys", point, false, caster, caster, caster:GetTeamNumber() )
dummy:AddNewModifier( dummy, ability, "modifier_illusion", {duration = 10, outgoing_damage = illusion_outgoing_damage, incoming_damage = illusion_incoming_damage} )
dummy:MakeIllusion()
print( point, caster, ability )
end
не пишет ничего вообще( Мне прямо так и заменить строку local point = event.point на local point = event.target_points[1] ?
 
Последнее редактирование модератором:

Slavko

Продвинутый
22 Июн 2015
224
4
Escapists Harmony, если принт ничего не выдает, и ошибок тоже нет - значит абилка в скрипт не входит даже. Ничего не меняй, а лучше кинь фулл код абилки из .txt и проверь, правильно ли указано местоположение скрипта в RunScript.
 

Escapists Harmony

Активный
4 Июл 2015
70
0
В шапке код абилки. Абилка лежит в abilities_override, соответственно прописаны только параметры для изменения.
 

Slavko

Продвинутый
22 Июн 2015
224
4
Убери пока "AbilityDamage" "24 24 24 24"
и замени "OnCreated" на "OnSpellStart"
P.S> OnCreated - The modifier has been created.
 
Последнее редактирование модератором:

Escapists Harmony

Активный
4 Июл 2015
70
0
Изменил.
"sniper_shrapnel"
{
"OnSpellStart"
{
"RunScript"
{
"ScriptFile" "heroes/hero_sniper/shrapnel.lua"
"Function" "shrapnel_dummy_gem"
"Target" "POINT"
}
}
}
Дамми не создается.
 
Последнее редактирование модератором:

Slavko

Продвинутый
22 Июн 2015
224
4
Escapists Harmony, я никогда не имел дела с override_abilities. По этому могу лишь посоветовать скопипастить, изучить и сделать-таки улучшенную абилку в датадривен - получишь и опыт, и рабочий скилл. Просто в функцииshrapnel_fire сделаешь то, что тебе требуется.
 

Escapists Harmony

Активный
4 Июл 2015
70
0
Ок попробую. Пока попробовал с event.target_points[1], не получилось - дамми упорно не хочет рождаться

function shrapnel_dummy_gem( event )
local point = event.target_points[1]
local caster = event.caster
local ability = event.ability
local dummy = CreateUnitByName( "npc_dummy_unit_shrapnel_badguys", event.target_points[1], false, caster, caster, caster:GetTeamNumber() )
dummy:AddNewModifier( dummy, ability, "modifier_illusion", {duration = 10, outgoing_damage = illusion_outgoing_damage, incoming_damage = illusion_incoming_damage} )
dummy:MakeIllusion()
end
 
Последнее редактирование модератором:

Slavko

Продвинутый
22 Июн 2015
224
4
Escapists Harmony, сделай принт до объявления локальных переменных в функции. print("blablabla")
Если ничего не выдаст при юзе скилла - значит RunScript не выполняется.
 
Последнее редактирование модератором:

Escapists Harmony

Активный
4 Июл 2015
70
0
Получилось при создании полностью кастомной абилки и вставке своего кода туда. Проигрывается звук иллюзии в конце, ну да ладно - это будет не баг, а фича ;D Как и обещал, с меня +, Спасибо!
 

Slavko

Продвинутый
22 Июн 2015
224
4
Escapists Harmony написал(а):
это будет не баг, а фича
Знал бы ты, как часто я использую эту фразу...
Обращайся, если что :)
 
Последнее редактирование модератором:
Реклама: