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.
You would need a way to keep track of all the points in the region
None.
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]"
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.
I've made this for now.
http://www.staredit.net/starcraft2/Spawn_systemAnyone 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.
I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.
Except that you could use Arrays? not that I would know one :S
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.
I'm still not very comfortable with Arrays (while I know they are simple >_>). Any example/wiki?
None.
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.
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.
And I guess I can put Maths functions linked to Variables as an Array?
None.
I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.
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]".