Lightning Effects in Loop

Seannny

Why GUI when you can Jass?
Reaction score
46
So ive got a spell where the hero slams the ground, causing damage to all units within a certain range take damage, get a lightning effect on them, then have chain lightning (using the Lightning) to go from the hero to the target

Everything is fine but i want to know how to get the chain lightning to go from the hero to the target, and then be destroyed so it doesnt stay all game, keep in mind that im trying to make this MUI and it is in a loop, so waits wont work.

When i try and create and destroy the lightning effect, it doesnt even appear.

any ideas?
 

WolfieeifloW

WEHZ Helper
Reaction score
372
You'll have to customize it a little.
waitTime - Real
Trigger:
  • Lite Init
    • Events
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set lastEffect[intA] = (Last created lightning effect)
          • Set intA = (intA + 1)
      • Trigger - Turn on Lite Destroy <gen>

Trigger:
  • Lite Destroy
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Set waitTime = (waitTime + 0.01)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • waitTime Greater than or equal to (>=) 3.00
        • Then - Actions
          • For each (Integer A) from 1 to 10, do (Actions)
            • Loop - Actions
              • Lightning - Destroy lastEffect[(Integer A)]
        • Else - Actions
 

Seannny

Why GUI when you can Jass?
Reaction score
46
You'll have to customize it a little.
waitTime - Real
Trigger:
  • Lite Init
    • Events
    • Conditions
    • Actions
      • Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set lastEffect[intA] = (Last created lightning effect)
          • Set intA = (intA + 1)
      • Trigger - Turn on Lite Destroy <gen>

Trigger:
  • Lite Destroy
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Set waitTime = (waitTime + 0.01)
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • waitTime Greater than or equal to (>=) 3.00
          • Then - Actions
            • Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
              • Loop - Actions
                • Lightning - Destroy lastEffect[(Integer A)]
          • Else - Actions


Cool +rep
 

YourFace

<span style="color:#9C9C9C;"><strong>Runner Up - T
Reaction score
91
You'll have to customize it a little.
waitTime - Real
Trigger:
  • Lite Init
    • Events
    • Conditions
    • Actions
      • Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set lastEffect[intA] = (Last created lightning effect)
          • Set intA = (intA + 1)
      • Trigger - Turn on Lite Destroy &lt;gen&gt;

Trigger:
  • Lite Destroy
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Set waitTime = (waitTime + 0.01)
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • waitTime Greater than or equal to (&gt;=) 3.00
          • Then - Actions
            • Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
              • Loop - Actions
                • Lightning - Destroy lastEffect[(Integer A)]
          • Else - Actions
i dont think you ever made any special effects in the first place
and what's intA for? you can just to from integer A from zero to 10(i think)
also note that the trigger is never turned off, and the wait time is never nulled
 

WolfieeifloW

WEHZ Helper
Reaction score
372
I don't know what his trigger looks like.
He seems competent enough to know to place this at the end of his trigger.
[del]And yeah actually, you can just use Integer A.[/del]

EDIT: Wait, intA is to make it MUI.
Integer A could get overwritten.
But you have to change this I just realized:
Trigger:
  • Lite Init
    • Events
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set lastEffect[intA] = (Last created lightning effect)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • intA Less than (&lt;) 1000
            • Then - Actions
              • Set intA = (intA + 1)
            • Else - Actions
              • Set intA = 0
      • Trigger - Turn on Lite Destroy &lt;gen&gt;

I'll post the not freehand version in a sec.
 

YourFace

<span style="color:#9C9C9C;"><strong>Runner Up - T
Reaction score
91
read my edits lol god this must be considered a double post

also waittime is not mui, it just suits the loop

if 2 people use it, then the second person will have to wait 1 second or 1.5 seconds, rather than 3 ( according to the time they use it)
 

WolfieeifloW

WEHZ Helper
Reaction score
372
Eh,
That's why I learned JASS instead of learning GUI -> MUI.
Anyways, the first trigger still works perfectly (in my edit) .

EDIT: I'm Italian :( :p .
 

YourFace

<span style="color:#9C9C9C;"><strong>Runner Up - T
Reaction score
91
jass is easy, im just lazy xD i should learn more html too can't let italian's in my class beat asian pride :p
 

Flare

Stops copies me!
Reaction score
662
What Wolfie posted (assuming that the latest 'Lite Destroy' trigger he posted is meant to be used) will not be MUI. Once waitTime exceeds 3 seconds, all existing lightning effects created through that initialization trigger will be destroyed. You will need waitTime to be unique to each instance (i.e. give it an array, index it like lastEffect is being indexed, and loop through all instances from 0 to NumberOfLightningEffectsPresent)

Alternatively, if you have NewGen WE and want an easy solution, TimedLightning may be of use :D

Integer A could get overwritten.
If you added waits, or added an integer A loop within the existing one, then yes, it could get overwritten. But, as it is, no, it won't get overwritten. The only thing that could happen is that other triggers using Integer A with waits may mess up, but people should know not to use Integer A with loops anyway :p
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top