Creic 0 Posted March 18, 2023 Hi folks, From patch 1.46's changelog: "Added: Scripted event handlers for entering and exiting the incapacitated state" (https://dev.arma3.com/post/spotrep-00043#:~:text=Added%3A Scripted event handlers for entering and exiting the incapacitated state) List of Scripted EH's on Wiki: https://community.bistudio.com/wiki/Arma_3:_Scripted_Event_Handlers I've noticed the incapacitated state scripted EH doesn't appear in that list. I can't find a reference to it being removed in a later patch, so I'm guessing it is undocumented. I've hunted high and low through the function viewer to no avail, and even had help from the Discord which had the same result. Anybody know what the event name and event params for it would be? Cheers. Share this post Link to post Share on other sites
Harzach 2517 Posted March 18, 2023 @Larrow's yer huckleberry: 1 Share this post Link to post Share on other sites
Creic 0 Posted March 18, 2023 Either I'm doing something wrong, or the event name is no longer 'reviveIncapacitated' as the following does not fire when incapacitated: [ missionNamespace, "reviveIncapacitated", { systemChat "Test: Incap"; } ] call BIS_fnc_addScriptedEventHandler; Share this post Link to post Share on other sites
Creic 0 Posted March 18, 2023 Have also tried 'reviveRevived' to no avail. Tried the code from @Larrow posted here: https://feedback.bistudio.com/T85239#1124301 I'm starting to weigh on the side of they've been renamed or removed? Share this post Link to post Share on other sites
Larrow 2821 Posted March 18, 2023 From patch 1.46's changelog: "Added: Scripted event handlers for entering and exiting the incapacitated state" They were removed when the whole revive system was rewritten, A3 1.62 2016 I believe. spotrep-00058 Quote Tweaked: The Revive feature was overhauled 2 Share this post Link to post Share on other sites
Creic 0 Posted March 18, 2023 47 minutes ago, Larrow said: They were removed when the whole revive system was rewritten, A3 1.62 2016 I believe. spotrep-00058 Damn, that's such a shame. Thanks though! Share this post Link to post Share on other sites
phronk 898 Posted March 18, 2023 I personally use lifeState isEqualTo "INCAPACITATED" (All string values it returns are in caps), could try to detect when someone enters that state via a damage eventHandler maybe. I wrote my own incapacitation script/system but manually sets the incapacitated to true on player. There's a lot of variables with the vanilla incapacitation/revive system to keep track of so just be aware of that. 1 Share this post Link to post Share on other sites
Larrow 2821 Posted March 19, 2023 16 hours ago, phronk said: try to detect when someone enters that state via a damage eventHandler maybe 16 hours ago, phronk said: There's a lot of variables with the vanilla incapacitation/revive system to keep track of ^^this. See \a3\functions_f_mp_mark\revive\defines.inc which you can include into your own scripts to access revive macros/state enumerations. These are likely the most useful from that file. Spoiler /*-------------------------------------------------------------------------------------------------- PLAYER VARIABLE NAMES --------------------------------------------------------------------------------------------------*/ //unit variable names #define VAR_REVIVE_ENABLED "#rev_enabled" //broadcasted unit variables #define VAR_TRANSFER_STATE "#rev" #define VAR_TRANSFER_FORCING_RESPAWN "#revF" #define VAR_TRANSFER_BEING_REVIVED "#revB" #define VAR_BLOOD_LEVEL "#revL" //local unit variables #define VAR_STATE "#rev_state" #define VAR_STATE_PREV "#rev_statePrev" #define VAR_BEING_REVIVED "#rev_being_revived" #define VAR_FORCING_RESPAWN "#rev_forcing_respawn" #define VAR_DAMAGE "#rev_damage" #define VAR_DAMAGE_BLEED "#rev_bleed" #define VAR_ACTION_ID_REVIVE "#rev_actionID_revive" #define VAR_ACTION_ID_RESPAWN "#rev_actionID_respawn" #define VAR_ACTION_ID_SECURE "#rev_actionID_secure" #define VAR_CAMERA_VIEW "#rev_camera" #define VAR_INCAPACITATED_POS "#rev_incap_pos" #define VAR_INCAPACITATED_BACKUPPOS "#rev_incap_backuppos" #define VAR_INCAPACITATED_DIR "#rev_incap_dir" #define VAR_INCAPACITATED_BODY "#rev_incap_corpse" #define AI_PROTECTION_ACTIVATE(unit) if (!captive unit) then {unit setCaptive true;unit setVariable ["#rev_captiveForced",true];} else {unit setVariable ["#rev_captiveForced",false];} #define AI_PROTECTION_DEACTIVATE(unit) if (unit getVariable ["#rev_captiveForced",false]) then {unit setVariable ["#rev_captiveForced",false];unit setCaptive false;} /*-------------------------------------------------------------------------------------------------- PLAYER STATES --------------------------------------------------------------------------------------------------*/ #define STATE_RESPAWNED 0 #define STATE_REVIVED 1 #define STATE_INCAPACITATED 2 #define STATE_DEAD 3 #define GET_STATE_STR(state) format["%1(%2)",["RESPAWNED","REVIVED","INCAPACITATED","DEAD"] select state,state] #define SET_STATE(unit,state) ["",state,unit] call bis_fnc_reviveOnState;unit setVariable [VAR_TRANSFER_STATE, state, true] #define SET_STATE_XTRA(unit,state,source) ["",[state,source],unit] call bis_fnc_reviveOnState;unit setVariable [VAR_TRANSFER_STATE, [state,source], true] #define SET_STATE_XTRA2(unit,state,source,reason) ["",[state,source,reason],unit] call bis_fnc_reviveOnState;unit setVariable [VAR_TRANSFER_STATE, [state,source,reason], true] #define GET_STATE(unit) (unit getVariable [VAR_STATE, STATE_RESPAWNED]) #define IS_DISABLED(unit) (GET_STATE(unit) == STATE_INCAPACITATED) #define IS_ACTIVE(unit) (GET_STATE(unit) < STATE_INCAPACITATED) Share this post Link to post Share on other sites