Files
DayZ-Epoch/SQF/dayz_code/compile/fn_selectRandomLocation.sqf
2021-05-05 12:32:46 +06:00

40 lines
1.2 KiB
Plaintext

private["_position","_minDistance","_maxDistance","_minobjectDistance","_X","_Y","_location","_index","_PosX","_PosY","_isFlat"];
_position = _this select 0;
_minDistance = _this select 1;
_maxDistance = _this select 2;
_minobjectDistance = _this select 3;
_X = _position select 0;
_Y = _position select 1;
//_location = [_position, _minDistance, _maxDistance, 5, 0, 2000, 0] call BIS_fnc_findSafePos;
_index = 0;
while {_index < 50} do {
private["_PosX","_PosY","_isFlat"];
_PosX = _X + (_maxDistance - (random (_maxDistance * 2)));
_PosY = _Y + (_maxDistance - (random (_maxDistance * 2)));
_location = [_PosX, _PosY, 0];
_isFlat = _location isflatempty [
_minobjectDistance, //--- Minimal distance from another object
0, //--- If 0, just check position. If >0, select new one
0.7, //--- Max gradient
5, //--- Gradient area
0, //--- 0 for restricted water, 2 for required water,
false, //--- True if some water can be in 25m radius
objNull //--- Ignored object
];
//if (!surfaceIsWater _location) then { _index = 50; };
if (count _isFlat > 1) then { _index = 50; };
_index = _index + 1;
};
//_location = [_location select 0,_location select 1,0];
//diag_log(str(_position));
//diag_log(str(_location));
_location