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.
[2026-6-01. : 4:03 pm]
IskatuMesk -- no Hello World? No Hello . jpeg? Not even ddosing some government website? smh my head
[2026-5-31. : 10:02 pm]
Symmetry -- I was really just figuring out how to compile
[2026-5-31. : 10:02 pm]
Symmetry -- I didn't make it do anything
[2026-5-31. : 9:17 pm]
Ultraviolet -- hell yeah. did you have trouble making the button functional, or just haven't gotten there yet?
[2026-5-31. : 8:29 pm]
Symmetry -- I made the marine shoot lasers and gave the medic a nonfunctional button
[2026-5-31. : 8:07 pm]
Ultraviolet -- Symmetry
Symmetry shouted: I did my first EUD thing today. Feels like me finding arsenal at age 8 again
haha for sure. in some ways it's even more exciting because you can play EUD maps on regular battle.net, don't need to convince someone to download your mod to play with you. what did you do?
[2026-5-31. : 6:47 pm]
Symmetry -- I did my first EUD thing today. Feels like me finding arsenal at age 8 again
[2026-5-31. : 3:20 pm]
l)ark_ssj9kevin -- le reddit
[2026-5-31. : 2:55 pm]
Moose -- >reddit :rip2:
[2026-5-31. : 2:07 pm]
IskatuMesk -- reddit 💀
Please log in to shout.


Members Online: Excalibur