From d124a5d2f7bcd2bef527b5476a3ddd1337bce9cb Mon Sep 17 00:00:00 2001 From: ebaydayz Date: Mon, 2 Jan 2017 14:41:53 -0500 Subject: [PATCH] Make switch weapon interrupt autorun Fixes #1850 --- CHANGE LOG 1.0.6.1.txt | 1 + SQF/dayz_code/actions/player_switchWeapon.sqf | 1 + SQF/dayz_code/compile/keyboard.sqf | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGE LOG 1.0.6.1.txt b/CHANGE LOG 1.0.6.1.txt index 78b37fac0..508030bd7 100644 --- a/CHANGE LOG 1.0.6.1.txt +++ b/CHANGE LOG 1.0.6.1.txt @@ -43,6 +43,7 @@ [FIXED] Long search delay when filling water bottles, drinking from hands and drinking from empty cans on Chernarus. #1835 @schwanzkopfhegel [FIXED] Players can not purchase a negative number of items anymore. [FIXED] Removed antiwall glitch blocks for vanilla hospitals since Epoch uses DayZero hospitals. @jOoPs +[FIXED] Switching weapons properly interrupts autorun now. #1850 @DeVloek [NOTE] The fixes below are included in the 1.0.6 Build C server package released December 29th, 2016 (http://dayzepoch.com/a2dayzepoch.php) [FIXED] Hive child 309 errors that resulted in broken saving of newly built storage object inventory. @icomrade diff --git a/SQF/dayz_code/actions/player_switchWeapon.sqf b/SQF/dayz_code/actions/player_switchWeapon.sqf index e4c82f06a..de7ec6782 100644 --- a/SQF/dayz_code/actions/player_switchWeapon.sqf +++ b/SQF/dayz_code/actions/player_switchWeapon.sqf @@ -26,6 +26,7 @@ dz_fn_switchWeapon = { if (vehicle player != player) exitWith {}; if Player_IsOnLadder() exitWith {}; + if (dayz_autoRun) then {call dayz_autoRunOff;}; private ["_current","_primary","_secondary","_swapWeapons"]; diff --git a/SQF/dayz_code/compile/keyboard.sqf b/SQF/dayz_code/compile/keyboard.sqf index ce1437f92..0878a3c23 100644 --- a/SQF/dayz_code/compile/keyboard.sqf +++ b/SQF/dayz_code/compile/keyboard.sqf @@ -32,9 +32,11 @@ if (isNil "keyboard_keys") then { if (!dayz_autoRun) then { dayz_autoRun = true; dayz_autoRunThread = [] spawn { + _weapon = currentWeapon player; while {dayz_autoRun} do { // SurfaceIsWater does not work for ponds - if (player != vehicle player or (surfaceIsWater getPosASL player) or ((call fn_nearWaterHole) select 0) or r_fracture_legs) exitWith { + // Check weapon to detect Arma action (dayz action is handled in dz_fn_switchWeapon) + if (player != vehicle player or (surfaceIsWater getPosASL player) or ((call fn_nearWaterHole) select 0) or (currentWeapon player != _weapon) or r_fracture_legs) exitWith { call dayz_autoRunOff; }; player playAction "FastF";