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
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:
@@ -27,6 +27,7 @@ class DOUBLES(PREFIX,client) {
|
||||
class addMicroDAGRWaypoints {};
|
||||
class addZenModules {};
|
||||
class bindEventHandlers {};
|
||||
class bindUnconsciousListener {};
|
||||
class bindVehicleActions {};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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];
|
||||
};
|
||||
|
||||
13
framework/client/functions/fn_bindUnconsciousListener.sqf
Normal file
13
framework/client/functions/fn_bindUnconsciousListener.sqf
Normal 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;
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user