Spawning a number of doodads in some regions and then spawning in other regions

Ioannes

Oh man, I shot Marvin in the face.
Reaction score
49
How do you make triggers that spawn a bunch of doodads in 5 random regions out of 6 total? In other words, that one of the regions has no doodads spawned in it...

Also, how do you repeat that for another group of regions? This time 2 or 3 total, depending on where a doodad didn't get spawned.

I have a problem getting the map to remember which of the 6 regions didn't receive a doodad in it. Hence, I can't determine which of the other group of regions have to participate in the doodad-giving process. Help will be appreciated.
 

Attachments

  • mazetester.w3x
    41 KB · Views: 163

Dirac

22710180
Reaction score
147
Assign a boolean to every region, if you spawn a doodad in it set it to true, if destroyed it set it to false. Every time you want to create a doodad inside of it check if the boolean is true or false
 

Dinowc

don't expect anything, prepare for everything
Reaction score
223
JASS:
function SetArrays takes nothing returns nothing
    local integer a = 0
    
    set Region[0] = region1
    set Region[1] = region2
    set Region[2] = region3
    set Region[3] = region4
    set Region[4] = region5
    set Region[5] = region6

    loop
        exitwhen a >= 6
        set index[a] = a
        set a = a + 1
    endloop
    
    set Count = 5
endfunction

JASS:
function test takes nothing returns nothing
    local integer rand
    loop
        exitwhen Count == 0
        set rand  = GetRandomInt(0, Count)
        call GroupEnumUnitsInRect(G, Region[ index[rand] ], Filter(function filterFunc))
        set index[rand] = Count
        set Count = Count - 1
    endloop
endfunction


it's not tested btw

if I'm not wrong with something, this should pick units in 5 random regions/rects out of 6
same could be used for your problem
 

Ioannes

Oh man, I shot Marvin in the face.
Reaction score
49
Assign a boolean to every region, if you spawn a doodad in it set it to true, if destroyed it set it to false. Every time you want to create a doodad inside of it check if the boolean is true or false

How do you do that :/
 

keychup

Active Member
Reaction score
34
How do you do that :/

That's gonna need alot of explanation :p

- Open the Trigger Editor
- Press Ctrl+B (Alternatively you can click on the yellow X in the Trigger Editor's toolbar)
- Press Ctrl+N (Alternatively you can click on the green X in the Variable Editor's toolbar)
- Type Boolean_Region1 in the Variable name and pick Boolean as the variable type
- Repeat until you have 5 variables of the boolean type, entitled Boolean_Region1, Boolean_Region2, Boolean_Region3, Boolean_Region4, and Boolean_Region5 respectively.

Now that your variables are all set up you can use the condition "Boolean Comparison" and choose from the variables you made. Set True if there are trees in the corresponding region, and set false if there aren't.
 
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