From 08e6d50db0c34ccf24172ed0ff3f0db05e2e7aaf Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Sat, 20 Apr 2024 16:23:16 +0200 Subject: [PATCH] Update XEH_postInitClient.sqf --- addons/map/XEH_postInitClient.sqf | 35 ++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/addons/map/XEH_postInitClient.sqf b/addons/map/XEH_postInitClient.sqf index ea3ce19464..5b0f14b20e 100644 --- a/addons/map/XEH_postInitClient.sqf +++ b/addons/map/XEH_postInitClient.sqf @@ -65,15 +65,36 @@ GVAR(flashlights) = [] call CBA_fnc_createNamespace; // hide clock on map if player has no watch GVAR(hasWatch) = true; -["loadout", { - params ["_unit"]; - if (isNull _unit) exitWith { +["unit", { + params ["_newPlayer", "_oldPlayer"]; + + private _ehID = _oldPlayer getVariable QGVAR(ehID); + + if (!isNil "_ehID") then { + _oldPlayer removeEventHandler ["SlotItemChanged", _ehID]; + + _oldPlayer setVariable [QGVAR(ehID), nil]; + }; + + if (isNull _newPlayer) exitWith { GVAR(hasWatch) = true; }; - GVAR(hasWatch) = false; - { - if (_x isKindOf ["ItemWatch", configFile >> "CfgWeapons"]) exitWith {GVAR(hasWatch) = true;}; - } forEach (assignedItems _unit); + + _ehID = _newPlayer getVariable QGVAR(ehID); + + if (isNil "_ehID") then { + _ehID = _newPlayer addEventHandler ["SlotItemChanged", { + params ["", "_item", "_slot", "_assign"]; + + if (_slot != TYPE_WATCH) exitWith {}; + + GVAR(hasWatch) = _assign && {_item isKindOf ["ItemWatch", configFile >> "CfgWeapons"]}; + }]; + + _newPlayer setVariable [QGVAR(ehID), _ehID]; + + GVAR(hasWatch) = (_newPlayer getSlotItemName TYPE_WATCH) isKindOf ["ItemWatch", configFile >> "CfgWeapons"]; + }; }, true] call CBA_fnc_addPlayerEventHandler;