Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
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
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.
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.
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]
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).
[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]
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.
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...
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 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)
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)
-------- 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
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.)
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
you should destroy the group outside the Pick every unit not inside. You are destroying it N times.
Leaks.
Suggestion.
Go to Spells > Director's Cut then check Hanky's Dynamic Indexing. Search for some Leak tutorials(read it carefully, 99% who have read it doesn't comprehend it nicely.)
Never use Waits, unless you use artificial waits, but there are some exception to this tho, if you use local variable you can try use waits but not recommended.
Leak in many places.
Oh and Almia's right, this pack has no configuration.
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
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.