Staredit Network > Forums > SC2 Assistance > Topic: Random Point in Region
Random Point in Region
Sep 14 2010, 12:31 am
By: payne  

Sep 14 2010, 12:31 am payne Post #1

:payne:

Well, I thought the "Random Point in Region" function was selecting an actual Point you had placed on the map, but it looks like it really just sets some random numbers in a (X,Y) coordinate.
Is there any way to do a "real" Random Point in Region function?

I always thought the Spawn systems were done with this function. :/



None.

Sep 14 2010, 12:39 am Temp Post #2



You would need a way to keep track of all the points in the region :/



None.

Sep 14 2010, 10:27 pm Sand Wraith Post #3

she/her

My solution:

1) Enumerate all relevant Points (tag each Point with an integer, in order).
2) Select a random integer and convert it to the corresponding Point.

To be more specific, you should have:
-a tracking variable, say randN.
-an array of Points, say arrayPoints.

In one trigger, at the start of the game (or whenever), assign each relevant Point on the map to an index of arrayPoints.
In a second trigger, you would do set randN to "Random integer between <minimum index of arrayPoints> and <maximum index of arrayPoints>", then "Create a unit at point<arrayPoints[randN]"




Sep 15 2010, 12:56 am Roy Post #4

An artist's depiction of an Extended Unit Death

If the points are in a linear pattern, you could just have one point plus random offsets.




Sep 15 2010, 4:54 am payne Post #5

:payne:

I've made this for now.
http://www.staredit.net/starcraft2/Spawn_system

Anyone has ideas on how to improve this? Lets say I'd have 100 points... isn't there a way to -not- make me waste hours in this trigger?



None.

Sep 15 2010, 9:31 am Ahli Post #6

I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.

Quote from payne
I've made this for now.
http://www.staredit.net/starcraft2/Spawn_system

Anyone has ideas on how to improve this? Lets say I'd have 100 points... isn't there a way to -not- make me waste hours in this trigger?
Except that you could use Arrays? not that I would know one :S




Sep 15 2010, 2:13 pm Temp Post #7



Using array would be a big improvement to the trigger but would require you to also populate the trigger before hand (so another trigger with a number of actions equal to the number of points).



None.

Sep 15 2010, 2:33 pm payne Post #8

:payne:

I'm still not very comfortable with Arrays (while I know they are simple >_>). Any example/wiki? :awesome:



None.

Sep 15 2010, 2:45 pm Temp Post #9



Quick example

have an array variable where the size of the array is equal to the number of points you have.

Then have a trigger where you set each index in the array to a different point that runs on init.

Then in your spawn trigger pick a random number >=0 and <= size of the array - 1. When you go to get the point you do not need an if statement and can simply go Set select point = PointArray[RandomNumber].



None.

Sep 15 2010, 2:48 pm Ahli Post #10

I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.

Array:
An Array has a length/size. It is set when it was created and cannot be changed.
You can read/write values with the index number. These start with 0 and go up to size-1.

Example:
An Array "test" with a size 5 is created. With test[0] you can access the first value, with test[1] the second, with test[4] the last entry.




Sep 15 2010, 10:39 pm payne Post #11

:payne:

And I guess I can put Maths functions linked to Variables as an Array?



None.

Sep 17 2010, 6:35 pm Ahli Post #12

I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.

Quote from payne
And I guess I can put Maths functions linked to Variables as an Array?
ewwwww... I don't understand you... you can't put a function into arrayys... only variables...

Array is simply a bunch of variables of equal type below each other with an index (just like a key) to access the variables.

As an example, you could store mineral and gas values of all players in an array created like this: ressources[16][2]... (the indexes would be "player#" [0; 15] and ressource type (minerals; gas) [0;1] in this example.
You would access the gas ressources for player 4 like this: "ressources[3][1]".




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[10:41 am]
v9bettel -- Nice
[01:39 am]
Ultraviolet -- no u elky skeleton guy, I'll use em better
[10:50 pm]
Vrael -- Ultraviolet
Ultraviolet shouted: How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
hey cut it out I'm getting all the minerals
[10:11 pm]
Ultraviolet -- :P
[10:11 pm]
Ultraviolet -- How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
[2024-4-17. : 11:50 pm]
O)FaRTy1billion[MM] -- nice, now i have more than enough
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- if i don't gamble them away first
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- o, due to a donation i now have enough minerals to send you minerals
[2024-4-17. : 3:26 am]
O)FaRTy1billion[MM] -- i have to ask for minerals first tho cuz i don't have enough to send
[2024-4-17. : 1:53 am]
Vrael -- bet u'll ask for my minerals first and then just send me some lousy vespene gas instead
Please log in to shout.


Members Online: Roy, Dem0n