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!
A magical hammer that is thrown at an enemy unit, causing damage and stunning the target then jumps off to another target. Each jump decreases the damage dealt by 15%. Stuns for 1.5 seconds.
Level 1 - 70 Intial damage, jumps 4 times.
Level 2 - 140 Intial damage, jumps 6 times.
Level 3 - 210 Intial damage, jumps 8 times.
Level 4 - 280 Intial damage, jumps 10 times.
Cooldown: 18/16/14/12
CPSTART
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Chain Storm Bolt
Actions
-------- IMPORTANT SYSTEM PART START --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CP_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn on CPLOOP <gen>
Else - Actions
-------- Check if the Recycle Container got free slots where you can grab an index --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CP_RECYCLE_SIZE Greater than 0
Then - Actions
Set CP_RECYCLE_SIZE = (CP_RECYCLE_SIZE - 1)
Set CP_CURRENT_INDEX = CP_RECYCLE_CONTAINER[CP_RECYCLE_SIZE]
Else - Actions
Set CP_CURRENT_INDEX = CP_INDEX_SIZE
Set CP_INDEX_SIZE = (CP_INDEX_SIZE + 1)
-------- IMPORTANT SYSTEM PART END --------
-------- Register all important variables, remember that the CURRENT_INDEX var is very important... --------
Set CP_CASTING_UNIT[CP_CURRENT_INDEX] = (Triggering unit)
Set CP_TARGET_UNIT[CP_CURRENT_INDEX] = (Target unit of ability being cast)
Unit - Create 1 Dummy Projectile for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing (Angle from (Position of (Triggering unit)) to (Target point of ability being cast)) degrees
Set CP_MISSILE_UNIT[CP_CURRENT_INDEX] = (Last created unit)
Set CP_BOUNCES_LEFT[CP_CURRENT_INDEX] = (2 + (2 x (Level of (Ability being cast) for (Triggering unit))))
Set CP_PROJECTILE_SPEED[CP_CURRENT_INDEX] = 1200.00
Set CP_PROJECTILE_DAMAGE[CP_CURRENT_INDEX] = (70.00 x (Real((Level of (Ability being cast) for (Triggering unit)))))
-------- IMPORTANT SYSTEM PART START --------
-------- Register the current index --------
Set CP_INDEX_CONTAINER[CP_INDEX_LISTENER] = CP_CURRENT_INDEX
-------- Increase the size of the Index Container --------
Set CP_INDEX_LISTENER = (CP_INDEX_LISTENER + 1)
-------- IMPORTANT SYSTEM PART END --------
CPLOOP
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
-------- Dynamic Loop --------
For each (Integer DYN2_EXAMPLE_LOOP) from 0 to (CP_INDEX_LISTENER - 1), do (Actions)
Loop - Actions
-------- Set the current index --------
Set CP_CURRENT_INDEX = CP_INDEX_CONTAINER[DYN2_EXAMPLE_LOOP]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CP_BOUNCES_LEFT[CP_CURRENT_INDEX] Greater than 0
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) and (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX])) Greater than 50.00
Then - Actions
Unit - Move CP_MISSILE_UNIT[CP_CURRENT_INDEX] instantly to ((Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) offset by (0.03 x CP_PROJECTILE_SPEED[CP_CURRENT_INDEX]) towards (Angle from (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) to (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX])) degrees)
-------- You can disable this function if you want. It only makes the projectile spin around. --------
Unit - Make CP_MISSILE_UNIT[CP_CURRENT_INDEX] face ((Facing of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) + 60.00) over 0.00 seconds
Else - Actions
Set CP_BOUNCES_LEFT[CP_CURRENT_INDEX] = (CP_BOUNCES_LEFT[CP_CURRENT_INDEX] - 1)
Set CP_PROJECTILE_DAMAGE[CP_CURRENT_INDEX] = (CP_PROJECTILE_DAMAGE[CP_CURRENT_INDEX] - (CP_PROJECTILE_DAMAGE[CP_CURRENT_INDEX] x 0.15))
Unit - Cause CP_CASTING_UNIT[CP_CURRENT_INDEX] to damage CP_TARGET_UNIT[CP_CURRENT_INDEX], dealing CP_PROJECTILE_DAMAGE[CP_CURRENT_INDEX] damage of attack type Chaos and damage type Unknown
Unit - Create 1 DummyCaster for (Owner of CP_CASTING_UNIT[CP_CURRENT_INDEX]) at (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX]) facing Default building facing degrees
Unit - Add Chain Storm Bolt Stun to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Storm Bolt CP_TARGET_UNIT[CP_CURRENT_INDEX]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Special Effect - Create a special effect attached to the origin of CP_TARGET_UNIT[CP_CURRENT_INDEX] using Abilities\Weapons\Bolt\BoltImpact.mdl
Special Effect - Destroy (Last created special effect)
Set CP_UNITS_IN_RANGE[CP_CURRENT_INDEX] = (Units within 600.00 of (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX]))
Set CP_POSSIBLE_TARGETS[CP_CURRENT_INDEX] = (Units within 600.00 of (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX]) matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of CP_CASTING_UNIT[CP_CURRENT_INDEX])) Equal to True)) and (((((Matching un
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(CP_POSSIBLE_TARGETS[CP_CURRENT_INDEX] is empty) Equal to False
Then - Actions
Set CP_TARGET_UNIT[CP_CURRENT_INDEX] = (Random unit from CP_POSSIBLE_TARGETS[CP_CURRENT_INDEX])
Unit - Kill CP_MISSILE_UNIT[CP_CURRENT_INDEX]
Unit - Create 1 Dummy Projectile for (Owner of CP_CASTING_UNIT[CP_CURRENT_INDEX]) at (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) facing (Angle from (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) to (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX])) degrees
Set CP_MISSILE_UNIT[CP_CURRENT_INDEX] = (Last created unit)
Having 2 instances of this spell running makes the 3rd or any more instance impossible, meaning the 3rd instance will only damage and stun the first target without any bounce
Unit - Create 1 Dummy Projectile for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing (Angle from (Position of (Triggering unit)) to (Target point of ability being cast)) degrees
Unit - Move CP_MISSILE_UNIT[CP_CURRENT_INDEX] instantly to ((Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) offset by (0.03 x CP_PROJECTILE_SPEED[CP_CURRENT_INDEX]) towards (Angle from (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) to (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX])) degrees)
Unit - Create 1 DummyCaster for (Owner of CP_CASTING_UNIT[CP_CURRENT_INDEX]) at (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX]) facing Default building facing degrees
Unit - Create 1 Dummy Projectile for (Owner of CP_CASTING_UNIT[CP_CURRENT_INDEX]) at (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) facing (Angle from (Position of CP_MISSILE_UNIT[CP_CURRENT_INDEX]) to (Position of CP_TARGET_UNIT[CP_CURRENT_INDEX])) degrees
you leak 7 points here ^ and 1 group leak
Skip remaining actions
There is absolutely no need for this ^
Add a configuration trigger to to change the settings of the spell especially the damage decrease %
It's a good spell you have here but you definitely need to fix the leaks
I don't have any for now
If You want me to review an Update of This Spell, Please Notifiy me this by VM or PM
Sorry but if you quote my you will see that before and after triggers there is [stable][/stable[ so i was lazy enough to not repeat it for the 7 leaks...
There's still leaks , store points to the variable so that you can remove that location or point. This must be configurable. You leak sooooooooooooooo many points and use coordinates in moving the projectile or missile. There are so many that needs to fix in the trigger of the spell: Needs Fix 2/5
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.