/* * Author: SilentSpike * The ace_spectator respawn template, handles killed + respawn * Can be used via BI's respawn framework, see: * https://community.bistudio.com/wiki/Arma_3_Respawn * * Arguments: * 0: Corpse/New Unit * 1: Killer/Old Unit * 2: Respawn Type * 3: Respawn Delay * * Return Value: * None * * Public: No */ #include "script_component.hpp" params [["_unit",objNull,[objNull]], ["_killer",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; private ["_vision","_pos"]; // End mission when all are dead with respawn type "None" if ((_respawn == 0) && {{alive _x} count allPlayers <= 0}) exitWith { [["endDeath",false],"BIS_fnc_endMission"] call EFUNC(common,execRemoteFnc); }; if (isNull _killer) then {_killer = _unit}; _vision = [-2,-1] select (sunOrMoon < 1); _pos = (getPosATL _unit) vectorAdd [0,0,5]; if (alive _unit) then { if (_respawn == 1) then { [_unit,QGVAR(isSeagull)] call EFUNC(common,hideUnit); [2,_killer,_vision,_pos,getDir _unit] call FUNC(setCameraAttributes); [true] call FUNC(setSpectator); } else { [false] call FUNC(setSpectator); }; } else { [2,_killer,_vision,_pos,getDir _unit] call FUNC(setCameraAttributes); [true] call FUNC(setSpectator); };