mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Medical - Fix broken AI ragdolls if AI unconsciousness is disabled (#9917)
Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
parent
f3f7f2c492
commit
6a2f3a21f2
@ -86,12 +86,6 @@
|
|||||||
if (!isNull objectParent _unit && {local objectParent _unit}) exitWith {
|
if (!isNull objectParent _unit && {local objectParent _unit}) exitWith {
|
||||||
[_unit] call FUNC(lockUnconsciousSeat);
|
[_unit] call FUNC(lockUnconsciousSeat);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Prevent second ragdoll of uncon units when they're killed
|
|
||||||
if (IS_UNCONSCIOUS(_unit) && !isAwake _unit) then {
|
|
||||||
_unit enableSimulation false;
|
|
||||||
[{_this enableSimulation true}, _unit, 2] call CBA_fnc_waitAndExecute;
|
|
||||||
};
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
["CAManBase", "deleted", {
|
["CAManBase", "deleted", {
|
||||||
|
@ -10,6 +10,12 @@ class Extended_PreInit_EventHandlers {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Extended_PostInit_EventHandlers {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class Extended_Respawn_EventHandlers {
|
class Extended_Respawn_EventHandlers {
|
||||||
class CAManBase {
|
class CAManBase {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
14
addons/medical_statemachine/XEH_postInit.sqf
Normal file
14
addons/medical_statemachine/XEH_postInit.sqf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
["ace_killed", { // global event
|
||||||
|
params ["_unit"];
|
||||||
|
|
||||||
|
// Prevent second ragdoll of uncon units when they're killed
|
||||||
|
if (
|
||||||
|
IS_UNCONSCIOUS(_unit) && !isAwake _unit // uncon and not ragdolling
|
||||||
|
&& {isPlayer _unit || {_unit getVariable [QGVAR(AIUnconsciousness), GVAR(AIUnconsciousness)]}}
|
||||||
|
) then {
|
||||||
|
_unit enableSimulation false;
|
||||||
|
[{_this enableSimulation true}, _unit, 2] call CBA_fnc_waitAndExecute;
|
||||||
|
};
|
||||||
|
}] call CBA_fnc_addEventHandler;
|
@ -17,10 +17,14 @@
|
|||||||
params ["_unit", ["_reason", "#setDead"], ["_instigator", objNull]];
|
params ["_unit", ["_reason", "#setDead"], ["_instigator", objNull]];
|
||||||
TRACE_3("setDead",_unit,_reason,_instigator);
|
TRACE_3("setDead",_unit,_reason,_instigator);
|
||||||
|
|
||||||
|
|
||||||
// No heart rate or blood pressure to measure when dead
|
// No heart rate or blood pressure to measure when dead
|
||||||
_unit setVariable [VAR_HEART_RATE, 0, true];
|
_unit setVariable [VAR_HEART_RATE, 0, true];
|
||||||
_unit setVariable [VAR_BLOOD_PRESS, [0, 0], true];
|
_unit setVariable [VAR_BLOOD_PRESS, [0, 0], true];
|
||||||
|
|
||||||
|
// Clear uncon variable just to be safe
|
||||||
|
_unit setVariable [VAR_UNCON, nil, true];
|
||||||
|
|
||||||
_unit setVariable [QEGVAR(medical,causeOfDeath), _reason, true];
|
_unit setVariable [QEGVAR(medical,causeOfDeath), _reason, true];
|
||||||
|
|
||||||
// Send a local event before death
|
// Send a local event before death
|
||||||
|
Loading…
Reference in New Issue
Block a user