LilBlueSmurf
New Member
- Reaction score
- 0
I'm trying to figure out why units behave absolute stupidly when I order a lot of them to move all at once. In a nut shell, I spawn a bunch of units and order each one to move individually to a point with offset a number of times.
My test trigger spawn a number of units and then does the following for each unit:
*maxoffset is a static array, no funky stuff.
And when I debug the units orders all of the assigned move points look like you would expect, no points right next to other or backwards or anything. (variation in x of a little bit from the randomness)
43.6,143.0
43.2,114.5
44.6,102.4
43.5,92.0
45.3,79.0
42.5,72.0
41.7,61.0
44.3,55.3
0.0,0.0
0.0,0.0
0.0,0.0
----end unit-----
*the extra was to make sure there weren't extra orders being assigned
And finally, here is a video of the buggers acting completely retarded.
[YOUTUBE]Bems6fomNgw[/YOUTUBE]
If anyone has ideas to fix this, it would be awesome. I would really like to avoid the old way of lots of regions/enters region triggers, and I've already tried turning off unit pushing and using the "move to relative point" order instead. And no, I don't want to turn off collision. Thanks.
My test trigger spawn a number of units and then does the following for each unit:
Code:
Assign Move Orders
Options: Action
Return Type: (None)
Parameters
Unit = (Last created unit) <Unit>
Lane = 0 <Integer>
FromTop = true <Boolean>
Direction = Center <Integer>
Grammar Text: Assign Move Orders(Unit, Lane, FromTop, Direction)
Hint Text: (None)
Custom Script Code
Local Variables
WhichPoint = 0 <Integer>
PointUporDown = 1 <Integer>
i = 0 <Integer>
Actions
General - If (Conditions) then do (Actions) else do (Actions)
If
FromTop == false
Then
Variable - Set PointUporDown = -1
Variable - Set WhichPoint = 6
Else
General - If (Conditions) then do (Actions) else do (Actions)
If
Direction != 0
Then
General - For each integer i from WhichPoint to (WhichPoint + (6 * PointUporDown)) with increment PointUporDown, do (Actions)
Actions
Unit - Order Unit to ( Move targeting (PathPoint[Lane][i] offset by (((Random real between 0.0 and MaxOffset[i]) * (Real(Direction))), 0.0))) (After Existing Orders)
Else
General - If (Conditions) then do (Actions) else do (Actions)
If
FromTop == true
Then
Unit - Order Unit to ( Move targeting (Spawn[Lane][1] offset by (((Random real between 0.0 and 3.0) * (Real(Direction))), 0.0))) (After Existing Orders)
Else
Unit - Order Unit to ( Move targeting Spawn[Lane][0]) (After Existing Orders)
*maxoffset is a static array, no funky stuff.
And when I debug the units orders all of the assigned move points look like you would expect, no points right next to other or backwards or anything. (variation in x of a little bit from the randomness)
43.6,143.0
43.2,114.5
44.6,102.4
43.5,92.0
45.3,79.0
42.5,72.0
41.7,61.0
44.3,55.3
0.0,0.0
0.0,0.0
0.0,0.0
----end unit-----
*the extra was to make sure there weren't extra orders being assigned
And finally, here is a video of the buggers acting completely retarded.
[YOUTUBE]Bems6fomNgw[/YOUTUBE]
If anyone has ideas to fix this, it would be awesome. I would really like to avoid the old way of lots of regions/enters region triggers, and I've already tried turning off unit pushing and using the "move to relative point" order instead. And no, I don't want to turn off collision. Thanks.