ACE3/addons/spectator/XEH_postInit.sqf

96 lines
3.4 KiB
Plaintext
Raw Normal View History

2015-06-29 02:34:21 +00:00
/*
Author:
voiper
*/
#include "script_component.hpp"
["SettingsInitialized", {
if !GVAR(enabled) exitWith {};
//check if respawn is set up properly
_fail = if (getNumber (missionConfigFile >> "respawn") != 3 && getText (missionConfigFile >> "respawn") != "Base") then {true} else {false};
if (_fail) exitWith {
_text = "[ACE_Spectator] ERROR: This mission does not have respawn set up properly. Add 'respawn=3' or 'respawn=""BASE""' to description.ext.";
systemChat _text;
diag_log text _text;
};
if GVAR(endMission) then {
[{
if (player distance GVAR(penPos) < 200) then {
if ({isPlayer _x && alive _x && (_x distance GVAR(penPos)) > 200} count allUnits == 0) then {
[["endDeath", false], "BIS_fnc_endMission"] call BIS_fnc_MP;
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
};
}, 2] call CBA_fnc_addPerFrameHandler;
};
if (isDedicated) exitWith {};
call FUNC(penPos);
{
if (getMarkerPos _x isEqualTo [0,0,0]) then {
_marker = createMarkerLocal [_x, [0,0]];
_marker setMarkerShapeLocal "ICON";
};
_x setMarkerPosLocal GVAR(penPos);
} forEach ["respawn_west", "respawn_east", "respawn_guerrila", "respawn_civilian"];
GVAR(playerSide) = side (group player);
if GVAR(tracking) then {
[FUNC(checkUnits), 2] call CBA_fnc_addPerFrameHandler;
[FUNC(trackUnits), 20] call CBA_fnc_addPerFrameHandler;
};
player addEventHandler ["Killed", {
[player] joinSilent grpNull;
if (isClass (configFile >> "CfgPatches" >> "ace_hearing")) then {EGVAR(hearing,disableVolumeUpdate) = true};
_delay = getNumber (missionConfigFile >> "respawnDelay");
_delay fadeSound 0;
999999 cutText ["", "BLACK", _delay];
}];
player addEventHandler ["Respawn", {
if (!isNil QGVAR(cam)) then {["Exit"] call FUNC(camera)};
if (isClass (configFile >> "CfgPatches" >> "ace_hearing")) then {EGVAR(hearing,disableVolumeUpdate) = true};
if (isClass (configFile >> "CfgPatches" >> "acre_sys_radio")) then {[true] call acre_api_fnc_setSpectator};
if (isClass (configFile >> "CfgPatches" >> "task_force_radio")) then {[player, true] call TFAR_fnc_forceSpectator};
if !GVAR(modulePos) then {
_corpse = _this select 1;
if (!isNil "_corpse") then {
if (!isNull _corpse) then {
GVAR(startingPos) = getPosATL _corpse;
};
};
};
player addEventHandler ["HandleDamage", {0}];
[player] joinSilent grpNull;
removeAllWeapons player;
removeAllItems player;
removeAllAssignedItems player;
removeUniform player;
removeVest player;
player linkItem "ItemMap";
player linkItem "ItemRadio";
hideObjectGlobal player;
if (surfaceisWater GVAR(penPos)) then {
player forceAddUniform "U_B_Wetsuit";
player addVest "V_RebreatherB";
};
player setPosATL GVAR(penPos);
0 fadeSound 0;
999999 cutText ["", "BLACK FADED", 0];
["Init", [true]] call FUNC(camera);
}];
}] call EFUNC(common,addEventHandler);