Keep global characterID only for special cases

Only vehicles with a key and locked/lockable buildings need a global characterID. All other vehicles and buildings will have a characterID of "0".
This commit is contained in:
A Man
2022-03-26 18:11:16 +01:00
parent fc6680c360
commit 67bdc72171
11 changed files with 45 additions and 49 deletions

View File

@@ -82,7 +82,7 @@ if (_outcome != "PASS") then {
processInitCommands;
_characterID = str(_characterID);
_object setVariable ["CharacterID", _characterID, true];
_object setVariable ["CharacterID", _characterID, [true,false] select (_characterID == "0")];
if (_characterID != "0" && !(_object isKindOf "Bicycle")) then {_object setVehicleLock "LOCKED";};

View File

@@ -70,7 +70,7 @@ if (_outcome != "PASS") then {
#endif
_object setVariable ["lastUpdate",diag_tickTime];
_object setVariable ["CharacterID", _characterID, true];
_object setVariable ["CharacterID", _characterID]; // Non key vehicles need no global set CharacterID
_object setDamage _damage;
[_object,_array] call server_setHitpoints;

View File

@@ -80,7 +80,7 @@ if (_outcome != "PASS") then {
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
_object setVariable ["ObjectID", _oid];
_object setVariable ["lastUpdate",diag_tickTime];
_object setVariable ["CharacterID", _characterID, true];
_object setVariable ["CharacterID", _characterID,[true,false] select (_donotusekey)]; // Set CharacterID global only for vehicles with a key.
if(DZE_TRADER_SPAWNMODE) then {
_object attachTo [_object_para, [0,0,-1.6]];

View File

@@ -105,7 +105,7 @@ if (_outcome != "PASS") then {
_object setVariable ["ObjectID", _oid];
_object setVariable ["lastUpdate",diag_tickTime];
_object setVariable ["CharacterID", _characterID, true];
_object setVariable ["CharacterID", _characterID, [false,true] select (_characterID != "0")];
if (Z_SingleCurrency && {ZSC_VehicleMoneyStorage && (_coins > 0)}) then {
_object setVariable ["cashMoney",_coins,true];

View File

@@ -1,4 +1,4 @@
private ["_gearClasses","_coins","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_inv","_objectID","_objectUID","_proceed","_activatingplayer","_clientKey","_exitReason","_playerUID","_weapons","_magazines","_backpacks"];
private ["_setGlobal","_gearClasses","_coins","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_inv","_objectID","_objectUID","_proceed","_activatingplayer","_clientKey","_exitReason","_playerUID","_weapons","_magazines","_backpacks"];
if (count _this < 8) exitWith {diag_log format ["Server_SwapObject error: Wrong parameter format from player %1",_this select 5];};
@@ -67,7 +67,8 @@ if (!_allowed || !_proceed) exitWith {
};
// Publish variables
_object setVariable ["CharacterID",_charID,true];
_setGlobal = [false,true] select ((_class in DZE_isLockedStorageUpgrade) || (_class in DZE_DoorsLocked));
_object setVariable ["CharacterID",_charID,_setGlobal];
//diag_log ("PUBLISH: Attempt " + str(_object));

View File

@@ -263,7 +263,8 @@ if ((playersNumber west + playersNumber civilian) == 0) exitWith {
};
};
};
_object setVariable ["CharacterID", _ownerID, true];
_setGlobal = [false,true] select ((_type in DZE_LockedStorage) || (_type in DZE_DoorsLocked));
_object setVariable ["CharacterID", _ownerID, _setGlobal];
if (_isSafeObject && !_isTrapItem) then {
_object setVariable["memDir",_dir,true];
if (DZE_GodModeBase && {!(_type in DZE_GodModeBaseExclude)}) then {
@@ -363,7 +364,8 @@ if ((playersNumber west + playersNumber civilian) == 0) exitWith {
{_object addBackpackCargoGlobal [_x, _backpackqty select _foreachindex];} foreach _backpackcargo;
};
_object setVariable ["CharacterID", _ownerID, true];
_setGlobal = [false,true] select (_ownerID != "0");
_object setVariable ["CharacterID", _ownerID, _setGlobal];
[_object,_hitpoints] call server_setHitpoints;