Помогите пожалуста я сделал триггер на джассе (это первый мой триггер) суть скила такова : создается даммик фаербола и летит в сторону каста 2 секи после умирает
Даммик создается но не летит
вот код:
function Trig_IceFire_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A000' ) ) then return false endif return true endfunction
function timer1 takes nothing returns nothing local timer t = GetExpiredTimer() local integer id = GetHandleId(t) local unit d = LoadUnitHandle(udg_h, id, 1) local real a = LoadReal(udg_h, id, 2) local real x = GetUnitX(d) local real y = GetUnitY(d) if IsUnitType(d, UNIT_TYPE_DEAD) == FALSE then call SetUnitX(d, x+40*Cos(a)) call SetUnitY(d, y+40*Sin(a)) else call DestroyTimer(t) call FlushChildHashtable(udg_h, id) endif set t=null set d=null endfunction
function Trig_IceFire_Actions takes nothing returns nothing local unit u = GetSpellAbilityUnit() local real x = GetUnitX(u) local real y = GetUnitY(u) local real lx = GetLocationX(GetSpellTargetLoc()) local real ly = GetLocationY(GetSpellTargetLoc()) local real a = Atan2(ly-y,lx-x) local unit d = CreateUnit(GetOwningPlayer(u), 'e000', x, y ,a*bj_RADTODEG) local timer t = CreateTimer() local integer id = GetHandleId(t) call UnitApplyTimedLife(d, 'BTLF', 2.0) call SaveUnitHandle(udg_h , id , 1,d) call SaveReal(udg_h, id , 2, a) call TimerStart(t,0.05, true, function timer1) set d=null set t=null set u=null endfunction
//=========================================================================== function InitTrig_IceFire takes nothing returns nothing set gg_trg_IceFire = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_IceFire, EVENT_PLAYER_UNIT_SPELL_CHANNEL ) call TriggerAddCondition( gg_trg_IceFire, Condition( function Trig_IceFire_Conditions ) ) call TriggerAddAction( gg_trg_IceFire, function Trig_IceFire_Actions ) endfunction
Привет и добро пожаловать в клуб альцгеймера. Правило №1. Привет и добро пожаловать в клуб альцгеймера.