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

Spell pack version 2.20

Hey I made this spells a long time ago and posted it on wc3r.forumcircle.com.
It's 38 different spells, some which are quite simple but a lot of them is requests and when I were new at triggers
Please Point out errors in the triggers.



  • Fire Blast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Blast
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (FB_group is empty) Equal to True
        • Then - Actions
          • Trigger - Turn on Fire blast loop <gen>
        • Else - [SUB][/SUB]Actions
      • Set FB_point = (Position of (Triggering unit))
      • Set FB_degree = 90.00
      • Unit - Create 1 Fireblast for (Owner of (Triggering unit)) at FB_point facing (Facing of (Triggering unit)) degrees
      • Animation - Change (Last created unit) flying height to 250.00 at 0.00
      • Unit Group - Add (Last created unit) to FB_group
      • -------- head --------
      • Unit - Create 1 Fireblast2 for (Owner of (Triggering unit)) at FB_point facing (Facing of (Triggering unit)) degrees
      • Animation - Change (Last created unit) flying height to 175.00 at 0.00
      • Unit Group - Add (Last created unit) to FB_group
      • -------- body --------
      • Set FB_point_Copy = (FB_point offset by 50.00 towards ((Facing of (Triggering unit)) + FB_degree) degrees)
      • Unit - Create 1 Fireblast for (Owner of (Triggering unit)) at FB_point_Copy facing (Facing of (Triggering unit)) degrees
      • Animation - Change (Last created unit) flying height to 50.00 at 0.00
      • Unit Group - Add (Last created unit) to FB_group
      • -------- leg --------
      • Set FB_point_Copy = (FB_point offset by 75.00 towards ((Facing of (Triggering unit)) + FB_degree) degrees)
      • Unit - Create 1 Fireblast for (Owner of (Triggering unit)) at FB_point_Copy facing (Facing of (Triggering unit)) degrees
      • Animation - Change (Last created unit) flying height to 185.00 at 0.00
      • Unit Group - Add (Last created unit) to FB_group
      • -------- arm --------
      • Set FB_point_Copy = (FB_point offset by 50.00 towards ((Facing of (Triggering unit)) - FB_degree) degrees)
      • Unit - Create 1 Fireblast for (Owner of (Triggering unit)) at FB_point_Copy facing (Facing of (Triggering unit)) degrees
      • Animation - Change (Last created unit) flying height to 50.00 at 0.00
      • Unit Group - Add (Last created unit) to FB_group
      • -------- leg --------
      • Set FB_point_Copy = (FB_point offset by 75.00 towards ((Facing of (Triggering unit)) - FB_degree) degrees)
      • Unit - Create 1 Fireblast for (Owner of (Triggering unit)) at FB_point_Copy facing (Facing of (Triggering unit)) degrees
      • Animation - Change (Last created unit) flying height to 185.00 at 0.00
      • Unit Group - Add (Last created unit) to FB_group
      • -------- arm --------
  • Fire blast loop
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (FB_group is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Unit Group - Pick every unit in FB_group and do (Actions)
        • Loop - Actions
          • Set FB_distance = (Load 0 of (Key (Picked unit)) from FB_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FB_distance Less than 1000.00
            • Then - Actions
              • Set FB_distance = (FB_distance + 30.00)
              • Set FB_point = (Position of (Picked unit))
              • Set FB_point_Copy = (FB_point offset by 30.00 towards (Facing of (Picked unit)) degrees)
              • Unit - Move (Picked unit) instantly to FB_point_Copy
              • Hashtable - Save FB_distance as 0 of (Key (Picked unit)) in FB_hash
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of (Picked unit)) Equal to Fireblast2
                • Then - Actions
                  • Set FB_group_Copy = (Units within 50.00 of FB_point matching (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True))
                  • Set FB_dummy = (Picked unit)
                  • Unit Group - Pick every unit in FB_group_Copy and do (Actions)
                    • Loop - Actions
                      • Unit - Cause FB_dummy to damage (Picked unit), dealing 50.00 damage of attack type Spells and damage type Fire
                  • Custom script: call DestroyGroup(udg_FB_group_Copy)
                • Else - Actions
              • Custom script: call RemoveLocation(udg_FB_point)
              • Custom script: call RemoveLocation(udg_FB_point_Copy)
            • Else - Actions
              • Unit - Kill (Picked unit)
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in FB_hash
              • Unit Group - Remove (Picked unit) from FB_group


  • RoF
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ring of Fire
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RoF_Group is empty) Equal to True
          • (RoF_Group_Copy is empty) Equal to True
        • Then - Actions
          • Trigger - Turn on Untitled Trigger 008 <gen>
        • Else - Actions
      • For each (Integer RoF_integer) from 1 to 18, do (Actions)
        • Loop - Actions
          • Set RoF_point = (Target point of ability being cast)
          • Set RoF_Degree = ((360.00 / 18.00) x (Real(RoF_integer)))
          • Set RoF_point_Copy = (RoF_point offset by 0.00 towards RoF_Degree degrees)
          • Unit - Create 1 Ring of Fire for (Owner of (Triggering unit)) at RoF_point_Copy facing Default building facing degrees
          • Hashtable - Save RoF_Degree as 0 of (Key (Last created unit)) in RoF_hash
          • Hashtable - Save Handle OfRoF_point as 1 of (Key (Last created unit)) in RoF_hash
          • Custom script: call RemoveLocation(udg_RoF_point_Copy)
          • Unit Group - Add (Last created unit) to RoF_Group
  • Untitled Trigger 008
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RoF_Group is empty) Equal to True
          • (RoF_Group_Copy is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Unit Group - Pick every unit in RoF_Group and do (Actions)
        • Loop - Actions
          • Set RoF_Degree = (Load 0 of (Key (Picked unit)) from RoF_hash)
          • Set RoF_point = (Load 1 of (Key (Picked unit)) in RoF_hash)
          • Set ROF_distance = (Load 2 of (Key (Picked unit)) from RoF_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current flying height of (Picked unit)) Greater than or equal to 80.00
            • Then - Actions
              • Set ROF_distance = (ROF_distance + 11.00)
              • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) - 30.00) at 0.00
              • Set RoF_Degree = (RoF_Degree + 40.00)
              • Set RoF_point_Copy = (RoF_point offset by ROF_distance towards RoF_Degree degrees)
              • Hashtable - Save RoF_Degree as 0 of (Key (Picked unit)) in RoF_hash
              • Hashtable - Save ROF_distance as 2 of (Key (Picked unit)) in RoF_hash
              • Unit - Move (Picked unit) instantly to RoF_point_Copy
              • Custom script: call RemoveLocation(udg_RoF_point_Copy)
            • Else - Actions
              • Unit Group - Add (Picked unit) to RoF_Group_Copy
              • Unit Group - Remove (Picked unit) from RoF_Group
      • Unit Group - Pick every unit in RoF_Group_Copy and do (Actions)
        • Loop - Actions
          • Set RoF_point = (Load 1 of (Key (Picked unit)) in RoF_hash)
          • Set RoF_point_Copy = (Position of (Picked unit))
          • Set RoF_Degree = (Load 0 of (Key (Picked unit)) from RoF_hash)
          • Set ROF_distance = (Load 2 of (Key (Picked unit)) from RoF_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between RoF_point_Copy and RoF_point) Greater than or equal to 60.00
            • Then - Actions
              • Set ROF_distance = (ROF_distance - 20.00)
              • Set RoF_Degree = (RoF_Degree + 30.00)
              • Set RoF_point_Copy_2 = (RoF_point offset by ROF_distance towards (RoF_Degree + 0.00) degrees)
              • Set KN_unit = (Picked unit)
              • Set RoF_Group_Copy_2 = (Units within 20.00 of RoF_point_Copy matching (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True))
              • Unit Group - Pick every unit in RoF_Group_Copy_2 and do (Actions)
                • Loop - Actions
                  • Unit - Cause KN_unit to damage (Picked unit), dealing 150.00 damage of attack type Spells and damage type Fire
              • Custom script: call DestroyGroup(udg_RoF_Group_Copy_2)
              • Unit - Move (Picked unit) instantly to RoF_point_Copy_2
              • Hashtable - Save RoF_Degree as 0 of (Key (Picked unit)) in RoF_hash
              • Hashtable - Save ROF_distance as 2 of (Key (Picked unit)) in RoF_hash
              • Custom script: call RemoveLocation(udg_RoF_point_Copy)
              • Custom script: call RemoveLocation(udg_RoF_point_Copy_2)
            • Else - Actions
              • Unit Group - Remove (Picked unit) from RoF_Group_Copy
              • Special Effect - Create a special effect at RoF_point using Abilities\Spells\Other\Doom\DoomDeath.mdl
              • Special Effect - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_RoF_point_Copy)
              • Custom script: call RemoveLocation(udg_RoF_point)
              • Unit - Kill (Picked unit)


  • Magma Strike
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Magma Strike
    • Actions
      • Set MS1_point = (Target point of ability being cast)
      • Set MS1_point_Copy = (MS1_point offset by -600.00 towards (Facing of (Triggering unit)) degrees)
      • Unit - Create 1 Volcanic Strike for (Owner of (Triggering unit)) at MS1_point_Copy facing (Facing of (Triggering unit)) degrees
      • Unit - Add a 3.50 second Generic expiration timer to (Last created unit)
      • Unit - Create 1 Volcanic Thrower for (Owner of (Triggering unit)) at MS1_point_Copy facing (Facing of (Triggering unit)) degrees
      • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Neutral Tinker - Cluster Rockets MS1_point
      • Custom script: call RemoveLocation(udg_MS1_point)
      • Custom script: call RemoveLocation(udg_MS1_point_Copy)


  • FS hash
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set fis_table = (Last created hashtable)
      • Set Fis_unit[1] = Orb of fire 1
      • Set Fis_unit[2] = Orb of fire 2
      • Set Fis_unit[3] = Orb of fire 3
  • Fire Shield
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Fire Shield
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (fis_group is empty) Equal to True
        • Then - Actions
          • Trigger - Turn on Untitled Trigger 006 <gen>
        • Else - Actions
      • Set fis_point = (Position of (Triggering unit))
      • Set Fis_dUMMY = (Load 1 of (Key (Triggering unit)) in fis_table)
      • Unit - Kill Fis_dUMMY
      • Set Fis_dUMMY = (Load 2 of (Key (Triggering unit)) in fis_table)
      • Unit - Kill Fis_dUMMY
      • For each (Integer Fis_integer2u) from 1 to 2, do (Actions)
        • Loop - Actions
          • Set fis_point_Copy = (fis_point offset by 50.00 towards (180.00 x (Real(Fis_integer2u))) degrees)
          • Unit - Create 1 Fis_unit[(Level of Fire Shield for (Triggering unit))] for (Owner of (Triggering unit)) at fis_point_Copy facing Default building facing degrees
          • Set Fis_dUMMY = (Triggering unit)
          • Set FS_unit2 = (Last created unit)
          • Set Fis_Integer = (Fis_integer2u x 180)
          • Hashtable - Save Fis_Integer as 0 of (Key (Last created unit)) in fis_table
          • Hashtable - Save Handle OfFis_dUMMY as 1 of (Key (Last created unit)) in fis_table
          • Unit Group - Add (Last created unit) to fis_group
          • Hashtable - Save Handle OfFS_unit2 as Fis_integer2u of (Key (Triggering unit)) in fis_table
          • Custom script: call RemoveLocation(udg_fis_point_Copy)
      • Custom script: call RemoveLocation(udg_fis_point)
  • Untitled Trigger 006
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (fis_group is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Unit Group - Pick every unit in fis_group and do (Actions)
        • Loop - Actions
          • Set Fis_Integer = (Load 0 of (Key (Picked unit)) from fis_table)
          • Set Fis_dUMMY = (Load 1 of (Key (Picked unit)) in fis_table)
          • Set FS_unit2 = (Picked unit)
          • Set fis_point = (Position of Fis_dUMMY)
          • Set Fis_Integer = (Fis_Integer + 10)
          • Set fis_point_Copy = (fis_point offset by 100.00 towards (Real(Fis_Integer)) degrees)
          • Custom script: call SetUnitY((udg_FS_unit2), GetLocationY(udg_fis_point_Copy))
          • Custom script: call SetUnitX((udg_FS_unit2), GetLocationX(udg_fis_point_Copy))
          • Hashtable - Save Fis_Integer as 0 of (Key (Picked unit)) in fis_table
          • Custom script: call RemoveLocation(udg_fis_point)
          • Custom script: call RemoveLocation(udg_fis_point_Copy)
  • Untitled Trigger 007
    • Events
      • Unit - A unit Is attacked
    • Conditions
    • Actions
      • Set FS_unit2 = (Load 1 of (Key (Attacking unit)) in fis_table)
      • Set Fis_dUMMY = (Load 2 of (Key (Attacking unit)) in fis_table)
      • Unit - Order FS_unit2 to Stop
      • Unit - Order Fis_dUMMY to Stop
      • Unit - Order FS_unit2 to Attack (Attacked unit)
      • Unit - Order Fis_dUMMY to Attack (Attacked unit)
Death
Events
Unit - A unit Dies
Conditions
(Level of Fire Shield for (Triggering unit)) Greater than or equal to 1
Actions
Set Fis_dUMMY = (Load 1 of (Key (Triggering unit)) in fis_table)
Unit - Kill Fis_dUMMY
Unit Group - Remove Fis_dUMMY from fis_group
Set Fis_dUMMY = (Load 2 of (Key (Triggering unit)) in fis_table)
Unit - Kill Fis_dUMMY
Unit Group - Remove Fis_dUMMY from fis_group

  • REVIVE
    • Events
    • Conditions
    • Actions
      • -------- TRIGGERING UNIT NEEDS TO BE REPLACED WITH THE UNIT CALLED UPON IN YOUR REVIVE TRIGGER ELSE IT WILL NOT BE USEABLE --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Fire Shield for (Triggering unit)) Greater than or equal to 1
        • Then - Actions
          • Set fis_point = (Position of (Triggering unit))
          • For each (Integer Fis_integer2u) from 1 to 2, do (Actions)
            • Loop - Actions
              • Set fis_point_Copy = (fis_point offset by 50.00 towards (180.00 x (Real(Fis_integer2u))) degrees)
              • Unit - Create 1 Fis_unit[(Level of Fire Shield for (Triggering unit))] for (Owner of (Triggering unit)) at fis_point_Copy facing Default building facing degrees
              • Set Fis_dUMMY = (Triggering unit)
              • Set FS_unit2 = (Last created unit)
              • Set Fis_Integer = (Fis_integer2u x 180)
              • Hashtable - Save Fis_Integer as 0 of (Key (Last created unit)) in fis_table
              • Hashtable - Save Handle OfFis_dUMMY as 1 of (Key (Last created unit)) in fis_table
              • Unit Group - Add (Last created unit) to fis_group
              • Hashtable - Save Handle OfFS_unit2 as Fis_integer2u of (Key (Triggering unit)) in fis_table
              • Custom script: call RemoveLocation(udg_fis_point_Copy)
        • Else - Actions




Living Bomb Cast
  • Living Bomb
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Living Bomb (Archimonde)
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (LB_Group is empty) Equal to True
        • Then - Actions
          • Trigger - Turn on Living Bomb Timer <gen>
        • Else - Actions
      • Set LB_time = 500
      • Set LB_damager = (Triggering unit)
      • Special Effect - Create a special effect attached to the chest of (Target unit of ability being cast) using Abilities\Spells\Other\Incinerate\IncinerateBuff.mdl
      • Set LB_sfx = (Last created special effect)
      • Hashtable - Save LB_time as 0 of (Key (Target unit of ability being cast)) in LB_hash
      • Hashtable - Save Handle OfLB_damager as 1 of (Key (Target unit of ability being cast)) in LB_hash
      • Hashtable - Save Handle OfLB_sfx as 2 of (Key (Target unit of ability being cast)) in LB_hash
      • Unit Group - Add (Target unit of ability being cast) to LB_Group
Living Bomb Loop
  • Living Bomb Timer
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (LB_Group is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Unit Group - Pick every unit in LB_Group and do (Actions)
        • Loop - Actions
          • Set LB_time = (Load 0 of (Key (Picked unit)) from LB_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LB_time Less than or equal to 0
            • Then - Actions
              • Set LB_damager = (Load 1 of (Key (Picked unit)) in LB_hash)
              • Set LB_sfx = (Load 2 of (Key (Picked unit)) in LB_hash)
              • Set LB_point = (Position of (Picked unit))
              • Unit - Create 1 Death Blast for (Owner of LB_damager) at LB_point facing Default building facing degrees
              • Set lb_targets = (Units within 300.00 of LB_point matching (((Matching unit) belongs to an enemy of (Owner of LB_damager)) Equal to True))
              • Set LB_sfx = (Load 2 of (Key (Picked unit)) in LB_hash)
              • Special Effect - Destroy LB_sfx
              • Unit Group - Pick every unit in lb_targets and do (Actions)
                • Loop - Actions
                  • Unit - Cause LB_damager to damage (Picked unit), dealing (100.00 x (Real((Level of Living Bomb (Archimonde) for LB_damager)))) damage of attack type Spells and damage type Normal
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in LB_hash
              • Unit Group - Remove (Picked unit) from LB_Group
              • Custom script: call DestroyGroup(udg_lb_targets)
              • Custom script: call RemoveLocation(udg_LB_point)
            • Else - Actions
              • Set LB_time = (LB_time - 1)
              • Hashtable - Save LB_time as 0 of (Key (Picked unit)) in LB_hash


  • Untitled Trigger 019
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Impale
    • Actions
      • Set I_point[0] = (Position of (Triggering unit))
      • For each (Integer IP_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set I_point[1] = (I_point[0] offset by 300.00 towards ((Real(IP_integer)) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Impaler for (Owner of (Triggering unit)) at I_point[0] facing Default building facing degrees
          • Unit - Order (Last created unit) to Undead Crypt Lord - Impale I_point[1]
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_I_point[1])
      • Custom script: call RemoveLocation(udg_I_point[0])


Cast
  • timewarp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Charge!
    • Actions
      • Set targetTW = (Target unit of ability being cast)
      • Unit - Turn collision for (Triggering unit) Off
      • Unit - Pause (Target unit of ability being cast)
      • Unit - Pause (Triggering unit)
      • Hashtable - Save Handle OftargetTW as 0 of (Key (Triggering unit)) in TWhash
      • Unit Group - Add (Triggering unit) to TWGROUP
Charge Loop
  • TimewarpLOOP
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in TWGROUP and do (Actions)
        • Loop - Actions
          • Set targetTW = (Load 0 of (Key (Picked unit)) in TWhash)
          • Set Timewarploc[0] = (Position of (Picked unit))
          • Set Timewarploc[1] = (Position of targetTW)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Integer((Distance between Timewarploc[0] and Timewarploc[1]))) Greater than or equal to 25
            • Then - Actions
              • Set Timewarploc[2] = (Timewarploc[0] offset by 25.00 towards (Angle from Timewarploc[0] to Timewarploc[1]) degrees)
              • Special Effect - Create a special effect at Timewarploc[0] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Move (Picked unit) instantly to Timewarploc[2], facing Timewarploc[1]
              • Custom script: call RemoveLocation(udg_Timewarploc[2])
              • Custom script: call RemoveLocation(udg_Timewarploc[0])
              • Custom script: call RemoveLocation(udg_Timewarploc[1])
            • Else - Actions
              • Unit Group - Remove (Picked unit) from TWGROUP
              • Unit - Unpause (Picked unit)
              • Unit - Unpause targetTW
              • Unit - Turn collision for (Picked unit) On
              • Custom script: call RemoveLocation(udg_Timewarploc[0])
              • Custom script: call RemoveLocation(udg_Timewarploc[1])
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in TWhash




  • Touch of the Death
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to A Touch of Death (Neutral Hostile)
    • Actions
      • Special Effect - Create a special effect attached to the overhead of (Target unit of ability being cast) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (75.00 x (Real((Level of A Touch of Death (Neutral Hostile) for (Triggering unit))))) damage of attack type Spells and damage type Unknown
      • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) + (25.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))


  • trigger Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dark Blast
    • Actions
      • Set point1 = (Target point of ability being cast)
      • For each (Integer Darkblast) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set point4 = (point1 offset by 300.00 towards ((Real(Darkblast)) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Lightning Twister Dummy1 for (Owner of (Triggering unit)) at point4 facing point1
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Animation - Change (Last created unit)'s vertex coloring to (0.00%, 0.00%, 0.00%) with 100.00% transparency
          • Custom script: call RemoveLocation(udg_point4)
          • Set point4 = (point1 offset by 200.00 towards ((Real(Darkblast)) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Lightning Twister Dummy1 for (Owner of (Triggering unit)) at point4 facing point1
          • Animation - Change (Last created unit)'s vertex coloring to (0.00%, 0.00%, 0.00%) with 100.00% transparency
          • Custom script: call RemoveLocation(udg_point4)
          • Set point4 = (point1 offset by 100.00 towards ((Real(Darkblast)) x (360.00 / 36.00)) degrees)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 Lightning Twister Dummy1 for (Owner of (Triggering unit)) at point4 facing point1
          • Animation - Change (Last created unit)'s vertex coloring to (0.00%, 0.00%, 0.00%) with 100.00% transparency
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_point4)
      • Set DamageGroup = (Units within 300.00 of point1 matching ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))))
      • Unit Group - Pick every unit in DamageGroup and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (75.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) damage of attack type Spells and damage type Normal
          • Unit Group - Remove (Picked unit) from DamageGroup
      • Custom script: call RemoveLocation(udg_point1)
      • Custom script: call DestroyGroup(udg_DamageGroup)


I know this trigger is simple but it is a locust(undead hero ultimate) with that explosion on death attack) and it simply just kills them.
  • Demonic Strike
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Unit-type of (Attacking unit)) Equal to Demonic Swarm Unit
    • Actions
      • Unit - Kill (Attacking unit)


  • Dark Portal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dark Portal
    • Actions
      • Set DP_points[0] = (Position of (Triggering unit))
      • Set DP_points[1] = (Target point of ability being cast)
      • Set DP_points[2] = (DP_points[0] offset by 150.00 towards (Angle from DP_points[0] to DP_points[1]) degrees)
      • Unit - Create 1 Portal Dummy for (Owner of (Triggering unit)) at DP_points[2] facing DP_points[1]
      • Unit - Add a 20.00 second Generic expiration timer to (Last created unit)
      • -------- the 20 seconds is how long time it takes for the portal to disappear --------
      • Neutral Building - Set (Last created unit) destination to DP_points[1]
      • Neutral Building - Enable (Last created unit)
      • Unit - Create 1 Portal Dummy for (Owner of (Triggering unit)) at DP_points[1] facing DP_points[2]
      • Unit - Add a 20.00 second Generic expiration timer to (Last created unit)
      • -------- the 20 seconds is how long time it takes for the portal to disappear --------
      • Neutral Building - Set (Last created unit) destination to DP_points[2]
      • Neutral Building - Enable (Last created unit)
      • Custom script: call RemoveLocation(udg_DP_points[0])
      • Custom script: call RemoveLocation(udg_DP_points[1])
      • Custom script: call RemoveLocation(udg_DP_points[2])




  • Frozen Wall
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Frozen Wall
    • Actions
      • Set ilikeanime[0] = (Target point of ability being cast)
      • Unit - Create 1 Icewall for (Owner of (Triggering unit)) at ilikeanime[0] facing (Facing of (Triggering unit)) degrees
      • Unit - Add a (5.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) second Generic expiration timer to (Last created unit)
      • For each (Integer left_right[0]) from 1 to 2, do (Actions)
        • Loop - Actions
          • Set ilikeanime[1] = (ilikeanime[0] offset by ((Real(left_right[0])) x 150.00) towards ((Facing of (Triggering unit)) + 90.00) degrees)
          • Unit - Create 1 Icewall for (Owner of (Triggering unit)) at ilikeanime[1] facing (Facing of (Triggering unit)) degrees
          • Unit - Add a (5.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_ilikeanime[1])
      • For each (Integer left_right[1]) from 1 to 2, do (Actions)
        • Loop - Actions
          • Set ilikeanime[1] = (ilikeanime[0] offset by ((Real(left_right[1])) x 150.00) towards ((Facing of (Triggering unit)) + 270.00) degrees)
          • Unit - Create 1 Icewall for (Owner of (Triggering unit)) at ilikeanime[1] facing (Facing of (Triggering unit)) degrees
          • Unit - Add a (5.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_ilikeanime[1])
      • Custom script: call RemoveLocation(udg_ilikeanime[0])


  • Iceexplosion
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Nova
    • Actions
      • Set lol = (Position of (Triggering unit))
      • For each (Integer iceexplosion[0]) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set lol_Copy = (lol offset by 25.00 towards ((Real(iceexplosion[0])) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Ice Exlposion for (Owner of (Triggering unit)) at lol_Copy facing (Position of (Triggering unit))
          • Unit - Add a 1.40 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation (udg_lol_Copy)
          • Set lol_Copy = (lol offset by 125.00 towards ((Real(iceexplosion[0])) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Ice Exlposion for (Owner of (Triggering unit)) at lol_Copy facing (Position of (Triggering unit))
          • Unit - Add a 1.40 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation (udg_lol_Copy)
          • Set lol_Copy = (lol offset by 250.00 towards ((Real(iceexplosion[0])) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Ice Exlposion for (Owner of (Triggering unit)) at lol_Copy facing (Position of (Triggering unit))
          • Unit - Add a 1.40 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation (udg_lol_Copy)
          • Set lol_Copy = (lol offset by 375.00 towards ((Real(iceexplosion[0])) x (360.00 / 36.00)) degrees)
          • Unit - Create 1 Ice Exlposion for (Owner of (Triggering unit)) at lol_Copy facing (Position of (Triggering unit))
          • Unit - Add a 1.40 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation (udg_lol_Copy)
      • Custom script: call RemoveLocation (udg_lol)



  • Iceexplosion Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Giant Iceball
    • Actions
      • Set Posistion = (Position of (Triggering unit))
      • Set Posistion_Copy = (Target point of ability being cast)
      • Unit - Create 1 Ice Arrow for (Owner of (Triggering unit)) at Posistion facing (Angle from Posistion to Posistion_Copy) degrees
      • Unit - Turn collision for (Last created unit) Off
      • Unit - Add Giant Iceball to (Last created unit)
      • Unit - Set level of Giant Iceball for (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
      • Unit Group - Add (Last created unit) to missle
      • Hashtable - Save Handle OfPosistion_Copy as 1 of (Key (Last created unit)) in hash
      • Custom script: call RemoveLocation(udg_Posistion)
  • Iceexplosion Copy Copy
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in missle and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (missle is empty) Equal to False
            • Then - Actions
              • Set caster1 = (Picked unit)
              • Set Posistion = (Position of caster1)
              • Special Effect - Create a special effect at Posistion using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Set Posistion_Copy = (Load 1 of (Key (Picked unit)) in hash)
              • Set Posistion_Copy_Copy = (Posistion offset by 32.00 towards (Angle from Posistion to Posistion_Copy) degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between Posistion and Posistion_Copy) Greater than 33.00
                • Then - Actions
                  • Unit - Move caster1 instantly to Posistion_Copy_Copy
                  • Set targets = (Units within 150.00 of Posistion matching (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True))
                  • Unit Group - Pick every unit in targets and do (Actions)
                    • Loop - Actions
                      • Unit - Cause caster1 to damage (Picked unit), dealing (5.00 x (Real((Level of Giant Iceball for caster1)))) damage of attack type Spells and damage type Cold
                      • Unit - Move (Picked unit) instantly to Posistion_Copy_Copy
                      • Unit - Turn collision for (Picked unit) Off
                  • Custom script: call RemoveLocation(udg_Posistion)
                  • Custom script: call RemoveLocation(udg_Posistion_Copy_Copy)
                • Else - Actions
                  • Unit Group - Remove (Picked unit) from missle
                  • Unit Group - Pick every unit in targets and do (Actions)
                    • Loop - Actions
                      • Unit - Turn collision for (Picked unit) On
                      • Unit Group - Remove (Picked unit) from targets
                  • Unit - Kill caster1
                  • Custom script: call RemoveLocation(udg_Posistion_Copy)
                  • Custom script: call RemoveLocation(udg_Posistion_Copy_Copy)
                  • Custom script: call RemoveLocation(udg_Posistion)
            • Else - Actions


  • Ice Shield
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Circle
    • Actions
      • Set cock[0] = (Target point of ability being cast)
      • For each (Integer iceexplosion[1]) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set cock[1] = (cock[0] offset by 300.00 towards ((Real(iceexplosion[1])) x (360.00 / 12.00)) degrees)
          • Unit - Create 1 Icewall for (Owner of (Triggering unit)) at cock[1] facing Default building facing degrees
          • Unit - Add a (3.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_cock[1])
      • Custom script: call RemoveLocation(udg_cock[0])




  • Life Combust Copy
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Life Combust
    • Actions
      • Set lifelost_managained[0] = (4.00 - (Real((Level of (Ability being cast) for (Triggering unit)))))
      • Set lifelost_managained[1] = (Real((Level of (Ability being cast) for (Triggering unit))))
      • Hashtable - Save lifelost_managained[0] as 0 of (Key (Triggering unit)) in LifeCombust
      • Hashtable - Save lifelost_managained[1] as 1 of (Key (Triggering unit)) in LifeCombust
      • Unit Group - Add (Triggering unit) to combusters
  • Life Combust Copy Copy
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in combusters and do (Actions)
        • Loop - Actions
          • Set lifelost_managained[0] = (Load 0 of (Key (Picked unit)) from LifeCombust)
          • Set lifelost_managained[1] = (Load 1 of (Key (Picked unit)) from LifeCombust)
          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - lifelost_managained[0])
          • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + lifelost_managained[1])
  • end
    • Events
      • Unit - A unit Stops casting an ability
      • Unit - A unit Is issued an order with no target
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Finishes casting an ability
    • Conditions
      • ((Triggering unit) is in combusters) Equal to True
    • Actions
      • Unit Group - Remove (Triggering unit) from combusters
      • Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in LifeCombust


  • Mana Combust Copy
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Mana Combust
    • Actions
      • Set CombustManacost = (Level of (Ability being cast) for (Triggering unit))
      • Unit Group - Add (Triggering unit) to ManaCombusters
      • Hashtable - Save CombustManacost as 0 of (Key (Triggering unit)) in ManaCobust
  • Shop da group
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in ManaCombusters and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Equal to 0.00
            • Then - Actions
              • Unit - Order (Picked unit) to Stop
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Mana of (Picked unit)) Greater than 0.00
                • Then - Actions
                  • Set CombustManacost = (Load 0 of (Key (Picked unit)) from ManaCobust)
                  • Set Manaoffered = (Load 2 of (Key (Picked unit)) from ManaCobust)
                  • Set Manaoffered = (Manaoffered + CombustManacost)
                  • Set Combustsize = (Load 1 of (Key (Picked unit)) from ManaCobust)
                  • Set Combustsize = (Combustsize + (Real(CombustManacost)))
                  • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - (Real(CombustManacost)))
                  • Hashtable - Save Combustsize as 1 of (Key (Picked unit)) in ManaCobust
                  • Hashtable - Save Manaoffered as 2 of (Key (Picked unit)) in ManaCobust
                • Else - Actions
  • end Copy
    • Events
      • Unit - A unit Stops casting an ability
      • Unit - A unit Is issued an order with no target
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Finishes casting an ability
    • Conditions
      • ((Triggering unit) is in ManaCombusters) Equal to True
    • Actions
      • Unit Group - Remove (Triggering unit) from ManaCombusters
      • Set Combustsize = (Load 1 of (Key (Triggering unit)) from ManaCobust)
      • Set Manaoffered = (Load 2 of (Key (Triggering unit)) from ManaCobust)
      • Set ManaBurst = (Position of (Triggering unit))
      • Unit - Create 1 Mana Burst for (Owner of (Triggering unit)) at ManaBurst facing Default building facing degrees
      • Animation - Change (Last created unit)'s size to ((Combustsize / 2.00)%, 100.00%, 100.00%) of its original size
      • Set DamageGroup = (Units within (Real(Manaoffered)) of ManaBurst matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))
      • Unit Group - Pick every unit in DamageGroup and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (Real(Manaoffered)) damage of attack type Spells and damage type Magic
      • Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in ManaCobust



This is actually a DOT system( Damage ower time]
But I made it a spell for unknown reasons.

  • Posion cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Storm Bolt
    • Actions
      • Set Damage_divided_by_time[0] = ((Level of Storm Bolt for (Triggering unit)) x 150)
      • -------- the fulll damage dealt --------
      • Set Damage_divided_by_time[1] = 10
      • -------- it deals damage 10 --------
      • Set Damage_divided_by_time[2] = (Damage_divided_by_time[0] / Damage_divided_by_time[1])
      • -------- we divide the full damage by the ammount of times :D --------
      • Hashtable - Save Damage_divided_by_time[2] as 0 of (Key (Target unit of ability being cast)) in posionhash
      • Hashtable - Save Damage_divided_by_time[1] as 1 of (Key (Target unit of ability being cast)) in posionhash
      • Hashtable - Save Handle Of(Triggering unit) as 2 of (Key (Target unit of ability being cast)) in posionhash
      • Set targett = (Target unit of ability being cast)
      • Hashtable - Save Handle Oftargett as 4 of (Key (Target unit of ability being cast)) in posionhash
      • Unit Group - Add (Target unit of ability being cast) to poisiongroup
  • loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in poisiongroup and do (Actions)
        • Loop - Actions
          • Set Damage_divided_by_time[2] = (Load 0 of (Key (Picked unit)) from posionhash)
          • Set Damage_divided_by_time[1] = (Load 1 of (Key (Picked unit)) from posionhash)
          • Set damager = (Load 2 of (Key (Picked unit)) in posionhash)
          • Set targett = (Load 4 of (Key (Picked unit)) in posionhash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Damage_divided_by_time[1] Greater than 0
            • Then - Actions
              • Set Damage_divided_by_time[1] = (Damage_divided_by_time[1] - 1)
              • Unit - Cause damager to damage targett, dealing (Real(Damage_divided_by_time[2])) damage of attack type Spells and damage type Normal
              • Hashtable - Save Damage_divided_by_time[1] as 1 of (Key (Picked unit)) in posionhash
            • Else - Actions
              • Unit Group - Remove (Picked unit) from poisiongroup
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in posionhash




  • Pein ULTIMATE
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Pein Ultimate
    • Actions
      • Set PE_point[0] = (Target point of ability being cast)
      • Set PE_point[1] = (Position of (Triggering unit))
      • Unit - Create 1 Pein Effect 1=D for (Owner of (Triggering unit)) at PE_point[1] facing PE_point[0]
      • Unit - Add Crow Form to (Last created unit)
      • Set PE_height = 800.00
      • Hashtable - Save PE_height as 0 of (Key (Last created unit)) in PE_hash
      • Unit Group - Add (Last created unit) to PE_Group[0]
      • Custom script: call RemoveLocation(udg_PE_point[1])
      • Custom script: call RemoveLocation(udg_PE_point[0])
  • Untitled Trigger 031
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in PE_Group[0] and do (Actions)
        • Loop - Actions
          • Set PE_height = (Load 0 of (Key (Picked unit)) from PE_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current flying height of (Picked unit)) Less than or equal to PE_height
            • Then - Actions
              • Animation - Change (Picked unit) flying height to (10.00 + (Current flying height of (Picked unit))) at 0.00
              • Set PE_point[0] = (Position of (Picked unit))
              • Set PE_point[1] = (PE_point[0] offset by 5.00 towards (Facing of (Picked unit)) degrees)
              • Unit - Move (Picked unit) instantly to PE_point[1]
              • Custom script: call RemoveLocation(udg_PE_point[0])
              • Custom script: call RemoveLocation(udg_PE_point[1])
            • Else - Actions
              • Unit Group - Add (Picked unit) to PE_Group[1]
      • Unit Group - Pick every unit in PE_Group[1] and do (Actions)
        • Loop - Actions
          • Set PE_time = (Load 1 of (Key (Picked unit)) from PE_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PE_time Less than or equal to 150
            • Then - Actions
              • Set PE_time = (PE_time + 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • PE_time Equal to 10
                      • PE_time Equal to 20
                      • PE_time Equal to 30
                      • PE_time Equal to 40
                      • PE_time Equal to 60
                      • PE_time Equal to 70
                      • PE_time Equal to 80
                      • PE_time Equal to 90
                • Then - Actions
                  • Set PE_point[0] = (Position of (Picked unit))
                  • Set PE_point[1] = (PE_point[0] offset by 500.00 towards (Random real number between 0.00 and 360.00) degrees)
                  • Unit - Create 1 Pein Ultimate Flying SFX2 for (Owner of (Picked unit)) at PE_point[1] facing PE_point[0]
                  • Animation - Change (Last created unit)'s size to ((Random real number between 175.00 and 200.00)%, (Random real number between 175.00 and 200.00)%, (Random real number between 157.00 and 225.00)%) of its original size
                  • Hashtable - Save Handle OfPE_point[0] as 0 of (Key (Last created unit)) in PE_hash
                  • Unit Group - Add (Last created unit) to PE_Group[2]
                • Else - Actions
              • Hashtable - Save PE_time as 1 of (Key (Picked unit)) in PE_hash
            • Else - Actions
              • Unit Group - Remove (Picked unit) from PE_Group[1]
              • Set PE_point[0] = (Position of (Picked unit))
              • Set PE_Group[4] = (Units within 600.00 of PE_point[0] matching (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True))
              • Set PE_Group[5] = (Units within 150.00 of PE_point[0] matching ((Unit-type of (Matching unit)) Equal to Pein Ultimate Flying SFX2))
              • Set PE_unit = (Picked unit)
              • Unit Group - Pick every unit in PE_Group[4] and do (Actions)
                • Loop - Actions
                  • Unit - Cause PE_unit to damage (Picked unit), dealing 300.00 damage of attack type Spells and damage type Normal
              • Unit Group - Pick every unit in PE_Group[5] and do (Actions)
                • Loop - Actions
                  • Unit - Kill (Picked unit)
              • Custom script: call DestroyGroup(udg_PE_Group[4])
              • Custom script: call DestroyGroup(udg_PE_Group[5])
              • Unit - Create 1 Pein end Effect for (Owner of (Picked unit)) at PE_point[0] facing Default building facing degrees
              • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
              • Custom script: call RemoveLocation(udg_PE_point[0])
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in PE_hash
              • Unit - Remove (Picked unit) from the game
      • Unit Group - Pick every unit in PE_Group[2] and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current flying height of (Picked unit)) Less than or equal to 799.00
            • Then - Actions
              • Animation - Change (Picked unit) flying height to (21.00 + (Current flying height of (Picked unit))) at 0.00
              • Set PE_point[0] = (Position of (Picked unit))
              • Set PE_point[2] = (Load 0 of (Key (Last created unit)) in PE_hash)
              • Set PE_point[1] = (PE_point[0] offset by 11.00 towards (Angle from PE_point[0] to PE_point[2]) degrees)
              • Unit - Move (Picked unit) instantly to PE_point[1]
              • Custom script: call RemoveLocation(udg_PE_point[0])
              • Custom script: call RemoveLocation(udg_PE_point[1])
            • Else - Actions
              • Unit Group - Remove (Picked unit) from PE_Group[2]


  • Untitled Trigger 001 Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Throw Rasen Shuriken
      • ((Triggering unit) has buff Rasen Shuriken ) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RS_group[0] is empty) Equal to True
        • Then - Actions
          • Trigger - Turn on Untitled Trigger 001 Copy Copy <gen>
        • Else - Actions
      • Set RS_point[0] = (Position of (Triggering unit))
      • Set RS_point[1] = (Target point of ability being cast)
      • Set RS_point[2] = (RS_point[0] offset by 10.00 towards (Angle from RS_point[0] to RS_point[1]) degrees)
      • Unit - Create 1 Rasen Shuriken Dummy for (Owner of (Triggering unit)) at RS_point[2] facing (Angle from RS_point[0] to RS_point[1]) degrees
      • Set RS_size = 300.00
      • -------- max size --------
      • Set RS_size_Copy = 100.00
      • -------- original size --------
      • Set RS_damage = ((Level of Rasen Shuriken for (Triggering unit)) x 10)
      • -------- Damage --------
      • -------- formular for damage is 10X Rasen Shuriken x 10 per second. --------
      • Unit Group - Add (Last created unit) to RS_group[0]
      • Hashtable - Save Handle OfRS_point[1] as 0 of (Key (Last created unit)) in RS_hash
      • Hashtable - Save RS_damage as 1 of (Key (Last created unit)) in RS_hash
      • Hashtable - Save RS_size as 2 of (Key (Last created unit)) in RS_hash
      • Hashtable - Save RS_size_Copy as 3 of (Key (Last created unit)) in RS_hash
      • Unit - Remove Rasen Shuriken buff from (Triggering unit)
      • Custom script: call RemoveLocation(udg_RS_point[0])
      • Custom script: call RemoveLocation(udg_RS_point[2])
  • Untitled Trigger 001 Copy Copy
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RS_group[0] is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Unit Group - Pick every unit in RS_group[0] and do (Actions)
        • Loop - Actions
          • Set RS_point[0] = (Position of (Picked unit))
          • Set RS_point[1] = (Load 0 of (Key (Picked unit)) in RS_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between RS_point[0] and RS_point[1]) Greater than or equal to 10.00
            • Then - Actions
              • Set RS_point[2] = (RS_point[0] offset by 10.00 towards (Angle from RS_point[0] to RS_point[1]) degrees)
              • Set RS_group[2] = (Units within 100.00 of RS_point[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Owner of (Picked unit)) is an enemy of (Owner of (Matching unit))) Equal to True) and (((Matching unit) is dead) Equal to True))))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (RS_group[2] is empty) Equal to True
                • Then - Actions
                  • Unit - Move (Picked unit) instantly to RS_point[2]
                  • Custom script: call RemoveLocation(udg_RS_point[2])
                  • Custom script: call RemoveLocation(udg_RS_point[0])
                  • Custom script: call DestroyGroup(udg_RS_group[2])
                • Else - Actions
                  • Unit Group - Remove (Picked unit) from RS_group[0]
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (RS_group[1] is empty) Equal to True
                    • Then - Actions
                      • Trigger - Turn on Untitled Trigger 002 Copy <gen>
                    • Else - Actions
                  • Unit Group - Add (Picked unit) to RS_group[1]
                  • Custom script: call RemoveLocation(udg_RS_point[0])
                  • Custom script: call DestroyGroup(udg_RS_group[2])
                  • Custom script: call RemoveLocation(udg_RS_point[2])
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (RS_group[1] is empty) Equal to True
                • Then - Actions
                  • Trigger - Turn on Untitled Trigger 002 Copy <gen>
                • Else - Actions
              • Unit Group - Remove (Picked unit) from RS_group[0]
              • Unit Group - Add (Picked unit) to RS_group[1]
              • Custom script: call RemoveLocation(udg_RS_point[0])
              • Custom script: call DestroyGroup(udg_RS_group[2])
              • Custom script: call RemoveLocation(udg_RS_point[2])
  • Untitled Trigger 002 Copy
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RS_group[1] is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Unit Group - Pick every unit in RS_group[1] and do (Actions)
        • Loop - Actions
          • Set RS_size = (Load 2 of (Key (Picked unit)) from RS_hash)
          • Set RS_size_Copy = (Load 3 of (Key (Picked unit)) from RS_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RS_size Greater than or equal to RS_size_Copy
            • Then - Actions
              • Set RS_damage = (Load 1 of (Key (Picked unit)) from RS_hash)
              • Set RS_size_Copy = (RS_size_Copy + 5.00)
              • Animation - Change (Picked unit)'s size to (RS_size_Copy%, RS_size_Copy%, RS_size_Copy%) of its original size
              • Set RS_point[2] = (Position of (Picked unit))
              • Set RS_group[2] = (Units within (RS_size_Copy + 50.00) of RS_point[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Owner of (Picked unit)) is an enemy of (Owner of (Matching unit))) Equal to True) and (((Matching unit) is dead) Equal to False))))
              • Set RS_unit = (Picked unit)
              • Unit Group - Pick every unit in RS_group[2] and do (Actions)
                • Loop - Actions
                  • Unit - Cause RS_unit to damage (Picked unit), dealing (Real(RS_damage)) damage of attack type Spells and damage type Normal
              • Hashtable - Save RS_size_Copy as 3 of (Key (Picked unit)) in RS_hash
              • Custom script: call RemoveLocation(udg_RS_point[2])
              • Custom script: call DestroyGroup(udg_RS_group[2])
            • Else - Actions
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in RS_hash
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Picked unit) from RS_group[2]


  • Untitled Trigger 016
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Kirin
    • Actions
      • Custom script: call UnitAddAbilityBJ( 'Aloc', GetTriggerUnit() )
      • Set KN_point[0] = (Target point of ability being cast)
      • Unit Group - Add (Triggering unit) to KN_group[0]
      • Hashtable - Save Handle OfKN_point[0] as 0 of (Key (Triggering unit)) in KN_hash
  • Kirin Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in KN_group[0] and do (Actions)
        • Loop - Actions
          • Set KN_integer = (Load 1 of (Key (Picked unit)) from KN_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • KN_integer Greater than or equal to 4
            • Then - Actions
              • Set KN_point[0] = (Position of (Picked unit))
              • Set KN_point[1] = (KN_point[0] offset by 23.00 towards ((Facing of (Picked unit)) + 90.00) degrees)
              • Unit - Create 1 Kirin Effect 1 for (Owner of (Picked unit)) at KN_point[1] facing Default building facing degrees
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • Set KN_unit = (Last created unit)
              • Unit - Create 1 Kirin Effect 2 for (Owner of (Picked unit)) at KN_point[1] facing Default building facing degrees
              • Unit - Order (Last created unit) to Special Archimonde - Finger Of Death KN_unit
              • For each (Integer kn_integer) from 1 to 9, do (Actions)
                • Loop - Actions
                  • Set KN_point[2] = (KN_point[0] offset by 300.00 towards ((Real(kn_integer)) x (360.00 / 9.00)) degrees)
                  • Unit - Create 1 Kirin Effect 2 for (Owner of (Picked unit)) at KN_point[2] facing Default building facing degrees
                  • Unit - Order (Last created unit) to Special Archimonde - Finger Of Death KN_unit
                  • Custom script: call RemoveLocation(udg_KN_point[2])
              • Unit Group - Remove (Picked unit) from KN_group[0]
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • Set KN_integer = 0
              • Hashtable - Save KN_integer as 1 of (Key (Picked unit)) in KN_hash
              • Custom script: call RemoveLocation(udg_KN_point[0])
              • Custom script: call RemoveLocation(udg_KN_point[1])
              • Hashtable - Save KN_integer as 1 of (Key (Picked unit)) in KN_hash
              • Unit Group - Add (Picked unit) to KN_group[1]
              • Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
            • Else - Actions
              • Set KN_integer = (KN_integer + 1)
              • Hashtable - Save KN_integer as 1 of (Key (Picked unit)) in KN_hash
      • Unit Group - Pick every unit in KN_group[1] and do (Actions)
        • Loop - Actions
          • Set KN_integer = (Load 1 of (Key (Picked unit)) from KN_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • KN_integer Greater than or equal to 5
            • Then - Actions
              • Set KN_integer = 0
              • Hashtable - Save KN_integer as 1 of (Key (Picked unit)) in KN_hash
              • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
              • Unit Group - Add (Picked unit) to KN_group[2]
              • Unit Group - Remove (Picked unit) from KN_group[1]
            • Else - Actions
              • Set KN_integer = (KN_integer + 1)
              • Hashtable - Save KN_integer as 1 of (Key (Picked unit)) in KN_hash
      • Unit Group - Pick every unit in KN_group[2] and do (Actions)
        • Loop - Actions
          • Set KN_integer = (Load 1 of (Key (Picked unit)) from KN_hash)
          • Set KN_point[0] = (Load 0 of (Key (Picked unit)) in KN_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • KN_integer Less than or equal to 9
            • Then - Actions
              • Set KN_integer = (KN_integer + 1)
              • Hashtable - Save KN_integer as 1 of (Key (Picked unit)) in KN_hash
            • Else - Actions
              • Set KN_unit = (Picked unit)
              • For each (Integer KN_integer) from 1 to 5, do (Actions)
                • Loop - Actions
                  • Set KN_point[1] = (KN_point[0] offset by (Random real number between 0.00 and 500.00) towards (Random real number between 0.00 and 359.00) degrees)
                  • Unit - Create 1 Kirin Effect 3 for (Owner of (Picked unit)) at KN_point[1] facing Default building facing degrees
                  • Set KN_group[3] = (Units within 600.00 of KN_point[1] matching (((Matching unit) belongs to an enemy of (Owner of KN_unit)) Equal to True))
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit Group - Pick every unit in KN_group[3] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause KN_unit to damage (Picked unit), dealing 100.00 damage of attack type Spells and damage type Lightning
                  • Custom script: call RemoveLocation(udg_KN_point[1])
                  • Custom script: call DestroyGroup(udg_KN_group[3])
              • Unit Group - Remove (Picked unit) from KN_group[2]
              • Custom script: call DestroyGroup(udg_KN_group[3])
              • Custom script: call RemoveLocation(udg_KN_point[0])
              • Custom script: call UnitRemoveAbilityBJ( 'Aloc', udg_KN_unit)
              • Unit - Hide KN_unit
              • Unit - Unhide KN_unit
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in KN_hash





Triple slash cast
  • Untitled Trigger 002
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Triple Slash
    • Actions
      • Set TripleSlasher = (Triggering unit)
      • Set target_Copy = (Target unit of ability being cast)
      • Set hits = 3
      • Set crit = ((Level of (Ability being cast) for (Triggering unit)) x 10)
      • Set miss = (20 - ((Level of (Ability being cast) for (Triggering unit)) x 5))
      • Unit - Pause TripleSlasher
      • Unit - Pause target_Copy
      • Animation - Change TripleSlasher's animation speed to 400.00% of its original speed
      • Hashtable - Save Handle Oftarget_Copy as 0 of (Key (Triggering unit)) in Triplestrike
      • Hashtable - Save Handle Of(Triggering unit) as 2 of (Key (Triggering unit)) in Triplestrike
      • Hashtable - Save hits as 1 of (Key (Triggering unit)) in Triplestrike
      • Unit Group - Add (Triggering unit) to triplestrikers
Tripleslash Loop
  • hits
    • Events
      • Time - Every 0.30 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in triplestrikers and do (Actions)
        • Loop - Actions
          • Set target_Copy = (Load 0 of (Key (Picked unit)) in Triplestrike)
          • Set TripleSlasher = (Load 2 of (Key (Picked unit)) in Triplestrike)
          • Set hits = (Load 1 of (Key (Picked unit)) from Triplestrike)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • hits Greater than or equal to 1
            • Then - Actions
              • Animation - Play TripleSlasher's attack animation
              • Unit - Cause TripleSlasher to damage target_Copy, dealing (25.00 x (Real((Level of Triple Slash for TripleSlasher)))) damage of attack type Spells and damage type Normal
              • Set hits = (hits - 1)
              • Hashtable - Save hits as 1 of (Key (Picked unit)) in Triplestrike
            • Else - Actions
              • Unit - Unpause TripleSlasher
              • Animation - Change TripleSlasher's animation speed to 100.00% of its original speed
              • Unit - Unpause target_Copy
              • Unit Group - Remove (Picked unit) from triplestrikers
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Triplestrike


I know it's simple but it was a request...
  • Untitled Trigger 009
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shadowbolt (Neutral Hostile)
    • Actions
      • Unit - Order (Target unit of ability being cast) to Attack (Triggering unit)


  • test
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shadow Spin
    • Actions
      • Set TempLoc = (Position of (Triggering unit))
      • Set ShadowspinINdexSize = 10
      • Unit - Create 1 Voodoo Dummy for (Owner of Spinner) at TempLoc facing Default building facing degrees
      • Unit - Order (Last created unit) to Neutral - Firebolt (Random unit from (Units within 600.00 of TempLoc matching (((Matching unit) belongs to an enemy of (Owner of spinner)) Equal to True)))
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation(udg_TempLoc)
      • Hashtable - Save ShadowspinINdexSize as 0 of (Key (Triggering unit)) in Shadowspin
      • Unit Group - Add (Triggering unit) to Spinnersftw
  • cookie
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Spinnersftw and do (Actions)
        • Loop - Actions
          • Set ShadowspinINdexSize = (Load 0 of (Key (Picked unit)) from Shadowspin)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ShadowspinINdexSize Greater than or equal to 1
            • Then - Actions
              • Set TempLoc = (Position of (Picked unit))
              • Unit - Create 1 ShadowSpinner 3 for (Owner of (Picked unit)) at TempLoc facing Default building facing degrees
              • Unit - Order (Last created unit) to Neutral - Firebolt (Random unit from (Units within 600.00 of TempLoc matching (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True)))
              • Unit - Add a 0.10 second Generic expiration timer to (Last created unit)
              • Set ShadowspinINdexSize = (ShadowspinINdexSize - 1)
              • Custom script: call RemoveLocation(udg_TempLoc)
              • Hashtable - Save ShadowspinINdexSize as 0 of (Key (Picked unit)) in Shadowspin
            • Else - Actions
              • Unit Group - Remove (Picked unit) from Spinnersftw
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Shadowspin




  • Iceexplosion Copy Copy 2
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Orb of the Damned
    • Actions
      • Set Deathpoint[0] = (Position of (Triggering unit))
      • Set Deathpoint[1] = (Target point of ability being cast)
      • Unit - Create 1 Death Blast1 for (Owner of (Triggering unit)) at Deathpoint[0] facing (Angle from Deathpoint[0] to Deathpoint[1]) degrees
      • Unit - Turn collision for (Last created unit) Off
      • Unit Group - Add (Last created unit) to DeathMissle
      • Hashtable - Save Handle OfDeathpoint[1] as 1 of (Key (Last created unit)) in hash1
      • Custom script: call RemoveLocation(udg_Deathpoint[0])
  • Iceexplosion Copy Copy Copy
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DeathMissle and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (DeathMissle is empty) Equal to False
            • Then - Actions
              • Set Deathpoint[0] = (Position of (Picked unit))
              • Set Deathpoint[1] = (Load 1 of (Key (Picked unit)) in hash1)
              • Set Deathpoint[2] = (Deathpoint[0] offset by 2.50 towards (Angle from Deathpoint[0] to Deathpoint[1]) degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between Deathpoint[0] and Deathpoint[1]) Greater than 5.00
                • Then - Actions
                  • Unit - Move (Picked unit) instantly to Deathpoint[2]
                  • Custom script: call RemoveLocation(udg_Deathpoint[0])
                  • Custom script: call RemoveLocation(udg_Deathpoint[2])
                  • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + 3.00) at 1000000000.00
                • Else - Actions
                  • Unit Group - Remove (Picked unit) from DeathMissle
                  • Unit - Create 1 Death Blast for (Owner of (Picked unit)) at Deathpoint[2] facing Default building facing degrees
                  • Animation - Change (Last created unit) flying height to ((Current flying height of (Picked unit)) + 300.00) at 100000.00
                  • Unit - Order (Last created unit) to Neutral Tinker - Cluster Rockets Deathpoint[2]
                  • Custom script: call RemoveLocation(udg_Deathpoint[1])
                  • Unit - Add a 1.25 second Generic expiration timer to (Picked unit)
                  • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
                  • Custom script: call RemoveLocation(udg_Deathpoint[0])
                  • Custom script: call RemoveLocation(udg_Deathpoint[2])
            • Else - Actions



Mana warden Cast
  • Untitled Trigger 003
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Mana Warden (Neutral Hostile)
    • Actions
      • -------- We cast the ability --------
      • -------- Check if its Mana Warden. --------
      • Set ManaWarden = (Position of (Target unit of ability being cast))
      • -------- We set the location to not get a leak. --------
      • Unit - Create 1 Mana Warden 1 for (Owner of (Triggering unit)) at ManaWarden facing Default building facing degrees
      • -------- Create the following dummy --------
      • Unit - Order (Last created unit) to Right-Click (Target unit of ability being cast)
      • -------- We order it to follow our target --------
      • Animation - Change (Last created unit)'s vertex coloring to (25.00%, 75.00%, 25.00%) with 50.00% transparency
      • -------- We colour it like a etheral unit --------
      • Set Mana_Warden = (Last created unit)
      • -------- We set the dummy for laiter use --------
      • Set mana_caster = (Target unit of ability being cast)
      • -------- We set the target for laiter use --------
      • Set time_mana_max[0] = ((Level of Mana Warden (Neutral Hostile) for (Triggering unit)) x 25)
      • -------- How much mana will it regenerate --------
      • Set time_mana_max[1] = 15
      • -------- How menny seconds the spell itself last. --------
      • Set time_mana_max[2] = 10
      • -------- We set MAX times of how menny times you will gain extra mana during the spell duration --------
      • Set caster_mana = (Triggering unit)
      • -------- We set the triggering unit for laiter use in a variable --------
      • Hashtable - Save time_mana_max[0] as 0 of (Key (Target unit of ability being cast)) in manahash
      • -------- We save how much mana it will regenerate --------
      • Hashtable - Save time_mana_max[2] as 2 of (Key (Target unit of ability being cast)) in manahash
      • -------- Max casts saved --------
      • Hashtable - Save Handle OfMana_Warden as 3 of (Key (Target unit of ability being cast)) in manahash
      • -------- ¨The Dummy saved YAY --------
      • Hashtable - Save Handle Ofmana_caster as 4 of (Key (Last created unit)) in manahash
      • -------- The target for laiter use --------
      • Custom script: call RemoveLocation(udg_ManaWarden)
      • -------- Destroys the location! --------
      • Unit Group - Add (Target unit of ability being cast) to caster_warden_groups[0]
      • -------- We add the unit to a group --------
      • Unit - Add a (Real(time_mana_max[1])) second Generic expiration timer to (Last created unit)
Mana warden Effect
  • Untitled Trigger 004
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • ((Triggering unit) is in caster_warden_groups[0]) Equal to True
    • Actions
      • -------- When a unit casts a spell if the unit is in the group of targeted units --------
      • Set time_mana_max[2] = (Load 2 of (Key (Triggering unit)) from manahash)
      • -------- We load the maximum ammount of casts --------
      • Set time_mana_max[0] = (Load 0 of (Key (Triggering unit)) from manahash)
      • -------- We load the mana gain. --------
      • Set Mana_Warden = (Load 3 of (Key (Triggering unit)) in manahash)
      • -------- We load the dummy unit --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • time_mana_max[2] Greater than 0
        • Then - Actions
          • -------- If max times greather than 0 --------
          • Set time_mana_max[2] = (time_mana_max[2] - 1)
          • -------- we set max times -1 --------
          • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + (Real(time_mana_max[0])))
          • -------- Give the unit some mana --------
          • Hashtable - Save time_mana_max[2] as 2 of (Key (Triggering unit)) in manahash
          • -------- Save how menny max times we has left --------
        • Else - Actions
          • -------- If max times EQUAL than 0 --------
          • Unit Group - Remove (Triggering unit) from caster_warden_groups[0]
          • -------- We remove from the group and kills the dummy --------
          • Unit - Kill Mana_Warden
          • Hashtable - Clear all child hashtables of child (Key (Load 3 of (Key (Triggering unit)) in manahash)) in manahash
          • Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in manahash
Mana Warden End
  • Untitled Trigger 005
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Mana Warden 1
    • Actions
      • -------- We check if the unit type of dying unit is equal to the mana warden type --------
      • Set caster_mana = (Load 4 of (Key (Triggering unit)) in manahash)
      • -------- We load the target --------
      • Unit Group - Remove caster_mana from caster_warden_groups[0]
      • -------- And we remove him from our unit group --------
      • Hashtable - Clear all child hashtables of child (Key (Load 4 of (Key (Triggering unit)) in manahash)) in manahash
      • Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in manahash
      • -------- Remove leaks from the hash table --------

Elder mana Blast
  • trigger
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Elder Mana Blast
    • Actions
      • Set point2 = (Target point of ability being cast)
      • For each (Integer ElderManaBlast) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set point3 = (point2 offset by 300.00 towards ((Real(ElderManaBlast)) x (360.00 / 12.00)) degrees)
          • Unit - Create 1 Lightning Twister Dummy for (Owner of (Triggering unit)) at point3 facing point2
          • Unit - Order (Last created unit) to Undead Dreadlord - Carrion Swarm point2
          • Animation - Change (Last created unit)'s vertex coloring to (25.00%, 75.00%, 25.00%) with 50.00% transparency
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_point3)
      • Custom script: call RemoveLocation(udg_point2)

Angel Warden Cast
  • Untitled Trigger 003 Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Angel Warden
    • Actions
      • Set EW_UNITS[0] = (Target unit of ability being cast)
      • -------- first we set the target --------
      • Set EW_point = (Position of (Target unit of ability being cast))
      • -------- sets a point --------
      • Unit - Create 1 Elder Wadern 1 for (Owner of (Target unit of ability being cast)) at EW_point facing Default building facing degrees
      • -------- creates the unit --------
      • Unit - Order (Last created unit) to Right-Click (Target unit of ability being cast)
      • -------- orders it to follow the target --------
      • Animation - Change (Last created unit)'s vertex coloring to (25.00%, 75.00%, 25.00%) with 50.00% transparency
      • -------- WE TINT IT soo it looks a bit more awsome --------
      • Set EW_UNITS[1] = (Last created unit)
      • -------- then we set the dummy of the spell --------
      • Set EW_times = (3 + (2 x (Level of Angel Warden for (Triggering unit))))
      • -------- How menny times can you get hitten before the spells disappeares --------
      • Set EW_life_gained = (25.00 x (Real((Level of Angel Warden for (Triggering unit)))))
      • -------- How much health do you regain --------
      • Unit - Add a (8.00 + (2.00 x (Real((Level of Angel Warden for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
      • -------- How menny seconds do it lasts? --------
      • Unit Group - Add (Target unit of ability being cast) to EW_group[0]
      • -------- adding the target to a group --------
      • Hashtable - Save Handle OfEW_UNITS[0] as 0 of (Key (Last created unit)) in EW_hash
      • Hashtable - Save Handle OfEW_UNITS[1] as 0 of (Key (Target unit of ability being cast)) in EW_hash
      • Hashtable - Save EW_life_gained as 1 of (Key (Target unit of ability being cast)) in EW_hash
      • Hashtable - Save EW_times as 2 of (Key (Target unit of ability being cast)) in EW_hash
      • -------- Storing the variables in the hashtable --------
Angel Warden effect
  • EW damage
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • ((Triggering unit) is in EW_group[0]) Equal to True
    • Actions
      • Set EW_times = (Load 2 of (Key (Triggering unit)) from EW_hash)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EW_times Greater than or equal to 1
        • Then - Actions
          • Set EW_life_gained = (Load 1 of (Key (Triggering unit)) from EW_hash)
          • Set EW_times = (EW_times - 1)
          • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) + EW_life_gained)
          • Hashtable - Save EW_times as 2 of (Key (Triggering unit)) in EW_hash
        • Else - Actions
          • Set EW_UNITS[0] = (Load 0 of (Key (Triggering unit)) in EW_hash)
          • Unit - Kill EW_UNITS[0]
Angel Warden END
  • EW damage
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • ((Triggering unit) is in EW_group[0]) Equal to True
    • Actions
      • Set EW_times = (Load 2 of (Key (Triggering unit)) from EW_hash)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EW_times Greater than or equal to 1
        • Then - Actions
          • Set EW_life_gained = (Load 1 of (Key (Triggering unit)) from EW_hash)
          • Set EW_times = (EW_times - 1)
          • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) + EW_life_gained)
          • Hashtable - Save EW_times as 2 of (Key (Triggering unit)) in EW_hash
        • Else - Actions
          • Set EW_UNITS[0] = (Load 0 of (Key (Triggering unit)) in EW_hash)
          • Unit - Kill EW_UNITS[0]



  • Untitled Trigger 001
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • -------- We check if the unit casts a ability --------
      • -------- NEEDED STUFF! --------
      • -------- a buff for every level of the spell --------
      • -------- a if then else for every level of the spell --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff Elder Aura ) Equal to True
        • Then - Actions
          • -------- We check if the unit has buff 1 --------
          • Unit - Set mana of (Triggering unit) to ((Percentage mana of (Triggering unit)) + 2.00)%
          • -------- then we set the mana of the unit + 2/3/4% --------
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff Elder Aura ) Equal to True
        • Then - Actions
          • -------- We check if the unit has buff 2 --------
          • Unit - Set mana of (Triggering unit) to ((Percentage mana of (Triggering unit)) + 3.00)%
          • -------- then we set the mana of the unit + 2/3/4% --------
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff Elder Aura ) Equal to True
        • Then - Actions
          • -------- We check if the unit has buff 3 --------
          • Unit - Set mana of (Triggering unit) to ((Percentage mana of (Triggering unit)) + 4.00)%
          • -------- then we set the mana of the unit + 2/3/4% --------
        • Else - Actions





  • Electric Shield
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Thunder Shield
    • Actions
      • Set ES_point[0] = (Position of (Target unit of ability being cast))
      • Set ES_unit = (Target unit of ability being cast)
      • For each (Integer ES_integer[0]) from 1 to 9, do (Actions)
        • Loop - Actions
          • Set ES_integer[1] = ((360 / 9) x ES_integer[0])
          • Set ES_integer[2] = 1000
          • Set ES_point[1] = (ES_point[0] offset by 200.00 towards (Real(ES_integer[1])) degrees)
          • Unit - Create 1 Thundergod Dummy 1 for (Owner of (Target unit of ability being cast)) at ES_point[1] facing Default building facing degrees
          • Set ES_unit2 = (Last created unit)
          • Hashtable - Save ES_integer[2] as 1 of (Key (Last created unit)) in ES_hash
          • Hashtable - Save ES_integer[1] as 0 of (Key (Last created unit)) in ES_hash
          • Hashtable - Save Handle OfES_unit as 2 of (Key (Last created unit)) in ES_hash
          • Unit Group - Add (Last created unit) to ES_group[0]
          • Custom script: call RemoveLocation(udg_ES_point[1])
          • Set ES_point[1] = (ES_point[0] offset by 100.00 towards (Real(ES_integer[1])) degrees)
          • Unit - Create 1 Thundergod Dummy 2 for (Owner of (Target unit of ability being cast)) at ES_point[1] facing Default building facing degrees
          • Hashtable - Save ES_integer[2] as 1 of (Key (Last created unit)) in ES_hash
          • Hashtable - Save ES_integer[1] as 0 of (Key (Last created unit)) in ES_hash
          • Hashtable - Save Handle OfES_unit as 2 of (Key (Last created unit)) in ES_hash
          • Unit Group - Add (Last created unit) to ES_group[0]
          • Custom script: call RemoveLocation(udg_ES_point[1])
      • Custom script: call RemoveLocation(udg_ES_point[0])
  • Electric Shield LOOP
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in ES_group[0] and do (Actions)
        • Loop - Actions
          • Set ES_integer[0] = (Load 1 of (Key (Picked unit)) from ES_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ES_integer[0] Greater than or equal to 1
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of (Picked unit)) Equal to Thundergod Dummy 1
                • Then - Actions
                  • Set ES_integer[0] = (ES_integer[0] - 1)
                  • Set ES_integer[1] = ((Load 0 of (Key (Picked unit)) from ES_hash) + 3)
                  • Set ES_unit = (Load 2 of (Key (Picked unit)) in ES_hash)
                  • Set ES_point[0] = (Position of ES_unit)
                  • Set ES_point[1] = (ES_point[0] offset by 200.00 towards (Real(ES_integer[1])) degrees)
                  • Set ES_point[2] = (Position of (Picked unit))
                  • Unit - Move (Picked unit) instantly to ES_point[1]
                  • Hashtable - Save ES_integer[0] as 1 of (Key (Picked unit)) in ES_hash
                  • Hashtable - Save ES_integer[1] as 0 of (Key (Picked unit)) in ES_hash
                  • Set ES_group[1] = (Units within 150.00 of ES_point[2] matching ((((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True) and ((((Matching unit) is A flying unit) Equal to False) and (((Matching unit) is Magic Immune) Equal to False))))
                  • Unit Group - Pick every unit in ES_group[1] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause ES_unit to damage (Picked unit), dealing 1.00 damage of attack type Spells and damage type Normal
                  • Custom script: call RemoveLocation(udg_ES_point[1])
                  • Custom script: call RemoveLocation(udg_ES_point[0])
                  • Custom script: call RemoveLocation(udg_ES_point[2])
                  • Custom script: call DestroyGroup(udg_ES_group[1])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of (Picked unit)) Equal to Thundergod Dummy 2
                • Then - Actions
                  • Set ES_integer[0] = (ES_integer[0] - 1)
                  • Set ES_integer[1] = ((Load 0 of (Key (Picked unit)) from ES_hash) - 3)
                  • Set ES_unit = (Load 2 of (Key (Picked unit)) in ES_hash)
                  • Set ES_point[0] = (Position of ES_unit)
                  • Set ES_point[1] = (ES_point[0] offset by 100.00 towards (Real(ES_integer[1])) degrees)
                  • Unit - Move (Picked unit) instantly to ES_point[1]
                  • Hashtable - Save ES_integer[0] as 1 of (Key (Picked unit)) in ES_hash
                  • Hashtable - Save ES_integer[1] as 0 of (Key (Picked unit)) in ES_hash
                  • Custom script: call RemoveLocation(udg_ES_point[1])
                  • Custom script: call RemoveLocation(udg_ES_point[0])
                • Else - Actions
            • Else - Actions
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Picked unit) from ES_group[4]
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in ES_hash


  • Thunder Triangle
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Thunder Triangle
    • Actions
      • Set TT_point[0] = (Target point of ability being cast)
      • For each (Integer TT_Integer[0]) from 1 to 3, do (Actions)
        • Loop - Actions
          • Set TT_point[1] = (TT_point[0] offset by 300.00 towards ((Real(TT_Integer[0])) x (360.00 / 3.00)) degrees)
          • Set TT_group[0] = (Units within 300.00 of TT_point[1] matching ((((Matching unit) is A structure) Equal to False) and ((((Triggering unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))))
          • Set TT_unit = (Random unit from TT_group[0])
          • Set TT_point[2] = (Position of TT_unit)
          • Unit - Create 1 TT dummy for (Owner of (Triggering unit)) at TT_point[1] facing TT_point[2]
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Random unit from TT_group[0])
          • Custom script: call RemoveLocation(udg_TT_point[1])
          • Custom script: call RemoveLocation(udg_TT_point[2])
          • Custom script: call DestroyGroup(udg_TT_group[0])
      • Custom script: call RemoveLocation(udg_TT_point[0])


  • Thunder Orbs
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Thunder Balls
    • Actions
      • Set TB_point[0] = (Position of (Triggering unit))
      • Set TB_point[1] = (TB_point[0] offset by 500.00 towards (Facing of (Triggering unit)) degrees)
      • Unit - Create 1 Thunder Balls for (Owner of (Triggering unit)) at TB_point[0] facing Default building facing degrees
      • Hashtable - Save Handle OfTB_point[1] as 0 of (Key (Last created unit)) in TB_hash
      • Unit Group - Add (Last created unit) to TB_group[0]
      • For each (Integer TB_integer) from 1 to 2, do (Actions)
        • Loop - Actions
          • Set TB_point[2] = (TB_point[1] offset by (100.00 x (Real(TB_integer))) towards ((Facing of (Triggering unit)) - 90.00) degrees)
          • Unit - Create 1 Thunder Balls for (Owner of (Triggering unit)) at TB_point[0] facing Default building facing degrees
          • Unit Group - Add (Last created unit) to TB_group[0]
          • Hashtable - Save Handle OfTB_point[2] as 0 of (Key (Last created unit)) in TB_hash
          • Set TB_point[2] = (TB_point[1] offset by (100.00 x (Real(TB_integer))) towards ((Facing of (Triggering unit)) + 90.00) degrees)
          • Unit - Create 1 Thunder Balls for (Owner of (Triggering unit)) at TB_point[0] facing Default building facing degrees
          • Unit Group - Add (Last created unit) to TB_group[0]
          • Hashtable - Save Handle OfTB_point[2] as 0 of (Key (Last created unit)) in TB_hash
      • Custom script: call RemoveLocation(udg_TB_point[0])
  • Untitled Trigger 017
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in TB_group[0] and do (Actions)
        • Loop - Actions
          • Set TB_point[0] = (Position of (Picked unit))
          • Set TB_point[1] = (Load 0 of (Key (Picked unit)) in TB_hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between TB_point[0] and TB_point[1]) Greater than or equal to 10.00
            • Then - Actions
              • Set TB_point[2] = (TB_point[0] offset by 10.00 towards (Angle from TB_point[0] to TB_point[1]) degrees)
              • Set TB_group[1] = (Units within 20.00 of TB_point[2] matching ((((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is Magi
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (TB_group[1] is empty) Equal to True
                • Then - Actions
                  • Unit - Move (Picked unit) instantly to TB_point[2]
                  • Custom script: call RemoveLocation(udg_TB_point[0])
                  • Custom script: call RemoveLocation(udg_TB_point[2])
                  • Custom script: call DestroyGroup(udg_TB_group[1])
                • Else - Actions
                  • Unit Group - Pick every unit in TB_group[2] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause TB_unit to damage (Picked unit), dealing 100.00 damage of attack type Spells and damage type Normal
                  • Custom script: call DestroyGroup(udg_TB_group[1])
                  • Custom script: call RemoveLocation(udg_TB_point[1])
                  • Custom script: call RemoveLocation(udg_TB_point[0])
                  • Custom script: call RemoveLocation(udg_TB_point[2])
                  • Hashtable - Save Handle OfTB_point[1] as 0 of (Key (Picked unit)) in TAS
                  • Unit - Kill (Picked unit)
            • Else - Actions
              • Custom script: call RemoveLocation(udg_TB_point[1])
              • Custom script: call RemoveLocation(udg_TB_point[0])
              • Unit Group - Remove (Picked unit) from TB_group[0]
              • Unit - Kill (Picked unit)


  • Thunder Cage
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Thunder Cage ´
    • Actions
      • Set TC_Point[0] = (Target point of ability being cast)
      • For each (Integer TC1_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set TC_Point[1] = (TC_Point[0] offset by 300.00 towards ((360.00 / 36.00) x (Real(TC1_integer))) degrees)
          • Unit - Create 1 TC1 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Unit - Create 1 TC2 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Animation - Change (Last created unit) flying height to 100.00 at 0.00
      • For each (Integer TC1_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set TC_Point[1] = (TC_Point[0] offset by 250.00 towards ((360.00 / 36.00) x (Real(TC1_integer))) degrees)
          • Unit - Create 1 TC2 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Animation - Change (Last created unit) flying height to 150.00 at 0.00
      • For each (Integer TC1_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set TC_Point[1] = (TC_Point[0] offset by 200.00 towards ((360.00 / 36.00) x (Real(TC1_integer))) degrees)
          • Unit - Create 1 TC2 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Animation - Change (Last created unit) flying height to 200.00 at 0.00
      • For each (Integer TC1_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set TC_Point[1] = (TC_Point[0] offset by 150.00 towards ((360.00 / 36.00) x (Real(TC1_integer))) degrees)
          • Unit - Create 1 TC2 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
          • Animation - Change (Last created unit) flying height to 250.00 at 0.00
      • For each (Integer TC1_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set TC_Point[1] = (TC_Point[0] offset by 100.00 towards ((360.00 / 36.00) x (Real(TC1_integer))) degrees)
          • Unit - Create 1 TC2 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 300.00 at 0.00
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
      • For each (Integer TC1_integer) from 1 to 36, do (Actions)
        • Loop - Actions
          • Set TC_Point[1] = (TC_Point[0] offset by 50.00 towards ((360.00 / 36.00) x (Real(TC1_integer))) degrees)
          • Unit - Create 1 TC2 for (Owner of (Triggering unit)) at TC_Point[1] facing Default building facing degrees
          • Animation - Change (Last created unit) flying height to 350.00 at 0.00
          • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)



  • Untitled Trigger 013
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Timelock
    • Actions
      • Set timelockpoint = (Target point of ability being cast)
      • Set timelocked = (Units within (250.00 + ((Real((Level of (Ability being cast) for (Triggering unit)))) x 50.00)) of timelockpoint matching (((Matching unit) is dead) Equal to False))
      • Unit Group - Pick every unit in timelocked and do (Actions)
        • Loop - Actions
          • -------- Set the time it takes to get released from the timestop to X ammount --------
          • Set time = ((Level of (Ability being cast) for (Triggering unit)) x 5)
          • Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
          • Animation - Change (Picked unit)'s vertex coloring to (25.00%, 25.00%, 25.00%) with 0.00% transparency
          • Unit - Pause (Picked unit)
          • Unit Group - Add (Picked unit) to timelocked_2
          • Hashtable - Save time as 0 of (Key (Picked unit)) in timetable
      • Custom script: call RemoveLocation(udg_timelockpoint)
      • Custom script: call DestroyGroup(udg_timelocked)
  • timelocked
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in timelocked_2 and do (Actions)
        • Loop - Actions
          • Set time = (Load 0 of (Key (Picked unit)) from timetable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • time Equal to 0
            • Then - Actions
              • Unit - Unpause (Picked unit)
              • Unit Group - Remove (Picked unit) from timelocked
              • Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
              • Animation - Change (Picked unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in timetable
            • Else - Actions
              • Set time = (time - 1)
              • Hashtable - Save time as 0 of (Key (Picked unit)) in timetable


  • Time and Space
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Time and Space
    • Actions
      • Set timelockpoint = (Position of (Triggering unit))
      • Set timeoncemore = 20
      • Hashtable - Save Handle Oftimelockpoint as 0 of (Key (Triggering unit)) in TAS
      • Hashtable - Save (Percentage life of (Triggering unit)) as 1 of (Key (Triggering unit)) in TAS
      • Hashtable - Save timeoncemore as 2 of (Key (Triggering unit)) in TAS
      • Unit Group - Add (Triggering unit) to tasgroup
  • timemovement
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in tasgroup and do (Actions)
        • Loop - Actions
          • Set timeoncemore = (Load 2 of (Key (Picked unit)) from TAS)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • timeoncemore Equal to 0
            • Then - Actions
              • Set timelockpoint = (Load 0 of (Key (Picked unit)) in TAS)
              • Set tas2 = (Load 1 of (Key (Picked unit)) from TAS)
              • Unit - Move (Picked unit) instantly to timelockpoint
              • Unit - Set life of (Picked unit) to tas2%
              • Unit Group - Remove (Picked unit) from tasgroup
              • Custom script: call RemoveLocation(udg_timelockpoint)
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in TAS
            • Else - Actions
              • Set timeoncemore = (timeoncemore - 1)
              • Hashtable - Save timeoncemore as 2 of (Key (Picked unit)) in TAS


  • Speed of Space
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Speed of Space
    • Actions
      • Set sostime = ((Level of (Ability being cast) for (Triggering unit)) x 10)
      • Set sostime = (sostime x 10)
      • Unit - Set (Triggering unit) movement speed to 522.00
      • Hashtable - Save sostime as 1 of (Key (Triggering unit)) in SOS
      • Unit Group - Add (Triggering unit) to sosgroup
  • trigher
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in sosgroup and do (Actions)
        • Loop - Actions
          • Set sostime = (Load 1 of (Key (Picked unit)) from SOS)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • sostime Equal to 0
            • Then - Actions
              • Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
              • Unit Group - Remove (Picked unit) from sosgroup
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in SOS
            • Else - Actions
              • Set Sosloc = (Position of (Picked unit))
              • Unit - Create 1 Timelord dummy SOS for (Owner of (Picked unit)) at Sosloc facing (Facing of (Picked unit)) degrees
              • Animation - Change (Last created unit)'s vertex coloring to (25.00%, 25.00%, 25.00%) with 50.00% transparency
              • Custom script: call RemoveLocation(udg_Sosloc)
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • Set sostime = (sostime - 1)
              • Hashtable - Save sostime as 1 of (Key (Picked unit)) in SOS


  • Untitled Trigger 014
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Foreward Clock
    • Actions
      • Set fclocation = (Target point of ability being cast)
      • Unit - Create 1 Dragon DUmmy for (Owner of (Triggering unit)) at (Position of (Picked unit)) facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_fclocation)
      • Animation - Change (Target unit of ability being cast)'s vertex coloring to (75.00%, 75.00%, 75.00%) with 0.00% transparency
      • Unit - Order (Last created unit) to Undead Banshee - Curse (Target unit of ability being cast)
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Unit - Set life of (Target unit of ability being cast) to 25.00%
      • Set fctime = 20
      • Hashtable - Save fctime as 0 of (Key (Target unit of ability being cast)) in FChash
      • Unit Group - Add (Target unit of ability being cast) to Fc
  • dyblemayer
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Fc and do (Actions)
        • Loop - Actions
          • Set fctime = (Load 0 of (Key (Picked unit)) from FChash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • fctime Equal to 0
            • Then - Actions
              • Unit - Set life of (Picked unit) to 100.00%
              • Animation - Change (Picked unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
              • Unit Group - Remove (Picked unit) from Fc
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in FChash
            • Else - Actions
              • Set fctime = (fctime - 1)
              • Hashtable - Save fctime as 0 of (Key (Picked unit)) in FChash




  • Illusion
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Voodoo Mojo
    • Actions
      • Set Copy = (Target point of ability being cast)
      • Set Copygroup = (Units within (225.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) of Copy)
      • Unit Group - Pick every unit in Copygroup and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Illusion Dummy for (Owner of (Triggering unit)) at Copy facing 0.00 degrees
          • Hero - Create Wand of Illusion and give it to (Last created unit)
          • Hero - Order (Last created unit) to use (Last created item) on (Picked unit)
          • Unit - Add a 0.75 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation(udg_Copy)
      • Custom script: call DestroyGroup(udg_Copygroup)


Cast trigger!
  • Hex Chain
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Hex Chain
    • Actions
      • Set JUMPS = ((Level of (Ability being cast) for (Triggering unit)) x 2)
      • -------- Change the ammount of jumps in this one. --------
      • Set hexxar = (Triggering unit)
      • Set Hexchain = (Position of (Target unit of ability being cast))
      • Unit - Create 1 Voodoo Dummy for (Owner of (Triggering unit)) at Hexchain facing 0.00 degrees
      • Special Effect - Create a special effect at Hexchain using Abilities\Spells\Human\Polymorph\PolyMorphDoneGround.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Target unit of ability being cast)
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Unit - Create 1 Voodoo Dummy for (Owner of (Triggering unit)) at Hexchain facing 0.00 degrees
      • Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Random unit from DamageGroup)
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Set hexgroup = (Random 1 units from (Units within 300.00 of Hexchain matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is Polymorphed) Equal to False) and (((Matching unit) belongs to a
      • Set Lighning_Unit = (Random unit from (Random 1 units from hexgroup))
      • Hashtable - Save JUMPS as 0 of (Key (Triggering unit)) in HexchainHash
      • Hashtable - Save Handle OfLighning_Unit as 1 of (Key (Triggering unit)) in HexchainHash
      • Unit Group - Add (Triggering unit) to Hexxars
      • Custom script: call RemoveLocation(udg_Hexchain)
      • -------- call DestroyGroup(udg_hexgroup) --------
Loop Trigger
  • hashy
    • Events
      • Time - Every 0.25 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Hexxars and do (Actions)
        • Loop - Actions
          • Set JUMPS = (Load 0 of (Key (Picked unit)) from HexchainHash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • JUMPS Greater than or equal to 1
            • Then - Actions
              • Set hexxed = (Load 1 of (Key (Picked unit)) in HexchainHash)
              • Unit Group - Remove hexxed from hexgroup
              • Set Hexchain = (Position of hexxed)
              • Set hexgroup = (Random 1 units from (Units within 300.00 of Hexchain matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is Polymorphed) Equal to False) and (((Matching unit) belongs to a
              • Set Lighning_Unit = (Random unit from (Random 1 units from hexgroup))
              • Special Effect - Create a special effect at Hexchain using Abilities\Spells\Human\Polymorph\PolyMorphDoneGround.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Create 1 Voodoo Dummy for (Owner of (Picked unit)) at Hexchain facing 0.00 degrees
              • Unit - Order (Last created unit) to Orc Shadow Hunter - Hex hexxed
              • Unit - Create 1 Voodoo Dummy for (Owner of (Picked unit)) at Hexchain facing 0.00 degrees
              • Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Random unit from hexgroup)
              • Set JUMPS = (JUMPS - 1)
              • Hashtable - Save JUMPS as 0 of (Key (Picked unit)) in HexchainHash
              • Hashtable - Save Handle OfLighning_Unit as 1 of (Key (Picked unit)) in HexchainHash
              • Custom script: call RemoveLocation(udg_Hexchain)
              • Custom script: call DestroyGroup(udg_hexgroup)
            • Else - Actions
              • Unit Group - Remove (Picked unit) from Hexxars
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in HexchainHash


Cast trigger
  • S
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Voodoo Size Decrease R
    • Actions
      • Set pointolol = (Target point of ability being cast)
      • Set Testgroup = (Units within 275.00 of pointolol matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))
      • Unit Group - Pick every unit in Testgroup and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dragon DUmmy for (Owner of (Triggering unit)) at (Position of (Picked unit)) facing Default building facing degrees
          • Animation - Change (Picked unit)'s size to (25.00%, 25.00%, 25.00%) of its original size
          • Unit - Order (Last created unit) to Undead Banshee - Curse (Picked unit)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Set time = 20
          • -------- the times it will continue to be small --------
          • Hashtable - Save time as 0 of (Key (Picked unit)) in Size
          • Unit Group - Add (Picked unit) to Testgroup_Copy
      • Custom script: call RemoveLocation(udg_pointolol)
      • Custom script: call DestroyGroup(udg_Testgroup)
Loop Trigger
  • enlarge
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Testgroup_Copy and do (Actions)
        • Loop - Actions
          • Set time = (Load 0 of (Key (Picked unit)) from Size)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • time Equal to 0
            • Then - Actions
              • Animation - Change (Picked unit)'s size to (100.00%, 100.00%, 100.00%) of its original size
              • Unit Group - Remove (Picked unit) from Testgroup
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Size
            • Else - Actions
              • Set time = (time - 1)
              • Hashtable - Save time as 0 of (Key (Picked unit)) in Size





Version 2.00 Uploaded to the hiveworkshop.com.
Version 2.10 Changes made pointed out by MAKER and Adiktuz.
Version 2.20 Added new spell Flight of the Thunder God it's located on the dark blademaster.
Version 2.30 minor bug fixes and a new hero the magma lord :D


Keywords:
spellpack, Baaabuuu, Aradar, GUI, Naruto, request, requested spells, pack, spell, lightning, fire, charge, rpg, wow taunt, Pein, dark, vooodoo.
Contents

Spells by Baaabuuu AKA aradar. (Map)

Reviews
11:50, 24th Jan 2011 The_Reborn_Devil: My review. Status: Approved Rating: Useful
just took a quick look at the trigs...
oh, you might want to change those keywords, add more fitting ones, like spellpack etc...

suggestions for now:

-do not use arrays if you'll only use few of the indexes, just use different variables...
-change the timer of the living bomb to at least .03, .01 is too fast...
-and please use self-describing variables names... (don't use something like ilikeanime, etc...)

I haven't looked at all of the codes, or try the spells but basing from those I looked, the triggers seem fine... ^_^
 
Level 5
Joined
May 27, 2009
Messages
94
Sorry few of them are... Well I were bored/angry sometimes ill go fix it and the timer I did it to be presice Ill just remove a 0 and make it to 0.10. Also thanks for informing me about that array's fills more than different variables.
 
Sorry few of them are... Well I were bored/angry sometimes ill go fix it and the timer I did it to be presice Ill just remove a 0 and make it to 0.10. Also thanks for informing me about that array's fills more than different variables.

I prefer just .03, its best performance and efficiency-wise, though you might need to be changing the formula for the time reduction... ^_^


anyway, I hope to see more good spells from you. ^_^
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
  • Untitled Trigger 001
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • -------- We check if the unit casts a ability --------
      • -------- NEEDED STUFF! --------
      • -------- a buff for every level of the spell --------
      • -------- a if then else for every level of the spell --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff Elder Aura ) Equal to True
        • Then - Actions
          • -------- We check if the unit has buff 1 --------
          • Unit - Set mana of (Triggering unit) to ((Percentage mana of (Triggering unit)) + 2.00)%
          • -------- then we set the mana of the unit + 2/3/4% --------
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Triggering unit) has buff Elder Aura ) Equal to True
            • Then - Actions
              • -------- We check if the unit has buff 2 --------
              • Unit - Set mana of (Triggering unit) to ((Percentage mana of (Triggering unit)) + 3.00)%
              • -------- then we set the mana of the unit + 2/3/4% --------
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Triggering unit) has buff Elder Aura ) Equal to True
                • Then - Actions
                  • Game - Display to Player Group - Player 1 (Red) the text: 3
                  • -------- We check if the unit has buff 3 --------
                  • Unit - Set mana of (Triggering unit) to ((Percentage mana of (Triggering unit)) + 4.00)%
                  • -------- then we set the mana of the unit + 2/3/4% --------
                • Else - Actions
In Untitled Trigger 003 Copy, you don't remove this:
  • Set EW_point = (Position of (Target unit of ability being cast))
Improve the tooltips on Spirit Warden's abilities. Try to make them look more like standard Blizzard abilities.

Rasen Shuiken dummy has food cost.

In trigger copy trigger, you should calculate this outside the loop:
  • (75.00 x (Real((Level of (Ability being cast) for (Triggering unit)))))
Dark Portal learn tooltip is missing.

Dark Blast could maybe do with lesser amount of effects.

In Hex Chain, this is comment, not custom scriot:
  • -------- call DestroyGroup(udg_hexgroup) --------
Hashy trigger is running all the time. Turn it off when not needed. And there's a leak in there:
  • Set Lighning_Unit = (Random unit from (Random 1 units from hexgroup))
Enlarge is also running all the time.

In test trigger, leak:
  • Unit - Order (Last created unit) to Neutral - Firebolt (Random unit from (Units within 600.00 of TempLoc matching...
Cookie trigger is running all the time and has unit group leak.

Hits running all the time.

TimeWarp loop trigger is running all the time and causes leaks since the RemoveLocations are at wrong place.

Many other looping triggers are not turned off when the group is empty.

Untitled Trigger 014 has location leak.

Some water elemental triggers are using specific unit, they won't work on other units.

IceExplosion = Effect spam?

In IceExplosion some trigger you change flying height at 1000000. Change it at 0, it's instant.

Sanistraofknees triggers use specific unit.

Battle Charged = Leaks

IceExplosion copy copy -> leaks

I didn't check the rest.

There's some good triggering, but mind the leaks and triggers not being turned off. Improve tooltips.
 
Level 5
Joined
May 27, 2009
Messages
94
I've edited a couple of the things, but I cannot seem to find the thing with elder Aura, I also fixed a lot but Sanistraofknees and the water elemental was meant as boss requests that's why I made it like that.
 
Last edited:
Level 37
Joined
Mar 6, 2006
Messages
9,240
I've edited a couple of the things, but I cannot seem to find the thing with elder Aura, I also fixed a lot but Sanistraofknees and the water elemental was meant as boss requests that's why I made it like that.

You should have the IF/THEN/ELSES inside each other.

Either fix or remove the boss triggers, they are not MUI and therefore the pack can't be approved.
 
Level 12
Joined
Dec 17, 2009
Messages
951
N.I.C.E
+Rep
i have a question.
Can i use your hero Magmus into my arena map? (with all spell / name / etc)
with a little modification, the passive spell lauch missiles on cast!
i will give +credits and hero name creator to you.

Let it burn.!!!
 
Level 22
Joined
Dec 31, 2006
Messages
2,216
Moderator review:

An in-game screenshot which displays at least some of the spells would be appreciated. Anyway, you might want to give your triggers proper names and not just variations "Untitled Trigger 001" and "Iceexplosion Copy Copy Copy 3". The triggers themselves look fine though.
 
Level 7
Joined
Dec 8, 2008
Messages
243
Kinda creative, some less than others. I doubt I'll use these in a map, but I can learn from them, and that deserves reputation. :) Thank you.
 
Level 3
Joined
Sep 1, 2010
Messages
53
just a suggestion, but in the mana bomb spell, you could increase the effect size with time, I mean, it would sound like the mana ball is overcharging, and then it explodes :p
 
Top