diff --git a/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp b/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp index bbb9a8eb1..6fecb30a6 100644 --- a/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp +++ b/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp @@ -11,7 +11,6 @@ class AdvancedTrading { idd = 711197; onLoad = "uiNamespace setVariable ['AdvancedTrading', _this select 0]"; - onUnload = "call player_forceSave; if (!isNull Z_vehicle) then {PVDZ_veh_Save = [Z_vehicle,'all']; publicVariable 'PVDZ_veh_Save';};"; class Controls { class RscText_ATBackground1: ZSC_RscText { diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_buyItems.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_buyItems.sqf index 17cacaba9..f109c25f1 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_buyItems.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_buyItems.sqf @@ -259,6 +259,11 @@ if (_enoughMoney) then { }; }; _itemsToLog call Z_logTrade; + call player_forceSave; + if (Z_SellingFrom == 1) then { + PVDZ_veh_Save = [Z_vehicle,"gear"]; + publicVariableServer "PVDZ_veh_Save"; + }; } else { if (Z_SingleCurrency) then { systemChat format[localize "STR_EPOCH_TRADE_NEED_COINS",[_priceToBuy] call BIS_fnc_numberText,CurrencyName]; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_returnChange.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_returnChange.sqf index 2a7b13dc0..c50414c72 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_returnChange.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_returnChange.sqf @@ -260,6 +260,8 @@ if (_return_change > 0) then { } else { _successful = true; }; + + if (_combine) then {call player_forceSave;}; }; if (Z_ChangeInBackpack) then { systemChat localize "STR_EPOCH_TRADE_CHANGE_IN_BACKPACK"; }; diff --git a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf index 32b8cfce5..9ef11c42e 100644 --- a/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf +++ b/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf @@ -161,7 +161,6 @@ if (Z_SellingFrom == 2) then { }; }; }; - } forEach Z_SellArray; _outcome set [0,_mA]; @@ -231,6 +230,11 @@ if (typeName _money == "SCALAR") then { if (_tCost != "") then { systemChat format[localize "STR_EPOCH_TRADE_SELL_SUCCESS",_tCost]; }; }; _itemsToLog call Z_logTrade; + call player_forceSave; + if (Z_SellingFrom == 1) then { + PVDZ_veh_Save = [Z_vehicle,"gear"]; + publicVariableServer "PVDZ_veh_Save"; + }; } else { systemChat localize "STR_EPOCH_TRADE_DEBUG"; diag_log "Money is not a number. Something went wrong."; diff --git a/SQF/dayz_code/compile/veh_setFixServer.sqf b/SQF/dayz_code/compile/veh_setFixServer.sqf index c109eae18..2a0feb0e1 100644 --- a/SQF/dayz_code/compile/veh_setFixServer.sqf +++ b/SQF/dayz_code/compile/veh_setFixServer.sqf @@ -9,18 +9,8 @@ if (_selection != "" and local _unit) then { //player sidechat str _damage; _unit setVariable [_strH,_damage,true]; if (_damage == 0) then { - if (isServer) then { - [_unit,"repair"] call server_updateObject - } else { - PVDZ_veh_Save = [_unit,"repair"]; - publicVariable "PVDZ_veh_Save"; - }; + [_unit,"repair"] call server_updateObject; } else { - if (isServer) then { - [_unit,"damage"] call server_updateObject - } else { - PVDZ_veh_Save = [_unit,"damage"]; - publicVariable "PVDZ_veh_Save"; - }; + [_unit,"damage"] call server_updateObject; }; }; \ No newline at end of file diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index a65bd8d80..2e3876117 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -1,5 +1,6 @@ if (isServer) then { call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\server_functions.sqf"; + fnc_veh_setFixServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_setFixServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) pvs_processSetAccessCode = compile preprocessFile "\z\addons\dayz_code\eventHandlers\processSetAccessCode.sqf"; pvs_processAccessCode = compile preprocessFile "\z\addons\dayz_code\eventHandlers\processAccessCode.sqf"; server_spawnTraders = compile preprocessFile "\z\addons\dayz_server\compile\server_spawnTraders.sqf"; @@ -638,7 +639,6 @@ fnc_veh_handleDam = compile preprocessFileLineNumbers "\z\addons\dayz_code\compi fnc_veh_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleKilled.sqf"; fnc_veh_handleRepair = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleRepair.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) fnc_veh_ResetEH = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf"; //Initialize vehicle -fnc_veh_setFixServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_setFixServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) fnc_inString = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inString.sqf"; fnc_isInsideBuilding = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding; dayz_zombieSpeak = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf"; //Used to generate random speech for a unit