• 🏆 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!

Lightning Flash v5

A simple spell i thought of while in school, so i drew it and it seemed good to me xD, so once i got home, i started looking at the paper and started making it :p.

Also: You can edit the spell in your map by going to the "Lightning Flash Settings" trigger, follow the comments given so you will have an easier time of editing your needs ;D.

Make sure to see spell video to see the rest of the spell!
34ga4hh.png

Lightning Flash:

Calls out lightning balls leading them to the area you pointed and explode and then calls lightning from the sky causing destruction and damage with a bonus, if you kill 6 units, you get +1 stats to everything

Level 1 - Calls out lightning balls leading them to the area you pointed and explode and then calls lightning from the sky causing destruction and damage dealing 3x hero's int within 200 range and fire damage periodically within 300 range and reduces enemy mana within 200 by x1 your int with a bonus, if you kill 6+ units, all your stats go up by +1
Level 2 - Calls out lightning balls leading them to the area you pointed and explode and then calls lightning from the sky causing destruction and damage dealing 4x hero's int within 300 range and fire damage periodically within 330 range and reduces enemy mana within 300 by x2 your int with a bonus, if you kill 6+ units, all your stats go up by +1
Level 3 - Calls out lightning balls leading them to the area you pointed and explode and then calls lightning from the sky causing destruction and damage dealing 5x hero's int within 400 range and fire damage periodically within 360 range and reduces enemy mana within 400 by x3 your int with a bonus, if you kill 6+ units, all your stats go up by +1

--------------Importing Instructions-----------
1: Go to File > Preferences > Automatically create unknown variables while pasting trigger data.
2: Copy all buffs first, abilities second, and units third.
3: Copy the Lightning Flash Category to your map.
4: Go to Lightning Flash Settings to see what you can edit on the spell!
5: Enjoy!


Updated! - v5
Changelog:
-Added a display message that displays how many kills you did from InstantDamage
-Added a system where if you kill "X" amount of units, you get "x" amount of stats
-Made it optional if you want the text "Lightning Flash Casted!"
-Added a editable expiration timer for the lightning in the Spell Settings trigger
-Made parts of the trigger more readable
-Added a special effect if you gained stats depending on "X" amount of kills you did
-Dead units are not damaged
-Fixed hotkeys, hotkeys weren't right in v4
-Made the spell that slows down enemy units instant cast
-Straightened lightning, it's size was set to 16 at v4, now its at 0 (Lightning wasn't a unit in v4)
-Removed TempUnit variables
-Edited spell description (in-game description :p)
-Special Effect Change ~The one where when the lightning balls appear, it creates a special effect where they spawn.
-Removed workers (peasants, wisps, etc..) icon when spell is casted
-Organized the triggers better
-Made ManaReduction have its own AoE radius instead of using InstantDamageAoE's radius
-Moved some trigger actions around
-New screenshot
-New spell video
-If i'm missing something, please post a visitor message/pm to me or post here!
  • Lightning Flash
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Spell[1]
    • Actions
      • -------- Setup Variables --------
      • Set Point = (Target point of ability being cast)
      • Set Unit = (Triggering unit)
      • Set Owner = (Owner of Unit)
      • Set Spell_Level = (Level of Spell[1] for Unit)
      • -------- -------- --------
      • Unit - Create 1 Dummies[1] for Owner at Point facing Default building facing degrees
      • Set TempPoint = (Position of (Last created unit))
      • Unit - Set level of Spell[2] for (Last created unit) to Spell_Level
      • Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
      • Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
      • For each (Integer Loop) from 1 to 2, do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect at TempPoint using SpecialFX[(1 + Loop)]
          • Special Effect - Destroy (Last created special effect)
      • -------- Do not set to 0.00, if you do, ability will still cast but however, the unit will still be permanet and not die from expiration timer --------
      • -------- Lightning: You may edit expiration time, But only in the Lightning Flash Settings trigger. --------
      • Unit - Create 1 Dummies[4] for Owner at TempPoint facing Default building facing degrees
      • Unit - Add a LightningExpiration second Generic expiration timer to (Last created unit)
      • -------- Killing enemy units + Killing enemies mana + Counting kills for display message --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • Set PickedUnit = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (((Owner of PickedUnit) is an enemy of Owner) Equal to True) and ((PickedUnit is alive) Equal to True)
              • (PickedUnit is in (Units within InstantDamageAoE[Spell_Level] of TempPoint)) Equal to True
            • Then - Actions
              • -------- Right Here --------
              • Unit - Cause Unit to damage PickedUnit, dealing ((Real((Intelligence of Unit (Include bonuses)))) x (Real(InstantDamage[Spell_Level]))) damage of attack type Spells and damage type Normal
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (PickedUnit is dead) Equal to True
                • Then - Actions
                  • Set Dead = (Dead + 1)
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (PickedUnit is in (Units within ManaReductionAoE[Spell_Level] of TempPoint)) Equal to True
                • Then - Actions
                  • -------- ------- --------
                  • -------- Right Here x2 --------
                  • Set Calculation = ((Mana of PickedUnit) - ((Real((Intelligence of (Triggering unit) (Include bonuses)))) x (Real(ManaReduction[Spell_Level]))))
                  • -------- Calculation makes this part easiar to read for most people. --------
                  • Unit - Set mana of PickedUnit to Calculation
                  • -------- ------- --------
                • Else - Actions
            • Else - Actions
      • -------- -------- --------
      • -------- Reward Stats - If hero killed "x" amount of units --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Dead Greater than or equal to Kills
        • Then - Actions
          • -------- Amount of stats can be edited in the spell settings trigger --------
          • Hero - Modify Strength of Unit: Add Strength
          • Hero - Modify Agility of Unit: Add Agility
          • Hero - Modify Intelligence of Unit: Add Intelligence
          • -------- ------- --------
          • Set HeroPoint = (Position of (Triggering unit))
          • Special Effect - Create a special effect at HeroPoint using Abilities\Spells\Items\AIlm\AIlmTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_HeroPoint)
        • Else - Actions
      • -------- -------- --------
      • -------- Displays how many kills you got - You can disable this feature in the spell settings trigger --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • KillsOptional Equal to 1
        • Then - Actions
          • -------- It actually appears to display longer than you wanted, so it is still able to read it in time before it fades --------
          • Set PlayerGroup = (Player group(Owner))
          • Game - Display to PlayerGroup for 1.00 seconds the text: (You have killed + ((String(Dead)) + units))
          • Custom script: call DestroyForce(udg_PlayerGroup)
        • Else - Actions
      • -------- -------- --------
      • -------- Reseting "Dead" so then it will show the correct number of kills you did properly when you cast spell again --------
      • Set Dead = 0
      • -------- -------- --------
      • -------- Flame Strike --------
      • Unit - Create 1 Dummies[2] for Owner at Point facing Default building facing degrees
      • Unit - Add a 0.31 second Generic expiration timer to (Last created unit)
      • Unit - Set level of Spell[3] for (Last created unit) to Spell_Level
      • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike TempPoint
      • -------- Leave the expiration timer how it is, 30/less will not show flame strike, you could solve it by doing OE and set cast point to 0 but in my opinion, i would leave it how it is for the flame strike delay ;) --------
      • -------- -------- --------
      • -------- Text Optional - Displays "Lightning Flash Casted" when you cast spell, you can disable this feature in spell settings --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TextOptional Equal to 1
        • Then - Actions
          • Floating Text - Create floating text that reads Color above Unit with Z offset 0.00, using font size Font, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
          • -------- ^Color is a variable if you thought it was just the message :P --------
          • Set LastText = (Last created floating text)
          • Floating Text - Set the velocity of LastText to 64.00 towards 90.00 degrees
          • Floating Text - Change LastText: Disable permanence
          • Floating Text - Change the fading age of LastText to 2.00 seconds
          • Floating Text - Change the lifespan of LastText to 4.00 seconds
        • Else - Actions
      • -------- Removing all leaks from the spell --------
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_Point)
      • -------- Andd were done :D --------
  • Lightning Flash Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Almost all of these are editable! - Make sure to follow comments also to see what your doing! --------
      • -------- Make sure to edit desription of spell if you change one of these! --------
      • -------- When Casted, Lightning does instant damage - The amount of damage is how many int you have and for every number, it doubles it --------
      • -------- Example: Hero's int is 50 int, and InstantDamage[1] is set to 2, the damage will be 100. --------
      • -------- Note: This can be changed to str/agi too, just go to the comment in Quick Lightning saying "Right Here" and put the action below it to (Real((str/agi of triggering unit) --------
      • Set InstantDamage[1] = 3
      • Set InstantDamage[2] = 4
      • Set InstantDamage[3] = 5
      • -------- - --------
      • -------- The interval damage/or anything else on the fire, you have to edit it in Object Editor (OE). --------
      • -------- - --------
      • -------- The Thunder Clap - You can edit your needs to it in Object Editor (OE) for example: Slowing down units in AoE --------
      • -------- v2 --------
      • -------- This is the AoE of the Instant Damage when it is casted. (v5: I didn't recognize this is the same for ManaReduction, sorry!) --------
      • -------- The number at the end means the level it does it at --------
      • Set InstantDamageAoE[1] = 200.00
      • Set InstantDamageAoE[2] = 300.00
      • Set InstantDamageAoE[3] = 400.00
      • -------- v3 --------
      • -------- Do not edit this! --------
      • -------- Unless they get set to wrong ability/unit. --------
      • -------- Spell[1] = Lightning Flash | Spell[2] = Slow | Spell[3] = Fire | --------
      • Set Spell[1] = Lightning Flash
      • Set Spell[2] = Slow
      • Set Spell[3] = Fire (Neutral Hostile)
      • -------- Dummies[1] = Slow Down (Thunder Clap) | Dummies[2] = Spell Dummy | Dummies[3] = Lightning Ball | Dummies[4] = Lightning --------
      • Set Dummies[1] = Slow-Down (Thunder Clap)
      • Set Dummies[2] = Spell Dummy
      • Set Dummies[3] = Lightning Ball
      • Set Dummies[4] = Lightning
      • -------- You may edit down here :P --------
      • -------- Font Size of "Lightning Flash Casted! --------
      • Set Font = 11.00
      • -------- Color of Text (In the next variable, just copy one of the codes given to change the color.) Also, dont copy the "= (Color)" if you're trying to change the color code :P --------
      • -------- (Example Color Codes) --------
      • -------- |cff32cd32Lightning Flash Casted!|r = Green --------
      • -------- |cffff0000Lightning Flash Casted!|r = Red --------
      • -------- |cff995500Lightning Flash Casted!|r = Orange --------
      • -------- |cffffcc00Lightning FlashCasted!|r = Yellow --------
      • -------- |cff7777aaLightning Flash Casted!|r = Light Blue --------
      • Set Color = |cff7777aaLightning Flash Casted!|r
      • -------- ^This is set to light blue at the moment (default)^ --------
      • -------- Lightning Flash v4 --------
      • -------- New!: Reduces mana of nearby enemies who get shot by the lightning. (Depends on int) --------
      • -------- This can be changed too just like InstantDamage to make it str/agi/int. It will say Right Here x2 for you to know where. --------
      • Set ManaReduction[1] = 1
      • Set ManaReduction[2] = 2
      • Set ManaReduction[3] = 3
      • -------- Special Effects : I reccommend you to not touch this because spell would look alot different --------
      • Set SpecialFX[1] = Abilities\Weapons\ChimaeraLightningMissile\ChimaeraLightningMissile.mdl
      • Set SpecialFX[2] = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Set SpecialFX[3] = Objects\Spawnmodels\NightElf\NEDeathMedium\NEDeath.mdl
      • -------- Update: v5 --------
      • -------- TextOptional decides if you want to display the message "Lightning Flash Casted!" once spell is casted. 0 = No display | 1 = Display --------
      • Set TextOptional = 0
      • -------- Lightning Expiration: (Do not set to 0.00!) --------
      • -------- Time: 0.01 - 0.06 = Super Quick | 0.07 - 0.20 = Quick | 0.21 - 0.25 = Averge | 0.26 - 0.32 = Recomended --------
      • Set LightningExpiration = 0.31
      • -------- --------- --------
      • -------- Attribute Gained --------
      • -------- Down below will be variables with the name of the attribute and set it to whatever you want when the hero kills "X" amount of kills from the spell. --------
      • -------- Kills = How many kills you need to gain all 3 types of attributes + Note: Flame Strike does not count, only InstantDamage does --------
      • Set Kills = 6
      • -------- Amount of attributes gained when the spell killed "X" (Variable "Kills") amount of people --------
      • Set Strength = 1
      • Set Intelligence = 1
      • Set Agility = 1
      • -------- ----- --------
      • -------- KillsOptional: KillsOptional decides if you want it to display how many units you killed | 0 = No display - 1 = Display --------
      • Set KillsOptional = 0
      • -------- ----- --------
      • -------- Mana Reduction AoE --------
      • -------- The number at the end means the level it does it at --------
      • Set ManaReductionAoE[1] = 200.00
      • Set ManaReductionAoE[2] = 300.00
      • Set ManaReductionAoE[3] = 400.00
      • -------- ----- --------
Yea, it's not uploading the proper image so i should just show it in here :p. And yes, i wanted it to seem cool in the image xD
rm8p4k.png


Me, myself, thinks that this would be really cool for anyone to use ;D, the trigger gives you many options you can choose from, from the trigger spell settings trigger. You can edit almost everything the spell has to it! For example: It even shows how many kills you did, pick damage, pick AoE, and some of these even lets you decide if you want it to happen or not :p The spell also looks cool as well in my opinion.

~Enjoy the spell!
--------------------------------------------------------------------------------------
Updated! (v4)
-Renamed Quick Lightning to Lightning Flash
-Made Spell more interesting (More Lightning, etc..)
-Destroy's enemy's mana depending on hero's int.
-Stored Unit's into variables.
-Added casting time to the spell for hero to complete the spell.
-Stored Special Effects into variables.
-New Screenshot
-New Spell Video
  • Lightning Flash Channel
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Spell[1]
    • Actions
      • Set Unit = (Triggering unit)
      • Set Point = (Target point of ability being cast)
      • For each (Integer Channel_Loop) from 1 to 14, do (Actions)
        • Loop - Actions
          • Set LoopPoint = (Point offset by 500.00 towards (25.00 x (Real(Channel_Loop))) degrees)
          • Unit - Create 1 Dummies[3] for (Owner of Unit) at LoopPoint facing Default building facing degrees
          • Special Effect - Create a special effect at LoopPoint using SpecialFX[1]
          • Special Effect - Destroy (Last created special effect)
          • Set TempUnit = (Last created unit)
          • Unit - Order TempUnit to Move To Point
          • Unit - Add a 1.80 second Generic expiration timer to TempUnit
          • Custom script: call RemoveLocation(udg_LoopPoint)
      • Custom script: call RemoveLocation(udg_Point)
  • Lightning Flash
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Spell[1]
    • Actions
      • Set Point = (Target point of ability being cast)
      • Set Unit = (Triggering unit)
      • Set Owner = (Owner of Unit)
      • Set Spell_Level = (Level of Spell[1] for Unit)
      • Unit - Create 1 Dummies[1] for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Set TempPoint = (Position of TempUnit)
      • Unit - Set level of Spell[2] for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Mountain King - Thunder Clap
      • For each (Integer Loop) from 1 to 2, do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect at TempPoint using SpecialFX[(1 + Loop)]
          • Special Effect - Destroy (Last created special effect)
      • Unit - Add a 0.30 second Generic expiration timer to TempUnit
      • -------- its 0.30 because having more units alive is usally more lag and this is the lowest it can get, if lower, it will not slow nearby enemies, and if higher, the game will lag longer. --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within InstantDamageAoE[Spell_Level] of TempPoint matching (((Owner of (Matching unit)) is an enemy of Owner) Equal to True)) and do (Actions)
        • Loop - Actions
          • Set PickedUnit = (Picked unit)
          • -------- Right Here --------
          • Unit - Cause Unit to damage PickedUnit, dealing ((Real((Intelligence of Unit (Include bonuses)))) x (Real(InstantDamage[Spell_Level]))) damage of attack type Spells and damage type Normal
          • -------- Right Here x2 --------
          • Unit - Set mana of PickedUnit to ((Mana of PickedUnit) - ((Real((Intelligence of Unit (Include bonuses)))) x (Real(ManaReduction[Spell_Level]))))
      • Unit - Create 1 Dummies[2] for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Unit - Add a 0.31 second Generic expiration timer to TempUnit
      • -------- ^ Its 0.31 because having more units alive is usally more lag and this is the lowest it can get, if any lower, flamestrike will not appear, and if higher, the game will lag longer. --------
      • Unit - Set level of Spell[3] for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Blood Mage - Flame Strike TempPoint
      • Floating Text - Create floating text that reads Color above Unit with Z offset 0.00, using font size Font, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Set LastText = (Last created floating text)
      • Floating Text - Set the velocity of LastText to 64.00 towards 90.00 degrees
      • Floating Text - Change LastText: Disable permanence
      • Floating Text - Change the fading age of LastText to 2.00 seconds
      • Floating Text - Change the lifespan of LastText to 4.00 seconds
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_Point)
--------------------------------------------------------------------------------------
Updated! (v3)
Changelog:
-Multiplied int damage for instant damage instead of using a loop.
-Destroyed last created special effect.
-Made custom text when casted.
-Stored the abilities in variables.
-Thats all i think :p
  • Quick Lightning
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Quick Lightning
    • Actions
      • Set Point = (Target point of ability being cast)
      • Set Unit = (Triggering unit)
      • Set Owner = (Owner of Unit)
      • Set Spell_Level = (Level of Quick Lightning for Unit)
      • Unit - Create 1 Lightning for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Set TempPoint = (Position of TempUnit)
      • Unit - Set level of Slow for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Mountain King - Thunder Clap
      • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Add a 0.30 second Generic expiration timer to TempUnit
      • -------- its 0.30 because having more units alive is usally more lag and this is the lowest it can get, if lower, it will not slow nearby enemies, and if higher, the game will lag longer. --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within InstantDamageAoE[Spell_Level] of TempPoint matching (((Owner of (Matching unit)) is an enemy of Owner) Equal to True)) and do (Actions)
        • Loop - Actions
          • -------- Right Here --------
          • Unit - Cause Unit to damage (Picked unit), dealing ((Real((Intelligence of Unit (Include bonuses)))) x (Real(InstantDamage[Spell_Level]))) damage of attack type Spells and damage type Normal
      • Unit - Create 1 Spell Dummy for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Unit - Add a 0.31 second Generic expiration timer to TempUnit
      • -------- ^ Its 0.31 because having more units alive is usally more lag and this is the lowest it can get, if any lower, flamestrike will not appear, and if higher, the game will lag longer. --------
      • Unit - Set level of Fire (Neutral Hostile) for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Blood Mage - Flame Strike TempPoint
      • Floating Text - Create floating text that reads Color above Unit with Z offset 0.00, using font size Font, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Set LastText = (Last created floating text)
      • Floating Text - Set the velocity of LastText to 64.00 towards 90.00 degrees
      • Floating Text - Change LastText: Disable permanence
      • Floating Text - Change the fading age of LastText to 2.00 seconds
      • Floating Text - Change the lifespan of LastText to 4.00 seconds
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_Point)
Lightning Flash Settings
Events
Map initialization
Conditions
Actions
-------- Make sure to edit desription of spell if you change one of these! --------
-------- When Casted, Lightning does instant damage - The amount of damage is how many int you have and for every number, it doubles it --------
-------- Example: Hero's int is 50 int, and InstantDamage[1] is set to 2, the damage will be 100. --------
-------- Note: This can be changed to str/agi too, just go to the comment in Quick Lightning saying Right Here and put the action below it to (Real((str/agi of triggering unit) --------
Set InstantDamage[1] = 3
Set InstantDamage[2] = 4
Set InstantDamage[3] = 5
-------- - --------
-------- The interval damage/or anything else on the fire, you have to edit it in Object Editor (OE). --------
-------- - --------
-------- The Thunder Clap - You can edit your needs to it in Object Editor (OE) for example: Slowing down units in AoE --------
-------- v2 --------
-------- This is the AoE of the Instant Damage when it is casted. --------
Set InstantDamageAoE[1] = 200.00
Set InstantDamageAoE[2] = 300.00
Set InstantDamageAoE[3] = 400.00
-------- v3 --------
-------- Do not edit this! --------
-------- Unless they get set to wrong ability/unit. --------
-------- Spell[1] = Lightning Flash | Spell[2] = Slow | Spell[3] = Fire | --------
-------- Dummies[1] = Lightning | Dummies[2] = Spell Dummy | Dummies[3] = Lightning Ball --------
Set Spell[1] = Lightning Flash
Set Spell[2] = Slow
Set Spell[3] = Fire (Neutral Hostile)
Set Dummies[1] = Lightning
Set Dummies[2] = Spell Dummy
Set Dummies[3] = Lightning Ball
-------- You may edit down here :p --------
-------- Font Size of Lightning Flash Casted! --------
Set Font = 11.00
-------- Color of Text (In the next variable, just copy one of the codes given to change the color.) Also, dont copy the "= (Color)" if you're trying to change the color code :p --------
-------- (Example Color Codes) --------
-------- |cff32cd32Lightning Flash Casted!|r = Green --------
-------- |cffff0000Lightning Flash Casted!|r = Red --------
-------- |cff995500Lightning Flash Casted!|r = Orange --------
-------- |cffffcc00Lightning FlashCasted!|r = Yellow --------
-------- |cff7777aaLightning Flash Casted!|r = Light Blue --------
Set Color = |cff7777aaLightning Flash Casted!|r
-------- ^This is set to green at the moment (default)^ --------
-------- Lightning Flash v4 --------
-------- New!: Reduces mana of nearby enemies who get shot by the lightning. (Depends on int) --------
-------- This can be changed too just like InstantDamage to make it str/agi/int. It will say Right Here x2 for you to know where. --------
Set ManaReduction[1] = 1
Set ManaReduction[2] = 2
Set ManaReduction[3] = 3
-------- Special Effects : I reccommend you to not touch this because spell would look alot different --------
Set SpecialFX[1] = Abilities\Spells\Items\AIil\AIilTarget.mdl
Set SpecialFX[2] = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
Set SpecialFX[3] = Objects\Spawnmodels\NightElf\NEDeathMedium\NEDeath.mdl[/trigger]

  • Quick Lightning Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Make sure to edit desription of spell if you change one of these! --------
      • -------- When Casted, Lightning does instant damage - The amount of damage is how many int you have and for every number, it doubles it --------
      • -------- Example: Hero's int is 50 int, and InstantDamage[1] is set to 2, the damage will be 100. --------
      • -------- Note: This can be changed to str/agi too, just go to the comment in Quick Lightning saying Right Here and put the action below it to (Real((str/agi of triggering unit) --------
      • Set InstantDamage[1] = 3
      • Set InstantDamage[2] = 4
      • Set InstantDamage[3] = 5
      • -------- - --------
      • -------- The interval damage/or anything else on the fire, you have to edit it in Object Editor (OE). --------
      • -------- - --------
      • -------- The Thunder Clap - You can edit your needs to it in Object Editor (OE) for example: Slowing down units in AoE --------
      • -------- v2 --------
      • -------- This is the AoE of the Instant Damage when it is casted. --------
      • Set InstantDamageAoE[1] = 200.00
      • Set InstantDamageAoE[2] = 300.00
      • Set InstantDamageAoE[3] = 400.00
      • -------- v3 --------
      • -------- Do not edit this! --------
      • Set Spell[1] = Quick Lightning
      • Set Spell[2] = Slow
      • Set Spell[3] = Fire (Neutral Hostile)
      • -------- You may edit down here :P --------
      • -------- Font Size of Quick Lightning Casted! --------
      • Set Font = 11.00
      • -------- Color of Text (In the next variable, just copy one of the codes given to change the color.) Also, dont copy the "= (Color)" if you're trying to change the color code :P --------
      • -------- (Example Color Codes) --------
      • -------- |cff32cd32Quick Lightning Casted!|r = Green --------
      • -------- |cffff0000Quick Lightning Casted!|r = Red --------
      • -------- |cff995500Quick Lightning Casted!|r = Orange --------
      • -------- |cffffcc00Quick Lightning Casted!|r = Yellow --------
      • -------- |cff7777aaQuick Lightning Casted!|r = Light Blue --------
      • Set Color = |cff32cd32Quick Lightning Casted!|r
      • -------- ^This is set to green at the moment (default)^ --------
Enjoy!

---------------------------------------------------------------------

Changelog:
- Removed one of the TempPoint variables (If it only has one point variable it mysteriously doesn't do the flamestrike).
- Made flame strike and slowing faster (Magtheridon96)
- Made Instant Damage AoE depending on level
- Changed icon to reduce file size
- Stored (Triggering Unit) into a variable (Magtheridon96)
- Made dummies "Cant Raise, Does not decay" (Can't believe i forgot that one! xD) (Magtheridon96)
- That's all of it i believe, if i forgot to mention another change, please message me!
  • Quick Lightning
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Quick Lightning
    • Actions
      • Set Point = (Target point of ability being cast)
      • Set Unit = (Triggering unit)
      • Set Owner = (Owner of Unit)
      • Set Spell_Level = (Level of Quick Lightning for Unit)
      • Unit - Create 1 Lightning for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Set TempPoint = (Position of TempUnit)
      • Unit - Set level of Slow for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Mountain King - Thunder Clap
      • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit - Add a 0.30 second Generic expiration timer to TempUnit
      • -------- its 0.30 because having more units alive is usally more lag and this is the lowest it can get, if lower, it will not slow nearby enemies, and if higher, the game will lag longer. --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within InstantDamageAoE[Spell_Level] of TempPoint matching (((Owner of (Matching unit)) is an enemy of Owner) Equal to True)) and do (Actions)
        • Loop - Actions
          • -------- If you're trying to look, this is the first loop. --------
          • For each (Integer Loop) from 1 to InstantDamage[Spell_Level], do (Actions)
            • Loop - Actions
              • Unit - Cause Unit to damage (Picked unit), dealing (Real((Intelligence of Unit (Include bonuses)))) damage of attack type Spells and damage type Normal
      • Unit - Create 1 Spell Dummy for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Unit - Add a 0.31 second Generic expiration timer to TempUnit
      • -------- ^ Its 0.31 because having more units alive is usally more lag and this is the lowest it can get, if any lower, flamestrike will not appear, and if higher, the game will lag longer. --------
      • Unit - Set level of Fire (Neutral Hostile) for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Blood Mage - Flame Strike TempPoint
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_Point)
  • Quick Lightning Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Make sure to edit desription of spell if you change one of these! --------
      • -------- When Casted, Lightning does instant damage - The amount of damage is how many int you have and for every number, it doubles it --------
      • -------- Example: Hero's int is 50 int, and InstantDamage[1] is set to 2, the damage will be 100. --------
      • -------- Note: This can be changed to str/agi too, just edit the first loop in the trigger Quick Lightning and put it to (Real((str/agi of triggering unit) --------
      • Set InstantDamage[1] = 3
      • Set InstantDamage[2] = 4
      • Set InstantDamage[3] = 5
      • -------- - --------
      • -------- The interval damage/or anything else on the fire, you have to edit it in Object Editor (OE). --------
      • -------- - --------
      • -------- The Thunder Clap - You can edit your needs to it in Object Editor (OE) for example: Slowing down units in AoE --------
      • -------- v2 --------
      • -------- This is the AoE of the Instant Damage when it is casted. --------
      • Set InstantDamageAoE[1] = 200.00
      • Set InstantDamageAoE[2] = 300.00
      • Set InstantDamageAoE[3] = 400.00
Hope you like the spell! ~xIceShotx


--------------------------------------------------------------------------------------
  • Quick Lightning
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Quick Lightning
    • Actions
      • Set Point = (Target point of ability being cast)
      • Set Owner = (Owner of (Triggering unit))
      • Set Spell_Level = (Level of Quick Lightning for (Triggering unit))
      • Unit - Create 1 Lightning for Owner at Point facing Default building facing degrees
      • Set TempUnit = (Last created unit)
      • Set TempPoint0 = (Position of TempUnit)
      • Unit - Set level of Slow for TempUnit to Spell_Level
      • Unit - Order TempUnit to Human Mountain King - Thunder Clap
      • Special Effect - Create a special effect at TempPoint0 using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit - Add a 0.30 second Generic expiration timer to TempUnit
      • -------- its 0.30 because having more units alive is usally more lag and this is the lowest it can get, if lower, it will not slow nearby enemies, and if higher, the game will lag longer. --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 300.00 of TempPoint0 matching (((Owner of (Matching unit)) is an enemy of Owner) Equal to True)) and do (Actions)
        • Loop - Actions
          • -------- If you're trying to look, this is the first loop. --------
          • For each (Integer Loop) from 1 to InstantDamage[Spell_Level], do (Actions)
            • Loop - Actions
              • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (Real((Intelligence of (Triggering unit) (Include bonuses)))) damage of attack type Spells and damage type Normal
      • Custom script: call RemoveLocation(udg_TempPoint0)
      • Unit - Create 1 Spell Dummy for Owner at Point facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_Point)
      • Set TempUnit = (Last created unit)
      • Set TempPoint = (Position of TempUnit)
      • Unit - Add a 0.31 second Generic expiration timer to TempUnit
      • Unit - Set level of Fire (Neutral Hostile) for TempUnit to Spell_Level
      • -------- its 0.31 because having more units alive is usally more lag and this is the lowest it can get, if any lower, flamestrike will not appear, and if higher, the game will lag longer. --------
      • Unit - Order TempUnit to Human Blood Mage - Flame Strike TempPoint
      • Custom script: call RemoveLocation(udg_TempPoint)

  • Quick Lightning Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Make sure to edit desription of spell if you change one of these! --------
      • -------- When Casted, Lightning does instant damage - The amount of damage is how many int you have and for every number, it doubles it --------
      • -------- Example: Hero's int is 50 int, and InstantDamage[1] is set to 2, the damage will be 100. --------
      • -------- Note: This can be changed to str/agi too, just edit the first loop in the trigger Quick Lightning and put it to (Real((str/agi of triggering unit) --------
      • Set InstantDamage[1] = 3
      • Set InstantDamage[2] = 4
      • Set InstantDamage[3] = 5
      • -------- - --------
      • -------- The interval damage/or anything else on the fire, you have to edit it in Object Editor (OE). --------
      • -------- - --------
      • -------- The Thunder Clap - You can edit your needs to it in Object Editor (OE) for example: Slowing down units in AoE --------
Keywords:
Quick, Lightning, Spell, Skill, Fast, Thunder, Clap, Flame, Strike, xIceShotx, AoE, Fire, Periodically, Mana, Reduction, Power, Gain.
Contents

Just another Warcraft III map (Map)

Reviews
13 Dec 2011 Bribe: Actually, even with that room for improvement I think the spell is cool. Changed from "Useful" to "Recommended". You've made some good changes but there are areas that you could still work on. For example, the number of dummy...

Moderator

M

Moderator

13 Dec 2011
Bribe: Actually, even with that room for improvement I think the spell is cool. Changed from "Useful" to "Recommended".

You've made some good changes but there are areas that you could still work on. For example, the number of dummy units created (the should be configurable).

You don't need to set the TempUnit variable, (Last created unit) is find here.

(Owner of Unit) could be set to a TempPlayer var before entering the loop.

Rather than using a (Matching conditions) group filter, just use an if/then/else block inside the loop - actions block. This makes it easier to customize as well as improving readability and efficiency.
 
Simple, but fine.

You should store (Triggering unit) in a variable to increase efficiency. Use it afterwards instead of repeatedly calling the same function over and over again.

Also, you don't need TempPoint or TempPoint0.

  • Set TempPoint0 = (Position of TempUnit)
That would be the same as Point since you know the unit is being created at Point.

Also, you aren't using Point anymore after you started using TempPoint, so you might as well remove it and set it to that Position.

Actually, on second thought, all those locations point to the same place >_>

Just set Point to the position of the spell and don't set anymore locations.
Then use Point wherever you use TempPoint or TempPoint0
You'd remove the location Point at the end of the trigger.

  • -------- its 0.31 because having more units alive is usally more lag and this is the lowest it can get, if any lower, flamestrike will not appear, and if higher, the game will lag longer. --------
Or you can create a dummy unit with no model, order him to cast the spell, and create a special effect with the Flamestrike model.

  • -------- its 0.30 because having more units alive is usally more lag and this is the lowest it can get, if lower, it will not slow nearby enemies, and if higher, the game will lag longer. --------
You can solve this by setting the casting backswings and animation times in the Object editor for that dummy unit to 0.

edit
Also, you shouldn't use imports like that. They're useless. All they do is increase the file-size.
You should only use imports if you really have to. (Like if there are no other effects that are compatible with your spell or something)


Could use improvements, but it will be fine after that.
 
Level 7
Joined
Aug 31, 2011
Messages
125
Simple, but fine.

You should store (Triggering unit) in a variable to increase efficiency. Use it afterwards instead of repeatedly calling the same function over and over again.

Also, you don't need TempPoint or TempPoint0.

  • Set TempPoint0 = (Position of TempUnit)
That would be the same as Point since you know the unit is being created at Point.

Also, you aren't using Point anymore after you started using TempPoint, so you might as well remove it and set it to that Position.

Actually, on second thought, all those locations point to the same place >_>

Just set Point to the position of the spell and don't set anymore locations.
Then use Point wherever you use TempPoint or TempPoint0
You'd remove the location Point at the end of the trigger.

  • -------- its 0.31 because having more units alive is usally more lag and this is the lowest it can get, if any lower, flamestrike will not appear, and if higher, the game will lag longer. --------
Or you can create a dummy unit with no model, order him to cast the spell, and create a special effect with the Flamestrike model.

  • -------- its 0.30 because having more units alive is usally more lag and this is the lowest it can get, if lower, it will not slow nearby enemies, and if higher, the game will lag longer. --------
You can solve this by setting the casting backswings and animation times in the Object editor for that dummy unit to 0.

edit
Also, you shouldn't use imports like that. They're useless. All they do is increase the file-size.
You should only use imports if you really have to. (Like if there are no other effects that are compatible with your spell or something)


Could use improvements, but it will be fine after that.


thx for opinion :p

Or you can create a dummy unit with no model, order him to cast the spell, and create a special effect with the Flamestrike model.
Well, what i meant is that usually dummies cant use spells instantly and if the expiration timer is lower, the dummy isnt able to cast the spell :p
 
Last edited:
xIceShotx said:
Well, what i meant is that usually dummies cant use spells instantly and if the expiration timer is lower, the dummy isnt able to cast the spell :p

--->

Magtheridon96 said:
You can solve this by setting the casting backswings and animation times in the Object editor for that dummy unit to 0.

edit

Ima wait a while to update just incase there should be more changes to the spell, i mean like, might as well update the spell with alot of changes :p

While you're at it, make sure your dummies' death types are:
Can't raise, Doesn't decay

And fix the position of the Spell Icon so that it appears in the coordinates (0, 2)
 
Level 7
Joined
Aug 31, 2011
Messages
125
While you're at it, make sure your dummies' death types are:
Can't raise, Doesn't decay
Wow! I hardly ever forget to change it to that! I am soo surprised i forgot xD

edit
You can solve this by setting the casting backswings and animation times in the Object editor for that dummy unit to 0.

Okay, i agree with the slowingSlowing spell once spell is casted for this, if you're talking about the flame strike too, wouldn't it look better the way it is right now?

edit
Just another question :p
See the variable Owner? Should i change it to a unit variable making it triggering unit? or just create 2 variables?
 
Last edited:
Okay, i agree with the slowing for this, but if you're talking about the flame strike too, wouldn't it look better the way it is right now?

It would pretty much look the same, but the effect may look slightly smaller (I think)

The most important things in code:
- Functionality
- Efficiency
- Readability
- Usability
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
Remove loopPoint variable, use TempPoint instead.
Filter out dead units from being damaged.
You could calculate the damage/mana burn outside the unit group loop, so you calculate them only once.
The dummies could give less vision.
Art - Cast point defines the delay between receiving and order an casting the spell. The dummy's cast point is 0.3, that is why the minimum expiration time must be 0.31 seconds for you. Set the cast point to 0 for instant cast.
Make the floating text optional. If only one spell in a game produces floating text, it can look awkward.

Good job with the spell. Looks good to me.
 
Level 7
Joined
Aug 31, 2011
Messages
125
Updating to v5 even though its approved xD
It could still have room for improvements like bribe said.
Edit - Sorry for the huge delay, i was trying to find additional options that can be added to the spell, and i think i finished it!, now i will be uploading the new version ;D

---------------------------
Updated!, v5: I know my spell got approved already with a 4/5 rating from v4, but i figured that there are many new options i can do :D
[rainbow]The new trigger is like 3x longer than v4 xD, with many more features!, check changelog/description/triggers to see!
[/rainbow]
Move mouse cursor to black area to see message ;)
 
Last edited:
Level 2
Joined
Jan 16, 2012
Messages
7
Good work,

I think I am to stupid to do the import without errors. Maybe you can help me:

I have the three spell units, the ball, the two buffs and the abilities, but it doesn't work. The unit who spell this, make their usual attack movement and nothing happens
 
Level 7
Joined
Aug 31, 2011
Messages
125
Good work,

I think I am to stupid to do the import without errors. Maybe you can help me:

I have the three spell units, the ball, the two buffs and the abilities, but it doesn't work. The unit who spell this, make their usual attack movement and nothing happens

woah, ive been gone for about 2 months or higher, sorry i couldnt reply, can you maby link a downloadable version of your map? only if you didn't get it to work though
 
Last edited:
Top