• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Trigger] Explosions in a row!

Status
Not open for further replies.
Level 2
Joined
Dec 2, 2007
Messages
14
[HELP] How do you copy triggers into the tag? I can't find a way to do it without converting it to custom text. Thanks.

Just a heads up, sorry for the long read, and thank you for your patience and help!

Basically, I'm recreating Level Up Bound from Starcraft and am just starting. Level 1 will be 6 horizontal rows of explosions consecutively, starting from the bottom row. My grid is a 12 x 12, and each region used for this trigger is a 2x2 (I also have 1x1, 3x3, 4x4, and 6x6 regions):

x x x x x x
x x x x x x
x x x x x x
x x x x x x <---- third row, etc. etc
x x x x x x <---- second row, regions: B1, B2, B3, B4, B5, B6
x x x x x x <---- first row of explosions, regions: A1, A2, A3, A4, A5, A6

Now, for this level, I wish to create an effect, say a warstomp special effect, in each of 6 regions in each row, then wait ~0.4 seconds and have the same effect in the subsequent row.

Obviously, I don't want to trigger each and every explosion in each and every region. Thus far, I've been able to create an array for each row, e.g. row 1 would be R_1{index 1-6}, row 2 = R_2{index 1-6}. I've also been able to loop to create explosions row by row. What I'm wondering now is if it's possible to double loop by integers A and B to set up this explosion cycle (then repeat with another trigger) withone action.

Here's what I have so far:

JASS:
function Trig_Ini_Region_Array_Actions takes nothing returns nothing
    set udg_RT_1[1] = gg_rct_TA1
    set udg_RT_1[1] = gg_rct_TA1
    set udg_RT_1[2] = gg_rct_TB1
    set udg_RT_1[3] = gg_rct_TC1
    set udg_RT_1[4] = gg_rct_TD1
    set udg_RT_1[5] = gg_rct_TE1
    set udg_RT_1[6] = gg_rct_TF1
    call TriggerSleepAction( 0.01 )
    set udg_RT_2[1] = gg_rct_TA2
    set udg_RT_2[2] = gg_rct_TB2
    set udg_RT_2[3] = gg_rct_TC2
    set udg_RT_2[4] = gg_rct_TD2
    set udg_RT_2[5] = gg_rct_TE2
    set udg_RT_2[6] = gg_rct_TF2
    call TriggerSleepAction( 0.01 )
endfunction

//===========================================================================
function InitTrig_Ini_Region_Array takes nothing returns nothing
    set gg_trg_Ini_Region_Array = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Ini_Region_Array, function Trig_Ini_Region_Array_Actions )
endfunction

JASS:
function Trig_Explosions_Copy_Conditions takes nothing returns boolean
    if ( not ( udg_LevelNumber == 1 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Explosions_Copy_Func001Func004A takes nothing returns nothing
    call ExplodeUnitBJ( GetEnumUnit() )
endfunction

function Trig_Explosions_Copy_Func003Func004A takes nothing returns nothing
    call ExplodeUnitBJ( GetEnumUnit() )
endfunction

function Trig_Explosions_Copy_Actions takes nothing returns nothing
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = 6
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call AddSpecialEffectLocBJ( GetRectCenter(udg_RT_1[GetForLoopIndexA()]), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
        set udg_SpecialEffect1 = GetLastCreatedEffectBJ()
        call DestroyEffectBJ( udg_SpecialEffect1 )
        call ForGroupBJ( GetUnitsInRectAll(gg_rct_1), function Trig_Explosions_Copy_Func001Func004A )
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    call TriggerSleepAction( 0.20 )
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = 6
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call AddSpecialEffectLocBJ( GetRectCenter(udg_RT_2[GetForLoopIndexA()]), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
        set udg_SpecialEffect1 = GetLastCreatedEffectBJ()
        call DestroyEffectBJ( udg_SpecialEffect1 )
        call ForGroupBJ( GetUnitsInRectAll(gg_rct_2), function Trig_Explosions_Copy_Func003Func004A )
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    call TriggerSleepAction( 0.20 )
endfunction

//===========================================================================
function InitTrig_Explosions_Copy takes nothing returns nothing
    set gg_trg_Explosions_Copy = CreateTrigger(  )
    call TriggerAddCondition( gg_trg_Explosions_Copy, Condition( function Trig_Explosions_Copy_Conditions ) )
    call TriggerAddAction( gg_trg_Explosions_Copy, function Trig_Explosions_Copy_Actions )
endfunction
 
Last edited by a moderator:
Level 12
Joined
Apr 27, 2008
Messages
1,228
Well he never even implied he wanted 2D arrays. I doubt he knew what those are.
But yeah a 2D array would be perfect here.(I didn't know vJass supported those, but it is logical to support them)
For the looping, ofcourse using a single array with some formula to index all the elements like the one you provided is the easiest way.
And what I meant by "But I have no idea what he wants to do." is that after a dozen times reading "Basically, I'm recreating Level Up Bound from Starcraft and am just starting." I still can't remember anything from starcraft connected with leveling up ;)
P.s In the first trigger you have a repeating line.
 
Level 2
Joined
Dec 2, 2007
Messages
14
Thank you everyone. Yeah I caught the repeating line already and changed that. This is still my 2nd day on world editor so please go easy on me >_< hehe.

spiwn: Level up bound was a probably obscure bound that you just never saw.

I guess i should clarify this.

I have set each row (with 6 regions requiring actions) as a regional array; first row is RT_1{index} etc. I can loop this to create 6 explosions at once at RT_1{1}, RT_1{2}, etc. all the way up to 6, in other words a single variable loop.

Now, I also have the 5 other rows as RT_2{index}, RT_3{index}, RT_4{index}, RT_5{index}, RT_6{index}. What I'm trying to figure out is if I can set up a B integer Wait 0.50 seconds
loop in addition to the A integer loop already described. This B integer loop would cycle through the RT_(B integer){A integer} loop, thus allowing me 36 results with one action, rather than having to have an individual action for each line array.

Also, anyone care to explain to me what a 2d array is, generally, to me? Or point me to a thread or tell me to use the search bar =)

Thanks for all the help.

Edit: here's all the relevant code, tediously copy texted 1 line at a line because apparently WE doesn't allow multiple line copy, or I'm just retarded.

As you can see, I have 6 loops in the second trigger box, whereas with what I'm trying to do, it would require only 1 double loop, reducing a lot of copy/pasting/changing individual items, and since there will be a decent amount of levels, this will just end up being a lot of busy work.

PS: Do I need to set special effects as variables in each loop and destroy them after use to avoid memory leaks?

  • Time - Elapsed game time is 0.01 seconds
  • -------- 2-wide Horizontal Region Array "1" --------
  • Set RT_1[1] = TA1 <gen>
  • Set RT_1[2] = TB1 <gen>
  • Set RT_1[3] = TC1 <gen>
  • Set RT_1[4] = TD1 <gen>
  • t RT_1[5] = TE1 <gen>
  • Set RT_1[6] = TF1 <gen>
  • Wait 0.01 seconds
  • -------- 2-wide Horizontal Region Array "2" --------
  • Set RT_2[1] = TA2 <gen>
  • Set RT_2[2] = TB2 <gen>
  • Set RT_2[3] = TC2 <gen>
  • Set RT_2[4] = TD2 <gen>
  • Set RT_2[5] = TE2 <gen>
  • Set RT_2[6] = TF2 <gen>
  • Wait 0.01 seconds
  • Set RT_4[1] = TA4 <gen>
  • Set RT_4[2] = TB4 <gen>
  • Set RT_4[3] = TC4 <gen>
  • Set RT_4[4] = TD4 <gen>
  • Set RT_4[5] = TE4 <gen>
  • Set RT_4[6] = TF4 <gen>
  • Wait 0.01 seconds
  • -------- 2-wide Horizontal Region Array "5" --------
  • Set RT_5[1] = TA5 <gen>
  • Set RT_5[2] = TB5 <gen>
  • Set RT_5[3] = TC5 <gen>
  • Set RT_5[4] = TD5 <gen>
  • Set RT_5[5] = TE5 <gen>
  • Set RT_5[5] = TE5 <gen>
  • Set RT_5[6] = TF5 <gen>
  • Wait 0.01 seconds
  • -------- 2-wide Horizontal Region Array "6" --------
  • Set RT_6[1] = TA6 <gen>
  • Set RT_6[2] = TB6 <gen>
  • Set RT_6[3] = TC6 <gen>
  • Set RT_6[4] = TD6 <gen>
  • Set RT_6[5] = TE6 <gen>
  • Set RT_6[6] = TF6 <gen>
  • Wait 0.01 seconds
  • LevelNumber Equal to 1
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Special Effect - Create a special effect at (Center of RT_1[(Integer A)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit Group - Pick every unit in (Units in 1 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Explode (Picked unit)
  • Wait 0.50 seconds
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Special Effect - Create a special effect at (Center of RT_2[(Integer A)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit Group - Pick every unit in (Units in 2 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Explode (Picked unit)
  • Wait 0.50 seconds
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Special Effect - Create a special effect at (Center of RT_3[(Integer A)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit Group - Pick every unit in (Units in 3 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Explode (Picked unit)
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Special Effect - Create a special effect at (Center of RT_4[(Integer A)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit Group - Pick every unit in (Units in 4 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Explode (Picked unit)
  • Wait 0.50 seconds
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Special Effect - Create a special effect at (Center of RT_5[(Integer A)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit Group - Pick every unit in (Units in 5 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Explode (Picked unit)
  • Wait 0.50 seconds
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Special Effect - Create a special effect at (Center of RT_6[(Integer A)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • Unit Group - Pick every unit in (Units in 6 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Explode (Picked unit)
  • Wait 0.50 seconds
  • Trigger - Run (This trigger) (checking conditions)
 
Level 12
Joined
Apr 27, 2008
Messages
1,228
The only unclear thing to me was this "bound" which is still a mystery to me ;)
A 2D array is a[10][10] Having 10 rows and 10 columns( I will restrain myself from making a table with chars).
So a @D array would suit you well
A[Loop Index A][Loop Index B]
But since standart Jass does not support it - not an option.
As PurplePoot said use only one array.
a[c] = a[b*(maxCval+1)+c]
Lets examine the situation u have:
a square 6x6(i works if it is not a square too)
//this line is a bit irrelevant: It can be represented by a 2D array by A[6][6]
You ae going to store that in a single array.
If you use 2 loops with indexes i and j, one inside the other, in the second loop you should refer to an element of A by this way:
A[i*6+j] // Note i is the index of the outer loop
If you want to refer to row 3 column 4 than A[3*6+4]
P.s. I did not mean to offend you in any way.
P.P.s. to copy the whole trigger copy the top line of it(as text)
Yes, you need a variable each time you create a special effect and destroy it after that.
Note that destroying a special effect immediately after creating it(without any time interval) will play its destruction animation an you will not see the actual effect. I do NOT recommend the usage of waits.
 
Level 2
Joined
Dec 2, 2007
Messages
14
Special effects: yeah I tried immediate destruction and it hid all the effects. Do you not recommend waits for loops? And if so, why? I was thinking I could store the effects in Special_effects{1-6} then erase them after each 0.5 second wait.

A bound is a puzzle-type map where you start with one zergling and a set amount of lives and have to make it through obstacle courses typically of explosions, which was easily generated with starcraft's death animations of the archon, carrier, arbiter, neutral critters, etc.

Level up bound is another version of a bound where you have only a small area, as opposed to an entire map, but the small area's obstacles change after every level you beat.

I think i see what you're saying with the a[c] = a[b*(maxCval+1)c], maybe.
Basically, the first variable would cycle through each of the rows and the second would cycle through the columns?

I'm a bit confused by the double brackets.

EDIT: Also, while we're at it. Could you tell me what's wrong with this camera trigger?

  • Arrays
    • Events
      • Time - Elapsed game time is 0.01 seconds
    • Conditions
    • Actions
      • -------- All Players Array --------
      • If ((Player 1 (Red) slot status) Equal to Is playing) then do (Set AllPlayers[1] = Player 1 (Red)) else do (Do nothing)
      • If ((Player 2 (Blue) slot status) Equal to Is playing) then do (Set AllPlayers[2] = Player 2 (Blue)) else do (Do nothing)
      • If ((Player 3 (Teal) slot status) Equal to Is playing) then do (Set AllPlayers[3] = Player 3 (Teal)) else do (Do nothing)
      • If ((Player 4 (Purple) slot status) Equal to Is playing) then do (Set AllPlayers[4] = Player 4 (Purple)) else do (Do nothing)
      • If ((Player 5 (Yellow) slot status) Equal to Is playing) then do (Set AllPlayers[5] = Player 5 (Yellow)) else do (Do nothing)
      • If ((Player 6 (Orange) slot status) Equal to Is playing) then do (Set AllPlayers[6] = Player 6 (Orange)) else do (Do nothing)
      • If ((Player 7 (Green) slot status) Equal to Is playing) then do (Set AllPlayers[7] = Player 7 (Green)) else do (Do nothing)
      • If ((Player 8 (Pink) slot status) Equal to Is playing) then do (Set AllPlayers[8] = Player 8 (Pink)) else do (Do nothing)
      • If ((Player 9 (Gray) slot status) Equal to Is playing) then do (Set AllPlayers[9] = Player 9 (Gray)) else do (Do nothing)
      • If ((Player 10 (Light Blue) slot status) Equal to Is playing) then do (Set AllPlayers[10] = Player 10 (Light Blue)) else do (Do nothing)
      • Wait 0.01 seconds
  • Camera Lock
    • Events
      • Time - Elapsed game time is 5.00 seconds
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to PlayerNumber, do (Actions)
        • Loop - Actions
          • Camera - Apply Top <gen> for AllPlayers[PlayerNumber] over 0.10 seconds
      • Multiboard - Show all multiboards
  • Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
    • Set PlayerNumber = (Number of players)
 
Last edited:
Level 12
Joined
Apr 27, 2008
Messages
1,228
Not sure if " Set PlayerNumber = (Number of players)" will work.
Also using Time - Every 0.50 seconds of game time will cause the game camera to be stuck to one place. I don't like that :p
I would suggest locking the camera to something.
Thank you for explaining to me about the bounds :)
I am not sure exactly what you are referring to when saying "double brackets".
If it is to A[j] than I will help you with that:
that is a 2D array(which is does not exist in WE; arrays can be 3D too (B[j][k])) ot represent it graphically , lets say that is matrix with some columns and some rows.
Please for different questions(which have no relevance to each other) start new threads with names that are as relevant as possible to the question. That way you will make it easier for people to help you.
P.s. Atm my net sux - i loaded this page in 15 minutes.
 
Level 2
Joined
Dec 2, 2007
Messages
14
Ah, okay. That makes sense, about different threads. Just didn't want to spam like some certain people *cough* medic.

Camera locking: you can lock it to a camera/object/place? Didn't know that, but that's what i wanted to achieve because the game requires a top-down view.

Oh, okay, so that was a 2D array that I can't do apparently. Meh. I just went ahead and did the loop 6 times. Wasn't too bad, just afraid of lagging up the game.
 
Level 12
Joined
Apr 27, 2008
Messages
1,228
I would cause just a ridiculously small amount of more lag to have 6 different loops.
Bad sides are:
A lot of code, having to do it all.
 
Level 2
Joined
Dec 2, 2007
Messages
14
Oh, well I don't mind that. It's just copy & paste then change 2 variables in each loops. Problem resolved I guess, but not solved =)
 
Level 40
Joined
Dec 14, 2005
Messages
10,532
spiwn, a 'bound' in StarCraft is generally called a 'maze' in WarCraft III (the differences only had to do with the restrictions of the StarCraft editor).



And to make a little more sense of exactly what a N dimensional array is,

If an array is a list of values, (an 'array' of values), a 2d array is an array of arrays of values, and a 3d array is an array of arrays of arrays of values, and so on. Basically, arrays just become values for new arrays.

--

In real languages which allow you to handle arrays as objects, you can see this because you are allowed to handle the upper levels of the array. For example, in Java,

boolean[] bArr = new boolean[5] //declare a one-dimensional array, bArr, of booleans
boolean[][] b2dArr = new boolean[10][5] //declare a two-dimensional array, b2dArr, a one-dimensional array of one-dimensional boolean arrays
b2dArr[3] = bArr //set the third one-dimensional boolean array in the array of them to the previously declared one-dimensional boolean array
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
Something like this should suffice (with removing leaks and fixing it the way you want it).
  • For each (Integer A) from 1 to 6, do (Actions)
    • Loop - Actions
      • Set CurrentRow = Rows[(Integer A)]
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set CurrentPoint = (CurrentRow offset by (0.00, (30.00 x (Real((Integer A))))))
          • Special Effect - Create a special effect at CurrentPoint using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
This also allows you to make this thing work with any angle you want using polar offset instead of normal offset,
 
Level 2
Joined
Dec 2, 2007
Messages
14
Hmm...for yours, GhostWolf, first, I'm assuming that on the next to last line it's Integer B instead of A. But how does this line work:

Set currentpoint = (CurrentRow offset by....

Assuming that the Rows[(Integer A)] variable is a region of one row, how do you substitute for CurrentPoint by offsetting an entire row? Looks like to me that the entire row would move, but i'm probably just not understanding it.

Now as for an update, I THOUGHT I created a somewhat viable pseudo-2D array without JASS. Check this out:

This one establishes a 36 region array as such:

31 32 33 34 35 36
25 26 27 28 29 30
19 20 21 22 23 24
13 14 15 16 17 18
07 08 09 10 11 12
01 02 03 04 05 06

  • Region Array 2D
    • Events
      • Time - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set RT[(Integer B)] = RT_1[(Integer B)]
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set RT[((Integer B) + 6)] = RT_2[(Integer B)]
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set RT[((Integer B) + 12)] = RT_3[(Integer B)]
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set RT[((Integer B) + 18)] = RT_4[(Integer B)]
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set RT[((Integer B) + 24)] = RT_5[(Integer B)]
      • For each (Integer B) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set RT[((Integer B) + 30)] = RT_6[(Integer B)]
This one executes the explosions. However, right now I am only getting repeated explosions on the bottom-most row.

  • Actions5
    • Events
      • Game - The in-game time of day becomes Equal to 0.00
    • Conditions
      • LevelNumber Equal to 5
    • Actions
      • Wait 0.01 seconds
      • Set ArrayCount2D = 0
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • For each (Integer B) from 1 to 6, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at (Center of RT[(ArrayCount2D + (Integer B))]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
              • Set SpecialEffect[((Integer B) + ArrayCount2D)] = (Last created special effect)
              • Unit Group - Pick every unit in (Units in RT[(ArrayCount2D + (Integer B))]) and do (Actions)
                • Loop - Actions
                  • Unit - Explode (Picked unit)
          • Wait 0.20 seconds
          • Set ArrayCount2D = (ArrayCount2D + 6)
          • Wait 0.20 seconds
      • Wait 0.01 seconds
      • Trigger - Run (This trigger) (checking conditions)
The variable ArrayCount2D lets me, for every A loop integer, add on to the index in the RT{index} 36 region array. I thought that adding six after every A loop would move the positions for the B integer loop explosions "forward" 6 spaces in the RT region, but this is not happening. Any insights?

And, as always, sorry for the possible confusion. This hurt my brain a lot too.
 
Level 12
Joined
Apr 27, 2008
Messages
1,228
  • Actions5
    • Events
      • Game - The in-game time of day becomes Equal to 0.00
    • Conditions
      • LevelNumber Equal to 5
    • Actions
      • Wait 0.01 seconds
      • Set ArrayCount2D = 0
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • For each (Integer B) from 1 to 6, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at (Center of RT[(ArrayCount2D + (Integer B))]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
              • Set SpecialEffect[((Integer B) + ArrayCount2D)] = (Last created special effect)
              • Unit Group - Pick every unit in (Units in RT[(ArrayCount2D + (Integer B))]) and do (Actions)
                • Loop - Actions
                  • Unit - Explode (Picked unit)
          • Wait 0.20 seconds
          • Set ArrayCount2D = (ArrayCount2D + 6)
          • Wait 0.20 seconds
      • Wait 0.01 seconds
      • Trigger - Run (This trigger) (checking conditions)


Use this instead(minor tweaks)

  • Actions5
    • Events
      • Game - The in-game time of day becomes Equal to 0.00
    • Conditions
      • LevelNumber Equal to 5
    • Actions
      • Wait 0.01 seconds
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • For each (Integer B) from 1 to 6, do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at (Center of RT[(Integer A-1) *6 + (Integer B)]) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
              • Set SpecialEffect[(Integer A-1) *6 + (Integer B)] = (Last created special effect)
              • Unit Group - Pick every unit in (Units in RT[(Integer A-1) *6 + (Integer B)]) and do (Actions)
                • Loop - Actions
                  • Unit - Explode (Picked unit)
          • Wait 0.20 seconds
      • Wait 0.01 seconds
      • Trigger - Run (This trigger) (checking conditions)
 
Status
Not open for further replies.
Top