• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Escape Leap v0.02

  • Like
Reactions: HandsOfficial
Spell Info
=================================
Escape Leap [Q]
Leaps backwards out from combat or enemies.
Slams the area of 300 to stun the enemies for 2 seconds so that (the caster can escape freely)
Reach the maximum escape range in 2 seconds.

Level 1 - Escape Range 1000

Level 2 - Escape Range 1400

Level 3 - Escape Range 1800

Cooldown - 0 seconds. (For MUI Test)
=================================

v0.02 Triggers

  • 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)


Please reply and rate the spell after viewing/testing.

Keywords:
GUI,MUI,Trigger,Escape,Shaman,Animation,Backwards Moving
Contents

Escape Leap v0.02 (Map)

Reviews
14:31, 2nd Dec 2012 PurgeandFire111: You have made the appropriate changes, so I approve. :) Nice job.

Moderator

M

Moderator

14:31, 2nd Dec 2012
PurgeandFire111:
You have made the appropriate changes, so I approve. :) Nice job.
 
Level 7
Joined
Sep 2, 2011
Messages
349
Wow, you're just killing it. Creating spells right after another. I suggest in fixing some previous spells though. Good job on this spell.
 
EDIT: and Add Some Documentation on how It works, Ok?
:D

Instead of Using this
  • 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)
you can use this:
  • Custom script: set udg_EsL_SE_2[udg_EsL_Current_Index] = AddSpecialEffectTarget(udg_EsL_Effect_Model[1], udg_EsL_Caster[EsL_Current_Index], udg_EsL_Attachment[1]
  • Custom script: set udg_EsL_SE_2[udg_EsL_Current_Index] = AddSpecialEffectTarget(udg_EsL_Effect_Model[2], udg_EsL_Caster[EsL_Current_Index], udg_EsL_Attachment[2]
then you will destroy it like this
  • Custom script: call DestroyEffect(udg_EsL_SE_1[udg_EsL_Current_Index]
  • Custom script: call DestroyEffect(udg_EsL_SE_2[udg_EsL_Current_Index]

Note: You don't to need to add some arrays to these
--->EsL_SE_1[udg_EsL_Current_Index]
--->EsL_SE_2[udg_EsL_Current_Index]

Or
call DestroyEffect(AddSpecialEffectTarget(udg_EsL_Effect_Model[2], udg_EsL_Caster[EsL_Current_Index], udg_EsL_Attachment[2])

Also doomhammer was right,this doesnt need to be array
 
Top