• 🏆 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!

Stomp Effects v1.0

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Stomp Effects :)...

Here are the triggers

Setting the Hashtables
  • Set Hashtables
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Creates the Hashtables --------
      • Hashtable - Create a hashtable
      • Set StompTable = (Last created hashtable)
Arctic Stomp
  • Arctic Stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Arctic Stomp [|cffffcc00Q|r]
    • Actions
      • -------- The Damage --------
      • Set StompDamage = ((Level of (Ability being cast) for (Casting unit)) x (Intelligence of (Casting unit) (Include bonuses)))
      • -------- Starting Distance --------
      • Set StompDistance = 100.00
      • -------- The effect that is shown --------
      • Set StompEffect = (String(ice))
      • -------- How many waves are coming --------
      • Set StompWaves = 10
      • -------- Starting wave --------
      • Set StompCount = 0
      • -------- How many units are created in each wave --------
      • Set StompUPW = 10
      • -------- Sets the Angle --------
      • Set StompAngle = (360.00 / (Real(StompUPW)))
      • -------- Starting unit --------
      • Set StompCU = 0
      • -------- Now saves the Data in the hashtable --------
      • Hashtable - Save StompAngle as 0 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDamage as 1 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDistance as 2 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompEffect as 3 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompWaves as 4 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCount as 5 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompUPW as 6 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCU as 7 of (Key (Casting unit)) in StompTable
      • -------- starts the spell by putting the casting unit in the unit group --------
      • Unit Group - Add (Casting unit) to StompUnits
Fire Stomp
  • Fire stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Stomp [|cffffcc00Q|r]
    • Actions
      • -------- The Damage --------
      • Set StompDamage = ((Level of (Ability being cast) for (Casting unit)) x (Intelligence of (Casting unit) (Include bonuses)))
      • -------- Starting Distance --------
      • Set StompDistance = 150.00
      • -------- The effect that is shown --------
      • Set StompEffect = (String(fire))
      • -------- How many waves are coming --------
      • Set StompWaves = 5
      • -------- Starting wave --------
      • Set StompCount = 0
      • -------- How many units are created in each wave --------
      • Set StompUPW = 20
      • -------- Sets the Angle --------
      • Set StompAngle = (360.00 / (Real(StompUPW)))
      • -------- Starting unit --------
      • Set StompCU = 0
      • -------- Now saves the Data in the hashtable --------
      • Hashtable - Save StompAngle as 0 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDamage as 1 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDistance as 2 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompEffect as 3 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompWaves as 4 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCount as 5 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompUPW as 6 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCU as 7 of (Key (Casting unit)) in StompTable
      • -------- starts the spell by putting the casting unit in the unit group --------
      • Unit Group - Add (Casting unit) to StompUnits
Unholy Stomp
  • Unholy stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Unholy Stomp [|cffffcc00Q|r]
    • Actions
      • -------- The Damage --------
      • Set StompDamage = ((Level of (Ability being cast) for (Casting unit)) x (Intelligence of (Casting unit) (Include bonuses)))
      • -------- Starting Distance --------
      • Set StompDistance = 150.00
      • -------- The effect that is shown --------
      • Set StompEffect = (String(unholy))
      • -------- How many waves are coming --------
      • Set StompWaves = 5
      • -------- Starting wave --------
      • Set StompCount = 0
      • -------- How many units are created in each wave --------
      • Set StompUPW = 20
      • -------- Sets the Angle --------
      • Set StompAngle = (360.00 / (Real(StompUPW)))
      • -------- Starting unit --------
      • Set StompCU = 0
      • -------- Now saves the Data in the hashtable --------
      • Hashtable - Save StompAngle as 0 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDamage as 1 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDistance as 2 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompEffect as 3 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompWaves as 4 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCount as 5 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompUPW as 6 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCU as 7 of (Key (Casting unit)) in StompTable
      • -------- starts the spell by putting the casting unit in the unit group --------
      • Unit Group - Add (Casting unit) to StompUnits
Holy Stomp
  • Holy stomp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Stomp [|cffffcc00Q|r]
    • Actions
      • -------- The Damage --------
      • Set StompDamage = ((Level of (Ability being cast) for (Casting unit)) x (Intelligence of (Casting unit) (Include bonuses)))
      • -------- Starting Distance --------
      • Set StompDistance = 150.00
      • -------- The effect that is shown --------
      • Set StompEffect = (String(holy))
      • -------- How many waves are coming --------
      • Set StompWaves = 5
      • -------- Starting wave --------
      • Set StompCount = 0
      • -------- How many units are created in each wave --------
      • Set StompUPW = 20
      • -------- Sets the Angle --------
      • Set StompAngle = (360.00 / (Real(StompUPW)))
      • -------- Starting unit --------
      • Set StompCU = 0
      • -------- Now saves the Data in the hashtable --------
      • Hashtable - Save StompAngle as 0 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDamage as 1 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompDistance as 2 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompEffect as 3 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompWaves as 4 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCount as 5 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompUPW as 6 of (Key (Casting unit)) in StompTable
      • Hashtable - Save StompCU as 7 of (Key (Casting unit)) in StompTable
      • -------- starts the spell by putting the casting unit in the unit group --------
      • Unit Group - Add (Casting unit) to StompUnits
Stomp LOOPS
  • Stomp Loop
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in StompUnits and do (Actions)
        • Loop - Actions
          • -------- loads the saved hashtable data --------
          • Set StompCaster = (Picked unit)
          • Set StompAngle = (Load 0 of (Key (Picked unit)) from StompTable)
          • Set StompDamage = (Load 1 of (Key (Picked unit)) from StompTable)
          • Set StompDistance = (Load 2 of (Key (Picked unit)) from StompTable)
          • Set StompEffect = (Load 3 of (Key (Picked unit)) from StompTable)
          • Set StompWaves = (Load 4 of (Key (Picked unit)) from StompTable)
          • Set StompCount = (Load 5 of (Key (Picked unit)) from StompTable)
          • Set StompUPW = (Load 6 of (Key (Picked unit)) from StompTable)
          • Set StompCU = (Load 7 of (Key (Picked unit)) from StompTable)
          • -------- If the maximal waves count is not reached --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • StompCount Less than or equal to StompWaves
            • Then - Actions
              • -------- If the maximal unit count per wave is not reach --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • StompCU Less than or equal to StompUPW
                • Then - Actions
                  • -------- sets the distance based on the wavecount --------
                  • Set StompDistance = (StompDistance + (StompDistance x (Real(StompCount))))
                  • -------- sets the angle based on the unit count --------
                  • Set StompAngle = (StompAngle + (StompAngle x (Real(StompCU))))
                  • -------- Set leaks --------
                  • Set deleteleak = ((Position of (Picked unit)) offset by StompDistance towards StompAngle degrees)
                  • -------- Create the unit effect --------
                  • Unit - Create 1 (Unit-type(StompEffect)) for Neutral Passive at deleteleak facing Default building facing degrees
                  • Unit - Turn collision for (Last created unit) Off
                  • Unit - Move (Last created unit) instantly to deleteleak
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • -------- Deal Damage --------
                  • Set StompUnitGroup = (Units within 100.00 of deleteleak matching (((Matching unit) belongs to an enemy of (Owner of StompCaster)) Equal to True))
                  • Unit Group - Pick every unit in StompUnitGroup and do (Actions)
                    • Loop - Actions
                      • Unit - Cause StompCaster to damage (Picked unit), dealing (Real(StompDamage)) damage of attack type Spells and damage type Normal
                  • -------- delete leaks --------
                  • Custom script: call RemoveLocation (udg_deleteleak)
                  • Custom script: call DestroyGroup (udg_StompUnitGroup)
                  • -------- Increases the unit count --------
                  • Set StompCU = (StompCU + 1)
                • Else - Actions
                  • -------- New wave --------
                  • Set StompCU = 0
                  • Set StompCount = (StompCount + 1)
                  • Hashtable - Save StompCount as 5 of (Key (Picked unit)) in StompTable
              • Hashtable - Save StompCU as 7 of (Key (Picked unit)) in StompTable
            • Else - Actions
              • -------- All waves have been reached , now delete everything and unpause unit --------
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in StompTable
              • Unit Group - Remove (Picked unit) from StompUnits
Please Rate and comment !!! :)

Keywords:
Stomp, Stomp Nova, Nova, Spell pack, Stomp Effect, Effect, Fire, Ice, Dark, Light, Holy, Unholy
Contents

Stomp Effect (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Use 0.03 instead of 0.01 in the loop. Store Key(Picked unit) into an integer variable and use the variable when loading stuff from hash. You load stuff from hash even when you might not...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

Maker, Stomp Effects v1.0, 9th Oct 2011

Use 0.03 instead of 0.01 in the loop.
Store Key(Picked unit) into an integer variable and use the variable when loading stuff from hash.
You load stuff from hash even when you might not need to.
Turn off the looping trigger when it contains no units.
Leaks Position of picked unit in the loop trigger.

 
• The String part to force UnitId2String is not needed. It creates an unnecessary leak. You could use a Unit-type variable.

  • Set deleteleak = ((Position of (Picked unit)) offset by StompDistance towards StompAngle degrees)
Leaks a location.

  • Hashtable - Save StompCU as 7 of (Key (Picked unit)) in StompTable
Move this inside of the "Then" branch.

• Set the dummies' Combat - Death Type to "Can't raise, does not decay" and change their model to dummy.mdx, instead of using one dummy per spell. Attach a special effect on them, depending on the spell cast. http://www.wc3c.net/showthread.php?p=1007469&fromattachment=1007469#1007469
 
Top