Вот код прыжока... но почему то, он как будь то автоматически применяет способность (прыгает вверх и вниз)
function Trig_jump_Conditions takes nothing returns boolean return GetSpellAbilityId()=='A002' endfunction
function Jump takes nothing returns nothing local timer t=GetExpiredTimer() local integer id=GetHandleId(t) local integer h=LoadInteger(udg_H,id,2) local unit u=LoadUnitHandle(udg_H,id,1) local boolean b=LoadBoolean(udg_H,id,3) call TexTag(GetWidgetX(u),GetWidgetY(u),I2S(h)) if h<10 then call PauseUnit(u,false) call PauseTimer(t) call DestroyTimer(t) else call UnitAddAbility(u,'Arav') call SetPlayerAbilityAvailable(GetOwningPlayer(u),'Arav',false) call SetUnitFlyHeight(u,h,9000.) if h>=300 or b==true then set h=h-10 call SaveInteger(udg_H,id,2,h) set b=true call SaveBoolean(udg_H,id,3,b) elseif b==false then set h=h+10 call SaveInteger(udg_H,id,2,h) endif endif set t=null set u=null endfunction
function Trig_jump_Actions takes nothing returns nothing local unit u=GetTriggerUnit() local timer t=CreateTimer() local integer id=GetHandleId(t) local integer h=10 local boolean b=false call SaveUnitHandle(udg_H,id,1,u) call SaveInteger(udg_H,id,2,h) call SaveBoolean(udg_H,id,3,b) call PauseUnit(u,true) call TimerStart(t,.04,true,function Jump) set u=null set t=null endfunction
//=========================================================================== function InitTrig_jump takes nothing returns nothing set gg_trg_jump=CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_jump,EVENT_PLAYER_UNIT_SPELL_EFFECT) call TriggerAddCondition(gg_trg_jump,Condition(function Trig_jump_Conditions)) call TriggerAddAction(gg_trg_jump,function Trig_jump_Actions) endfunction
Сообщение отредактировал Mep3aB4uK - Воскресенье, 28 Августа 2011, 22:11:46