• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Shadowstep and Vanish - v0.9

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: CoLd Bon3
Shadowstep and Vanish
by Blackthorn

Shadowstep

The Rogue veils herself in shadows and move instantly move behind her target and increases movementspeed by 50% for 7/9/11 seconds.


Vanish

The Rogue once again use the shadows to instantly step backwards to the position where she first used Shadowstep. Only usable after Shadowstep.



  • INIT BS
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set BS_Hash = (Last created hashtable)
      • -------- Base Duration(5) + Bonus Duration(2) * Spell Level = Full Duration --------
      • Set BS_BaseDuration = 5.00
      • Set BS_BonusDuration = 2.00
      • -------- 1.5 = 150% | 1 = 100% | 2 = 200% | etc. etc. --------
      • Set BS_MovespeedMult = 1.50




  • CAST BS
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Shadowstep
          • (Ability being cast) Equal to Vanish
    • Actions
      • Set BS_KeyTriggering = (Triggering unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) is in BS_ClosureGroup) Equal to False
          • (Ability being cast) Equal to Shadowstep
        • Then - Actions
          • Set BS_Caster = (Triggering unit)
          • Set BS_Target = (Target unit of ability being cast)
          • Set BS_MovespeedMIN = (Current movement speed of BS_Caster)
          • Set BS_CasterPoint = (Position of BS_Caster)
          • Set BS_TempEffectPoint = (Position of BS_Target)
          • Set BS_Degree = ((Facing of BS_Target) - 180.00)
          • Set BS_TargetPoint = (BS_TempEffectPoint offset by 50.00 towards BS_Degree degrees)
          • Set BS_SpellLevel = (Level of (Ability being cast) for BS_Caster)
          • Set BS_DURATION = (BS_BaseDuration + (BS_BonusDuration x (Real(BS_SpellLevel))))
          • Set BS_MovespeedMAX = ((Current movement speed of BS_Caster) x BS_MovespeedMult)
          • Unit - Set BS_Caster movement speed to BS_MovespeedMAX
          • Unit - Create 1 Dummy for (Triggering player) at BS_CasterPoint facing Default building facing degrees
          • Set BS_DUMMY = (Last created unit)
          • Set BS_KeyLastCreated = (Last created unit)
          • Unit - Make BS_DUMMY Explode on death
          • Unit - Add a BS_DURATION second Generic expiration timer to BS_DUMMY
          • Unit Group - Add BS_Caster to BS_ClosureGroup
          • Unit Group - Add BS_DUMMY to BS_ClosureGroup
          • For each (Integer BS_IntegerA) from 1 to 3, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at BS_CasterPoint using Abilities\Spells\Items\AIil\AIilTarget.mdl
              • Special Effect - Destroy (Last created special effect)
          • Custom script: call SetUnitX(udg_BS_Caster, GetLocationX(udg_BS_TargetPoint))
          • Custom script: call SetUnitY(udg_BS_Caster, GetLocationY(udg_BS_TargetPoint))
          • Unit - Remove Shadowstep from BS_Caster
          • Unit - Add Vanish to BS_Caster
          • Animation - Play BS_Caster's attack animation
          • Animation - Queue BS_Caster's stand animation
          • Hashtable - Save Handle OfBS_DUMMY as 1 of (Key BS_KeyLastCreated) in BS_Hash
          • Hashtable - Save Handle OfBS_Caster as 2 of (Key BS_KeyLastCreated) in BS_Hash
          • Hashtable - Save Handle OfBS_CasterPoint as 3 of (Key BS_KeyLastCreated) in BS_Hash
          • Hashtable - Save BS_MovespeedMIN as 4 of (Key BS_KeyLastCreated) in BS_Hash
          • Hashtable - Save BS_SpellLevel as 5 of (Key BS_KeyLastCreated) in BS_Hash
          • Hashtable - Save Handle OfBS_TargetPoint as 6 of (Key BS_KeyLastCreated) in BS_Hash
          • Hashtable - Save Handle OfBS_DUMMY as 1 of (Key BS_KeyTriggering) in BS_Hash
          • Hashtable - Save Handle OfBS_Caster as 2 of (Key BS_KeyTriggering) in BS_Hash
          • Hashtable - Save Handle OfBS_CasterPoint as 3 of (Key BS_KeyTriggering) in BS_Hash
          • Hashtable - Save BS_MovespeedMIN as 4 of (Key BS_KeyTriggering) in BS_Hash
          • Hashtable - Save BS_SpellLevel as 5 of (Key BS_KeyTriggering) in BS_Hash
          • Hashtable - Save Handle OfBS_TargetPoint as 6 of (Key BS_KeyTriggering) in BS_Hash
          • For each (Integer BS_IntegerA) from 1 to 3, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect attached to the origin of BS_Caster using Abilities\Spells\Items\AIil\AIilTarget.mdl
              • Special Effect - Destroy (Last created special effect)
          • Unit - Order BS_Caster to Stop
          • If ((BS_Target belongs to an enemy of (Triggering player)) Equal to True) then do (Unit - Order BS_Caster to Attack BS_Target) else do (Do nothing)
          • Custom script: call RemoveLocation(udg_BS_TempEffectPoint)
          • Trigger - Turn on CLOSE BS <gen>
          • Skip remaining actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) is in BS_ClosureGroup) Equal to True
          • (Ability being cast) Equal to Vanish
        • Then - Actions
          • Set BS_Caster = (Triggering unit)
          • Set BS_DUMMY = (Load 1 of (Key BS_KeyTriggering) in BS_Hash)
          • Unit - Set BS_Caster movement speed to (Load 4 of (Key BS_KeyTriggering) from BS_Hash)
          • Set BS_TargetPoint = (Load 3 of (Key BS_KeyTriggering) in BS_Hash)
          • Set BS_CasterPoint = (Position of BS_Caster)
          • For each (Integer BS_IntegerA) from 1 to 3, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at BS_CasterPoint using Abilities\Spells\Items\AIil\AIilTarget.mdl
              • Special Effect - Destroy (Last created special effect)
          • Custom script: call SetUnitX(udg_BS_Caster, GetLocationX(udg_BS_TargetPoint))
          • Custom script: call SetUnitY(udg_BS_Caster, GetLocationY(udg_BS_TargetPoint))
          • For each (Integer BS_IntegerA) from 1 to 3, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect attached to the origin of BS_Caster using Abilities\Spells\Items\AIil\AIilTarget.mdl
              • Special Effect - Destroy (Last created special effect)
          • Unit - Remove Vanish from BS_Caster
          • Unit - Add Shadowstep to BS_Caster
          • Unit - Set level of Shadowstep for BS_Caster to (Load 5 of (Key BS_KeyTriggering) from BS_Hash)
          • Unit - Order BS_Caster to Stop
          • Unit Group - Remove BS_Caster from BS_ClosureGroup
          • Unit Group - Remove BS_DUMMY from BS_ClosureGroup
          • If ((Number of units in BS_ClosureGroup) Equal to 0) then do (Trigger - Turn off CLOSE BS <gen>) else do (Do nothing)
          • Unit - Kill BS_DUMMY
          • Hashtable - Clear all child hashtables of child (Key BS_KeyTriggering) in BS_Hash
          • Custom script: call RemoveLocation(udg_BS_CasterPoint)
          • Custom script: call RemoveLocation(udg_BS_TargetPoint)
        • Else - Actions



  • CLOSE BS
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is in BS_ClosureGroup) Equal to True
    • Actions
      • Set BS_Caster = (Load 2 of (Key BS_KeyTriggering) in BS_Hash)
      • Set BS_DUMMY = (Load 1 of (Key BS_KeyTriggering) in BS_Hash)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • BS_DUMMY Equal to (Triggering unit)
              • BS_Caster Equal to (Triggering unit)
        • Then - Actions
          • Set BS_KeyTriggering = (Triggering unit)
          • Set BS_TargetPoint = (Load 3 of (Key BS_KeyTriggering) in BS_Hash)
          • Set BS_CasterPoint = (Position of BS_Caster)
          • Unit - Set BS_Caster movement speed to (Load 4 of (Key BS_KeyTriggering) from BS_Hash)
          • Unit - Kill BS_DUMMY
          • Unit - Remove Vanish from BS_Caster
          • Unit - Add Shadowstep to BS_Caster
          • Unit - Set level of Shadowstep for BS_Caster to (Load 5 of (Key BS_KeyTriggering) from BS_Hash)
          • Unit Group - Remove BS_Caster from BS_ClosureGroup
          • Unit Group - Remove BS_DUMMY from BS_ClosureGroup
          • If ((Number of units in BS_ClosureGroup) Equal to 0) then do (Trigger - Turn off (This trigger)) else do (Do nothing)
          • Hashtable - Clear all child hashtables of child (Key BS_KeyTriggering) in BS_Hash
          • Custom script: call RemoveLocation(udg_BS_CasterPoint)
          • Custom script: call RemoveLocation(udg_BS_TargetPoint)
        • Else - Actions


Version 0.9 - Changes: Re-Arranged Triggering for better preformance, increased special effects.

Please Comment and Rate, and please don't remind me of the already existing spell by iAyanami
His is better but mine differ somewhat and is in GUI.


Keywords:
Shadow, Shadowstep, Blackthorn, Black, Thorn, Step, Cloak, Veil, Teleport, Blink, Vanish, Ninja, Rogue, Assassin.
Contents

Shadowstep and Vanish (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 13:35, 12th Dec 2015 IcemanBo:
Top