Сделал триггер по статье, но почему-то не работает... я перепробовал всё что можно) но всё равно) я даже переменными глобальными проверял условие ложно или истинно, но он пишет что переменная не изменилась. Вот код
Code
function Auto_Attack_Detect takes nothing returns boolean
if GetTriggerEventId()==EVENT_PLAYER_UNIT_ATTACKED and GetUnitAbilityLevel(GetAttacker(),'A005')>0 then
return true
set udg_IntegerTest = 2
elseif GetTriggerEventId()==EVENT_UNIT_SPELL_EFFECT and GetSpellAbilityId()=='A005' then
return true
set udg_IntegerTest = 2
endif
return false
set udg_IntegerTest = 1
endfunction
function Auto_Attack_Effects takes nothing returns nothing
local real dam = GetEventDamage()
local unit targ = GetTriggerUnit()
local unit cast = GetEventDamageSource()
local texttag t
if UnitHasBuffBJ(targ, 'B000') == true and GetUnitAbilityLevel(cast,'A005')>0 then
call DisableTrigger(GetTriggeringTrigger())
set dam = GetUnitAbilityLevel(cast,'A005')*.25*dam
set t = CreateTextTag()
call SetTextTagText(t,"+"+I2S(R2I(dam)),.023)
call SetTextTagPosUnit(t,targ,15)
call SetTextTagColor(t,0,0,255,50)
call SetTextTagVelocity(t,0.355 * Cos(90 * bj_DEGTORAD),.0355 * Sin(90 * bj_DEGTORAD))
call SetTextTagLifespan(t,1.)
call UnitDamageTarget(cast,targ,dam,false,false, ATTACK_TYPE_PIERCE, DAMAGE_TYPE_NORMAL,null)
call PolledWait(1.)
call DestroyTextTag(t)
set t = null
endif
set targ = null
set cast = null
endfunction
function Auto_Attack_Detect_Actions takes nothing returns nothing
local trigger trig = CreateTrigger()
local triggeraction ta
local unit u
if GetTriggerEventId()==EVENT_UNIT_SPELL_EFFECT then
set u = GetSpellTargetUnit()
else
set u = GetTriggerUnit()
endif
call TriggerRegisterUnitEvent(trig,u, EVENT_UNIT_DAMAGED)
set ta = TriggerAddAction(trig, function Auto_Attack_Effects)
call PolledWait(2)
call DisableTrigger(trig)
call TriggerRemoveAction(trig,ta)
call DestroyTrigger(trig)
set ta = null
set u = null
set trig = null
endfunction
function InitTrig_Auto_Attack takes nothing returns nothing
local unit u
set gg_trg_Auto_Attack = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Auto_Attack, EVENT_PLAYER_UNIT_ATTACKED)
call TriggerRegisterUnitEvent(gg_trg_Auto_Attack,u, EVENT_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_Auto_Attack, Condition(function Auto_Attack_Detect))
call TriggerAddAction(gg_trg_Auto_Attack, function Auto_Attack_Detect_Actions)
endfunction
Где ошибка? Подскажите плз)