XeNiM666
I lurk for pizza
- Reaction score
- 138
Shinjhitszho the Elementalist
GUI/JASS/vJASS - All GUI
Leakless - Yes to all
Lagless - Only Infernal Blast and Hoarfrost Lags when spammed
MUI/MPI - Yes to all
Rock Shield
Summons rocks from itself to create a barrier that will protect you from near units. Enemy units that will come in contact with the rocks will be stunned for 1 second and deal 125 damage.
Shield lasts for 15 seconds.
Level 1 - 3 rocks.
Level 2 - 4 rocks.
Level 3 - 5 rocks.
Trigger:
Code:
RS Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Rock Shield
Actions
Set Number = (2 + (Level of Rock Shield for (Triggering unit)))
For each (Integer A) from 1 to Number, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
MUI Less than 1000
Then - Actions
Set MUI = (MUI + 1)
Else - Actions
Set MUI = 1
Set Caster[MUI] = (Triggering unit)
Set Caster_pos[MUI] = (Position of Caster[MUI])
Set Temp_Point = (Caster_pos[MUI] offset by 175.00 towards ((Real((Integer A))) x (360.00 / (Real(Number)))) degrees)
Unit - Create 1 Rock (Earth) for (Owner of Caster[MUI]) at Temp_Point facing Default building facing degrees
Unit - Set the custom value of (Last created unit) to MUI
Unit - Add a 15.00 second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Trigger - Add to RS Stun <gen> the event (Unit - A unit comes within 75.00 of (Last created unit))
Set Speed[(Custom value of (Last created unit))] = ((Real((Integer A))) x (360.00 / (Real(Number))))
Custom script: call RemoveLocation(udg_Temp_Point)
Custom script: call RemoveLocation(udg_Caster_pos[udg_MUI])
Code:
RS Move
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Set Group[1] = (Units of type Rock (Earth))
Unit Group - Pick every unit in Group[1] and do (Actions)
Loop - Actions
Set Speed[(Custom value of (Picked unit))] = (Speed[(Custom value of (Picked unit))] + 5.00)
Set Caster_pos[(Custom value of (Picked unit))] = (Position of Caster[(Custom value of (Picked unit))])
Set Point[1] = (Caster_pos[(Custom value of (Picked unit))] offset by 175.00 towards Speed[(Custom value of (Picked unit))] degrees)
Unit - Move (Picked unit) instantly to Point[1]
Custom script: call RemoveLocation(udg_Caster_pos[GetUnitUserData(GetEnumUnit())])
Custom script: call RemoveLocation(udg_Point[1])
Custom script: call DestroyGroup(udg_Group[1])
Code:
RS Stun
Events
Conditions
((Triggering unit) is dead) Equal to False
(Unit-type of (Triggering unit)) Not equal to Rock (Earth)
((Triggering unit) belongs to an enemy of (Owner of Caster[MUI])) Equal to True
Actions
Set Point[2] = (Position of (Triggering unit))
Set Group[2] = (Units within 125.00 of Point[2] matching ((Unit-type of (Matching unit)) Equal to Rock (Earth)))
Unit - Create 1 Dummy Unit for (Owner of Caster[MUI]) at Point[2] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Rock Shield Stun to (Last created unit)
Unit - Order (Last created unit) to Neutral - Hurl Boulder (Triggering unit)
Unit Group - Pick every unit in Group[2] and do (Actions)
Loop - Actions
Unit - Kill (Picked unit)
Unit - Remove (Picked unit) from the game
Custom script: call RemoveLocation(udg_Point[2])
Custom script: call DestroyGroup(udg_Group[2])
Screenie:
Infernal Blast
Fires a concentrated orb of fire in a targeted location. The orb will continue to move to a 1250 range, leaving a trail of fire that damages enemy units that step on them while destroying trees. After travelling a 1250 range, the orb will blow up, destroying trees and damaging units within 300 range of the explosion.
Explosion lasts for 10 seconds.
Level 1 - 200 damage in contact, 10 damage per second,
35 explosion damage, 15 moderate damage.
Level 2 - 300 damage in contact, 15 damage per second,
50 explosion damage, 22.5 moderate damage.
Level 3 - 400 damage in contact, 20 damage per second,
65 explosion damage, 30 moderate damage.
Trigger:
Code:
I Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Infernal Blast
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
MUI Less than 1000
Then - Actions
Set MUI = (MUI + 1)
Else - Actions
Set MUI = 1
Set Caster[MUI] = (Triggering unit)
Set Caster_pos[MUI] = (Position of Caster[MUI])
Set Target[MUI] = (Target point of ability being cast)
Set Angle[MUI] = (Angle from Caster_pos[MUI] to Target[MUI])
Set Distance[MUI] = 1260.00
Set Traveled[MUI] = 0.00
Set Interval[MUI] = 0
Unit - Create 1 Inferno Ball (Fire) for (Owner of Caster[MUI]) at Caster_pos[MUI] facing Angle[MUI] degrees
Unit - Set the custom value of (Last created unit) to MUI
Unit - Add a 1.25 second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Unit - Add I Fire Trail to (Last created unit)
Unit - Set level of I Fire Trail for (Last created unit) to (Level of Infernal Blast for Caster[MUI])
Trigger - Add to I Damage <gen> the event (Unit - A unit comes within 100.00 of (Last created unit))
Custom script: call RemoveLocation(udg_Target[udg_MUI])
Custom script: call RemoveLocation(udg_Caster_pos[udg_MUI])
Code:
I Move
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Set Group[3] = (Units of type Inferno Ball (Fire))
Unit Group - Pick every unit in Group[3] and do (Actions)
Loop - Actions
Set Traveled[(Custom value of (Picked unit))] = (Traveled[(Custom value of (Picked unit))] + 30.00)
Set Interval[(Custom value of (Picked unit))] = (Interval[(Custom value of (Picked unit))] + 3)
Set Point[3] = (Position of (Picked unit))
Set Point[4] = (Point[3] offset by 30.00 towards Angle[(Custom value of (Picked unit))] degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Traveled[(Custom value of (Picked unit))] Less than or equal to Distance[(Custom value of (Picked unit))]
Then - Actions
Unit - Move (Picked unit) instantly to Point[4]
Destructible - Pick every destructible within 100.00 of Point[4] and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Ashenvale Tree Wall
(Destructible-type of (Picked destructible)) Equal to Ashenvale Canopy Tree
(Destructible-type of (Picked destructible)) Equal to Barrens Tree Wall
(Destructible-type of (Picked destructible)) Equal to Barrens Canopy Tree
(Destructible-type of (Picked destructible)) Equal to Black Citadel Tree Wall
(Destructible-type of (Picked destructible)) Equal to Cityscape Fall Tree Wall
(Destructible-type of (Picked destructible)) Equal to Cityscape Snowy Tree Wall
(Destructible-type of (Picked destructible)) Equal to Cityscape Summer Tree Wall
(Destructible-type of (Picked destructible)) Equal to Cityscape Winter Tree Wall
(Destructible-type of (Picked destructible)) Equal to Cityscape Ruined Tree Wall
(Destructible-type of (Picked destructible)) Equal to Dalaran Ruins Tree Wall
(Destructible-type of (Picked destructible)) Equal to Dungeon Tree Wall
(Destructible-type of (Picked destructible)) Equal to Felwood Tree Wall
(Destructible-type of (Picked destructible)) Equal to Felwood Canopy Tree
(Destructible-type of (Picked destructible)) Equal to Icecrown Tree Wall
(Destructible-type of (Picked destructible)) Equal to Icecrown Canopy Tree
(Destructible-type of (Picked destructible)) Equal to Northrend Canopy Tree
(Destructible-type of (Picked destructible)) Equal to Fall Tree Wall
(Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
(Destructible-type of (Picked destructible)) Equal to Snowy Tree Wall
(Destructible-type of (Picked destructible)) Equal to Northrend Tree Wall
(Destructible-type of (Picked destructible)) Equal to Outland Tree Wall
(Destructible-type of (Picked destructible)) Equal to Ruins Tree Wall
(Destructible-type of (Picked destructible)) Equal to Ruins Canopy Tree
(Destructible-type of (Picked destructible)) Equal to Underground Tree Wall
(Destructible-type of (Picked destructible)) Equal to Village Tree Wall
(Destructible-type of (Picked destructible)) Equal to Fall Tree Wall
Then - Actions
Destructible - Kill (Picked destructible)
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Interval[(Custom value of (Picked unit))] Greater than or equal to 5
((Picked unit) is dead) Not equal to True
Then - Actions
Unit - Create 1 Inferno Trail (Fire) for (Owner of (Picked unit)) at Point[3] facing Default building facing degrees
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Unit - Add I Fire Trail to (Last created unit)
Unit - Set level of I Fire Trail for (Last created unit) to (Level of I Fire Trail for (Picked unit))
Set Interval[(Custom value of (Picked unit))] = (Interval[(Custom value of (Picked unit))] - 5)
Set Group[4] = (Units within 100.00 of Point[3] matching (((Matching unit) is Sleeping) Equal to True))
Unit Group - Pick every unit in Group[4] and do (Unit - Wake up (Picked unit))
Custom script: call DestroyGroup(udg_Group[4])
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Traveled[(Custom value of (Picked unit))] Equal to Distance[(Custom value of (Picked unit))]
Then - Actions
Unit - Create 1 Dummy Unit for (Owner of (Picked unit)) at Point[3] facing Default building facing degrees
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Unit - Add I Explosion to (Last created unit)
Unit - Set level of I Explosion for (Last created unit) to (Level of I Fire Trail for (Picked unit))
Unit - Order (Last created unit) to Human Blood Mage - Flame Strike Point[3]
Special Effect - Create a special effect at Point[3] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at Point[3] using Objects\Spawnmodels\Human\HCancelDeath\HCancelDeath.mdl
Special Effect - Destroy (Last created special effect)
Else - Actions
Custom script: call RemoveLocation(udg_Point[3])
Custom script: call RemoveLocation(udg_Point[4])
Custom script: call DestroyGroup(udg_Group[3])
Code:
I Damage
Events
Conditions
((Triggering unit) is dead) Equal to False
(Unit-type of (Triggering unit)) Not equal to Inferno Trail (Fire)
(Unit-type of (Triggering unit)) Not equal to Inferno Ball (Fire)
((Triggering unit) belongs to an enemy of (Owner of Caster[MUI])) Equal to True
Actions
Unit - Cause Caster[MUI] to damage (Triggering unit), dealing (100.00 + ((Real((Level of Infernal Blast for Caster[MUI]))) x 100.00)) damage of attack type Spells and damage type Fire
Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
Special Effect - Destroy (Last created special effect)
Screenie:
Soul Armor
Creates a shield to the targeted unit from the souls that the hero has collected. The shield will lose 1 soul to protect you from all damage.
The shield lasts for 180 seconds.
Cannot cast if you have 0 souls collected
Cannot collect summoned units souls
Does not stack
Level 1 - Maximum of 3 souls can be collected.
Level 2 - Maximum of 5 souls can be collected.
Level 3 - Maximum of 7 souls can be collected.
Trigger:
Code:
SA Learn
Events
Unit - A unit Learns a skill
Conditions
(Learned Hero Skill) Equal to Soul Armor
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
MUI Less than 1000
Then - Actions
Set MUI = (MUI + 1)
Else - Actions
Set MUI = 1
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Soul for (Learning Hero)) Equal to 0
Then - Actions
Unit - Add Soul to (Learning Hero)
Unit - Set the custom value of (Learning Hero) to MUI
Else - Actions
Code:
SA Kill
Events
Unit - A unit Dies
Conditions
(Level of Soul Armor for (Killing unit)) Greater than 0
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Soul[(Custom value of (Killing unit))] Less than (1 + ((Level of Soul Armor for (Killing unit)) x 2))
((Triggering unit) is Summoned) Not equal to True
Then - Actions
Set Soul[(Custom value of (Killing unit))] = (Soul[(Custom value of (Killing unit))] + 1)
Unit - Set level of Soul for (Killing unit) to (Soul[(Custom value of (Killing unit))] + 1)
Set Point[5] = (Position of (Killing unit))
Floating Text - Create floating text that reads +1 at Point[5] with Z offset 0.00, using font size 12.00, color (100.00%, 0.00%, 100.00%), and 0.00% transparency
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
Floating Text - Set the velocity of (Last created floating text) to 50.00 towards 90.00 degrees
Custom script: call RemoveLocation(udg_Point[5])
Else - Actions
Code:
SA Check
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Soul Armor
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Soul[(Custom value of (Triggering unit))] Equal to 0
Then - Actions
Unit - Order (Triggering unit) to Stop
Quest - Display to (Player group((Owner of (Triggering unit)))) the Warning message: |c00ff0000Unable to...
Else - Actions
Code:
SA Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Soul Armor
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
MUI Less than 1000
Then - Actions
Set MUI = (MUI + 1)
Else - Actions
Set MUI = 1
Set Caster[MUI] = (Triggering unit)
Set TargetUnit[MUI] = (Target unit of ability being cast)
Unit - Set the custom value of TargetUnit[MUI] to MUI
Unit - Remove Soul Armor Detection from TargetUnit[MUI]
Unit - Add Soul Armor Detection to TargetUnit[MUI]
Unit - Set level of Soul Armor Detection for TargetUnit[MUI] to (Level of Soul Armor for Caster[MUI])
Set Soul[MUI] = ((Level of Soul for Caster[MUI]) - 1)
Set Soul_Armor[MUI] = Soul[MUI]
Set Soul[MUI] = 0
Unit - Set level of Soul for Caster[MUI] to (Soul[MUI] + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(TargetUnit[MUI] is in SAGroup) Not equal to True
Then - Actions
Trigger - Add to SA Damage <gen> the event (Unit - TargetUnit[MUI] Takes damage)
Unit Group - Add TargetUnit[MUI] to SAGroup
Else - Actions
Code:
SA Damage
Events
Conditions
((Triggering unit) has buff Soul Armor ) Equal to True
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Soul_Armor[(Custom value of (Triggering unit))] Less than or equal to (1 + ((Level of Soul Armor Detection for (Triggering unit)) x 2))
Soul_Armor[(Custom value of (Triggering unit))] Not equal to 0
Then - Actions
Set Point[6] = (Position of (Triggering unit))
Special Effect - Create a special effect at Point[6] using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_Point[6])
Set Soul_Armor[(Custom value of (Triggering unit))] = (Soul_Armor[(Custom value of (Triggering unit))] - 1)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Soul_Armor[(Custom value of (Triggering unit))] Equal to 0
Then - Actions
Unit - Remove Soul Armor Detection from (Triggering unit)
Unit - Remove Soul Armor buff from (Triggering unit)
Else - Actions
Screenie:
Hoarfrost
The cold embrace of the grave seeks out those foolish enough to invade Mateus inner sanctum. This icy wedge drives itself into its targets, pushing them back 100 range while slowing their movement speed and attack speed as they rapidly freeze to death.
A unit can be hit more than once.
Slow stacks and lasts for 4 seconds.
Level 1 - 850 distance, 5% movement slow, 3% attack speed
slow and 50 damage per hit.
Level 2 - 1000 distance, 7% movement slow, 5% attack speed
slow and 60 damage per hit.
Level 3 - 1150 distance, 10% movement slow, 7% attack
speed slow and 70 damage per hit.
Trigger:
Code:
H Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Hoarfrost
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
HMUI Less than 1000
Then - Actions
Set HMUI = (HMUI + 1)
Else - Actions
Set HMUI = 1
Set Caster[HMUI] = (Triggering unit)
Set Caster_pos[HMUI] = (Position of Caster[HMUI])
Set Target[HMUI] = (Target point of ability being cast)
Set Angle[HMUI] = (Angle from Caster_pos[HMUI] to Target[HMUI])
Set Traveled[HMUI] = 0.00
Set HLevel = (Level of Hoarfrost for Caster[HMUI])
Set HDamage = (40.00 + ((Real(HLevel)) x 10.00))
Set MPI = (Player number of (Owner of Caster[HMUI]))
Set HOwner[MPI] = (Owner of Caster[HMUI])
Set Distance[HMUI] = (700.00 + ((Real(HLevel)) x 150.00))
Unit - Create 1 Hoarfrost Ball (Ice) for HOwner[MPI] at Caster_pos[HMUI] facing Angle[HMUI] degrees
Unit - Set the custom value of (Last created unit) to HMUI
Unit - Add a (Distance[HMUI] / 400.00) second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Trigger - Add to H Push <gen> the event (Unit - A unit comes within 55.00 of (Last created unit))
Custom script: call RemoveLocation(udg_Target[udg_HMUI])
Custom script: call RemoveLocation(udg_Caster_pos[udg_HMUI])
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
HMUI Less than 1000
Then - Actions
Set HMUI = (HMUI + 1)
Else - Actions
Set HMUI = 1
Set Caster[HMUI] = (Triggering unit)
Set Caster_pos[HMUI] = (Position of Caster[HMUI])
Set Target[HMUI] = (Target point of ability being cast)
Set Angle[HMUI] = (Angle from Caster_pos[HMUI] to Target[HMUI])
Set Distance[HMUI] = (700.00 + ((Real(HLevel)) x 150.00))
Set Traveled[HMUI] = 0.00
Set Point[7] = (Caster_pos[HMUI] offset by (60.00 x (Real((Integer A)))) towards (Angle[HMUI] + 135.00) degrees)
Unit - Create 1 Hoarfrost Ball (Ice) for HOwner[MPI] at Point[7] facing Angle[HMUI] degrees
Unit - Set the custom value of (Last created unit) to HMUI
Unit - Add a (Distance[HMUI] / 400.00) second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Trigger - Add to H Push <gen> the event (Unit - A unit comes within 55.00 of (Last created unit))
Custom script: call RemoveLocation(udg_Point[7])
Custom script: call RemoveLocation(udg_Target[udg_HMUI])
Custom script: call RemoveLocation(udg_Caster_pos[udg_HMUI])
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
HMUI Less than 1000
Then - Actions
Set HMUI = (HMUI + 1)
Else - Actions
Set HMUI = 1
Set Caster[HMUI] = (Triggering unit)
Set Caster_pos[HMUI] = (Position of Caster[HMUI])
Set Target[HMUI] = (Target point of ability being cast)
Set Angle[HMUI] = (Angle from Caster_pos[HMUI] to Target[HMUI])
Set Distance[HMUI] = (700.00 + ((Real(HLevel)) x 150.00))
Set Traveled[HMUI] = 0.00
Set Point[7] = (Caster_pos[HMUI] offset by (60.00 x (Real((Integer A)))) towards (Angle[HMUI] - 135.00) degrees)
Unit - Create 1 Hoarfrost Ball (Ice) for HOwner[MPI] at Point[7] facing Angle[HMUI] degrees
Unit - Set the custom value of (Last created unit) to HMUI
Unit - Add a (Distance[HMUI] / 400.00) second Generic expiration timer to (Last created unit)
Unit - Turn collision for (Last created unit) Off
Trigger - Add to H Push <gen> the event (Unit - A unit comes within 55.00 of (Last created unit))
Custom script: call RemoveLocation(udg_Point[7])
Custom script: call RemoveLocation(udg_Target[udg_HMUI])
Custom script: call RemoveLocation(udg_Caster_pos[udg_HMUI])
Code:
H Move
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Set Group[4] = (Units of type Hoarfrost Ball (Ice))
Unit Group - Pick every unit in Group[4] and do (Actions)
Loop - Actions
Set Traveled[(Custom value of (Picked unit))] = (Traveled[(Custom value of (Picked unit))] + 12.00)
Set Point[8] = (Position of (Picked unit))
Set Point[9] = (Point[8] offset by 12.00 towards Angle[(Custom value of (Picked unit))] degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Traveled[(Custom value of (Picked unit))] Less than or equal to Distance[(Custom value of (Picked unit))]
((Picked unit) is dead) Not equal to True
Then - Actions
Unit - Move (Picked unit) instantly to Point[9]
Else - Actions
Custom script: call RemoveLocation(udg_Point[8])
Custom script: call RemoveLocation(udg_Point[9])
Custom script: call DestroyGroup(udg_Group[4])
Code:
H Push
Events
Conditions
((Triggering unit) is dead) Equal to False
((Triggering unit) is An Ancient) Not equal to True
((Triggering unit) belongs to an enemy of HOwner[MPI]) Equal to True
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
MUI Less than 1000
Then - Actions
Set MUI = (MUI + 1)
Else - Actions
Set MUI = 1
Set Pushed_pos[MUI] = (Position of (Triggering unit))
Set Push_Travel[MUI] = 0.00
Set Push_Distance[MUI] = 100.00
Set Push_Angle[MUI] = Angle[HMUI]
Unit - Create 1 Dummy Unit for HOwner[MPI] at Pushed_pos[MUI] facing Default building facing degrees
Unit - Cause (Last created unit) to damage (Triggering unit), dealing HDamage damage of attack type Spells and damage type Normal
Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
Unit - Add Hoarfrost Slow to (Last created unit)
Unit - Set level of Hoarfrost Slow for (Last created unit) to HLevel
Unit - Order (Last created unit) to Attack Once (Triggering unit)
Special Effect - Create a special effect at Pushed_pos[MUI] using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Special Effect - Destroy (Last created special effect)
Unit - Set the custom value of (Triggering unit) to MUI
Unit - Turn collision for (Triggering unit) Off
Unit Group - Add (Triggering unit) to Push_Group
Custom script: call RemoveLocation(udg_Pushed_pos[udg_MUI])
Code:
H Push Effect
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in Push_Group and do (Actions)
Loop - Actions
Set Push_Travel[(Custom value of (Picked unit))] = (Push_Travel[(Custom value of (Picked unit))] + 18.00)
Set Point[10] = (Position of (Picked unit))
Set Point[11] = (Point[10] offset by 18.00 towards Push_Angle[(Custom value of (Picked unit))] degrees)
Special Effect - Create a special effect at Point[9] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Push_Travel[(Custom value of (Picked unit))] Less than or equal to Push_Distance[(Custom value of (Picked unit))]
((Picked unit) is dead) Not equal to True
Then - Actions
Unit - Move (Picked unit) instantly to Point[11]
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Push_Travel[(Custom value of (Picked unit))] Greater than or equal to Push_Distance[(Custom value of (Picked unit))]
Then - Actions
Unit - Turn collision for (Picked unit) On
Unit Group - Remove (Picked unit) from Push_Group
Else - Actions
Custom script: call RemoveLocation(udg_Point[10])
Custom script: call RemoveLocation(udg_Point[11])
Screenie:
Credits:
Tinki3: for his Spell Test Map Template
Flare: for his GUI MUI System
All you need, how to import and how to implement, is inside the map