2015-03-26 05:53:02 +00:00
|
|
|
/*
|
|
|
|
* Author: commy2 PabstMirror
|
|
|
|
* Fix, because captiveNum doesn't reset properly on respawn
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* 0: Unit <OBJECT>
|
|
|
|
* 1: Corpse <OBJECT>
|
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* Nothing
|
|
|
|
*
|
|
|
|
* Example:
|
|
|
|
* [alive, body] call ACE_captives_fnc_handleRespawn;
|
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
#include "script_component.hpp"
|
|
|
|
|
2015-08-04 23:15:20 +00:00
|
|
|
params ["_unit","_dead"];
|
2015-03-26 05:53:02 +00:00
|
|
|
|
|
|
|
if (!local _unit) exitWith {};
|
|
|
|
|
2015-09-12 12:36:55 +00:00
|
|
|
// Group and side respawn can potentially respawn you as a captive unit
|
|
|
|
// Base and instant respawn cannot, so captive should be entirely reset
|
|
|
|
// So we explicity account for the respawn type
|
|
|
|
private ["_respawn"];
|
|
|
|
_respawn = [0] call BIS_fnc_missionRespawnType;
|
2015-03-26 19:21:26 +00:00
|
|
|
|
2015-09-12 12:36:55 +00:00
|
|
|
if (_respawn > 3) then {
|
|
|
|
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
|
|
|
_unit setVariable [QGVAR(isHandcuffed), false];
|
|
|
|
[_unit, true] call FUNC(setHandcuffed);
|
|
|
|
};
|
|
|
|
|
|
|
|
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
|
|
|
_unit setVariable [QGVAR(isSurrendering), false];
|
|
|
|
[_unit, true] call FUNC(setSurrendered);
|
|
|
|
};
|
2015-03-26 19:21:26 +00:00
|
|
|
} else {
|
2015-09-12 12:36:55 +00:00
|
|
|
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
|
|
|
[_unit, false] call FUNC(setHandcuffed);
|
|
|
|
};
|
2016-01-19 15:34:59 +00:00
|
|
|
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
2015-03-26 19:21:26 +00:00
|
|
|
|
2015-09-12 12:36:55 +00:00
|
|
|
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
|
|
|
[_unit, false] call FUNC(setSurrendered);
|
|
|
|
};
|
2016-01-19 15:34:59 +00:00
|
|
|
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
2015-09-12 12:36:55 +00:00
|
|
|
|
|
|
|
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
|
|
|
_oldUnit setVariable [QGVAR(isEscorting), false, true];
|
|
|
|
};
|
2015-03-26 19:21:26 +00:00
|
|
|
};
|