findEmptyPosition
Jump to navigation
Jump to search
Description
- Description:
- Description needed
- Groups:
- Positions
Syntax
- Syntax:
- Syntax needed
- Parameters:
- center: Array - Search area center position in format [x,y] or [x,y,z] in which case z is ignored. Accepts Position2D or Position3D
- [radius, maxDistance, vehicleType]: Array
- radius: Number - Start searching no closer than radius from the center
- maxDistance: Number - Stop searching no further than radius + maxDistance from the center
- vehicleType: (optional): String - Class name of a vehicle to accommodate
- Return Value:
- Return value needed
Examples
- Example 1:
_position = (getPosATL player) findEmptyPosition [0,100];
- Example 2:
_position = _center findEmptyPosition [10,100,"UH60M_EP1"];
- Example 3:
- Check if exact position is empty:
_position = _center findEmptyPosition [0,0,"B_Boat_Armed_01_minigun_F"];
Additional Information
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
- Posted on November 6, 2013
- Killzone_Kid
- Keep search radius short and sweet, under 50 metres maybe. Searching big area takes long time and will result in your game stop responding until the search is over. isFlatEmpty is probably more suitable for a larger area search.
- Posted on March 6, 2012
- old_man_auz
-
I think the radius parameter should be treated as a 'minimum distance' from the centre position. I found that the parameter name radius was not very clear. Also, if radius is greater than max distance then the function will always return an empty array.
Here is an snippet of code I use to find a safe landing zone for an extraction helicopter. It may be useful for someone.
_centre = [ getMarkerPos "marker" , random 150 , random 360 ] call BIS_fnc_relPos; _extraction_point = []; _max_distance = 100; while{ count _extraction_point < 1 } do { _extraction_point = _centre findEmptyPosition[ 30 , _max_distance , "UH60M_EP1" ]; _max_distance = _max_distance + 50; };
In the above example, make sure that "_max_distance" is greater than 30, otherwise the while loop will go forever.