-
Notifications
You must be signed in to change notification settings - Fork 36
/
fn_adminspectate.sqf
51 lines (48 loc) · 1.66 KB
/
fn_adminspectate.sqf
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
// by Xeno
//#define __DEBUG__
#define THIS_FILE "fn_adminspectate.sqf"
#include "..\..\..\x_setup.sqf"
#include "\A3\ui_f\hpp\defineDIKCodes.inc"
if (isDedicated) exitWith {};
if (isMultiplayer && {!d_pisadminp}) exitWith {d_commandingMenuIniting = false};
if !(["IsInitialized"] call BIS_fnc_EGSpectator) then {
xr_phd_invulnerable = true;
player setVariable ["AllowAi", false];
d_spect_viewdistance = viewDistance;
["Initialize", [player, [], !isMultiplayer, true, true, true, true, true, true, true]] call BIS_fnc_EGSpectator;
d_rscspect_on = true;
0 spawn {
sleep 2;
d_spect_disp_handler = (["GetDisplay"] call BIS_fnc_EGSpectator) displayAddEventHandler ["KeyDown", {
if (_this select 1 == DIK_X) then {
xr_phd_invulnerable = false;
(["GetDisplay"] call BIS_fnc_EGSpectator) displayRemoveEventHandler ["KeyDown" ,d_spect_disp_handler];
["Terminate"] call BIS_fnc_EGSpectator;
d_commandingMenuIniting = false;
d_rscspect_on = nil;
if (!isNil "d_spect_viewdistance") then {
if (d_spect_viewdistance != viewDistance) then {
setViewDistance d_spect_viewdistance;
};
d_spect_viewdistance = nil;
};
"d_adminspecttxt" cutText ["", "PLAIN"];
true
} else {
false
};
}];
};
"d_adminspecttxt" cutText [localize "STR_DOM_MISSIONSTRING_1511", "PLAIN"];
} else {
["Terminate"] call BIS_fnc_EGSpectator;
xr_phd_invulnerable = false;
d_commandingMenuIniting = false;
d_rscspect_on = nil;
if (!isNil "d_spect_viewdistance") then {
if (d_spect_viewdistance != viewDistance) then {
setViewDistance d_spect_viewdistance;
};
d_spect_viewdistance = nil;
};
};