From 68d4c9bbd80ed2e6528244569c79676b87295bd1 Mon Sep 17 00:00:00 2001 From: hybrid Date: Thu, 11 Jun 2026 19:54:45 +0300 Subject: init --- Client/PVFunctions/M_UAV_RetrieveModule.sqf | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Client/PVFunctions/M_UAV_RetrieveModule.sqf (limited to 'Client/PVFunctions/M_UAV_RetrieveModule.sqf') diff --git a/Client/PVFunctions/M_UAV_RetrieveModule.sqf b/Client/PVFunctions/M_UAV_RetrieveModule.sqf new file mode 100644 index 0000000..60f734f --- /dev/null +++ b/Client/PVFunctions/M_UAV_RetrieveModule.sqf @@ -0,0 +1,65 @@ +Private ['_id','_label','_marker','_markerRanPos','_markers','_randomPos','_searchArea','_sideWin','_size','_task','_taskState','_uav']; + +_size = _this select 0; +_label = _this select 1; +_id = _this select 2; +_uav = _this select 3; + +_marker = Format["%1%2",_label,_id]; +//--- Does the client already have the mission (jip handler, some client joining won't have it running)? +if (((getMarkerPos _marker) select 0) != 0 && ((getMarkerPos _marker) select 1) != 0) exitWith {}; + +taskHint [format [localize "str_taskNew" + "\n%1",localize 'STR_WF_M_UAV_RetrieveModule'], [1,1,1,1], "taskNew"]; + +_randomPos = getPos _uav; + +//--- Determine the marker random area. +_searchArea = (_size/1.5); +_markerRanPos = [(_randomPos select 0)+random(_searchArea)-random(_searchArea),(_randomPos select 1)+random(_searchArea)-random(_searchArea)]; + +_task = player createSimpleTask [Format["TSK_M_%1%2",_label,_id]]; +_task setSimpleTaskDescription [localize 'STR_WF_M_UAV_RetrieveModule_Description', localize 'STR_WF_M_UAV_RetrieveModule', localize 'STR_WF_M_UAV_RetrieveModule']; +_task setSimpleTaskDestination _markerRanPos; + +//--- Marker part. +_markers = [_marker]; +createMarkerLocal [_marker, _markerRanPos]; +_marker setMarkerColorLocal "ColorYellow"; +_marker setMarkerShapeLocal "ELLIPSE"; +_marker setMarkerBrushLocal "BORDER"; +_marker setMarkerSizeLocal [_size,_size]; +_marker = Format["0%1%2",_label,_id]; +_markers = _markers + [_marker]; +createMarkerLocal [_marker, _markerRanPos]; +_marker setMarkerColorLocal "ColorYellow"; +_marker setMarkerShapeLocal "ELLIPSE"; +_marker setMarkerBrushLocal "FDIAGONAL"; +_marker setMarkerSizeLocal [_size,_size]; +_marker = Format["00%1%2",_label,_id]; +_markers = _markers + [_marker]; +createMarkerLocal [_marker, _markerRanPos]; +_marker setMarkerColorLocal "ColorYellow"; +_marker setMarkerTypeLocal "pickup"; +_marker setMarkerSizeLocal [0.5,0.5]; +_marker setMarkerTextLocal "UAV Crash Site"; + +//--- Wait for the result. +waitUntil {sleep 5; _sideWin = _uav getVariable 'side'; !(isNil '_sideWin')}; +_taskState = if (side player == (_uav getVariable 'side')) then {"Succeeded"} else {"Failed"}; + +//--- Wait for mission completion. +waitUntil {sleep 5; (isNull _uav)}; + +_task setTaskState _taskState; + +if (_taskState == 'Succeeded') then { + taskHint [format [localize "str_taskAccomplished" + "\n%1",localize 'STR_WF_M_UAV_RetrieveModule'], [1,1,1,1], "taskDone"]; +} else { + taskHint [format [localize "str_taskFailed" + "\n%1",localize 'STR_WF_M_UAV_RetrieveModule'], [1,1,1,1], "taskFailed"]; +}; + +sleep 30; + +//--- Remove the task & markers. +player removeSimpleTask _task; +{deleteMarkerLocal _x} forEach _markers; \ No newline at end of file -- cgit v1.3.1