diff --git a/SQF/dayz_server/compile/server_updateObject.sqf b/SQF/dayz_server/compile/server_updateObject.sqf index b17a95e00..89d5fe682 100644 --- a/SQF/dayz_server/compile/server_updateObject.sqf +++ b/SQF/dayz_server/compile/server_updateObject.sqf @@ -66,8 +66,7 @@ _object_position = { }; _object_inventory = { - private ["_inventory","_key","_isNormal","_coins","_forceUpdate"]; - _forceUpdate = false; + private ["_inventory","_key","_isNormal","_coins"]; if (_object isKindOf "TrapItems") then { _inventory = [["armed",_object getVariable ["armed",false]]]; } else { @@ -83,15 +82,13 @@ _object_inventory = { _inventory = _object getVariable ["doorfriends", []]; //We're replacing the inventory with UIDs for this item }; - if (Z_SingleCurrency && {typeOf (_object) in DZE_MoneyStorageClasses}) then { _forceUpdate = true; }; - if (_isNormal) then { _inventory = [getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object]; }; }; _previous = str(_object getVariable["lastInventory",[]]); - if ((str _inventory != _previous) || {_forceUpdate}) then { + if (str _inventory != _previous) then { _object setVariable["lastInventory",_inventory]; if (_objectID == "0") then { _key = format["CHILD:309:%1:",_objectUID] + str _inventory + ":"; @@ -245,6 +242,27 @@ _object_variables = { _key call server_hiveWrite; }; +_object_coins = { + private ["_inventory","_key","_coins"]; + _inventory = [getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object]; + _object setVariable["lastInventory",_inventory]; + if (_objectID == "0") then { + _key = format["CHILD:309:%1:",_objectUID] + str _inventory + ":"; + } else { + _key = format["CHILD:303:%1:",_objectID] + str _inventory + ":"; + }; + if (Z_SingleCurrency) then { + _coins = _object getVariable [Z_MoneyVariable, -1]; //set to invalid value if getVariable fails to prevent overwriting of coins in DB + _key = _key + str _coins + ":"; + }; + + #ifdef OBJECT_DEBUG + diag_log format["DELETE: Deleted by KEY: %1",_key]; + #endif + + _key call server_hiveWrite; +}; + _object setVariable ["lastUpdate",diag_ticktime,true]; switch (_type) do { case "all": { @@ -273,4 +291,7 @@ switch (_type) do { case "objWallDamage": { call _objWallDamage; }; + case "coins": { + call _object_coins; + }; };