From e8b328ff9cf445bce3e336668e3eed6d0af9e17a Mon Sep 17 00:00:00 2001 From: ebayShopper Date: Fri, 24 Feb 2017 19:55:18 -0500 Subject: [PATCH] Fix remote vehicle lock and unlock actions refresh Thanks @oiad --- CHANGE LOG 1.0.6.1.txt | 2 ++ SQF/dayz_code/actions/hotwire_veh.sqf | 9 +++++++-- SQF/dayz_code/actions/lock_veh.sqf | 11 ++++++++--- SQF/dayz_code/actions/unlock_veh.sqf | 11 ++++++++--- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/CHANGE LOG 1.0.6.1.txt b/CHANGE LOG 1.0.6.1.txt index 7f2def65b..9ef22c2d8 100644 --- a/CHANGE LOG 1.0.6.1.txt +++ b/CHANGE LOG 1.0.6.1.txt @@ -27,6 +27,7 @@ [CHANGED] Increased head shot damage for normal hits (non-zombie and non-melee) [CHANGED] Slightly increased damage from vehicle run over [CHANGED] Moved study body back to fn_selfActions for easy admin customization. +[CHANGED] Players can now lock and unlock a vehicle when the key is in their backpack. This can be changed in epoch_tempKeys. #1897 @oiad [FIXED] Wrong texture for z_hunter zombie. #1805 @schwanzkopfhegel @ebayShopper [FIXED] Refuel with generator at gas station not working. #1806 @Helios27 @ebayShopper @@ -83,6 +84,7 @@ [FIXED] Updated to Sa-Matra's latest Core Patch BIS Effects which fix the fire in the sky bug again. #1883 @oiad @icomrade [FIXED] Mark body now marks all of your bodies instead of just one. @oiad [FIXED] Group and body markers correctly update on the GPS mini map now. +[FIXED] Vehicle lock and unlock actions are now refreshed correctly without needing to look away and back again. @oiad [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/hotwire_veh.sqf b/SQF/dayz_code/actions/hotwire_veh.sqf index 902ba6764..0c7b10146 100644 --- a/SQF/dayz_code/actions/hotwire_veh.sqf +++ b/SQF/dayz_code/actions/hotwire_veh.sqf @@ -1,4 +1,4 @@ -private ["_vehicle","_removed","_vehType"]; +private ["_time","_vehicle","_removed","_vehType"]; _vehicle = _this select 3; if (dayz_actionInProgress) exitWith {localize "STR_EPOCH_PLAYER_32" call dayz_rollingMessages;}; @@ -20,10 +20,14 @@ if (_removed == 1) then { _vehType = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); if ((random 10) <= 7.5) then { PVDZE_veh_Lock = [_vehicle,false]; + _time = diag_tickTime; + if (local _vehicle) then { - PVDZE_veh_Lock call local_lockUnlock + PVDZE_veh_Lock call local_lockUnlock; } else { publicVariable "PVDZE_veh_Lock"; + //Wait for lock status to update over network (can take up to a few seconds) + waitUntil {uiSleep 0.1;(!locked _vehicle or (diag_tickTime - _time > 4))}; }; format [localize "STR_EPOCH_PLAYER_33_OK",_vehType] call dayz_rollingMessages; } else { @@ -31,6 +35,7 @@ if (_removed == 1) then { }; }; +//Let fn_selfActions run now s_player_lockUnlock_crtl = -1; s_player_lockUnlockInside_ctrl = -1; dayz_actionInProgress = false; \ No newline at end of file diff --git a/SQF/dayz_code/actions/lock_veh.sqf b/SQF/dayz_code/actions/lock_veh.sqf index 39ad793b4..a9c9fa976 100644 --- a/SQF/dayz_code/actions/lock_veh.sqf +++ b/SQF/dayz_code/actions/lock_veh.sqf @@ -1,4 +1,4 @@ -private["_vehicle"]; +private ["_time","_vehicle"]; _vehicle = _this select 3; if (dayz_actionInProgress) exitWith {localize "str_epoch_player_37" call dayz_rollingMessages;}; @@ -10,14 +10,19 @@ s_player_lockUnlock_crtl = 1; s_player_lockUnlockInside_ctrl = 1; PVDZE_veh_Lock = [_vehicle,true]; -if(player distance _vehicle < 10) then { +_time = diag_tickTime; + +if (player distance _vehicle < 10) then { if (local _vehicle) then { - PVDZE_veh_Lock call local_lockUnlock + PVDZE_veh_Lock call local_lockUnlock; } else { publicVariable "PVDZE_veh_Lock"; + //Wait for lock status to update over network (can take up to a few seconds) + waitUntil {uiSleep 0.1;(locked _vehicle or (diag_tickTime - _time > 4))}; }; }; +//Let fn_selfActions run now s_player_lockUnlock_crtl = -1; s_player_lockUnlockInside_ctrl = -1; dayz_actionInProgress = false; \ No newline at end of file diff --git a/SQF/dayz_code/actions/unlock_veh.sqf b/SQF/dayz_code/actions/unlock_veh.sqf index 5cdedd315..72500bb10 100644 --- a/SQF/dayz_code/actions/unlock_veh.sqf +++ b/SQF/dayz_code/actions/unlock_veh.sqf @@ -1,4 +1,4 @@ -private["_vehicle","_key"]; +private ["_time","_vehicle","_key"]; _vehicle = (_this select 3) select 0; _key = (_this select 3) select 1; @@ -11,16 +11,21 @@ s_player_lockUnlock_crtl = 1; s_player_lockUnlockInside_ctrl = 1; PVDZE_veh_Lock = [_vehicle,false]; -if(player distance _vehicle < 10) then { +_time = diag_tickTime; + +if (player distance _vehicle < 10) then { if (local _vehicle) then { - PVDZE_veh_Lock call local_lockUnlock + PVDZE_veh_Lock call local_lockUnlock; } else { publicVariable "PVDZE_veh_Lock"; + //Wait for lock status to update over network (can take up to a few seconds) + waitUntil {uiSleep 0.1;(!locked _vehicle or (diag_tickTime - _time > 4))}; }; format [localize "STR_EPOCH_PLAYER_331",_key] call dayz_rollingMessages; }; +//Let fn_selfActions run now s_player_lockUnlock_crtl = -1; s_player_lockUnlockInside_ctrl = -1; dayz_actionInProgress = false; \ No newline at end of file