diff options
| author | hybrid <hybrid@hybridlabs.pro> | 2026-06-11 19:38:09 +0300 |
|---|---|---|
| committer | hybrid <hybrid@hybridlabs.pro> | 2026-06-11 19:38:09 +0300 |
| commit | a3a91d4f45b22fd487ecbc954ad979be5d03efdd (patch) | |
| tree | a554ab159a347dcd6c00ca1c7c26c1ec3ac0a6bd /Client/PVFunctions/M_UAV_RetrieveModule.sqf | |
| download | a2wf_chernarus-a3a91d4f45b22fd487ecbc954ad979be5d03efdd.tar.gz a2wf_chernarus-a3a91d4f45b22fd487ecbc954ad979be5d03efdd.tar.bz2 a2wf_chernarus-a3a91d4f45b22fd487ecbc954ad979be5d03efdd.zip | |
Diffstat (limited to 'Client/PVFunctions/M_UAV_RetrieveModule.sqf')
| -rw-r--r-- | Client/PVFunctions/M_UAV_RetrieveModule.sqf | 65 |
1 files changed, 65 insertions, 0 deletions
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 |
