Here's a cool spell that I made.
GUI/JASS: GUI.
MUI: No.
Leakless: What's a leak?
Darkness Bolt
Kali'naj turns himself into a bolt of dark energy, that travels for a limited time. When it stops, Kali'naj morphs back to his normal self. Due that, the energy that was contained in the bolt turns into multiple dark waves that are launched around, each dealing damage to enemy units.
Level 1 - 2 waves, 125 damage.
Level 2 - 4 waves, 150 damage.
Level 3 - 6 waves, 175 damage.
Level 4 - 8 waves, 200 damage.
Edit 1: Sorry, I nearly forgot the screenies.
Edit 2: Fixed a bug where the skulls didn't disappeared.
Edit 3: Updated the map. Now, Dark Dummy faces the target point.
Edit 4 (I hope this is the last edit.): Remade the spell to fit the suggestions.
Feedback is welcome.
GUI/JASS: GUI.
MUI: No.
Leakless: What's a leak?
Darkness Bolt
Kali'naj turns himself into a bolt of dark energy, that travels for a limited time. When it stops, Kali'naj morphs back to his normal self. Due that, the energy that was contained in the bolt turns into multiple dark waves that are launched around, each dealing damage to enemy units.
Level 1 - 2 waves, 125 damage.
Level 2 - 4 waves, 150 damage.
Level 3 - 6 waves, 175 damage.
Level 4 - 8 waves, 200 damage.
Code:
DarknessBolt
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Darkness Bolt
Actions
Set DB_Count_Distance = 0.00
Set DB_Point = (Target point of ability being cast)
Set DB_Caster = (Triggering unit)
Set DB_Caster_Pos = (Position of DB_Caster)
Set DB_Real_Distance = (Distance between DB_Caster_Pos and DB_Point)
Set DB_Angle = (Angle from DB_Caster_Pos to DB_Point)
Set DB_LvL = (Level of Darkness Bolt for DB_Caster)
Countdown Timer - Start DB_Timer as a Repeating timer that will expire in 0.02 seconds
Unit - Hide DB_Caster
Unit - Create 1 Dark Dummy for (Owner of DB_Caster) at DB_Caster_Pos facing DB_Point
Set DB_Dummy = (Last created unit)
Custom script: call RemoveLocation (udg_DB_Point)
Custom script: call RemoveLocation (udg_DB_Caster_Pos)
Trigger - Turn on DarknessBolt2 <gen>
Code:
DarknessBolt2
Events
Time - DB_Timer expires
Conditions
Actions
Set DB_Count_Distance = (DB_Count_Distance + 15.00)
Set DB_Dummy_Pos = (Position of DB_Dummy)
Set DB_Dummy_Pos_Distance = (DB_Dummy_Pos offset by 15.00 towards DB_Angle degrees)
Unit - Move DB_Dummy instantly to DB_Dummy_Pos_Distance
Special Effect - Create a special effect at DB_Dummy_Pos_Distance using Abilities\Weapons\IllidanMissile\IllidanMissile.mdl
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
DB_Count_Distance Greater than or equal to DB_Real_Distance
Then - Actions
Trigger - Turn off (This trigger)
Countdown Timer - Pause DB_Timer
Custom script: call RemoveLocation (udg_DB_Dummy_Pos_Distance)
Unit - Remove DB_Dummy from the game
Unit - Move DB_Caster instantly to DB_Dummy_Pos
Set DB_Dummy_Angle = (Facing of DB_Dummy)
Special Effect - Create a special effect at DB_Dummy_Pos using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
Special Effect - Destroy (Last created special effect)
Unit - Unhide DB_Caster
For each (Integer A) from 1 to (2 x DB_LvL), do (Actions)
Loop - Actions
Set DB_Dummy_Angle = (DB_Dummy_Angle + (180.00 / (Real(DB_LvL))))
Set DB_Dummy_Pos_Offset = (DB_Dummy_Pos offset by 256.00 towards DB_Dummy_Angle degrees)
Unit - Create 1 Dummy for (Owner of DB_Caster) at DB_Dummy_Pos facing DB_Dummy_Angle degrees
Set Dummy_Integer[(Integer A)] = (Last created unit)
Unit - Add Dummy Dark Wave to (Last created unit)
Unit - Set level of Dummy Dark Wave for (Last created unit) to DB_LvL
Unit - Order (Last created unit) to Undead Dreadlord - Carrion Swarm DB_Dummy_Pos_Offset
Custom script: call RemoveLocation (udg_DB_Dummy_Pos_Offset)
Custom script: call RemoveLocation (udg_DB_Dummy_Pos)
Animation - Play DB_Caster's spell animation
Selection - Select DB_Caster for (Owner of DB_Caster)
Wait 1.50 seconds
Animation - Reset DB_Caster's animation
For each (Integer A) from 1 to (2 x DB_LvL), do (Actions)
Loop - Actions
Unit - Remove Dummy_Integer[(Integer A)] from the game
Else - Actions
Custom script: call RemoveLocation (udg_DB_Dummy_Pos)
Custom script: call RemoveLocation (udg_DB_Dummy_Pos_Distance)

Edit 1: Sorry, I nearly forgot the screenies.
Edit 2: Fixed a bug where the skulls didn't disappeared.
Edit 3: Updated the map. Now, Dark Dummy faces the target point.
Edit 4 (I hope this is the last edit.): Remade the spell to fit the suggestions.
Feedback is welcome.
Attachments
-
26.6 KB Views: 509