• 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!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Lightning Spellpack v3

  • Like
Reactions: krisserz
Hey Guys!
Enjoy!

Thunder Storm

Thunder Storm:

The Hero focuses his energy into a tempest bursting in his surroundings, dealling extraordinary damage in pulses every 0.5 seconds to a random unit with 1000 range. The unit is also heart damaged, slowing his movement speed & draining 20 mana points.

Level 1 - 40 Pulsing Damage.
Level 2 - 60 Pulsing Damage.
Level 3 - 80 Pulsing Damage.

Duration
: 10\12\14 Seconds.
Cooldown: 20\22\24 Seconds.
Voltage Overdose

Voltage Overdose:

The hero centers his attention into a single powerful blast, dealing high shock damage within the targets heart. If the target's heart is already damaged, then it deals an additional 300 damage. The target is also knocked back.

Level 1 - 160 Damage
Level 2 - 240 Damage
Level 3 - 300 Damage

Cooldown: 9 Seconds.
Storm Rotation

Storm Rotation

The Hero consentrates his energy into an orb filled with lightning powers rotating around the caster, casting a forked lightning every 5 seconds to a random unit with 700 range. Lightning hits 3 targets.

Level 1 - 70 Forked Damage.
Level 2 - 130 Forked Damage.
Level 3 - 200 Forked Damage.

Duration: 60 Seconds.
Cooldown: 90 Seconds.
  • TS Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to (==) Thunder Storm
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- Indexing Start --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • TS_Index[1] Equal to (==) 0
          • Then - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- Actions --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Trigger - Turn on TS Loop <gen>
            • -------- ------------------------------------------------------------------------------------------------------------- --------
          • Else - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- NO ELSE ACTION --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Set TS_Index[1] = (TS_Index[1] + 1)
      • Set TS_Index[2] = (TS_Index[2] + 1)
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- Variables Setup --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Set TS_Duration[TS_Index[2]] = (8.00 + (2.00 x (Real((Level of Thunder Storm for (Triggering unit))))))
      • Set TS_Damage[TS_Index[2]] = (20.00 + (20.00 x (Real((Level of Thunder Storm for (Triggering unit))))))
      • Set TS_Range[TS_Index[2]] = 1000.00
      • Set TS_NumE[TS_Index[2]] = 6
      • Set TS_Caster[TS_Index[2]] = (Triggering unit)
      • Set TS_Boolean[TS_Index[2]] = True
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- Actions --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Game - Display to (All players) the text: On
      • Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
      • Set TS_Special1[TS_Index[2]] = (Last created special effect)
      • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
      • Set TS_Special2[TS_Index[2]] = (Last created special effect)
      • Special Effect - Create a special effect attached to the head of (Triggering unit) using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
      • Set TS_Special3[TS_Index[2]] = (Last created special effect)
  • TS Loop
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • For each (Integer TS_Index[3]) from 1 to TS_Index[2], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TS_Boolean[TS_Index[3]] Equal to True
            • Then - Actions
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • -------- Variables --------
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • Set TS_Duration[TS_Index[3]] = (TS_Duration[TS_Index[3]] - 0.50)
              • Set TS_Point[1] = (Position of TS_Caster[TS_Index[3]])
              • Set TS_Group = (Units within TS_Range[TS_Index[3]] of TS_Point[1] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TS_Caster[TS_Index[3]])) Equal to True))))
              • Set TS_Victom[TS_Index[3]] = (Random unit from TS_Group)
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • -------- Actions --------
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • Special Effect - Create a special effect attached to the origin of TS_Caster[TS_Index[3]] using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect attached to the origin of TS_Caster[TS_Index[3]] using Abilities\Weapons\Bolt\BoltImpact.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Create 1 dummy for (Owner of TS_Caster[TS_Index[3]]) at TS_Point[1] facing Default building facing degrees
              • Unit - Cause TS_Caster[TS_Index[3]] to damage TS_Victom[TS_Index[3]], dealing TS_Damage[TS_Index[3]] damage of attack type Spells and damage type Lightning
              • Unit - Order (Last created unit) to Orc Shaman - Purge TS_Victom[TS_Index[3]]
              • Unit - Add a 0.75 second Generic expiration timer to (Last created unit)
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • For each (Integer TS) from 1 to TS_NumE[TS_Index[3]], do (Actions)
                • Loop - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Variables --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Set TS_Angle[TS_Index[3]] = (Random angle)
                  • Set TS_Degrees[TS_Index[3]] = (Random real number between 1.00 and TS_Range[TS_Index[3]])
                  • Set TS_Point[2] = (TS_Point[1] offset by TS_Degrees[TS_Index[3]] towards TS_Angle[TS_Index[3]] degrees)
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Actions --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Special Effect - Create a special effect at TS_Point[2] using Abilities\Weapons\Bolt\BoltImpact.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect at TS_Point[2] using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Leaks --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Custom script: call RemoveLocation ( udg_TS_Point[2] )
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • -------- Leaks --------
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • Custom script: call DestroyGroup ( udg_TS_Group )
              • Custom script: call RemoveLocation ( udg_TS_Point[1] )
              • -------- ------------------------------------------------------------------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TS_Duration[TS_Index[3]] Less than or equal to 0.00
                • Then - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Variables --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Set TS_Index[1] = (TS_Index[1] - 1)
                  • Set TS_Boolean[TS_Index[3]] = False
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Actions --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Special Effect - Destroy TS_Special1[TS_Index[3]]
                  • Special Effect - Destroy TS_Special2[TS_Index[3]]
                  • Special Effect - Destroy TS_Special3[TS_Index[3]]
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                • Else - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- NO ELSE ACTION --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TS_Index[1] Equal to 0
                • Then - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Variables --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Set TS_Index[2] = 0
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- Actions --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Trigger - Turn off (This trigger)
                  • Game - Display to (All players) the text: Off
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                • Else - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • -------- NO ELSE ACTION --------
                  • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Else - Actions
  • VO Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to (==) Voltage Overdose
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- Indexing Start --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • VO_index[1] Equal to (==) 0
          • Then - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- Actions --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Trigger - Turn on VO Loop <gen>
            • -------- ------------------------------------------------------------------------------------------------------------- --------
          • Else - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- NO ELSE ACTION --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Set VO_index[1] = (VO_index[1] + 1)
      • Set VO_index[2] = (VO_index[2] + 1)
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- Variables Setup --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Set VO_Victom[VO_index[2]] = (Target unit of ability being cast)
      • Set VO_Caster[VO_index[2]] = (Triggering unit)
      • Set VO_Damage[VO_index[2]] = 300.00
      • Set VO_Duration[VO_index[2]] = 3.00
      • Set VO_Boolean[VO_index[2]] = True
      • Set VO_Speed[VO_index[2]] = 10.00
      • Set VO_Point[1] = (Position of (Triggering unit))
      • Set VO_Point[2] = (Position of (Target unit of ability being cast))
      • Set VO_Angle[VO_index[2]] = (Angle from VO_Point[1] to VO_Point[2])
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- LeakS --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation ( udg_VO_Point[1] )
      • Custom script: call RemoveLocation ( udg_VO_Point[2] )
      • -------- ------------------------------------------------------------------------------------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (VO_Victom[VO_index[2]] has buff Heart Damage ) Equal to (==) True
          • Then - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- Variables Setup --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Set VO_Point[3] = (Position of VO_Victom[VO_index[2]])
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- ActionS --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Unit - Cause VO_Caster[VO_index[2]] to damage VO_Victom[VO_index[2]], dealing VO_Damage[VO_index[2]] damage of attack type Spells and damage type Lightning
            • Unit - Create 1 VO dummy effect for (Owner of VO_Caster[VO_index[2]]) at VO_Point[VO_index[2]] facing Default building facing (270.0) degrees
            • Unit - Kill (Last created unit)
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- LeakS --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Custom script: call RemoveLocation ( udg_VO_Point[3] )
            • -------- ------------------------------------------------------------------------------------------------------------- --------
          • Else - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- NO ELSE ACTION --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
  • VO Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Do Multiple ActionsFor each (Integer VO_index[3]) from 1 to VO_index[2], do (Actions)
        • Loop - Actions
          • -------- ------------------------------------------------------------------------------------------------------------- --------
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • VO_Boolean[VO_index[3]] Equal to (==) True
              • Then - Actions
                • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • VO_Duration[VO_index[3]] Greater than or equal to (>=) 0.00
                    • Then - Actions
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- Variables Setup --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • Set VO_Duration[VO_index[3]] = (VO_Duration[VO_index[3]] - 0.03)
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- ActionS --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • (VO_Victom[VO_index[3]] is alive) Equal to (==) True
                          • Then - Actions
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- Variables Setup --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • Set VO_Point[4] = (Position of VO_Victom[VO_index[3]])
                            • Set VO_Point[5] = (VO_Point[4] offset by VO_Speed[VO_index[3]] towards VO_Angle[VO_index[3]] degrees)
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- ActionS --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • Unit - Move VO_Victom[VO_index[3]] instantly to VO_Point[5]
                            • Special Effect - Create a special effect at VO_Point[5] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                            • Special Effect - Destroy (Last created special effect)
                            • Special Effect - Create a special effect at VO_Point[5] using Abilities\Spells\Orc\Purge\PurgeBuffTarget.mdl
                            • Special Effect - Destroy (Last created special effect)
                            • Special Effect - Create a special effect attached to the origin of VO_Victom[VO_index[3]] using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
                            • Special Effect - Destroy (Last created special effect)
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- LeakS --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • Custom script: call RemoveLocation ( udg_VO_Point[4] )
                            • Custom script: call RemoveLocation ( udg_VO_Point[5] )
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                          • Else - Actions
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- NO ELSE ACTION --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                    • Else - Actions
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- Variables --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • Set VO_index[1] = (VO_index[1] - 1)
                      • Set VO_Boolean[VO_index[3]] = False
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- ActionS --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • Special Effect - Create a special effect attached to the origin of VO_Victom[VO_index[3]] using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • VO_index[1] Equal to (==) 0
                          • Then - Actions
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- Variables --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • Set VO_index[2] = 0
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- ActionS --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • Trigger - Turn off (This trigger)
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                          • Else - Actions
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- NO ELSE ACTION --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
              • Else - Actions
          • -------- ------------------------------------------------------------------------------------------------------------- --------
      • -------- ------------------------------------------------------------------------------------------------------------- --------
  • SR Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to (==) Storm Rotation
    • Actions
      • -------- --------------------------------- --------
      • -------- ActionS --------
      • -------- --------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • SR_Index[1] Equal to (==) 0
          • Then - Actions
            • -------- --------------------------------- --------
            • -------- ActionS --------
            • -------- --------------------------------- --------
            • Trigger - Turn on SR Loop <gen>
            • Game - Display to (All players) the text: ON
            • -------- --------------------------------- --------
          • Else - Actions
            • -------- ------------------------------------------------------------------------------------------------------------- --------
            • -------- NO ELSE ACTION --------
            • -------- ------------------------------------------------------------------------------------------------------------- --------
      • Set SR_Index[1] = (SR_Index[1] + 1)
      • Set SR_Index[2] = (SR_Index[2] + 1)
      • -------- --------------------------------- --------
      • -------- VariableS --------
      • -------- --------------------------------- --------
      • Set SR_Loc[1] = (Position of (Triggering unit))
      • Set SR_Loc[2] = (SR_Loc[1] offset by 150.00 towards (Facing of (Triggering unit)) degrees)
      • Set SR_Caster[SR_Index[2]] = (Triggering unit)
      • Set SR_Angle[SR_Index[2]] = (Facing of (Triggering unit))
      • Set SR_Duration[SR_Index[2]] = 20.00
      • Set SR_Boolean[SR_Index[2]] = True
      • -------- --------------------------------- --------
      • -------- ActionS --------
      • -------- --------------------------------- --------
      • Unit - Create 1 SR dummy effect for (Owner of (Triggering unit)) at SR_Loc[2] facing Default building facing (270.0) degrees
      • -------- --------------------------------- --------
      • -------- VariableS --------
      • -------- --------------------------------- --------
      • Set SR_Projectile[SR_Index[2]] = (Last created unit)
      • -------- --------------------------------- --------
      • -------- LeakS --------
      • -------- --------------------------------- --------
      • Custom script: call RemoveLocation( udg_SR_Loc[1] )
      • Custom script: call RemoveLocation( udg_SR_Loc[2] )
      • -------- --------------------------------- --------
  • SR Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • -------- --------------------------------- --------
      • -------- ActionS --------
      • -------- --------------------------------- --------
        • Do Multiple ActionsFor each (Integer SR_Index[3]) from 1 to SR_Index[2], do (Actions)
          • Loop - Actions
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • SR_Boolean[SR_Index[3]] Equal to (==) True
              • Then - Actions
                • -------- --------------------------------- --------
                • -------- VariableS --------
                • -------- --------------------------------- --------
                • Set SR_Duration[SR_Index[3]] = (SR_Duration[SR_Index[3]] - 0.03)
                • Set SR_WaitCounter[SR_Index[3]] = (SR_WaitCounter[SR_Index[3]] + 0.03)
                • Set SR_Angle[SR_Index[3]] = (SR_Angle[SR_Index[3]] + 3.00)
                • Set SR_Loc[3] = (Position of SR_Caster[SR_Index[3]])
                • Set SR_Loc[4] = (SR_Loc[3] offset by 150.00 towards SR_Angle[SR_Index[3]] degrees)
                • -------- --------------------------------- --------
                • -------- ActionS --------
                • -------- --------------------------------- --------
                • Unit - Move SR_Projectile[SR_Index[3]] instantly to SR_Loc[4]
                • -------- --------------------------------- --------
                  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SR_WaitCounter[SR_Index[3]] Greater than or equal to (>=) 5.00
                    • Then - Actions
                      • -------- --------------------------------- --------
                      • -------- VariableS --------
                      • -------- --------------------------------- --------
                      • Set SR_WaitCounter[SR_Index[3]] = 0.00
                      • Set SR_Loc[5] = (Position of SR_Projectile[SR_Index[3]])
                      • Set SR_Group[1] = (Units within 700.00 of SR_Loc[4] matching ((((Matching unit) is A structure) Equal to (==) False) and ((((Matching unit) is alive) Equal to (==) True) and (((Matching unit) belongs to an enemy of (Owner of SR_Caster[SR_Index[3]])) Equal to (==) True))))
                      • -------- --------------------------------- --------
                      • -------- ActionS --------
                      • -------- --------------------------------- --------
                      • Unit - Create 1 dummy for (Owner of SR_Caster[SR_Index[3]]) at SR_Loc[5] facing Default building facing (270.0) degrees
                      • Unit - Set level of Storm R Dummy for (Last created unit) to (Level of Storm Rotation for SR_Caster[SR_Index[3]])
                      • Unit - Order (Last created unit) to Neutral Naga Sea Witch - Forked Lightning (Random unit from SR_Group[1])
                      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
                      • -------- --------------------------------- --------
                      • -------- LeakS --------
                      • -------- --------------------------------- --------
                      • Custom script: call RemoveLocation( udg_SR_Loc[5] )
                      • -------- --------------------------------- --------
                    • Else - Actions
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- NO ELSE ACTION --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SR_Duration[SR_Index[3]] Less than or equal to (<=) 0.00
                    • Then - Actions
                      • -------- --------------------------------- --------
                      • -------- VariableS --------
                      • -------- --------------------------------- --------
                      • Set SR_Index[1] = (SR_Index[1] - 1)
                      • Set SR_Boolean[SR_Index[3]] = False
                      • -------- --------------------------------- --------
                      • -------- ActionS --------
                      • -------- --------------------------------- --------
                      • Unit - Remove SR_Projectile[SR_Index[3]] from the game
                      • -------- --------------------------------- --------
                        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • SR_Index[1] Equal to (==) 0
                          • Then - Actions
                            • -------- --------------------------------- --------
                            • -------- VariableS --------
                            • -------- --------------------------------- --------
                            • Set SR_Index[2] = 0
                            • -------- --------------------------------- --------
                            • -------- ActionS --------
                            • -------- --------------------------------- --------
                            • Trigger - Turn off (This trigger)
                            • -------- --------------------------------- --------
                          • Else - Actions
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                            • -------- NO ELSE ACTION --------
                            • -------- ------------------------------------------------------------------------------------------------------------- --------
                    • Else - Actions
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                      • -------- NO ELSE ACTION --------
                      • -------- ------------------------------------------------------------------------------------------------------------- --------
                • -------- --------------------------------- --------
                • -------- LeakS --------
                • -------- --------------------------------- --------
                • Custom script: call RemoveLocation( udg_SR_Loc[3] )
                • Custom script: call RemoveLocation( udg_SR_Loc[4] )
                • Custom script: call DestroyGroup( udg_SR_Group[1] )
                • -------- --------------------------------- --------
              • Else - Actions
                • -------- ------------------------------------------------------------------------------------------------------------- --------
                • -------- NO ELSE ACTION --------
                • -------- ------------------------------------------------------------------------------------------------------------- --------

Helpful criticism is welcome.


v1b:
- Fixed Knockback
- More efficient [Thanks Kingz :D]

v1c:
- You can now configure the knock back speed of Voltage Overdose.
- Added Boolean to make Thunder Storm completely MUI [sorry for any trouble this might have caused]
- Added Boolean to make Voltage Overdose completely MUI [sorry for any trouble this might have caused]

v1d:
- Fixed an amateur bug with Thunder Storm

v2:
- Features one new ability! [Storm Rotation].

v2b:
-> Fixed a few typos.
-> Removed some debug messages I forgot previously.
-> Occasionally Storm Rotation didn't fire 0.02 seconds before it died out, this no longer happens.

v3:
-> Fixed the order string.
-> Fixed some object editor errors.


Keywords:
Shock, lightning, electric, voltage, f0rsak3n, overdose, thunder, storm, pack, spell, voltage, fire, ice, dark, light.
Contents

Lightning Spellpack v3 (Map)

Reviews
21:59, 16th Jun 2010 Hanky: I got a good day. So I'll approve your spellpack even if there's a small bug. The order string of Thunder Storm and Storm Rotation is the same. Fix that. Apart from that little bug the spells are leakless and MUI...

Moderator

M

Moderator

21:59, 16th Jun 2010
Hanky:
I got a good day. So I'll approve your spellpack even if there's a small bug. The order string of Thunder Storm and Storm Rotation is the same. Fix that.

Apart from that little bug the spells are leakless and MUI. Useful for guys who like using GUI spells.
 
Level 25
Joined
Jun 5, 2008
Messages
2,573
I couldn't find a place where you use these variables:
  • Set VO_Point3[VO_index[3]] = (Position of VO_Caster[VO_index[3]])
  • Set VO_Angle[VO_index[2]] = (Angle from VO_Point3[VO_index[3]] to VO_Point1[VO_index[3]])
What do you use them from?
I see that you use the VO_Point3 for angle, but you don't use angle for anything Oo?
EDIT:
Where is the knockback? :p
EDIT2:
You could have just decreased the duration of the spell in the loop and check if it is equal or less than 0.
 
Level 25
Joined
Jun 5, 2008
Messages
2,573
Found the problem:
  • Set VO_Duration[VO_index[3]] = 3.00
That should be VO_index[2]

Also make the angle fixed,atm it changes as you move the caster which is strange.
EDIT:
[hidden="suggestions/optimizations]
Fixed angle example:
Add this to your init of VO trigger:
  • Set VO_Point[0] = (Position of (Triggering unit))
  • Set VO_Point[1] = (Position of (Target unit of ability being cast))
  • Set VO_Angle[VO_index[2]] = (Angle from VO_Point[0] to VO_Point[1])
  • Custom script: call RemoveLocation(udg_VO_Point[0])
  • Custom script: call RemoveLocation(udg_VO_Point[1])
Also in your loop trigger simply do this:
  • VO Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer VO_index[3]) from 1 to VO_index[2], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VO_Duration[VO_index[3]] Greater than or equal to 0.00
            • Then - Actions
              • Set VO_Duration[VO_index[3]] = (VO_Duration[VO_index[3]] - 0.03)
              • -------- Other stuff below --------
            • Else - Actions
              • -------- Other stuff below --------
[/hidden]
 
Top