Naminator
Coming Back To Life
- Reaction score
- 76
Here's another DotA Spell made by me. Call Fissure, from the Earthshaker. The dummy unit call "Lagless" must not be removed. It's the way to prevent lag in this spell.
Instructions on how to implement this into your map inside and changes inside.
It's GUI.
Lagless (For me)
Leakless (I think)
Fissure:
Slams the ground with the Raigor's mighty totem, causing the ground to crack open front of him, damaging opponents and leaving an impassable crevasse for a period of time.
Level 1 - 125 damage, 1 second stun.
Level 2 - 175 damage, 1.25 second stun.
Level 3 - 225 damage, 1.5 second stun.
Level 4 - 275 damage, 1.75 second stun.
Hope you like it!
Instructions on how to implement this into your map inside and changes inside.
It's GUI.
Lagless (For me)
Leakless (I think)
Fissure:
Slams the ground with the Raigor's mighty totem, causing the ground to crack open front of him, damaging opponents and leaving an impassable crevasse for a period of time.
Level 1 - 125 damage, 1 second stun.
Level 2 - 175 damage, 1.25 second stun.
Level 3 - 225 damage, 1.5 second stun.
Level 4 - 275 damage, 1.75 second stun.
Code:
Fissure
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Fissure
Actions
Unit Group - Remove all units from Fissure_AddGroup
Set Fissure_TempLine = 0.00
Set Fissure_Caster = (Triggering unit)
Set Fissure_Caster_Loc = (Position of Fissure_Caster)
Set Fissure_TargetPoint = (Target point of ability being cast)
Set Fissure_Level = (Level of Fissure for Fissure_Caster)
Set Fissure_TimeLast = 8
Unit - Make Fissure_Caster face Fissure_TargetPoint over 0.01 seconds
Set Fissure_Angle = (Angle from Fissure_Caster_Loc to Fissure_TargetPoint)
For each (Integer A) from 1 to 15, do (Actions)
Loop - Actions
Set Fissure_TempLine = (Fissure_TempLine + 75.00)
Set Fissure_Offset[(Integer A)] = (Fissure_Caster_Loc offset by Fissure_TempLine towards Fissure_Angle degrees)
Unit - Create 1 Dummy Lagless for (Owner of Fissure_Caster) at Fissure_Offset[(Integer A)] facing Fissure_Angle degrees
Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
Destructible - Create a Fissure Path at Fissure_Offset[(Integer A)] facing Fissure_Angle with scale 0.70 and variation 0
Set Fissure_Destructible[(Integer A)] = (Last created destructible)
Set Fissure_Group = (Units within 200.00 of Fissure_Offset[(Integer A)] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of Fissure_Caster)) Equal to True)))
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in Fissure_Group and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is in Fissure_AddGroup) Equal to False
Then - Actions
Unit Group - Add (Picked unit) to Fissure_AddGroup
Unit - Create 1 Dummy Unit for (Owner of Fissure_Caster) at Fissure_Offset[(Integer A)] facing Fissure_Angle degrees
Unit - Add Fissure Stun to (Last created unit)
Unit - Set level of Fissure Stun for (Last created unit) to Fissure_Level
Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions
Custom script: call RemoveLocation (udg_Fissure_Offset[bj_forLoopAIndex])
Wait (Real(Fissure_TimeLast)) seconds
For each (Integer A) from 1 to 15, do (Actions)
Loop - Actions
Destructible - Remove Fissure_Destructible[(Integer A)]
Custom script: call RemoveLocation (udg_Fissure_TargetPoint)
Custom script: call RemoveLocation (udg_Fissure_Caster_Loc)
Hope you like it!