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

Doomguy80's Spellpack v 1.04

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
This is a spellpack I have been working on. I may use these spells in one or two maps but I am letting you use them too.. as long as you give credits of course! I fixed the spells, so they should now be MUI. See the second post for triggers. This spellpack contains 7 spells now:
Spells
[/tr][/TD]

Angelic Vengeance

Healing Downpour

Multi-Dash

Ricochet

Unexpected tab 5

Area Raise Dead

Elemental Burst

Judgement Snare


227673-albums6437-picture69804.jpg

Passively gives 2 additional armor to nearby friendly units. When the hero dies, each enemy will be marked by an Angel, draining life from each of them and giving it to nearby allies. After 7 seconds, all living enemies will be struck by a bolt dealing heavy damage to them. |n|n|cffffcc00Level 1|r - 5 life per second for drain, 1 quarter of their maximum health damage. |n|cffffcc00Level 2|r - 10 life per second for drain, 1 third of their maximum health damage. |n|cffffcc00Level 1|r - 15 life per second for drain, half of their maximum health damage.

227673-albums6437-picture69805.jpg

AOE is 1800 |nThe hero calls down a healing rainfall on a target area. After channeling for 2.5 seconds, rain will begin to pour down from the sky each second. When a raindrop hits the ground, it will explode healing nearby ally units. |nLasts 7 seconds. |n|n|cffffcc00Level 1|r - 25 health per unit hit each raindrop. |n|cffffcc00Level 2|r - 50 health per unit hit each raindrop. |n|cffffcc00Level 3|r - 75 health per unit hit each raindrop.

227673-albums6437-picture69806.png

Passively gives 2 additional armor to nearby friendly units. When the hero dies, each enemy will be marked by an Angel, draining life from each of them and giving it to nearby allies. After 7 seconds, all living enemies will be struck by a bolt dealing heavy damage to them. |n|n|cffffcc00Level 1|r - 5 life per second for drain, 1 quarter of their maximum health damage. |n|cffffcc00Level 2|r - 10 life per second for drain, 1 third of their maximum health damage. |n|cffffcc00Level 1|r - 15 life per second for drain, half of their maximum health damage.

The hero throws a shruken at a target unit, dealing 125 damage to it. The shuriken will bounce around as it hits units, dealing damage to them also. |n|n|cffffcc00Level 1|r - Lasts 7 seconds. |n|cffffcc00Level 2|r - Lasts 14 seconds. |n|cffffcc00Level 14|r - Lasts 21 seconds.
[/HIDDEN]

227673-albums6437-picture69810.jpg

When caster casts this all corpses in the area will turn into skeletons to fight for you. Skeletons will rise instantly when you cast ability and 3 seconds after cast in that area (corpses that appear in the "buffed area" between cast and 3 seconds after cast).

227673-albums6437-picture69809.jpg

[rainbow]Slams the ground, triggering off 3 different Elemental bursts. The fire burst happens first, then the water brust then the earth burst. |nAOE damage is to allies too! |n|n|cffffcc00Level 1|r - 50 damage each burst. |n|cffffcc00Level 2|r - 100 damage each burst. |n|cffffcc00Level 3|r - 150 damage each burst. In addition, each earth burst will deal 200 damage to all units hit by it.[/rainbow]

227673-albums6437-picture71457.jpg

Creates a giant circle of holy energy, randomly ensnaring all enemies that come inside.|nAOE: 600/750/900 |nSnare Duration: 1/1.5/2s|nDamage: 50/90/130|nSpell Duration: 4/6/8s.
Contents

Doomguy80's Spellpack (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Doomguy80's Spellpack v 1.0 | Reviewed by Maker | 3rd Jun 2013 NEEDS FIX There are location and unit group leaks Don't use Pause unit with spells MD Cast is not MUI...
Level 9
Joined
Apr 4, 2013
Messages
373
plz show the triggers.

Sorry about that, forgot. I'll do that right away.

EDIT: Done:


  • AV Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set AV_Hash = (Last created hashtable)
      • Set AV_Dur[1] = 5.00
      • Set AV_Dur[2] = 6.00
      • Set AV_Dur[3] = 7.00
      • Set AV_Dam[1] = 5.00
      • Set AV_Dam[2] = 10.00
      • Set AV_Dam[3] = 15.00
      • Set AV_AOE[1] = 200.00
      • Set AV_AOE[2] = 400.00
      • Set AV_AOE[3] = 600.00
  • AV Start
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Level of Angelic Vengeance for (Dying unit)) Greater than 0
    • Actions
      • Set Temp_Group = (Units within ARD_AOE[(Level of Angelic Vengeance for (Dying unit))] of (Position of (Dying unit)) matching (((Matching unit) belongs to an enemy of (Owner of (Dying unit))) Equal to True))
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Human\Resurrect\ResurrectCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • Hashtable - Save AV_Dur[(Level of Angelic Vengeance for (Triggering unit))] as 0 of (Key (Picked unit)) in AV_Hash
          • Hashtable - Save AV_Dam[(Level of Angelic Vengeance for (Triggering unit))] as 1 of (Key (Picked unit)) in AV_Hash
          • Unit Group - Add (Picked unit) to AV_Group
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • Trigger - Turn on AV Drain <gen>
  • AV Drain
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in AV_Group and do (Actions)
        • Loop - Actions
          • Set Temp_Remain_Time = (Load 0 of (Key (Picked unit)) from AV_Hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Remain_Time Greater than or equal to 1.00
            • Then - Actions
              • Hashtable - Save (Temp_Remain_Time - 1.00) as 0 of (Key (Picked unit)) in HD_Hashtable
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (Load 1 of (Key (Picked unit)) from AV_Hash))
              • Set AV_Handle = (Key (Picked unit))
              • Set Temp_Group = (Units within 400.00 of (Position of (Picked unit)) matching (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True))
              • Unit Group - Pick every unit in Temp_Group and do (Actions)
                • Loop - Actions
                  • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (Load 1 of AV_Handle from AV_Hash))
              • Custom script: call DestroyGroup (udg_Temp_Group)
            • Else - Actions
              • Sound - Play AV_Sound <gen> at 100.00% volume, attached to (Picked unit)
              • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Human\Resurrect\ResurrectTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause (Picked unit) to damage (Picked unit), dealing ((Max life of (Picked unit)) / (5.00 - (Real((Level of Angelic Vengeance for (Picked unit)))))) damage of attack type Chaos and damage type Magic
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in HD_Hashtable
              • Trigger - Turn off (This trigger)
  • AV Remove
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Dying unit) is in AV_Group) Equal to True
    • Actions
      • Unit Group - Remove (Dying unit) from AV_Group


  • HD Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set HD_Hashtable = (Last created hashtable)
      • Set HD_Heal[1] = 25.00
      • Set HD_Heal[2] = 50.00
      • Set HD_Heal[3] = 75.00
  • HD Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Healing Downpoar
    • Actions
      • Hashtable - Save 7.00 as 0 of (Key (Triggering unit)) in HD_Hashtable
      • Unit Group - Add (Triggering unit) to HD_Casters
  • HD Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in HD_Casters and do (Actions)
        • Loop - Actions
          • Set Temp_Remain_Time = (Load 0 of (Key (Picked unit)) from HD_Hashtable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Remain_Time Greater than 1.00
            • Then - Actions
              • For each (Integer B) from 1 to 10, do (Actions)
                • Loop - Actions
                  • Unit - Create 1 HD Dummy for Neutral Passive at ((Position of (Picked unit)) offset by (Random real number between 100.00 and 1800.00) towards (Random real number between 1.00 and 360.00) degrees) facing (Position of (Picked unit))
                  • Special Effect - Create a special effect attached to the overhead of (Last created unit) using Abilities\Spells\Human\Blizzard\BlizzardTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect at (Position of (Last created unit)) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set Temp_Unit = (Picked unit)
                  • Set HD_Group = (Units within 175.00 of (Position of (Last created unit)))
                  • Unit Group - Pick every unit in HD_Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to (HD_Heal[(Level of Healing Downpoar for Temp_Unit)] + (Life of (Picked unit)))
                  • Custom script: call DestroyGroup (udg_HD_Group)
                  • Unit - Remove (Last created unit) from the game
              • Hashtable - Save (Temp_Remain_Time - 1.00) as 0 of (Key (Picked unit)) in HD_Hashtable
            • Else - Actions
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in HD_Hashtable


  • MD Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set MD_Base_Damage[1] = 125.00
      • Set MD_Base_Damage[2] = 250.00
      • Set MD_Base_Damage[3] = 375.00
      • Set MD_Redcution[1] = 5
      • Set MD_Redcution[2] = 5
      • Set MD_Redcution[3] = 5
  • MD Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Multi-Dash
    • Actions
      • Set MD_Caster = (Triggering unit)
      • Set MD_Target = (Target unit of ability being cast)
      • Unit - Order (Triggering unit) to Stop
      • Unit Group - Add (Triggering unit) to MD_Units
      • Wait 0.30 seconds
      • Unit Group - Remove (Triggering unit) from MD_Units
      • Set MD_Damage = MD_Base_Damage[(Level of Multi-Dash for (Triggering unit))]
      • Animation - Play MD_Caster's attack 2 animation
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing MD_Damage damage of attack type Hero and damage type Normal
      • Special Effect - Create a special effect attached to the chest of MD_Target using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
      • Sound - Play MD_Sound <gen> at 100.00% volume, attached to MD_Target
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Target unit of ability being cast) is dead) Equal to True
        • Then - Actions
          • Set MD_Damage = (MD_Damage - (MD_Damage / (Real(MD_Redcution[(Level of Multi-Dash for MD_Caster)]))))
          • Unit - Unpause MD_Caster
          • Unit Group - Remove MD_Caster from MD_Units
          • Trigger - Run MD Attack <gen> (ignoring conditions)
        • Else - Actions
          • Do nothing
  • MD Attack
    • Events
    • Conditions
    • Actions
      • Custom script: local unit MD
      • Custom script: local unit CUSTOM = (udg_MD_Target)
      • Custom script: set MD = (udg_MD_Caster)
      • Custom script: set CUSTOM = (udg_MD_Target)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units within 500.00 of (Position of MD_Caster) matching (((Matching unit) belongs to an enemy of (Owner of MD_Caster)) Equal to True))) Greater than 0
        • Then - Actions
          • Set MD_Target = (Random unit from (Units within 500.00 of (Position of MD_Caster) matching (((Matching unit) belongs to an enemy of (Owner of MD_Caster)) Equal to True)))
          • Unit - Order MD_Caster to Stop
          • Unit - Make MD_Caster face MD_Target over 0.00 seconds
          • Unit Group - Add MD_Caster to MD_Units
          • Wait 0.30 seconds
          • Custom script: set udg_MD_Caster = MD
          • Custom script: set udg_MD_Target = CUSTOM
          • Unit Group - Remove MD_Caster from MD_Units
          • Animation - Play MD_Caster's attack 2 animation
          • Unit - Cause MD_Caster to damage MD_Target, dealing MD_Damage damage of attack type Hero and damage type Normal
          • Special Effect - Create a special effect attached to the chest of MD_Target using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
          • Sound - Play MD_Sound <gen> at 100.00% volume, attached to MD_Target
          • Wait 0.15 seconds
          • Custom script: set udg_MD_Caster = MD
          • Custom script: set udg_MD_Target = CUSTOM
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (MD_Target is dead) Equal to True
            • Then - Actions
              • Set MD_Damage = (MD_Damage - (MD_Damage / (Real(MD_Redcution[(Level of Multi-Dash for MD_Caster)]))))
              • Unit Group - Remove MD_Caster from MD_Units
              • Trigger - Run (This trigger) (ignoring conditions)
            • Else - Actions
              • Unit Group - Remove MD_Caster from MD_Units
        • Else - Actions
          • Unit Group - Remove MD_Caster from MD_Units
  • MD Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in MD_Units and do (Actions)
        • Loop - Actions
          • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 30.00 towards (Facing of (Picked unit)) degrees)


  • Ric Config
    • Events
      • Time - Elapsed game time is 0.50 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set Ric_Hash = (Last created hashtable)
      • Set Ric_Duration[1] = 7.00
      • Set Ric_Duration[2] = 14.00
      • Set Ric_Duration[3] = 21.00
      • Set Ric_Damage[1] = 125.00
      • Set Ric_Damage[2] = 125.00
      • Set Ric_Damage[3] = 125.00
  • Ricochet Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ricochet
    • Actions
      • Unit - Create 1 Shuriken for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing (Position of (Triggering unit))
      • Unit - Set (Last created unit) movement speed to 1250.00
      • Hashtable - Save Ric_Duration[(Level of Ricochet for (Triggering unit))] as 0 of (Key (Last created unit)) in Ric_Hash
      • Hashtable - Save Ric_Damage[(Level of Area Raise Dead for (Triggering unit))] as 1 of (Key (Last created unit)) in Ric_Hash
      • Unit - Order (Last created unit) to Move To (Position of (Target unit of ability being cast))
  • Ricochet Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Shuriken)) and do (Actions)
        • Loop - Actions
          • Set Temp_Remain_Time = (Load 0 of (Key (Picked unit)) from Ric_Hash)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Remain_Time Greater than 1.00
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in (Units within 90.00 of (Position of (Picked unit)))) Greater than or equal to 1
                • Then - Actions
                  • Set Ricochet_Hit = (Random unit from (Units within 90.00 of (Position of (Picked unit))))
                  • Set Temp_Unit = (Picked unit)
                  • Set Temp_Group = (Last created unit group)
                  • Unit Group - Pick every unit in (Units within 135.00 of (Position of Temp_Unit) matching (((Matching unit) belongs to an enemy of (Owner of Temp_Unit)) Equal to True)) and do (Actions)
                    • Loop - Actions
                      • Unit - Cause Temp_Unit to damage (Picked unit), dealing (Load 1 of (Key (Picked unit)) from (Last created hashtable)) damage of attack type Spells and damage type Normal
                  • Unit - Make (Picked unit) face ((Facing of Ricochet_Hit) + 90.00) over 0.00 seconds
                  • Unit - Order (Picked unit) to Move To ((Position of Ricochet_Hit) offset by 6000.00 towards (Facing of Ricochet_Hit) degrees)
                  • Selection - Remove (Picked unit) from selection for (Owner of (Picked unit))
                  • Custom script: call DestroyGroup (udg_Temp_Group)
                  • Hashtable - Save (Temp_Remain_Time - 1.00) as 0 of (Key (Picked unit)) in (Last created hashtable)
                • Else - Actions
            • Else - Actions
              • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Ric_Hash
              • Unit - Remove (Picked unit) from the game


  • ARD Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set ARD_AOE[1] = 500.00
      • Set ARD_Unit[1] = Skeleton Warrior
  • ARD Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Area Raise Dead
    • Actions
      • Custom script: local location P
      • Set ARD_point = (Target point of ability being cast)
      • Custom script: set P = (udg_ARD_point)
      • Unit Group - Pick every unit in (Units within ARD_AOE[(Level of Area Raise Dead for (Triggering unit))] of ARD_point) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is dead) Equal to True
            • Then - Actions
              • Unit - Create 1 ARD_Unit[(Level of Area Raise Dead for (Triggering unit))] for (Owner of (Triggering unit)) at (Position of (Picked unit)) facing (Position of (Triggering unit))
              • Special Effect - Create a special effect at (Position of (Last created unit)) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Animation - Play (Last created unit)'s spawn animation
              • Sound - Play ARD_Sound <gen> at 100.00% volume, attached to (Picked unit)
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
      • Custom script: call RemoveLocation (udg_ARD_point)
      • Wait 3.00 seconds
      • Custom script: set udg_ARD_point = P
      • Unit Group - Pick every unit in (Units within ARD_AOE[(Level of Area Raise Dead for (Triggering unit))] of ARD_point) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is dead) Equal to True
            • Then - Actions
              • Unit - Create 1 ARD_Unit[(Level of Area Raise Dead for (Triggering unit))] for (Owner of (Triggering unit)) at (Position of (Picked unit)) facing (Position of (Triggering unit))
              • Special Effect - Create a special effect at (Position of (Last created unit)) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Animation - Play (Last created unit)'s spawn animation
              • Sound - Play ARD_Sound <gen> at 100.00% volume, attached to (Picked unit)
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
      • Custom script: call RemoveLocation (udg_ARD_point)


  • EB Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set EB_Damage[1] = 50.00
      • Set EB_Damage[2] = 100.00
      • Set EB_Damage[3] = 150.00
      • Set EB_SDam = 200.00
  • EB Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Elemental Burst
    • Actions
      • Set EB_Caster_Loc = (Position of (Triggering unit))
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 300.00 towards 90.00 degrees) using Abilities\Spells\Other\Doom\DoomDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 300.00 towards 90.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 300.00 towards 180.00 degrees) using Abilities\Spells\Other\Doom\DoomDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 300.00 towards 180.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 300.00 towards 270.00 degrees) using Abilities\Spells\Other\Doom\DoomDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 300.00 towards 270.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 300.00 towards 360.00 degrees) using Abilities\Spells\Other\Doom\DoomDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 300.00 towards 360.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 600.00 towards 90.00 degrees) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 600.00 towards 90.00 degrees), dealing EB_Damage[(Level of Judgement Snare for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 600.00 towards 180.00 degrees) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 600.00 towards 180.00 degrees), dealing EB_Damage[(Level of Angelic Vengeance for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 600.00 towards 270.00 degrees) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 600.00 towards 270.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 600.00 towards 360.00 degrees) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 600.00 towards 360.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 900.00 towards 90.00 degrees) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 900.00 towards 90.00 degrees), dealing EB_Damage[(Level of Judgement Snare for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 900.00 towards 180.00 degrees) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 900.00 towards 180.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 900.00 towards 270.00 degrees) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 900.00 towards 270.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • Special Effect - Create a special effect at (EB_Caster_Loc offset by 900.00 towards 360.00 degrees) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 250.00 at (EB_Caster_Loc offset by 900.00 towards 360.00 degrees), dealing EB_Damage[(Level of Elemental Burst for (Triggering unit))] damage of attack type Spells and damage type Fire
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Elemental Burst for (Triggering unit)) Equal to 3
        • Then - Actions
          • Set EB_Caster = (Triggering unit)
          • Trigger - Run EB Plus Damage <gen> (ignoring conditions)
        • Else - Actions
  • EB Plus Damage
    • Events
    • Conditions
    • Actions
      • Set Temp_Group = (Units within 250.00 of (EB_Caster_Loc offset by 900.00 towards 90.00 degrees))
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Unit Group - Add (Picked unit) to EB_Group
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • Set Temp_Group = (Units within 250.00 of (EB_Caster_Loc offset by 900.00 towards 180.00 degrees))
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Unit Group - Add (Picked unit) to EB_Group
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • Set Temp_Group = (Units within 250.00 of (EB_Caster_Loc offset by 900.00 towards 270.00 degrees))
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Unit Group - Add (Picked unit) to EB_Group
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • Set Temp_Group = (Units within 250.00 of (EB_Caster_Loc offset by 900.00 towards 360.00 degrees))
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Unit Group - Add (Picked unit) to EB_Group
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • Unit Group - Pick every unit in EB_Group and do (Actions)
        • Loop - Actions
          • Unit - Cause EB_Caster to damage (Picked unit), dealing EB_SDam damage of attack type Magic and damage type Normal
          • Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Undead\AbsorbMana\AbsorbManaBirthMissile.mdl
          • Special Effect - Destroy (Last created special effect)
      • Custom script: call DestroyGroup (udg_EB_Group)
      • Custom script: call RemoveLocation (udg_EB_Caster_Loc)


  • JS Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set JS_Hash = (Last created hashtable)
      • Set JS_AOE[1] = 600.00
      • Set JS_AOE[2] = 750.00
      • Set JS_AOE[3] = 900.00
      • Set JS_Damage[1] = 50.00
      • Set JS_Damage[2] = 90.00
      • Set JS_Damage[3] = 130.00
      • Set JS_Snare_Dur[1] = 1.00
      • Set JS_Snare_Dur[2] = 1.50
      • Set JS_Snare_Dur[3] = 2.00
      • Set JS_Duration[1] = 4.00
      • Set JS_Duration[2] = 6.00
      • Set JS_Duration[3] = 7.00
      • Set JS_Dummy[1] = Orb
      • Set JS_Dummy[2] = Orb
      • Set JS_Dummy[3] = Orb
  • JS Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Judgement Snare
    • Actions
      • -------- We create the orbs that will setup the lightning --------
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 45.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 1 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 90.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 2 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 125.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 3 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 180.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 4 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 225.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 5 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 270.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 6 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 315.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 7 of (Key (Triggering unit)) in JS_Hash
      • Unit - Create 1 JS_Dummy[(Level of Judgement Snare for (Triggering unit))] for Neutral Passive at ((Position of (Triggering unit)) offset by JS_AOE[(Level of Judgement Snare for (Triggering unit))] towards 360.00 degrees) facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 8 of (Key (Triggering unit)) in JS_Hash
      • For each (Integer JS_Loop) from 1 to 8, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • JS_Loop Greater than 8
            • Then - Actions
              • Lightning - Create a Forked Lightning lightning effect from source (Position of (Load JS_Loop of (Key (Triggering unit)) in JS_Hash)) to target (Position of (Load 1 of (Key (Triggering unit)) in JS_Hash))
              • Lightning - Change color of (Last created lightning effect) to (1.00 0.90 0.70) with 1.00 alpha
              • Hashtable - Save Handle Of(Last created lightning effect) as (JS_Loop + 8) of (Key (Triggering unit)) in JS_Hash
            • Else - Actions
              • Lightning - Create a Forked Lightning lightning effect from source (Position of (Load JS_Loop of (Key (Triggering unit)) in JS_Hash)) to target (Position of (Load (JS_Loop + 1) of (Key (Triggering unit)) in JS_Hash))
              • Lightning - Change color of (Last created lightning effect) to (1.00 0.90 0.70) with 1.00 alpha
              • Hashtable - Save Handle Of(Last created lightning effect) as (JS_Loop + 8) of (Key (Triggering unit)) in JS_Hash
          • Lightning - Create a Forked Lightning lightning effect from source (Position of (Load JS_Loop of (Key (Triggering unit)) in JS_Hash)) to target (Position of (Triggering unit))
          • Lightning - Change color of (Last created lightning effect) to (1.00 0.90 0.70) with 1.00 alpha
          • Hashtable - Save Handle Of(Last created lightning effect) as (JS_Loop + 17) of (Key (Triggering unit)) in JS_Hash
      • Lightning - Create a Forked Lightning lightning effect from source (Position of (Load 8 of (Key (Triggering unit)) in JS_Hash)) to target (Position of (Load 1 of (Key (Triggering unit)) in JS_Hash))
      • Lightning - Change color of (Last created lightning effect) to (1.00 0.90 0.70) with 1.00 alpha
      • Hashtable - Save Handle Of(Last created lightning effect) as (JS_Loop + 8) of (Key (Triggering unit)) in JS_Hash
      • Hashtable - Save (JS_Duration[(Level of Judgement Snare for (Triggering unit))] x 3.00) as 0 of (Key (Triggering unit)) in JS_Hash
      • Unit Group - Add (Triggering unit) to JS_Casters
      • Unit Group - Add (Triggering unit) to JS_Snared
  • Unit Group - Pick every unit in JS_Casters and do (Actions)
    • Loop - Actions
      • Set Temp_Unit = (Picked unit)
      • Set Temp_Group = (Units within JS_AOE[(Level of Judgement Snare for Temp_Unit)] of (Position of Temp_Unit) matching (((Matching unit) belongs to an enemy of (Owner of Temp_Unit)) Equal to True))
      • Unit Group - Pick every unit in (Random ((Number of units in Temp_Group) / 3) units from Temp_Group) and do (Actions)
        • Loop - Actions
          • Special Effect - Destroy (Load 1 of (Key (Picked unit)) in JS_Hash)
          • Unit - Cause Temp_Unit to damage (Picked unit), dealing JS_Damage[(Level of Judgement Snare for Temp_Unit)] damage of attack type Spells and damage type Divine
          • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\UnholyAura\UnholyAura.mdl
          • Hashtable - Save (JS_Snare_Dur[(Level of Judgement Snare for Temp_Unit)] / 3.00) as 0 of (Key (Picked unit)) in JS_Hash
          • Hashtable - Save Handle Of(Last created special effect) as 1 of (Key (Picked unit)) in JS_Hash
          • Unit Group - Add (Picked unit) to JS_Snared
  • JS Snare Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in JS_Snared and do (Actions)
        • Loop - Actions
          • Set Temp_Real = (Load 0 of (Key (Picked unit)) from JS_Hash)
          • Unit - Order (Picked unit) to Stop
          • Set Temp_Real = (Temp_Real - 0.10)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Real Less than or equal to 0.00
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) is in JS_Casters) Equal to True
                • Then - Actions
                  • For each (Integer JS_Loop) from 1 to 8, do (Actions)
                    • Loop - Actions
                      • Special Effect - Create a special effect at (Position of (Load JS_Loop of (Key (Picked unit)) in JS_Hash)) using Abilities\Spells\Undead\ReplenishHealth\ReplenishHealthCasterOverhead.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Remove (Load JS_Loop of (Key (Picked unit)) in JS_Hash) from the game
                      • Lightning - Destroy (Load (JS_Loop + 8) of (Key (Picked unit)) in JS_Hash)
                  • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in JS_Hash
                  • Unit Group - Remove (Picked unit) from JS_Casters
                  • Unit Group - Remove (Triggering unit) from JS_Snared
                • Else - Actions
                  • Special Effect - Destroy (Load 1 of (Key (Picked unit)) in JS_Hash)
                  • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in JS_Hash
                  • Unit Group - Remove (Picked unit) from JS_Snared
            • Else - Actions
              • Hashtable - Save Temp_Real as 0 of (Key (Picked unit)) in JS_Hash
 
Last edited:
Level 29
Joined
Oct 24, 2012
Messages
6,543
thanks for posting the triggers.

get rid of dying unit always use triggering unit. remove the waits as they are very bad in spells. remove integer A and make ur own integer as it is both faster and more efficient. by a rule of thumb anything u use twice or more should be put into a variable and u should use that. Its both faster and more efficient.
in ur second trigger u loop but dont change anything so its looping through the same thing every time. u leak locations in the first trigger. this is also not MUI in its current state so it will bug up.
u can learn about things that leaks from here http://www.hiveworkshop.com/forums/triggers-scripts-269/things-leak-35124/
also check out my tutorial things a GUIer should know its in my sig. that will help u improve and help make thing MUI. ( i dont have an example for MUI with groups but i can help u if u need help with that.)
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
you are also using wait in the healing downpour trigger, you should get rid of it and instead do some indexing/unit group stuff what GUI users usually do

There is also tutorial on http://www.hiveworkshop.com/forums/...279/mui-spells-using-artificial-waits-223315/ and many other

Because this way, if I cast the spell multiple times it may do some weird stuff, because wait in for Loop A is very dangerous in spells

also you are missing triggers for Ricochet and one spell completly
 
Configuration is a special setup trigger to setup the spell, ex :

  • Deny System Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Start Config --------
      • -------- Effect that appears on the attacker as punishment --------
      • Set DS_Effect = Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
      • -------- Damage Punishment --------
      • Set DS_Damage = 25.00
      • -------- HP Modifier [Config this to decide how much minimum HP from the attacker to be ignored] --------
      • Set DS_HP = (2.00 / 3.00)
      • -------- End Config --------
Config is a special trigger that runs all variables for damage and others during Map Init.
People can modify the base damage and stuff via this trigger and there's no need to touch the others, thus configuration is easy as pie :)
 
Last edited:
Top