summaryrefslogtreecommitdiffstats
path: root/Client/PVFunctions/M_UAV_RetrieveModule.sqf
blob: 60f734f7bc624fa842992edbb79152426f30e5ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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;