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.
[03:34 pm]
ManCubuS -- Used : " [img=https://i.imgur.com/gpOjTuD.jpeg] "
[03:28 pm]
ManCubuS -- Even tried with imgur, doesn't attach.
[03:14 pm]
ManCubuS -- I should try a workaround, thanks! Sadly imgur is blocked in my country for some unknown reason.
[03:05 pm]
NudeRaider -- I think SEN has trouble with https or hotlinking is forbidden. It certainly is nothing about the size, it just fails to get any size. You can get it working if you use imgur and include the actual image link for the img tag. Like this: [img=https://i.imgur.com/ddYqXZa.jpeg]
[11:15 am]
ManCubuS -- Hey fellas! Anyone knows why when I try to upload an image it says "failed to get image size"? I even tried making it so small. Imgur isn't working here and I tried postimg no luck.
[2026-7-23. : 6:40 am]
Oh_Man -- true
[2026-7-23. : 3:16 am]
RIVE -- Still annoyed there was never a trigger to stop or pause wavs.
[2026-7-23. : 1:40 am]
Oh_Man -- tthen u come to SCBW and it's like - upload WAV, play WAV.... sigh why cant it be that easy
[2026-7-23. : 1:40 am]
Oh_Man -- and no consistent easy to use way to then play the audio either
[2026-7-23. : 1:39 am]
Oh_Man -- where they use third party audioprogram called WWISE which basically makes adding audio extremely difficult
Please log in to shout.


Members Online: NudeRaider