• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

PerditionsEdge Lightning Spells V2.3

4 Lightning based spells triggered in GUI. (Removed 5th spell to keep it simple)

Plasma Storm
Summons a raging plasma storm, slowing the attack and movement speed of enemy units caught within it, as well as damaging them.

  • Plasma Storm
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Plasma Storm
  • Actions
    • -------- ----------- --------
    • -------- ----------- --------
    • Set Caster = (Triggering unit)
    • Set Plasma_Storm_Owner = (Owner of Caster)
    • Set Plasma_Storm_Point[0] = (Position of Caster)
    • Set Plasma_Storm_Area = 300.00
    • Set Plasma_Storm_Formula = 0.00
    • -------- ----------- --------
    • -------- Creating plasma ring effect --------
    • -------- ----------- --------
    • For each (Integer A) from 1 to 18, do (Actions)
      • Loop - Actions
        • -------- ----------- --------
        • -------- ----------- --------
        • Set Plasma_Storm_Point[1] = (Plasma_Storm_Point[0] offset by 250.00 towards (20.00 x (Real((Integer A)))) degrees)
        • -------- ----------- --------
        • -------- Creating dummies --------
        • -------- ----------- --------
        • Unit - Create 1 Dummy - (Plasma) for Plasma_Storm_Owner at Plasma_Storm_Point[1] facing Plasma_Storm_Point[0]
        • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
        • -------- ----------- --------
        • -------- Creating special effect --------
        • -------- ----------- --------
        • Special Effect - Create a special effect at Plasma_Storm_Point[1] using Abilities\Weapons\Bolt\BoltImpact.mdl
        • Special Effect - Destroy (Last created special effect)
        • -------- ----------- --------
        • -------- Removing leaks --------
        • -------- ----------- --------
        • Custom script: call RemoveLocation(udg_Plasma_Storm_Point[1])
    • -------- ----------- --------
    • -------- Creating lightning ring effect --------
    • -------- ----------- --------
    • For each (Integer A) from 1 to 3, do (Actions)
      • Loop - Actions
        • Set Plasma_Storm_Formula = (Plasma_Storm_Formula + (Plasma_Storm_Area / 3.00))
        • For each (Integer B) from 1 to 12, do (Actions)
          • Loop - Actions
            • -------- ----------- --------
            • -------- ----------- --------
            • Set Plasma_Storm_Point[1] = (Plasma_Storm_Point[0] offset by Plasma_Storm_Formula towards (30.00 x (Real((Integer B)))) degrees)
            • -------- ----------- --------
            • -------- Creating special effect --------
            • -------- ----------- --------
            • Special Effect - Create a special effect at Plasma_Storm_Point[1] using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
            • Special Effect - Destroy (Last created special effect)
            • -------- ----------- --------
            • -------- Removing leaks --------
            • -------- ----------- --------
            • Custom script: call RemoveLocation(udg_Plasma_Storm_Point[1])
    • -------- ----------- --------
    • -------- ----------- --------
    • Unit - Create 1 Dummy for Plasma_Storm_Owner at Plasma_Storm_Point[0] facing Plasma_Storm_Point[0]
    • Unit - Add Plasma Storm (Dummy) to (Last created unit)
    • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike Plasma_Storm_Point[0]
    • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
    • -------- ----------- --------
    • -------- Removing leaks --------
    • -------- ----------- --------
    • Custom script: call RemoveLocation(udg_Plasma_Storm_Point[0])

Surging Pulse
A sends a wave of intense energy to stun enemy units in a target area. All enemy units between the caster and target location will be slowed for 6 seconds.

  • Surging Pulse
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Surging Pulse
    • Actions
      • -------- ----------- --------
      • -------- ----------- --------
      • Set Caster = (Triggering unit)
      • Set Surging_Pulse_Owner = (Owner of Caster)
      • Set Surging_Pulse_Caster_Loc = (Position of Caster)
      • Set Surging_Pulse_Location = ((Target point of ability being cast) offset by 125.00 towards (Facing of Caster) degrees)
      • Set Surging_Pulse_Loop = 22
      • Set Surging_Pulse_Formula = ((Distance between Surging_Pulse_Location and Surging_Pulse_Caster_Loc) / (Real(Surging_Pulse_Loop)))
      • -------- ----------- --------
      • -------- Creating special effect --------
      • -------- ----------- --------
      • Special Effect - Create a special effect at Surging_Pulse_Location using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Special Effect - Create a special effect at Surging_Pulse_Location using Abilities\Weapons\Bolt\BoltImpact.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- ----------- --------
      • -------- Creating dummies --------
      • -------- Stuns enemy units within target area --------
      • -------- ----------- --------
      • Unit - Create 1 Dummy for Surging_Pulse_Owner at Surging_Pulse_Location facing Default building facing degrees
      • Unit - Add Surging Pulse (Dummy) to (Last created unit)
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • -------- ----------- --------
      • -------- Creating dummies --------
      • -------- The dummies have a passive ability that slow nearby enemy units --------
      • -------- ----------- --------
      • For each (Integer A) from 1 to Surging_Pulse_Loop, do (Actions)
        • Loop - Actions
          • -------- ----------- --------
          • -------- ----------- --------
          • Set Surging_Pulse_Loop_Location = (Surging_Pulse_Caster_Loc offset by (Surging_Pulse_Formula x (Real((Integer A)))) towards (Facing of Caster) degrees)
          • -------- ----------- --------
          • -------- ----------- --------
          • Unit - Create 1 Dummy - (Surging Pulse) for Surging_Pulse_Owner at Surging_Pulse_Loop_Location facing (Surging_Pulse_Formula x (Real((Integer A)))) degrees
          • Unit - Add Surging Pulse (Slow Aura) to (Last created unit)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • -------- ----------- --------
          • -------- Creating special effect --------
          • -------- ----------- --------
          • Special Effect - Create a special effect at Surging_Pulse_Loop_Location using Abilities\Spells\Human\StormBolt\StormBoltMissile.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect at Surging_Pulse_Loop_Location using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- ----------- --------
          • -------- Removing leaks --------
          • -------- ----------- --------
          • Custom script: call RemoveLocation(udg_Surging_Pulse_Loop_Location)
      • -------- ----------- --------
      • -------- Removing leaks --------
      • -------- ----------- --------
      • Custom script: call RemoveLocation(udg_Surging_Pulse_Caster_Loc)
      • Custom script: call RemoveLocation(udg_Surging_Pulse_Location)

Charged Light
Generates an orb of lightning that will explode after 6 seconds, damaging all nearby enemy units. While active, the orb will confuse the nervouse impulses of nearby enemy units, giving them a chance to miss on attacks. Enemies that get too close to the orb are damaged over time.

  • Charged Light
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Charged Light
    • Actions
      • -------- ----------- --------
      • -------- ----------- --------
      • Set Caster = (Triggering unit)
      • Set Charged_Light_Location = (Position of Caster)
      • Set Charged_Light_Owner = (Owner of Caster)
      • Set Charge_Light_Ability_Level = (Level of Charged Light for Caster)
      • -------- ----------- --------
      • -------- Playing sound for ability --------
      • -------- ----------- --------
      • Sound - Play Flash <gen> at 100.00% volume, located at Charged_Light_Location with Z offset 0.00
      • -------- ----------- --------
      • -------- Creating dummies --------
      • -------- ----------- --------
      • Unit - Create 1 Dummy - (Shock) for Charged_Light_Owner at Charged_Light_Location facing Default building facing degrees
      • Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
      • Unit - Create 1 Dummy (Sphere) for Charged_Light_Owner at Charged_Light_Location facing Default building facing degrees
      • Unit - Add Charged Light (Dummy) to (Last created unit)
      • Unit - Set level of Charged Light (Dummy) for (Last created unit) to Charge_Light_Ability_Level
      • Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Human Dragonhawk Rider - Cloud Charged_Light_Location
      • -------- ----------- --------
      • -------- Creating dummies for ring effect --------
      • -------- ----------- --------
      • For each (Integer A) from 1 to 18, do (Actions)
        • Loop - Actions
          • Set Charged_Light_Location2 = (Charged_Light_Location offset by 90.00 towards (360.00 x ((Real((Integer A))) / 18.00)) degrees)
          • Unit - Create 1 Dummy - (Shock2) for Charged_Light_Owner at Charged_Light_Location2 facing Charged_Light_Location
          • Animation - Change (Last created unit)'s animation speed to 150.00% of its original speed
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • -------- ----------- --------
          • -------- Removing leaks --------
          • -------- ----------- --------
          • Custom script: call RemoveLocation(udg_Charged_Light_Location2)
      • -------- ----------- --------
      • -------- Removing leaks --------
      • -------- ----------- --------
      • Custom script: call RemoveLocation(udg_Charged_Light_Location)

  • Charged Light Death
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Dummy (Sphere)
    • Actions
      • -------- ----------- --------
      • -------- ----------- --------
      • Set Charged_Light_Death_Loc = (Position of (Triggering unit))
      • Set Charged_Light_Group = (Units within 250.00 of Charged_Light_Death_Loc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of Charged_Light_Owner) Equal to True))))
      • -------- ----------- --------
      • -------- Creating special effect --------
      • -------- ----------- --------
      • Special Effect - Create a special effect at Charged_Light_Death_Loc using Abilities\Spells\Human\StormBolt\StormBoltMissile.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- ----------- --------
      • -------- Damaging enemy units --------
      • -------- Enemy units within 250 AOE of dying dummy will be hit by Chain Lightning --------
      • -------- ----------- --------
      • Unit Group - Pick every unit in Charged_Light_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for Charged_Light_Owner at Charged_Light_Death_Loc facing Default building facing degrees
          • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
          • Unit - Add Charged Light (Dummy2) to (Last created unit)
          • Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Picked unit)
      • -------- ----------- --------
      • -------- Removing leaks --------
      • -------- ----------- --------
      • Custom script: call DestroyGroup(udg_Charged_Light_Group)
      • Custom script: call RemoveLocation(udg_Charged_Light_Death_Loc)
Extreme Voltage
Strikes a target unit with the force of a storm, dealing initial damage, reducing armor and dealing damage over time for 15 seconds. The caster abosrbs some energy from the target and converts it to health.

  • Extreme Voltage
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Extreme Voltage
    • Actions
      • -------- ----------- --------
      • -------- ----------- --------
      • Set Caster = (Triggering unit)
      • Set Extreme_Voltage_Owner = (Owner of Caster)
      • Set Extreme_Voltage_Target = (Target unit of ability being cast)
      • Set Extreme_Voltage_Location = (Position of Extreme_Voltage_Target)
      • Set Extreme_Voltage_Ability_Level = (Level of Extreme Voltage for Caster)
      • Set Extreme_Voltage_Hp = 90.00
      • Set Extreme_Voltage_Total_Hp = (Extreme_Voltage_Hp x (Real(Extreme_Voltage_Ability_Level)))
      • -------- ----------- --------
      • -------- Creating special effect --------
      • -------- ----------- --------
      • Special Effect - Create a special effect at Extreme_Voltage_Location using Objects\Spawnmodels\NightElf\NEDeathSmall\NEDeathSmall.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- ----------- --------
      • -------- Creating dummies --------
      • -------- ----------- --------
      • Unit - Create 1 Dummy - (Lightning) for Extreme_Voltage_Owner at Extreme_Voltage_Location facing Default building facing degrees
      • Unit - Add Extreme Voltage (Dummy) to (Last created unit)
      • Unit - Set level of Extreme Voltage (Dummy) for (Last created unit) to Extreme_Voltage_Ability_Level
      • Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb Extreme_Voltage_Target
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • -------- ----------- --------
      • -------- Creating lightning effect --------
      • -------- ----------- --------
      • For each (Integer B) from 1 to 12, do (Actions)
        • Loop - Actions
          • -------- ----------- --------
          • -------- ----------- --------
          • Set Extreme_Voltage_Loop_Loc = (Extreme_Voltage_Location offset by (0.00 + (10.00 x 3.00)) towards (100.00 x (Real((Integer B)))) degrees)
          • -------- ----------- --------
          • -------- Creating effect dummies --------
          • -------- ----------- --------
          • Unit - Create 1 Dummy - (Lightning) for Extreme_Voltage_Owner at Extreme_Voltage_Loop_Loc facing Extreme_Voltage_Location
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • -------- ----------- --------
          • -------- Removing leaks --------
          • -------- ----------- --------
          • Custom script: call RemoveLocation(udg_Extreme_Voltage_Loop_Loc)
      • Unit - Set life of Caster to ((Life of Caster) + Extreme_Voltage_Total_Hp)
      • Floating Text - Create floating text that reads (String((Integer(Extreme_Voltage_Total_Hp)))) above Caster with Z offset 0.00, using font size 10.00, color (30.00%, 30.00%, 100.00%), and 0.00% transparency
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
      • Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
      • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
      • -------- ----------- --------
      • -------- Removing leaks --------
      • -------- ----------- --------
      • Custom script: call RemoveLocation(udg_Extreme_Voltage_Location)
Feel free to use or edit in any way, or correct me if I made any mistake. I'm willing to learn. Thank you.

PerditionsEdge

Keywords:
lightning shock GUI simple energy pulse surge light electricity
Contents

Lightning Spellpack - PerditionsEdge (Map)

Reviews
13:33, 2nd Jun 2011 Maker: Approved. The spells are quite simple and spam effects. No leaks and spells are MUI. You could share the variables between spells. You could hide the floating text for players that can't see the caster. Remove the...

Moderator

M

Moderator

13:33, 2nd Jun 2011
Maker:
Approved.
The spells are quite simple and spam effects. No leaks and spells are MUI.
You could share the variables between spells.
You could hide the floating text for players that can't see the caster.
Remove the useless 0 from the equation the Exterme Voltage.
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
No leaks, MUI, good tooltips.

Some problems with spells:
The caster doesn't get the credit from the kill.
While the effects are good, there's maybe too much of them.
In my opinion, you could use shared variables. For example, don't use different caster variable for each spell. You can use the same for all.
Dummies give vision.
All the spells are not easily configurable. For example, if I change how many times the loops run, then the calculations inside the loops won't work correctly. The amount of dummies created (how many times it loops) should be set into a variable.



Useless variable, you might as well use the point array.
  • Set Plasma_Storm_Loop_Location = ...
Another useless variable:
  • Set Plasma_Storm_Target = (Position of (Triggering unit))
you have already stored this:
  • Set Plasma_Storm_Point[0] = (Position of Plasma_Storm_Caster)


Overall quite good.
 
Level 12
Joined
Apr 16, 2010
Messages
584
Spells look great! Creative enough! And i haven't seen lately lightning spells...
Okay now lets see what could be improved:
-in some triggers you add to a dummy Generic expiration timer to big, you only need 0.50, it's the best one;
-sounds leak, you need to remove them after creating;
-floating text leaks, destroy it too;
-in
  • Set Extreme_Voltage_Loop_Loc = (Extreme_Voltage_Location offset by (0.00 + (10.00 x 3.00)) towards (100.00 x (Real((Integer B)))) degrees)
you use 0.00 + (10.00 x 3.00), no need for that 0.00.
Other thing look fine, spell is creative as i already told.
Voting
5/5 vote for approval!
And +rep for stimulation :p
 
Level 13
Joined
Jun 9, 2009
Messages
1,129
Just for info, use custom integer don't use A or B please cause it can come to big troubles. Stanley, about that 0.00 + 10.00 x 3, i think that he was doing something with that 0.00, then just saw that it doesn't fits, he became bored to do it again. Samething happens to me always. Gj!
 
Level 4
Joined
May 9, 2010
Messages
27
Spells look great! Creative enough! And i haven't seen lately lightning spells...
Okay now lets see what could be improved:
-in some triggers you add to a dummy Generic expiration timer to big, you only need 0.50, it's the best one;
-sounds leak, you need to remove them after creating;
-floating text leaks, destroy it too;
-in
  • Set Extreme_Voltage_Loop_Loc = (Extreme_Voltage_Location offset by (0.00 + (10.00 x 3.00)) towards (100.00 x (Real((Integer B)))) degrees)
you use 0.00 + (10.00 x 3.00), no need for that 0.00.
Other thing look fine, spell is creative as i already told.
Voting
5/5 vote for approval!
And +rep for stimulation :p
Thank you for commenting, and for advice :)

I'll work on removing the leaks and improving the timers
 
Level 8
Joined
Jul 14, 2010
Messages
235
What could make the Plasma Storm lagg?
Its not the amount of "Dummy - Plasma" units made, but my map got a lot of doodads, could it be something affecting the terrain like "War Stomp" does? War Stomp lagg like hell when your map got a lot of doodads cus of its ability to do Terrain Deformation, but I cant see anything like that in the Plasma Storm ability..

And you forgot to set the level of the dummy ability to the level of the caster's ability, the ability is dealing the same amount of damage on every level ;)
  • -------- ----------- --------
    • Unit - Create 1 Dummy for Plasma_Storm_Owner at Plasma_Storm_Point[0] facing Plasma_Storm_Point[0]
    • Unit - Add Plasma Storm (Dummy) to (Last created unit)
    • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike Plasma_Storm_Point[0]
    • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
    • -------- ----------- --------
    • -------- Removing leaks --------
    • -------- ----------- --------
    • Custom script: call RemoveLocation(udg_Plasma_Storm_Point[0])
 
Last edited:
Level 4
Joined
May 9, 2010
Messages
27
What could make the Plasma Storm lagg?
Its not the amount of "Dummy - Plasma" units made, but my map got a lot of doodads, could it be something affecting the terrain like "War Stomp" does? War Stomp lagg like hell when your map got a lot of doodads cus of its ability to do Terrain Deformation, but I cant see anything like that in the Plasma Storm ability..

And you forgot to set the level of the dummy ability to the level of the caster's ability, the ability is dealing the same amount of damage on every level ;)
  • -------- ----------- --------
    • Unit - Create 1 Dummy for Plasma_Storm_Owner at Plasma_Storm_Point[0] facing Plasma_Storm_Point[0]
    • Unit - Add Plasma Storm (Dummy) to (Last created unit)
    • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike Plasma_Storm_Point[0]
    • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
    • -------- ----------- --------
    • -------- Removing leaks --------
    • -------- ----------- --------
    • Custom script: call RemoveLocation(udg_Plasma_Storm_Point[0])
Thank you for the comment, wouldn't have noticed, I'll fix that problem and see what I can do =)
 
Top