diff --git a/Sources/epoch_code/System/player_login.fsm b/Sources/epoch_code/System/player_login.fsm index 22f7c311..c095cb43 100644 --- a/Sources/epoch_code/System/player_login.fsm +++ b/Sources/epoch_code/System/player_login.fsm @@ -602,6 +602,7 @@ class FSM itemno = 27; init = /*%FSM*/"_ply = player;" \n "_group = group player;" \n + "_goggles = goggles _playerObject;" \n "" \n "selectPlayer _playerObject;" \n "" \n @@ -896,7 +897,12 @@ class FSM { name = "Setup_EH_s_and_H"; itemno = 50; - init = /*%FSM*/"{" \n + init = /*%FSM*/"" \n + "if (!_newChar || !(_goggles isEqualTo """")) then {" \n + " removeGoggles player;" \n + " player addGoggles _goggles" \n + "};" \n + "{" \n " player addEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n "} forEach ([""CfgEpochClient"", ""addEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);" \n "" \n diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf index d5717a6a..d3a3c769 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf @@ -46,6 +46,8 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then { // wait for loadAbs to sync waitUntil {_loadAbs isEqualTo (loadAbs _playerObject)}; + + _goggles = goggles _playerObject; // switch to new playerObject selectPlayer _playerObject; @@ -77,6 +79,9 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then { closeDialog 0; ("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"]; + removeGoggles player; + player addGoggles _goggles; + { player removeEventHandler [_x, 0]; player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];