56 lines
2.4 KiB
Plaintext
Executable File
56 lines
2.4 KiB
Plaintext
Executable File
private ["_maxRandomSpawns","_debugMarkers","_triggerArea","_attempts","_trigPos","_trigger","_markername","_marker"];
|
|
|
|
_maxRandomSpawns = _this;
|
|
|
|
_debugMarkers = ((!isNil "DZAI_debugMarkersEnabled") && {DZAI_debugMarkersEnabled});
|
|
_triggerArea = 600;
|
|
|
|
//waitUntil {sleep 1; !isNil "DZAI_locations_ready"};
|
|
|
|
if (DZAI_debugLevel > 0) then {diag_log format ["DZAI Debug: Attempting to place %1 random spawns on the map...",_maxRandomSpawns];};
|
|
|
|
for "_i" from 1 to _maxRandomSpawns do {
|
|
_attempts = 0;
|
|
_keepSearching = true;
|
|
_trigPos = [0,0,0];
|
|
while {
|
|
_keepSearching
|
|
} do {
|
|
_trigPos = ["DZAI_centerMarker",false,DZAI_randAreaBlacklist] call SHK_pos;
|
|
_attempts = _attempts + 1;
|
|
_keepSearching = ((count ((nearestLocations [_trigPos, ["Strategic"], 650])) > 0) && {_attempts < 3});
|
|
if (_keepSearching) then {uiSleep 0.25};
|
|
};
|
|
|
|
if (_attempts < 3) then {
|
|
_trigger = createTrigger ["EmptyDetector",_trigPos];
|
|
|
|
_location = createLocation ["Strategic",(getPosASL _trigger),600,600]; //Create temporary dynamic spawn blacklist area
|
|
_trigger setVariable ["triggerLocation",_location];
|
|
[_trigger,"DZAI_randTriggerArray"] call DZAI_updateSpawnCount;
|
|
|
|
_trigger setTriggerArea [_triggerArea, _triggerArea, 0, false];
|
|
_trigger setTriggerActivation ["ANY", "PRESENT", true];
|
|
_trigger setTriggerTimeout [5, 5, 5, true];
|
|
_trigger setTriggerStatements ["{isPlayer _x} count thisList > 0;","0 = [300,thisTrigger,thisList] call fnc_spawnBandits_random;", "[thisTrigger] spawn fnc_despawnBandits_random;"];
|
|
if (_debugMarkers) then {
|
|
_markername = str(_trigger);
|
|
_marker = createMarker[_markername,_trigPos];
|
|
_marker setMarkerShape "ELLIPSE";
|
|
_marker setMarkerType "Flag";
|
|
_marker setMarkerBrush "SOLID";
|
|
_marker setMarkerSize [_triggerArea, _triggerArea];
|
|
_marker setMarkerColor "ColorYellow";
|
|
_marker setMarkerAlpha 0.6;
|
|
DZAI_mapMarkerArray set [(count DZAI_mapMarkerArray),_marker];
|
|
};
|
|
_trigger setTriggerText format ["Random Spawn at %1",(mapGridPosition _trigger)];
|
|
_trigger setVariable ["timestamp",diag_tickTime];
|
|
if (DZAI_debugLevel > 0) then {diag_log format["DZAI Debug: Random spawn %1 of %2 placed at %3 (Retries: %4).",_i,_maxRandomSpawns,_trigPos,_attempts];};
|
|
//DZAI_randTriggerArray set [(count DZAI_randTriggerArray),_trigger];
|
|
} else {
|
|
if (DZAI_debugLevel > 0) then {diag_log format["DZAI Debug: Could not find suitable location to place random spawn %1 of %2.",_i,_maxRandomSpawns];};
|
|
};
|
|
uiSleep 3;
|
|
};
|