From 5acad04c43bc1d1fa11476614e6d5a6f708cc3a0 Mon Sep 17 00:00:00 2001 From: icomrade Date: Tue, 25 Jul 2017 14:32:49 -0400 Subject: [PATCH] should fix #1938 Also prevents logout on onPause conditions, i.e. logout if in combat, another player is near, or a zombie is near --- SQF/dayz_code/compile/keyboard.sqf | 8 ++++---- SQF/dayz_code/compile/player_onPause.sqf | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/SQF/dayz_code/compile/keyboard.sqf b/SQF/dayz_code/compile/keyboard.sqf index 259e155d6..879cd4093 100644 --- a/SQF/dayz_code/compile/keyboard.sqf +++ b/SQF/dayz_code/compile/keyboard.sqf @@ -128,9 +128,9 @@ if (isNil "keyboard_keys") then { };}; }; _forcesave = { - dayz_lastCheckBit = diag_ticktime; - call player_forceSave; - call dayz_EjectPlayer; + if (diag_tickTime - dayz_lastSave > 10) then { + call player_forceSave; + }; }; _forcesave2 = { if ((!isNull (findDisplay 106)) OR dialog) then { @@ -300,7 +300,7 @@ if (isNil "keyboard_keys") then { [actionKeys "Diary", _journal] call _addArray; [actionKeys "NetworkStats", _journal] call _addArray; [[DIK_F1], _muteSound] call _addArray; - //[[DIK_F4, DIK_TAB, DIK_DELETE], _forcesave] call _addArray; + [[DIK_F4, DIK_TAB, DIK_DELETE], _forcesave] call _addArray; //[[DIK_F4, DIK_RMENU, DIK_LMENU,DIK_LSHIFT,DIK_RSHIFT,DIK_ESCAPE], _forcesave2] call _addArray; [actionKeys "LeanLeft", _build_left ] call _addArray; [actionKeys "LeanRight", _build_right ] call _addArray; diff --git a/SQF/dayz_code/compile/player_onPause.sqf b/SQF/dayz_code/compile/player_onPause.sqf index f89af0888..97038448d 100644 --- a/SQF/dayz_code/compile/player_onPause.sqf +++ b/SQF/dayz_code/compile/player_onPause.sqf @@ -34,16 +34,28 @@ while {(!isNull _display) && !r_player_dead} do { _btnAbort ctrlEnable false; _btnAbort ctrlSetText format["%1 (in 10)", _btnAbortText]; [localize "str_abort_playerclose",1] call dayz_rollingMessages; + if (TimeOutDisplayed) then { + _display closeDisplay 2; + closeDialog 2; + }; }; case (_zedCheck) : { _btnAbort ctrlEnable false; _btnAbort ctrlSetText format["%1 (in 10)", _btnAbortText]; [localize "str_abort_zedsclose",1] call dayz_rollingMessages; + if (TimeOutDisplayed) then { + _display closeDisplay 2; + closeDialog 2; + }; }; case (_inCombat) : { _btnAbort ctrlEnable false; _btnAbort ctrlSetText format["%1 (in %2)", _btnAbortText, ceil (_timeout - diag_tickTime)]; [localize "str_abort_playerincombat",1] call dayz_rollingMessages; + if (TimeOutDisplayed) then { + _display closeDisplay 2; + closeDialog 2; + }; }; case (isInTraderCity) : { _btnAbort ctrlEnable false;