mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
Keep safe/lockbox vars server side until needed
The arrays for safes/lockboxes are kept on the server and when a client goes to open the safe, a PV is sent to the server requesting the arrays. Server sends info back.
This commit is contained in:
@@ -65,10 +65,16 @@ if ((_ownerID == dayz_combination) or (_ownerID == dayz_playerUID)) then {
|
|||||||
[player,"tentpack",0,false] call dayz_zombieSpeak;
|
[player,"tentpack",0,false] call dayz_zombieSpeak;
|
||||||
sleep 5;
|
sleep 5;
|
||||||
|
|
||||||
_weapons = _obj getVariable["WeaponCargo",[]];
|
PVDZE_obj_localVars = [player, _obj, ["WeaponCargo", "MagazineCargo", "BackpackCargo"]];
|
||||||
_magazines = _obj getVariable["MagazineCargo",[]];
|
publicVariableServer "PVDZE_obj_localVars";
|
||||||
_backpacks = _obj getVariable["BackpackCargo",[]];
|
|
||||||
|
PVDZE_localVarsResult = nil;
|
||||||
|
waitUntil {sleep 1; !isNil "PVDZE_localVarsResult"};
|
||||||
|
|
||||||
|
_weapons = if (typeName (PVDZE_localVarsResult select 0) == "ARRAY") then { (PVDZE_localVarsResult select 0) } else { [] };
|
||||||
|
_magazines = if (typeName (PVDZE_localVarsResult select 1) == "ARRAY") then { (PVDZE_localVarsResult select 1) } else { [] };
|
||||||
|
_backpacks = if (typeName (PVDZE_localVarsResult select 2) == "ARRAY") then { (PVDZE_localVarsResult select 2) } else { [] };
|
||||||
|
|
||||||
_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
|
_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
|
||||||
if ((isNull _holder) or (isNil "_holder")) then {
|
if ((isNull _holder) or (isNil "_holder")) then {
|
||||||
_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
|
_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
|
||||||
|
|||||||
@@ -62,6 +62,8 @@ if (isServer) then {
|
|||||||
"PVDZE_obj_Trade" addPublicVariableEventHandler {(_this select 1) spawn server_tradeObj};
|
"PVDZE_obj_Trade" addPublicVariableEventHandler {(_this select 1) spawn server_tradeObj};
|
||||||
"PVDZE_plr_TradeMenu" addPublicVariableEventHandler {(_this select 1) spawn server_traders};
|
"PVDZE_plr_TradeMenu" addPublicVariableEventHandler {(_this select 1) spawn server_traders};
|
||||||
"PVDZE_plr_DeathB" addPublicVariableEventHandler {(_this select 1) spawn server_deaths};
|
"PVDZE_plr_DeathB" addPublicVariableEventHandler {(_this select 1) spawn server_deaths};
|
||||||
|
|
||||||
|
"PVDZE_obj_localVars" addPublicVariableEventHandler {(_this select 1) spawn server_getLocalObjVars};
|
||||||
};
|
};
|
||||||
|
|
||||||
//Client only
|
//Client only
|
||||||
|
|||||||
@@ -884,3 +884,34 @@ server_spawnCleanAnimals = {
|
|||||||
diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]);
|
diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
server_getLocalObjVars
|
||||||
|
Gets local vars from a target objects and pushing results back to client
|
||||||
|
Eg.
|
||||||
|
|
||||||
|
PVDZE_obj_localVars = [player, _obj, ["WeaponCargo", "MagazineCargo", "BackpackCargo"]];
|
||||||
|
publicVariableServer "PVDZE_obj_localVars";
|
||||||
|
|
||||||
|
PVDZE_localObjVarsResult = nil;
|
||||||
|
waitUntil {sleep 1; !isNil "PVDZE_localObjVarsResult"};
|
||||||
|
*/
|
||||||
|
server_getLocalObjVars = {
|
||||||
|
private ["_player", "_obj", "_vars", "_vals"];
|
||||||
|
|
||||||
|
_player = _this select 0;
|
||||||
|
_obj = _this select 1;
|
||||||
|
_vars = _this select 2;
|
||||||
|
|
||||||
|
if (typeName _vars != "ARRAY") then {
|
||||||
|
_vars = [_vars];
|
||||||
|
};
|
||||||
|
|
||||||
|
_vals = [];
|
||||||
|
{
|
||||||
|
_vals = _vals + [_obj getVariable [_x, false]];
|
||||||
|
} forEach _vars;
|
||||||
|
|
||||||
|
PVDZE_localVarsResult = _vals;
|
||||||
|
(owner _player) publicVariableClient "PVDZE_localVarsResult";
|
||||||
|
};
|
||||||
@@ -158,9 +158,9 @@ if (isServer and isNil "sm_done") then {
|
|||||||
if (count _intentory > 0) then {
|
if (count _intentory > 0) then {
|
||||||
if (_type in DZE_LockedStorage) then {
|
if (_type in DZE_LockedStorage) then {
|
||||||
// Fill variables with loot
|
// Fill variables with loot
|
||||||
_object setVariable ["WeaponCargo", (_intentory select 0), true];
|
_object setVariable ["WeaponCargo", (_intentory select 0)];
|
||||||
_object setVariable ["MagazineCargo", (_intentory select 1), true];
|
_object setVariable ["MagazineCargo", (_intentory select 1)];
|
||||||
_object setVariable ["BackpackCargo", (_intentory select 2), true];
|
_object setVariable ["BackpackCargo", (_intentory select 2)];
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
//Add weapons
|
//Add weapons
|
||||||
|
|||||||
Reference in New Issue
Block a user