OFPEC Forum

Editors Depot - Mission Editing and Scripting => OFP - Editing/Scripting General => Topic started by: Berghoff on 21 Feb 2004, 18:32:12

Title: Random placement ?
Post by: Berghoff on 21 Feb 2004, 18:32:12
:) Hi again.

Now I nearly completed my map I have 1 more question :).

Q: I have a marker of 1000 by 1000 and in that area I need to randomly spawn this:
Tank_West (Empty tank), W1, W2,W3,W4,W5,W6,W7,W8 (all soldiers), these units need to spawn together in the marker area randomly after you completed a objective... Any help ?  ;)
Title: Re:Random placement ?
Post by: Sui on 22 Feb 2004, 01:21:17
You could use some code looking a little something like this:

...
_randx = random 1000
_randy = random 1000

"Unitname" createunit [[(getmarkerpos "marker" select 0) + (_randx - 500), (getpos op select 1) + (_randy - 500), 0], group, "init line"]
...


That would randomly choose an x and y value between 0 and 1000. Then it would place your unit within a 1km 'box' of the center of your marker.

The reason we define variables for the random values rather than just using the 'random' command is to keep all your guys together ;)

Hope that helps you out
Title: Re:Random placement ?
Post by: Berghoff on 25 Feb 2004, 13:54:44
Hi, I have this now:
Code: [Select]
_rand = random 7

? _rand < 1: Tank_East2 setpos getpos Place1
? _rand > 1 AND _rand < 2 : Tank_East2 setpos getpos Place2
? _rand > 3 AND _rand < 4 : Tank_East2 setpos getpos Place3
? _rand > 4 AND _rand < 5 : Tank_East2 setpos getpos Place4
? _rand > 5 AND _rand < 6 :Tank_East2 setpos getpos Place5
? _rand > 6 AND _rand < 7 :Tank_East2 setpos getpos Place6
? _rand > 7 : Tank_East2 setpos getpos Place7

But it seems that sometimes the tank doesn't move at all (Doesn't choose new position when I active this script), can some1 help me with this ?  :-[
Title: Re:Random placement ?
Post by: macguba on 25 Feb 2004, 14:34:19
What happens if _rand = 3 exactly?   You need to use <= rather than <.
Title: Re:Random placement ?
Post by: micropilot on 25 Feb 2004, 14:38:37
What haapens if the random value is between 2 and 3 (2.65) ?
Title: Re:Random placement ?
Post by: icarus_uk on 25 Feb 2004, 15:12:37
Use;

? _rand <= 1 :goto ......
? _rand <= 2 :goto ......
? _rand <= 3 :goto ......
? _rand <= 4 :goto ......
? _rand <= 5 :goto ......
etc

This way, if _rand = 0.26 it finds the first line and as its less than 1 it goes to the first place.  If _rand is 1.96 it goes to the second place, as its less than 2.  And so on.  You dont need to state an upper limit, as the script will stop checking _rand after it finds the first condition that is satisfied.

If your mission is going to be played online, you'll need to stop the clients from generating their own value of _rand, as they will all come up with different values.