Merge pull request 'track-unconscious-duration-in-respawn-msg' (#30) from track-unconscious-duration-in-respawn-msg into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 30s

Reviewed-on: hizumi/MissionTemplate#30
Reviewed-by: hizumi <hizumi@noreply.iceberg-gaming.com>
This commit was merged in pull request #30.
This commit is contained in:
2024-02-14 02:02:05 -06:00
5 changed files with 38 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ class DOUBLES(PREFIX,client) {
class addMicroDAGRWaypoints {};
class addZenModules {};
class bindEventHandlers {};
class bindUnconsciousListener {};
class bindVehicleActions {};
};
};

View File

@@ -7,11 +7,20 @@ player addEventHandler["Respawn",
params ["_unit", "_corpse"];
private _killer = _corpse getVariable ["ace_medical_causeOfDeath", "#scripted"];
if (_killer == "respawn_button") then {
private _timeWentUnconscious = _unit getVariable [QGVARMAIN(lastTimeKnockedOut), -1];
private _durationSpentUnconscious = diag_tickTime - _timeWentUnconscious;
[
LEVEL_INFO,
QUOTE(COMPONENT),
"RESPAWNED WHILE UNCONSCIOUS",
[_unit] call EFUNC(common,addPlayerInfoToArray)
[_unit, [[
"durationSpentUnconscious",
(if (_timeWentUnconscious > - 1) then {
_durationSpentUnconscious
} else {
-1
})
]]] call EFUNC(common,addPlayerInfoToArray)
] remoteExec [QEFUNC(common,log), 2];
// format["%1 was unconscious then clicked the respawn button", name _unit] remoteExec["systemChat", 0];
};

View File

@@ -0,0 +1,13 @@
#include "..\script_component.hpp"
if (!hasInterface) exitWith {};
["ace_medical_knockOut", { // local event that's also used directly by the ACE medical statemachine
private _unit = _this;
_this setVariable [QGVARMAIN(lastTimeKnockedOut), diag_tickTime];
}] call CBA_fnc_addEventHandler;
["ace_medical_WakeUp", { // local event that's also used directly by the ACE medical statemachine
private _unit = _this;
_this setVariable [QGVARMAIN(lastTimeKnockedOut), nil];
}] call CBA_fnc_addEventHandler;

View File

@@ -8,6 +8,9 @@ call FUNC(addZenModules);
call FUNC(bindEventHandlers);
call FUNC(bindVehicleActions);
// add listener that tracks when the player goes unconscious and saves a variable with time
call FUNC(bindUnconsciousListener);
[
LEVEL_DEBUG,
QUOTE(COMPONENT),

View File

@@ -8,12 +8,22 @@ if (!hasInterface) exitWith {};
_clientID = _thisArgs select 0;
player setDamage 1;
private _timeWentUnconscious = player getVariable [QGVARMAIN(lastTimeKnockedOut), -1];
private _durationSpentUnconscious = diag_tickTime - _timeWentUnconscious;
// log to server RPT
[
LEVEL_INFO,
QUOTE(COMPONENT),
"CHAT COMMAND RESPAWN",
[player] call EFUNC(common,addPlayerInfoToArray)
[player, [[
"durationSpentUnconscious",
(if (_timeWentUnconscious > - 1) then {
_durationSpentUnconscious
} else {
-1
})
]]] call EFUNC(common,addPlayerInfoToArray)
] remoteExec [QEFUNC(common,log), 2];
// systemChat to all remote machines