Moderator
M
Moderator
14:31, 2nd Dec 2012
PurgeandFire111:
You have made the appropriate changes, so I approve.
Nice job.
PurgeandFire111:
You have made the appropriate changes, so I approve.
EsL Config

Events


Map initialization

Conditions

Actions


-------- Is the caster alive?? --------


Set EsL_Condition_Config[0] = True


-------- Detemines the maximum range escaped backwards per level --------


Set EsL_Escape_Range[1] = 1000.00


Set EsL_Escape_Range[2] = 1400.00


Set EsL_Escape_Range[3] = 1800.00


-------- Detemines the time of escaping finish --------


Set EsL_Escaping_Time = 2.00


-------- Detemines the escaping speed per level --------


Set EsL_Escape_Speed[1] = (EsL_Escape_Range[1] x (0.03 / EsL_Escaping_Time))


Set EsL_Escape_Speed[2] = (EsL_Escape_Range[2] x (0.03 / EsL_Escaping_Time))


Set EsL_Escape_Speed[3] = (EsL_Escape_Range[3] x (0.03 / EsL_Escaping_Time))


-------- Detemines the maximum height jumped while escaping --------


Set EsL_Max_Height = 300.00


-------- Detemines the quantity that used in saving the backwards angle --------


Set EsL_Angle_Add_Quantity = 180.00


-------- Detemines the animation name --------


Set EsL_Spell_Animation = victory


-------- Detemines the animation speed --------


Set EsL_Animation_Speed = 140.00


-------- Detemines the locations of special effect model files created on the caster --------


Set EsL_Effect_Model[1] = Abilities\Weapons\IllidanMissile\IllidanMissile.mdl


Set EsL_Effect_Model[2] = Abilities\Weapons\IllidanMissile\IllidanMissile.mdl


-------- Detemines the attachments of the special effects created on the caster --------


Set EsL_Attachment[1] = right hand


Set EsL_Attachment[2] = left hand


Set EsL_Spell = Escape Leap
EsL Cast

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to EsL_Spell

Actions


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




EsL_Index_Listener Equal to 0



Then - Actions




Trigger - Turn on EsL Loop <gen>



Else - Actions


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




EsL_Recycle_Size Greater than 0



Then - Actions




Set EsL_Recycle_Size = (EsL_Recycle_Size - 1)




Set EsL_Current_Index = EsL_Recycle_Container[EsL_Recycle_Size]



Else - Actions




Set EsL_Current_Index = EsL_Index_Size




Set EsL_Index_Size = (EsL_Index_Size + 1)


Set EsL_Caster[EsL_Current_Index] = (Triggering unit)


Set EsL_Start_Point[EsL_Current_Index] = (Position of EsL_Caster[EsL_Current_Index])


Set EsL_Level = (Level of EsL_Spell for EsL_Caster[EsL_Current_Index])


Set EsL_Backward_Angle[EsL_Current_Index] = ((Facing of EsL_Caster[EsL_Current_Index]) + EsL_Angle_Add_Quantity)


Custom script: call PauseUnit(udg_EsL_Caster[udg_EsL_Current_Index], true)


Unit - Turn collision for EsL_Caster[EsL_Current_Index] Off


Animation - Play EsL_Caster[EsL_Current_Index]'s EsL_Spell_Animation animation


Animation - Change EsL_Caster[EsL_Current_Index]'s animation speed to EsL_Animation_Speed% of its original speed


Special Effect - Create a special effect attached to the EsL_Attachment[1] of EsL_Caster[EsL_Current_Index] using EsL_Effect_Model[1]


Set EsL_SE_1[EsL_Current_Index] = (Last created special effect)


Special Effect - Create a special effect attached to the EsL_Attachment[2] of EsL_Caster[EsL_Current_Index] using EsL_Effect_Model[2]


Set EsL_SE_2[EsL_Current_Index] = (Last created special effect)


Custom script: if UnitAddAbility(udg_EsL_Caster[udg_EsL_Current_Index],'Amrf') then


Custom script: call UnitRemoveAbility(udg_EsL_Caster[udg_EsL_Current_Index],'Amrf')


Custom script: endif


Set EsL_Index_Container[EsL_Index_Listener] = EsL_Current_Index


Set EsL_Index_Listener = (EsL_Index_Listener + 1)
EsL Loop

Events


Time - Every 0.03 seconds of game time

Conditions

Actions


For each (Integer EsL_Loop) from 0 to (EsL_Index_Listener - 1), do (Actions)



Loop - Actions




Set EsL_Current_Index = EsL_Index_Container[EsL_Loop]




Set EsL_Caster_Point = (Position of EsL_Caster[EsL_Current_Index])




Set EsL_Distance_Tavelled[EsL_Current_Index] = (Distance between EsL_Start_Point[EsL_Current_Index] and EsL_Caster_Point)




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






(EsL_Caster[EsL_Current_Index] is alive) Equal to EsL_Condition_Config[0]






EsL_Distance_Tavelled[EsL_Current_Index] Less than or equal to EsL_Escape_Range[EsL_Level]





Then - Actions






Set EsL_Height_Formula[EsL_Current_Index] = (((4.00 x EsL_Max_Height) / EsL_Escape_Range[EsL_Level]) x ((EsL_Escape_Range[EsL_Level] - EsL_Distance_Tavelled[EsL_Current_Index]) x (EsL_Distance_Tavelled[EsL_Current_Index] / EsL_Escape_Range[EsL_Level])))






Animation - Change EsL_Caster[EsL_Current_Index] flying height to EsL_Height_Formula[EsL_Current_Index] at 0.00






Unit - Make EsL_Caster[EsL_Current_Index] face EsL_Start_Point[EsL_Current_Index] over 0.00 seconds






Custom script: call SetUnitX(udg_EsL_Caster[udg_EsL_Current_Index],GetUnitX(udg_EsL_Caster[udg_EsL_Current_Index]) + udg_EsL_Escape_Speed[udg_EsL_Level] * Cos(udg_EsL_Backward_Angle[udg_EsL_Current_Index] * bj_DEGTORAD))






Custom script: call SetUnitY(udg_EsL_Caster[udg_EsL_Current_Index],GetUnitY(udg_EsL_Caster[udg_EsL_Current_Index]) + udg_EsL_Escape_Speed[udg_EsL_Level] * Sin(udg_EsL_Backward_Angle[udg_EsL_Current_Index] * bj_DEGTORAD))





Else - Actions






Custom script: call RemoveLocation(udg_EsL_Start_Point[udg_EsL_Current_Index])






Custom script: call PauseUnit(udg_EsL_Caster[udg_EsL_Current_Index], false)






Unit - Order EsL_Caster[EsL_Current_Index] to Stop






Unit - Turn collision for EsL_Caster[EsL_Current_Index] On






Special Effect - Destroy EsL_SE_1[EsL_Current_Index]






Special Effect - Destroy EsL_SE_2[EsL_Current_Index]






Animation - Reset EsL_Caster[EsL_Current_Index]'s animation






Set EsL_Index_Listener = (EsL_Index_Listener - 1)






Set EsL_Index_Container[EsL_Loop] = EsL_Index_Container[EsL_Index_Listener]






Set EsL_Recycle_Container[EsL_Current_Index] = EsL_Current_Index






Set EsL_Recycle_Size = (EsL_Recycle_Size + 1)






Set EsL_Loop = (EsL_Loop - 1)






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








EsL_Index_Listener Equal to 0







Then - Actions








Trigger - Turn off EsL Loop <gen>







Else - Actions




Custom script: call RemoveLocation(udg_EsL_Caster_Point)