• 🏆 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 Wave v1.4

  • Like
Reactions: baassee
Oooops, deleted it by mistake :p wanted to subscribe =)
Anyway here we go again. I guess this spell okay but i think it would need something more, i don't know what exactly but it's kinda simple... Let's say it's a fully controllable Wave Spell (Carrion Swarm...)


Sends a giant lighting wave towards targeted point, while reaching the end it gains power, becoming bigger and damaging units within its range by 10, 20, 30 damage. If unit will have less then 150 of it's full hp it'll explode and deal 100, 200, 300 damage to nearby units.



  • Lightning Wave Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- ----------------------------- --------
      • -------- Now it's time for a small system --------
      • -------- We check in it if the tree that we must destroy is a tree, not a bridge! --------
      • -------- So the Peasant (Dummy) will be ordered to harvest picked detructible, if it's harvestable - it's a tree --------
      • -------- Credits for this go to D4RK_G4ND4LF --------
      • -------- ----------------------------- --------
      • Set LW_Point2 = (Point(0.00, 0.00))
      • Unit - Create 1 Peasant for Neutral Passive at LW_Point2 facing Default building facing degrees
      • Unit - Hide (Last created unit)
      • Unit - Make (Last created unit) Invulnerable
      • Set LW_Dummy = (Last created unit)
      • Custom script: call RemoveLocation(udg_LW_Point2)
      • -------- ----------------------------- --------
      • -------- Number of lightning --------
      • -------- ----------------------------- --------
      • Set LW_Count = 6
      • -------- --------------------------------------------------------------------------------------- --------
      • -------- Some settings for the wave formula --------
      • -------- DO NOT TOUCH!!! --------
      • -------- ----------------------------- --------
      • Custom script: set udg_LW_Multiplier = 15.00 //the difference in angle between each effect
      • Custom script: set udg_LW_Angle2 = ( udg_LW_Multiplier * udg_LW_Count ) //maximum angle of wave
      • Custom script: set udg_LW_Angle2Saved = udg_LW_Angle2 //used in loop trigger to check when we need to recycle angle
      • -------- --------------------------------------------------------------------------------------- --------
      • -------- Effect of damaged unit --------
      • -------- ----------------------------- --------
      • Set LW_Effect1 = Abilities\Weapons\Bolt\BoltImpact.mdl
      • -------- --------------------------------------------------------------------------------------- --------
      • -------- Effect of exploded unit --------
      • -------- ----------------------------- --------
      • Set LW_Effect2 = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
      • -------- ----------------------------- --------
      • -------- Speed of lightning wave --------
      • -------- ----------------------------- --------
      • Set LW_Speed = 15.00
      • -------- ----------------------------- --------
      • -------- Speed of spreading aoe of lightning wave --------
      • -------- ----------------------------- --------
      • Set LW_Speed2 = 50.00
      • -------- ----------------------------- --------
      • -------- AoE of damage near the effect in wave --------
      • -------- ----------------------------- --------
      • Set LW_AoE2 = 100.00
      • -------- ----------------------------- --------
      • -------- AoE of explosion --------
      • -------- ----------------------------- --------
      • Set LW_AoE3 = 300.00
      • -------- ----------------------------- --------
      • -------- Height of lightning --------
      • -------- ----------------------------- --------
      • Set LW_Z1 = 75.00
  • Lightning Wave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Lightning Wave [|c0020c000G|r]
    • Actions
      • -------- ----------------------------- --------
      • -------- Indexing --------
      • -------- ----------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • LW_Index1 Equal to 0
        • Then - Actions
          • Trigger - Turn on Lightning Wave Loop <gen>
        • Else - Actions
      • Set LW_Index1 = (LW_Index1 + 1)
      • Set LW_Index2 = (LW_Index2 + 1)
      • -------- ----------------------------- --------
      • -------- Caster --------
      • -------- ----------------------------- --------
      • Set LW_Caster[LW_Index2] = (Triggering unit)
      • -------- ----------------------------- --------
      • -------- Damage amount of wave --------
      • -------- ----------------------------- --------
      • Set LW_Damage1[LW_Index2] = (Real(((Level of (Ability being cast) for LW_Caster[LW_Index2]) x 10)))
      • -------- ----------------------------- --------
      • -------- Damage of explosion --------
      • -------- ----------------------------- --------
      • Set LW_Damage2[LW_Index2] = (Real(((Level of (Ability being cast) for LW_Caster[LW_Index2]) x 100)))
      • -------- ----------------------------- --------
      • -------- Points --------
      • -------- ----------------------------- --------
      • Set LW_Point1[LW_Index2] = (Position of LW_Caster[LW_Index2])
      • Set LW_Point2 = (Target point of ability being cast)
      • -------- ----------------------------- --------
      • -------- Calculating distance and angle --------
      • -------- ----------------------------- --------
      • Set LW_Distance[LW_Index2] = (Distance between LW_Point1[LW_Index2] and LW_Point2)
      • Set LW_Angle1[LW_Index2] = (Angle from LW_Point1[LW_Index2] to LW_Point2)
      • Set LW_Real1[LW_Index2] = ((LW_Angle1[LW_Index2] - (LW_Multiplier x 2.00)) - (LW_Angle2Saved / (Real(LW_Count))))
      • -------- ----------------------------- --------
      • -------- Clearing leaks --------
      • -------- ----------------------------- --------
      • Custom script: call RemoveLocation(udg_LW_Point2)
  • Lightning Wave Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer LW_Index3) from 1 to LW_Index2, do (Actions)
        • Loop - Actions
          • -------- ----------------------------- --------
          • -------- Now we need another value to calculate the next point since i don't use dummies here --------
          • -------- ----------------------------- --------
          • Set LW_CurrentDistance[LW_Index3] = (LW_CurrentDistance[LW_Index3] + LW_Speed)
          • -------- ----------------------------- --------
          • -------- Setting point --------
          • -------- I will clear the point1 at the end since i need it --------
          • -------- ----------------------------- --------
          • Set LW_Point2 = (LW_Point1[LW_Index3] offset by LW_CurrentDistance[LW_Index3] towards LW_Angle1[LW_Index3] degrees)
          • -------- ----------------------------- --------
          • -------- Now it's time for AoE of the wave --------
          • -------- We will increase every time it travels, like breath of fire --------
          • -------- ----------------------------- --------
          • Set LW_AoE1[LW_Index3] = (LW_AoE1[LW_Index3] + LW_Speed2)
          • -------- ----------------------------- --------
          • -------- Creating effects, damaging units and something else... --------
          • -------- ----------------------------- --------
          • For each (Integer LW_Integer[LW_Index3]) from 1 to LW_Count, do (Actions)
            • Loop - Actions
              • -------- ----------------------------- --------
              • -------- Check if lightning is created, if so we destroy it --------
              • -------- ----------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LW_Check[LW_Integer[LW_Index3]] Equal to True
                • Then - Actions
                  • Lightning - Destroy LW_Lightning[LW_Integer[LW_Index3]]
                  • Set LW_Check[LW_Integer[LW_Index3]] = False
                • Else - Actions
              • -------- ----------------------------- --------
              • -------- Calculating right angle where we spawn effects --------
              • -------- ----------------------------- --------
              • Set LW_Real2 = (LW_Real2 + LW_Multiplier)
              • -------- ----------------------------- --------
              • -------- Setting point --------
              • -------- ----------------------------- --------
              • Set LW_Point3 = (LW_Point2 offset by LW_AoE1[LW_Index3] towards (LW_Real1[LW_Index3] + LW_Real2) degrees)
              • -------- ----------------------------- --------
              • -------- Lightning effects --------
              • -------- ----------------------------- --------
              • Set LW_XY = (Position of LW_Caster[LW_Index3])
              • -------- set udg_LW_Z2 = GetUnitFlyHeight(udg_LW_Caster[udg_LW_Index3]) --------
              • -------- Copy ^^ this into a line under this to add more realistic effect of height --------
              • Custom script: set udg_LW_Z2 = 50
              • Custom script: set udg_LW_Lightning[udg_LW_Integer[udg_LW_Index3]] = AddLightningEx( "FORK" , true, GetLocationX(udg_LW_XY), GetLocationY(udg_LW_XY), udg_LW_Z2, GetLocationX(udg_LW_Point3), GetLocationY(udg_LW_Point3), udg_LW_Z1)
              • Set LW_Check[LW_Integer[LW_Index3]] = True
              • -------- ----------------------------- --------
              • -------- Clearing leaks --------
              • -------- ----------------------------- --------
              • Custom script: call RemoveLocation(udg_LW_XY)
              • -------- ----------------------------- --------
              • -------- Destroy Trees --------
              • -------- System by D4RK_G4ND4LF --------
              • -------- ----------------------------- --------
              • Destructible - Pick every destructible within LW_AoE2 of LW_Point3 and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Current life of (Picked destructible)) Greater than 0.00
                    • Then - Actions
                      • Unit - Order LW_Dummy to Harvest (Picked destructible)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Current order of LW_Dummy) Equal to (Order(harvest))
                        • Then - Actions
                          • Destructible - Kill (Picked destructible)
                        • Else - Actions
                          • Unit - Order LW_Dummy to Stop
                    • Else - Actions
              • -------- ----------------------------- --------
              • -------- Group that we must deal damage to or explode --------
              • -------- ----------------------------- --------
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within LW_AoE2 of LW_Point3 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 LW_Caster[LW_Index3])) Equal to True)))) and do (Actions)
                • Loop - Actions
                  • -------- ----------------------------- --------
                  • -------- If we explode unit set how much hp he must have to get exploded --------
                  • -------- I've chosen 150 hp --------
                  • -------- ----------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Life of (Picked unit)) Less than or equal to 150.00
                    • Then - Actions
                      • -------- ----------------------------- --------
                      • -------- Effect --------
                      • -------- ----------------------------- --------
                      • Special Effect - Create a special effect attached to the origin of (Picked unit) using LW_Effect2
                      • Special Effect - Destroy (Last created special effect)
                      • -------- ----------------------------- --------
                      • -------- Kill the unit --------
                      • -------- ----------------------------- --------
                      • Unit - Cause LW_Caster[LW_Index3] to damage (Picked unit), dealing 100000000.00 damage of attack type Chaos and damage type Universal
                      • -------- ----------------------------- --------
                      • -------- Setting point of exploded unit --------
                      • -------- ----------------------------- --------
                      • Set LW_Point4 = (Position of (Picked unit))
                      • -------- ----------------------------- --------
                      • -------- Damage units nearby exploded unit --------
                      • -------- ----------------------------- --------
                      • Custom script: set bj_wantDestroyGroup = true
                      • Unit Group - Pick every unit in (Units within LW_AoE3 of LW_Point4 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 LW_Caster[LW_Index3])) Equal to True)))) and do (Actions)
                        • Loop - Actions
                          • Unit - Cause LW_Caster[LW_Index3] to damage (Picked unit), dealing LW_Damage2[LW_Index3] damage of attack type Chaos and damage type Universal
                      • -------- ----------------------------- --------
                      • -------- Clearing leaks --------
                      • -------- ----------------------------- --------
                      • Custom script: call RemoveLocation(udg_LW_Point4)
                    • Else - Actions
                      • -------- ----------------------------- --------
                      • -------- Damaging units --------
                      • -------- ----------------------------- --------
                      • Unit - Cause LW_Caster[LW_Index2] to damage (Picked unit), dealing LW_Damage1[LW_Index3] damage of attack type Spells and damage type Normal
                      • -------- ----------------------------- --------
                      • -------- Effect --------
                      • -------- ----------------------------- --------
                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using LW_Effect1
                      • Special Effect - Destroy (Last created special effect)
              • -------- ----------------------------- --------
              • -------- Clearing leaks --------
              • -------- ----------------------------- --------
              • Custom script: call RemoveLocation(udg_LW_Point3)
              • -------- ----------------------------- --------
              • -------- Recycling --------
              • -------- ----------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LW_Real2 Greater than or equal to LW_Angle2Saved
                • Then - Actions
                  • Set LW_Real2 = 0.00
                • Else - Actions
          • -------- ----------------------------- --------
          • -------- Clearing leaks --------
          • -------- ----------------------------- --------
          • Custom script: call RemoveLocation(udg_LW_Point2)
          • -------- ----------------------------- --------
          • -------- If wave reaches end we turn of trigger --------
          • -------- ----------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LW_CurrentDistance[LW_Index3] Greater than or equal to (LW_Distance[LW_Index3] / 4.00)
            • Then - Actions
              • Set LW_Index1 = (LW_Index1 - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LW_Index1 Equal to 0
                • Then - Actions
                  • -------- ----------------------------- --------
                  • -------- Destroy the last lightning --------
                  • -------- ----------------------------- --------
                  • For each (Integer LW_Integer[LW_Index3]) from 1 to LW_Count, do (Actions)
                    • Loop - Actions
                      • Lightning - Destroy LW_Lightning[LW_Integer[LW_Index3]]
                  • -------- ----------------------------- --------
                  • -------- Recycling --------
                  • -------- ----------------------------- --------
                  • Set LW_Index2 = 0
                  • Set LW_CurrentDistance[LW_Index3] = 0.00
                  • Set LW_AoE1[LW_Index3] = 0.00
                  • -------- ----------------------------- --------
                  • -------- Clearing leaks --------
                  • -------- ----------------------------- --------
                  • Custom script: call RemoveLocation(udg_LW_Point1[udg_LW_Index3])
                  • -------- ----------------------------- --------
                  • -------- Well i'm sure you know what comes next --------
                  • -------- ----------------------------- --------
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
If you have any suggestion feel free to tell also rate and comment. If you use it give credits!

Changelog

-07.05.2011 21:03 - reuploaded;
-08.05.2011 12:13 - made variable Point1 into array;
converted two line s into JASS to be more efficient;
-08.05.2011 21:56 - removed conversion where LW_Multipier is multiplied by LW_Count;
-changed the damage variables to real;
-no longer bridges will be destroyed;
-changed few things in ability in OE;
-09.05.2011 13:38 - converted two lines back to GUI;
-removed the target effect (monsoon);
-10.05.2011 16:13 - changed the formula a bit;
changed the effect of wave from special effect to lightning.
+2 GMT!!!

For help thanks to Magtheridon96, Maker, Pharaoh_ and D4RK_G4ND4LF for system.

Keywords:
lightning, wave, storm, thunder, breath, chain, guess that's all
Contents

Lightning Wave (Map)

Reviews
Bribe: For the revive trigger: Avoid ((Owner of (Dying unit)) in favor of (Triggering player) Avoid (Dying unit) in favor of (Triggering unit) - Though these have nothing to do with the import of the spell so I don't count them...

Moderator

M

Moderator

Bribe:

For the revive trigger:

Avoid ((Owner of (Dying unit)) in favor of (Triggering player)

Avoid (Dying unit) in favor of (Triggering unit)

- Though these have nothing to do with the import of the spell so I don't count them.

"-------- Converted into JASS, cuz Magtheridon96 said: "They're pretty efficient in JASS :D" :p No problem then. --------"

Actually the custom scripts you chose would have been exactly the same as the GUI equivelant, so this grievance could have been avoided.

The special effects are very heavy in this spell and cause my computer to lag when cast. If you created half as many it would be approvable I think, because the effect does look neat.

Maker, v1.4, 14.07.2011
Approved. However you could create less thunder claps and the tooltip could be a bit more standard.
 
  • Set LW_Distance[LW_Index2] = (Distance between LW_Point1 and LW_Point2)
    • Set LW_Angle1[LW_Index2] = (Angle from LW_Point1 to LW_Point2)
This is highly optional: If you want to make your code look better, you could do these
in custom script :) They're pretty efficient in JASS :D
----

Also, you leak Point1 (You're only destroying one of it's instances in the loop trigger)
 
Level 12
Joined
Apr 16, 2010
Messages
584
Magtheridon96 said:
Also, you leak Point1 (You're only destroying one of it's instances in the loop trigger)
Emm, what you mean by that? Should i create in loop trigger again or...?
And with the first thing, if it doesn't really matters then i'll update later.

Edit: well maybe i should make the point an array then?
 
Last edited:
Level 12
Joined
Apr 16, 2010
Messages
584
Okay then, but i'm sure that Adiktuz, Bribe, baassee (as always :p) will tell me that using arrays is bad since they need more memory...
Updating...

Edit: update canceled, going to bed, I'll update in about 10 hours, for now you have a chance to reveal more surprises (leaks, bugs...).
 
Last edited:
Using arrays is actually needed when using an indexing system :p

When you're using arrays like this:

Set loc[1] = bla
Set loc[2] = blabla

It's bad.

You should only use arrays in 2 cases:
-When you need about 10-8000 instances of something (Especially in most recipe systems in which about 80-120 instances are required)
-When you have an indexing system.
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
Make the learn tooltip more like in standard Blizz abilities.
Make learned tooltip list the stats of the current level, not for other levels.
Chance the learn position of the tooltip to (0,0).
You don't need I2R here:
  • Custom script: set udg_LW_Angle2 = udg_LW_Multiplier * udg_LW_Count //maximum angle of wave
Why are LW_Damage variables integers? They should be reals.
The spell destroys bridges also for example.
You're doing the actions for instances that are already over. You could use a boolean to prevent that.
Is there no follow through time on purpose?
I think you should set disable other abilities to false.

In my opinion you don't need to write GUI lines in JASS. Ofcourse the can be better since BJ's can be skipped. But this is a GUI spell so using GUI is ok. You should've kept the two lines in GUI.

The spell is MUI and doesn't leak. Triggering is good.
 
Level 12
Joined
Apr 16, 2010
Messages
584
Maker said:
Make the learn tooltip more like in standard Blizz abilities.
Make learned tooltip list the stats of the current level, not for other levels.
Chance the learn position of the tooltip to (0,0).
maker you know how i feel about that! I don't really care because everyone needs their tooltips in another ways, so what's the point?
Maker said:
You don't need I2R here:
  • Custom script: set udg_LW_Angle2 = udg_LW_Multiplier * udg_LW_Count //maximum angle of wave
Well i added this because LW_Angle2 is real so real * real looks better) but i'll remove conversion.
Maker said:
Why are LW_Damage variables integers? They should be reals.
Changing!
Maker said:
The spell destroys bridges also for example.
Well need help on this one, since their's no boolean to check whether the destructible is tree or not...
Maker said:
You're doing the actions for instances that are already over. You could use a boolean to prevent that.
What actions exactly?
Maker said:
Is there no follow through time on purpose?
Could you tell where's a difference? I mean why it should be 180?
Maker said:
I think you should set disable other abilities to false.
Right, forgot about that.
Maker said:
In my opinion you don't need to write GUI lines in JASS. Ofcourse the can be better since BJ's can be skipped. But this is a GUI spell so using GUI is ok. You should've kept the two lines in GUI.
Well i guess if it doesn't matters all is okay.
Maker said:
The spell is MUI and doesn't leak. Triggering is good.
Thank you!

Edit: Updated, but not all.
 
Last edited:
Level 12
Joined
Apr 16, 2010
Messages
584
Bribe said:
For the revive trigger:

Avoid ((Owner of (Dying unit)) in favor of (Triggering player)

Avoid (Dying unit) in favor of (Triggering unit)

- Though these have nothing to do with the import of the spell so I don't count them.
Oh i can't believe you fell for this :p I can't put sarcasm tags in comments man, right? hahaha, i just had a funny day that night, still do...
Bribe said:
Actually the custom scripts you chose would have been exactly the same as the GUI equivelant, so this grievance could have been avoided.
Okay will convert back.
Bribe said:
The special effects are very heavy in this spell and cause my computer to lag when cast. If you created half as many it would be approvable I think, because the effect does look neat.
Could you suggest me something here? Maybe remove the monsoon target effect?
 
Level 12
Joined
Apr 16, 2010
Messages
584
nothing to say, you're trolling because you told me nothing what to improve with the spell! You told me nothing knew since i told in description the spell really need something else, but what... So read the description of spell before posting, and btw Bribe and Maker already said that. Relax i'm not challenging you... uhm... And don't be so self confident. Emm this is getting off topic!
 
Stanley, no offense, but you sound like you are either 12 years old or way too sensitive for your age.
Telling you what is wrong with something is to help it. You can't fix something without being told what is wrong with it.
You don't know what trolling is, so don't accuse me of trolling. If you prefer to act like a child, then go ahead and pretend in your la-la-land that everything you make is perfect, while everyone else improves their work because they pay attention when someone points out a fault, and they fix it.
 
Level 12
Joined
Apr 16, 2010
Messages
584
[off topic]But you didn't tell anything what is wrong man, or i missed it... And i'm not sensitive, i'm a party guy =) And surely i do know what is trolling, believe i've seen enough trolls here on hive... Well i don't act like a child but i'm always laughing! Laughter is life! Try it and your gf will love it =) And i'm kinda sorry for my first post to you that day i was a little angry since i had to fly abroad and my flight was delayed... (da*n!)
[on topic]So tell me what could i improve, but within acceptable, since this is just fully controllable wave spell, not some fancy spell.
 
If I didn't say anything that was wrong, with it, what are you upset about? You are making up excuses left and right. I pointed out exactly what the issue was.
And if you call this trolling, you are just too damn sensitive, because this isn't trolling.
As I said before, the problem with your spell is that it is simply an overdose of special effects. It doesn't actually look like a wave, because all of the lightning effects are a ground shock (the lightning originates from the ground and moves upward, not outward, resulting in it really not looking like a wave, especially when the shocks are distinctly seperate)
If you want it to look like a wave of lightning, you're going to have to completely remake the entire spell using a different special effect and spreading it in a different way. Sorry, but that's what needs to be done to improve this spell.
If you take offense to me telling you how to improve your spell, simply because you want to believe it is perfect, then that's just too bad. Your spell will rot away if you don't improve it simply from a bit of pride... You need to remember, almost EVERYONE's uploads aren't perfect at first, they are usually fixed after upload when the creator reads the comments about what is wrong with whatever he made.
 
Level 12
Joined
Apr 16, 2010
Messages
584
[off topic]I never said that my spell is perfect and i actually asked for help in description, if i didn't ask then it would be perfect. And actually i said sorry, what else you want to hear? (if you weren't sensitive you'd stop posting ages ago.) ... And you're the one who's been sensitive, not me, i'm not that kind of person, i don
t get upset by something that doesn't matters. So deal with it - you cannot upset me. Okay then i'll be changing the spell now... Topic closed already? Hopefully yeah.
[on topic] Updating... But not uploading, since i fully remaking wave formula and kinda got few issues=) Well, i'll solve them soon enough, guess. So for this one in here is, mmm, lets say beta version.
 
Stanley, you really need to learn to simply accept the criticism, because this entire conversation was because you insisted my first post was trolling, and then you continued to call me a troll. Let's look back at the first post by me, and see "is that trolling".
And then you pull the 5-year-old stunt: "i know you are but what am i"
As for the lightning, if you want it to appear as a blast, I suggest having multiple chain lightning effects originate from the caster and spread outward, occasionally bouncing from unit-to-unit but not changing it's angle of movement more than 15 degrees to hit a unit, to maintain the outward movement.
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
This is basically just an overuse of special effects in a simple and repetitive trigger... It really isn't usable.

I don't see the constructive critisism in this comment. Sorry.

Okay then, but i'm sure that Adiktuz, Bribe, baassee (as always :p) will tell me that using arrays is bad since they need more memory...

Damn straight that I do.

Using arrays is actually needed when using an indexing system :p

When you're using arrays like this:

Set loc[1] = bla
Set loc[2] = blabla

It's bad.

You should only use arrays in 2 cases:
-When you need about 10-8000 instances of something (Especially in most recipe systems in which about 80-120 instances are required)
-When you have an indexing system.

No it's not as it's only two locations and besides your cases arent relevant, recipe system? And I have never seen anyone used ten locations with arrays (that would be pretty overkill).

Indexing system? What are you refering to?

The only thing that you should use arrayed locations to is for storing a point that is going to be used the next period (or a period ahead) and never for temporary locations. And that is what Stanley is doing here.

Sorry if anything of the things I wrote offended anyone above... Or if you have changed things, I just read the comments.

Despite this, the spell.

The level should be stored into a temporary integer variable to get rid of two calls (I2R and GetUnitAbilityLevelSwap(Swap is a BJ btw which contains 1 more call so it's actually 3 calls saved))

Shouldn't LW_Count be an arrayed variable that should increase along with the spell's level? Seems cooler to me. (No need to change though)

Why is
  • set udg_LW_Z2 = 50
in custom script? It's the equal in GUI.

Picked Unit should really be stored into a temporary Unit variable.

WTF?! Overpowered? Make an option to make it possible to not allow Heroes into this explosion thingie
  • Unit - Cause LW_Caster[LW_Index3] to damage (Picked unit), dealing 100000000.00 damage of attack type Chaos and damage type Universal
And btw 150.00 hp should be changeable and stored into an arrayed variable.

I'm not sure why you are creating and destroying lightnings 33 times a second? Seems stupid to me or? You can always create them at the start and use the native call MoveLightningEx (I think it got the same parameters as well) (Btw this is why Bribe is experiencing lagg)

Also despite destroying and creating, you aren't taking in the height of the ground so correct me if I'm wrong but does it look stupid if the lightning is created between two different terrain points? Can easily be solved with a GetLocationZ(thelocation) + yourheightvariable.

Anyway I like your ideas and the execution.
 
Level 12
Joined
Apr 16, 2010
Messages
584
baassee said:
Why is
set udg_LW_Z2 = 50
in custom script? It's the equal in GUI.
That's because i wrote this "-------- Copy ^^ this into a line under this to add more realistic effect of height --------
" and for some users it will be easier just to replace the text in custom script, for newbie ones :p

baassee said:
The level should be stored into a temporary integer variable to get rid of two calls (I2R and GetUnitAbilityLevelSwap(Swap is a BJ btw which contains 1 more call so it's actually 3 calls saved))
will do!

baassee said:
Picked Unit should really be stored into a temporary Unit variable.
Could you tell me why?

Yeah, i think destroying is kinda stupid, so okay i'll create few on the start and then just will move.
Will update later, going outside, now...
Thanks for the review!
 
Top