mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #257 from KoffeinFlummi/captivesFixRespawn
Captives fix respawn Fix #230
This commit is contained in:
commit
209bdc8dfd
@ -41,3 +41,11 @@ class Extended_InitPost_EventHandlers {
|
||||
};
|
||||
};
|
||||
};
|
||||
//make sure captiveNum is reset on respawn
|
||||
class Extended_Respawn_EventHandlers {
|
||||
class CAManBase {
|
||||
class ADDON {
|
||||
respawn = QUOTE(_this call FUNC(handleRespawn));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -21,6 +21,7 @@ PREP(handleGetOut);
|
||||
PREP(handleKilled);
|
||||
PREP(handleOnUnconscious);
|
||||
PREP(handlePlayerChanged);
|
||||
PREP(handleRespawn);
|
||||
PREP(handleUnitInitPost);
|
||||
PREP(handleZeusDisplayChanged);
|
||||
PREP(moduleSurrender);
|
||||
|
@ -18,7 +18,7 @@
|
||||
PARAMS_1(_oldUnit);
|
||||
|
||||
if (_oldUnit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||
_oldUnit setVariable [QGVAR(isHandcuffed), false, true];
|
||||
[_oldUnit, false] call FUNC(setSurrendered);
|
||||
};
|
||||
|
||||
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
||||
@ -26,5 +26,5 @@ if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
||||
};
|
||||
|
||||
if (_oldUnit getVariable [QGVAR(isSurrendering), false]) then {
|
||||
_oldUnit setVariable [QGVAR(isSurrendering), false, true];
|
||||
[_oldUnit, false] call FUNC(setSurrendered);
|
||||
};
|
||||
|
39
addons/captives/functions/fnc_handleRespawn.sqf
Normal file
39
addons/captives/functions/fnc_handleRespawn.sqf
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* 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"
|
||||
|
||||
PARAMS_2(_unit,_dead);
|
||||
|
||||
if (!local _unit) exitWith {};
|
||||
|
||||
//With respawn="group", we could be respawning into a unit that is handcuffed/captive
|
||||
//If they are, reset and rerun the SET function
|
||||
//if not, make sure to explicity disable the setCaptivityStatus, because captiveNum does not work correctly on respawn
|
||||
|
||||
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||
_unit setVariable [QGVAR(isHandcuffed), false];
|
||||
[_unit, true] call FUNC(setHandcuffed);
|
||||
} else {
|
||||
[_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus);
|
||||
};
|
||||
|
||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||
_unit setVariable [QGVAR(isSurrendering), false];
|
||||
[_unit, true] call FUNC(setSurrendered);
|
||||
} else {
|
||||
[_unit, QGVAR(Surrendered), false] call EFUNC(common,setCaptivityStatus);
|
||||
};
|
@ -75,6 +75,7 @@ if (_state) then {
|
||||
};
|
||||
};
|
||||
|
||||
if (!alive _unit) exitWith {};
|
||||
if (_unit getVariable ["ACE_isUnconscious", false]) exitWith {}; //don't touch animations if unconscious
|
||||
|
||||
//if we are in "hands up" animationState, crack it now
|
||||
|
Loading…
Reference in New Issue
Block a user