From 276d06b2ab53468669082d45e7de82fc7a37088e Mon Sep 17 00:00:00 2001 From: "[VB]AWOL" Date: Tue, 1 Oct 2013 17:57:08 -0500 Subject: [PATCH] 1.0.2.39 dev --- SQF/dayz_code/Configs/CfgMagazines.hpp | 81 +++++++++++-------- SQF/dayz_code/Configs/cfgVehicles.hpp | 2 +- .../actions/player_buildingMaint.sqf | 2 +- SQF/dayz_code/actions/player_upgrade.sqf | 2 +- SQF/dayz_code/compile/fn_selfActions.sqf | 2 +- SQF/dayz_code/compile/player_lockVault.sqf | 2 +- SQF/dayz_code/compile/player_packTent.sqf | 2 +- SQF/dayz_code/compile/player_packVault.sqf | 2 +- SQF/dayz_code/compile/player_unlockDoor.sqf | 22 ++++- SQF/dayz_code/compile/player_unlockVault.sqf | 2 +- SQF/dayz_code/compile/spawn_loot_small.sqf | 16 ++++ SQF/dayz_code/init/compiles.sqf | 18 +++-- SQF/dayz_code/init/variables.sqf | 4 + .../compile/server_onPlayerDisconnect.sqf | 11 ++- 14 files changed, 115 insertions(+), 53 deletions(-) diff --git a/SQF/dayz_code/Configs/CfgMagazines.hpp b/SQF/dayz_code/Configs/CfgMagazines.hpp index 67b5baa48..210ea9f9d 100644 --- a/SQF/dayz_code/Configs/CfgMagazines.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines.hpp @@ -10,7 +10,7 @@ class CfgMagazines { count = 100; type = "256"; initSpeed = 850; - sound[] = {"\ca\Weapons\Data\Sound\PK_1_SS", 3.16228, 1, 1500}; + sound[] = {"\ca\Weapons\Data\Sound\PK_1_SS", 3.16228, 1, 1500}; tracersEvery = 4; lastRoundsTracer = 4; nameSound = "mgun"; @@ -137,7 +137,7 @@ class CfgMagazines { displayName = "Hotwire kit"; model = "\z\addons\dayz_epoch\models\canvas.p3d"; picture = "\z\addons\dayz_epoch\pictures\equip_canvas_ca.paa"; - descriptionShort = "Used to temporarily unlock vehicle and start them"; + descriptionShort = "Used to temporarily unlock and start a vehicle has a chance of failure and is consumed on use."; weight = 2; }; @@ -186,7 +186,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"sun_shade_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemCanvas",1},{"PartWoodLumber",4}}; + input[] = {{"ItemCanvas",1},{"PartWoodLumber",4}}; }; class Crafting4 { @@ -238,7 +238,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemEtool","ItemToolbox"}; output[] = {{"light_pole_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemLightBulb",1},{"PartGeneric",1},{"PartWoodLumber",6}}; + input[] = {{"ItemLightBulb",1},{"PartGeneric",1},{"PartWoodLumber",6}}; }; }; }; @@ -1075,7 +1075,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"wooden_shed_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemCorrugated",2},{"PartWoodPlywood",4},{"PartWoodLumber",4}}; + input[] = {{"ItemCorrugated",2},{"PartWoodPlywood",4},{"PartWoodLumber",4}}; }; class Crafting1 { @@ -1084,7 +1084,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"outhouse_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemCorrugated",1},{"PartWoodPlywood",3},{"PartWoodLumber",3},{"ItemTrashToiletpaper",1}}; + input[] = {{"ItemCorrugated",1},{"PartWoodPlywood",3},{"PartWoodLumber",3},{"ItemTrashToiletpaper",1}}; }; class Crafting2 { @@ -1093,16 +1093,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"storage_shed_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemCorrugated",4},{"PartWoodPlywood",2},{"PartWoodLumber",2}}; - }; - class Crafting3 - { - text = "Craft Metal Floor"; - script = ";['Crafting3','CfgMagazines', _id] spawn player_craftItem;"; - neednearby[] = {"workshop","fire"}; - requiretools[] = {"ItemToolbox","ItemCrowbar","ItemSledge"}; - output[] = {{"metal_floor_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemCorrugated",2},{"ItemPole",4},{"ItemTankTrap",2}}; + input[] = {{"ItemCorrugated",4},{"PartWoodPlywood",2},{"PartWoodLumber",2}}; }; }; }; @@ -1132,7 +1123,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"rusty_gate_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemPole",3},{"ItemTankTrap",1}}; + input[] = {{"ItemPole",3},{"ItemTankTrap",1}}; }; class Crafting2 { @@ -1141,7 +1132,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"metal_panel_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemPole",4},{"ItemTankTrap",4}}; + input[] = {{"ItemPole",4},{"ItemTankTrap",4}}; }; }; @@ -1526,6 +1517,15 @@ class CfgMagazines { require[] = {"ItemEtool","ItemToolbox"}; create = "MetalPanel_DZ"; }; + class Crafting + { + text = "Craft Metal Floor"; + script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;"; + neednearby[] = {"workshop","fire"}; + requiretools[] = {"ItemToolbox","ItemCrowbar","ItemSledge"}; + output[] = {{"metal_floor_kit",1}}; + input[] = {{"metal_panel_kit",4}}; + }; }; }; class deer_stand_kit: CA_Magazine @@ -2035,7 +2035,7 @@ class CfgMagazines { script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;"; neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox"}; - output[] = {{"bulk_empty",1},{"ItemWoodFloor",1}}; + output[] = {{"ItemWoodFloor",1}}; input[] = {{"ItemWoodFloorHalf",2}}; }; @@ -2066,7 +2066,7 @@ class CfgMagazines { script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;"; neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox"}; - output[] = {{"bulk_empty",1},{"ItemWoodFloorHalf",1}}; + output[] = {{"ItemWoodFloorHalf",1}}; input[] = {{"ItemWoodFloorQuarter",2}}; }; @@ -2226,7 +2226,7 @@ class CfgMagazines { script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;"; neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox"}; - output[] = {{"bulk_empty",2},{"ItemWoodWall",1}}; + output[] = {{"ItemWoodWall",1}}; input[] = {{"ItemWoodWallThird",3}}; }; @@ -2759,7 +2759,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"deer_stand_kit",1}}; - input[] = {{"bulk_empty",1},{"PartWoodLumber",8},{"PartWoodPile",2}}; + input[] = {{"PartWoodLumber",8},{"PartWoodPile",2}}; }; @@ -2770,7 +2770,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox"}; output[] = {{"ItemWoodStairs",1}}; - input[] = {{"bulk_empty",1},{"PartWoodLumber",8}}; + input[] = {{"PartWoodLumber",8}}; }; class Crafting4 @@ -2780,7 +2780,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox"}; output[] = {{"ItemWoodLadder",1}}; - input[] = {{"bulk_empty",1},{"PartWoodLumber",8}}; + input[] = {{"PartWoodLumber",8}}; }; @@ -2813,7 +2813,7 @@ class CfgMagazines { neednearby[] = {}; requiretools[] = {"ItemToolbox"}; output[] = {{"wood_shack_kit",1}}; - input[] = {{"bulk_empty",1},{"PartWoodPlywood",4},{"PartWoodLumber",4}}; + input[] = {{"PartWoodPlywood",4},{"PartWoodLumber",4}}; }; class Crafting2 { @@ -2822,7 +2822,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"ItemWoodFloorQuarter",1}}; - input[] = {{"bulk_empty",1},{"PartWoodPlywood",3},{"PartWoodLumber",3}}; + input[] = {{"PartWoodPlywood",3},{"PartWoodLumber",3}}; }; class Crafting3 { @@ -2831,7 +2831,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemCrowbar"}; output[] = {{"ItemWoodWallThird",1}}; - input[] = {{"bulk_empty",1},{"PartWoodPlywood",3},{"PartWoodLumber",3}}; + input[] = {{"PartWoodPlywood",3},{"PartWoodLumber",3}}; }; }; @@ -2866,6 +2866,17 @@ class CfgMagazines { model = "\dayz_equip\models\vrotor.p3d"; picture = "\dayz_equip\textures\equip_vrotor_ca.paa"; descriptionShort = "$STR_EQUIP_DESC_32"; + class ItemActions { + class Crafting + { + text = "Salvage Scrap"; + script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;"; + neednearby[] = {"workshop"}; + requiretools[] = {"ItemToolbox","ItemCrowbar"}; + output[] = {{"PartGeneric",3}}; + input[] = {{"PartVRotor",1}}; + }; + }; }; class PartGlass: CA_Magazine { @@ -3192,7 +3203,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"desert_net_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemTent",2},{"ItemPole",2}}; + input[] = {{"ItemTent",2},{"ItemPole",2}}; }; class Crafting1 { @@ -3201,7 +3212,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"forest_net_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemTent",2},{"ItemPole",2}}; + input[] = {{"ItemTent",2},{"ItemPole",2}}; }; }; }; @@ -3228,7 +3239,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"desert_net_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemTent",2},{"ItemPole",2}}; + input[] = {{"ItemTent",2},{"ItemPole",2}}; }; class Crafting1 { @@ -3237,7 +3248,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"forest_net_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemTent",2},{"ItemPole",2}}; + input[] = {{"ItemTent",2},{"ItemPole",2}}; }; }; }; @@ -3263,7 +3274,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"desert_net_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemTent",2},{"ItemPole",2}}; + input[] = {{"ItemTent",2},{"ItemPole",2}}; }; class Crafting1 { @@ -3272,7 +3283,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemToolbox","ItemKnife"}; output[] = {{"forest_net_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemTent",2},{"ItemPole",2}}; + input[] = {{"ItemTent",2},{"ItemPole",2}}; }; }; }; @@ -3309,7 +3320,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemEtool","ItemToolbox"}; output[] = {{"sandbag_nest_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemSandbag",4},{"PartWoodPlywood",2},{"PartWoodLumber",4}}; + input[] = {{"ItemSandbag",4},{"PartWoodPlywood",2},{"PartWoodLumber",4}}; }; /* class Crafting2 @@ -3319,7 +3330,7 @@ class CfgMagazines { neednearby[] = {"workshop"}; requiretools[] = {"ItemEtool","ItemToolbox","M240_DZ"}; output[] = {{"m240_nest_kit",1}}; - input[] = {{"bulk_empty",1},{"ItemSandbag",4},{"ItemCanvas",1},{"PartWoodPlywood",4},{"PartWoodLumber",3}}; + input[] = {{"ItemSandbag",4},{"ItemCanvas",1},{"PartWoodPlywood",4},{"PartWoodLumber",3}}; inputweapons[] = {"M240_DZ"}; }; */ diff --git a/SQF/dayz_code/Configs/cfgVehicles.hpp b/SQF/dayz_code/Configs/cfgVehicles.hpp index 05fa3ecfc..09e9c8b66 100644 --- a/SQF/dayz_code/Configs/cfgVehicles.hpp +++ b/SQF/dayz_code/Configs/cfgVehicles.hpp @@ -2784,7 +2784,7 @@ class CfgVehicles { destrType = "DestructNo"; armor = 800; transportMaxMagazines = 200; - transportMaxWeapons = 20; + transportMaxWeapons = 50; transportMaxBackpacks = 10; lockedClass = "VaultStorageLocked"; packedClass = "WeaponHolder_ItemVault"; diff --git a/SQF/dayz_code/actions/player_buildingMaint.sqf b/SQF/dayz_code/actions/player_buildingMaint.sqf index ee1cb6878..537a110d9 100644 --- a/SQF/dayz_code/actions/player_buildingMaint.sqf +++ b/SQF/dayz_code/actions/player_buildingMaint.sqf @@ -93,7 +93,7 @@ if (_proceed) then { _object setDir _dir; // Set location - _object setPos _location; + _object setPosATL _location; dayzSwapObj = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID]; publicVariableServer "dayzSwapObj"; diff --git a/SQF/dayz_code/actions/player_upgrade.sqf b/SQF/dayz_code/actions/player_upgrade.sqf index 1158a59aa..9414c8003 100644 --- a/SQF/dayz_code/actions/player_upgrade.sqf +++ b/SQF/dayz_code/actions/player_upgrade.sqf @@ -143,7 +143,7 @@ if ((count _upgrade) > 0) then { _object setDir _dir; // Set location - _object setPos _location; + _object setPosATL _location; if (_lockable == 3) then { diff --git a/SQF/dayz_code/compile/fn_selfActions.sqf b/SQF/dayz_code/compile/fn_selfActions.sqf index f92993e1b..9ede055aa 100644 --- a/SQF/dayz_code/compile/fn_selfActions.sqf +++ b/SQF/dayz_code/compile/fn_selfActions.sqf @@ -308,7 +308,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu if (_player_butcher) then { if (s_player_butcher < 0) then { if(_isZombie) then { - s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 3, true, true, "", ""]; + s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""]; } else { s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""]; }; diff --git a/SQF/dayz_code/compile/player_lockVault.sqf b/SQF/dayz_code/compile/player_lockVault.sqf index f4403fe9f..2d50cc093 100644 --- a/SQF/dayz_code/compile/player_lockVault.sqf +++ b/SQF/dayz_code/compile/player_lockVault.sqf @@ -51,7 +51,7 @@ if(!isNull _obj) then { //place tent (local) _holder = createVehicle [_lockedClass,_pos,[], 0, "CAN_COLLIDE"]; _holder setdir _dir; - _holder setpos _pos; + _holder setPosATL _pos; player reveal _holder; _holder setVariable["CharacterID",_ownerID,true]; diff --git a/SQF/dayz_code/compile/player_packTent.sqf b/SQF/dayz_code/compile/player_packTent.sqf index eb4d0f78b..6b61ca16c 100644 --- a/SQF/dayz_code/compile/player_packTent.sqf +++ b/SQF/dayz_code/compile/player_packTent.sqf @@ -47,7 +47,7 @@ if(!isNull _obj and alive _obj) then { //_bag = createVehicle ["WeaponHolder_ItemTent",_pos,[], 0, "CAN_COLLIDE"]; _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _object setdir _dir; - _object setpos _pos; + _object setposATL _pos; player reveal _object; _holder = _object; diff --git a/SQF/dayz_code/compile/player_packVault.sqf b/SQF/dayz_code/compile/player_packVault.sqf index be50eb189..0f18ee4b7 100644 --- a/SQF/dayz_code/compile/player_packVault.sqf +++ b/SQF/dayz_code/compile/player_packVault.sqf @@ -70,7 +70,7 @@ if(!isNull _obj and alive _obj) then { deleteVehicle _obj; _bag setdir _dir; - _bag setpos _pos; + _bag setposATL _pos; player reveal _bag; // Empty weapon holder diff --git a/SQF/dayz_code/compile/player_unlockDoor.sqf b/SQF/dayz_code/compile/player_unlockDoor.sqf index 8b36a6884..48623d4bd 100644 --- a/SQF/dayz_code/compile/player_unlockDoor.sqf +++ b/SQF/dayz_code/compile/player_unlockDoor.sqf @@ -7,6 +7,13 @@ private ["_ok"]; if(!isNull dayz_selectedDoor) then { + if (!isNil 'KeyCodeTryTimer') then { + if(diag_tickTime > KeyCodeTryTimer) then { + KeyCodeTry = nil; + KeyCodeTryTimer = nil; + }; + }; + // our target _obj = dayz_selectedDoor; @@ -30,14 +37,25 @@ if(!isNull dayz_selectedDoor) then { if(_obj animationPhase "Open_latch" == 0) then { _obj animate ["Open_latch", 1]; }; + KeyCodeTry = nil; } else { DZE_Lock_Door = ""; [player,"combo_locked",0,false] call dayz_zombieSpeak; [player,20,true,(getPosATL player)] spawn player_alertZombies; - _display = findDisplay 41144; - _display closeDisplay 3000; + if (isNil 'KeyCodeTry') then {KeyCodeTry = 0;}; + + KeyCodeTry = KeyCodeTry + 1; + + if(KeyCodeTry >= 5) then { + + if (isNil 'KeyCodeTryTimer') then {KeyCodeTryTimer = diag_tickTime+10;}; + + cutText ["Wrong code entered too many times wait 10 seconds", "PLAIN DOWN"]; + _display = findDisplay 41144; + _display closeDisplay 3000; + }; }; } else { diff --git a/SQF/dayz_code/compile/player_unlockVault.sqf b/SQF/dayz_code/compile/player_unlockVault.sqf index db7667ceb..aeb25a92b 100644 --- a/SQF/dayz_code/compile/player_unlockVault.sqf +++ b/SQF/dayz_code/compile/player_unlockVault.sqf @@ -70,7 +70,7 @@ if ((_ownerID == dayz_combination) or (_ownerID == dayz_playerUID)) then { // Remove locked vault deleteVehicle _obj; _holder setdir _dir; - _holder setpos _pos; + _holder setPosATL _pos; player reveal _holder; _holder setVariable["CharacterID",_ownerID,true]; diff --git a/SQF/dayz_code/compile/spawn_loot_small.sqf b/SQF/dayz_code/compile/spawn_loot_small.sqf index 5b137ee94..d4c494251 100644 --- a/SQF/dayz_code/compile/spawn_loot_small.sqf +++ b/SQF/dayz_code/compile/spawn_loot_small.sqf @@ -16,6 +16,22 @@ switch (_iClass) do _itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0); _index = dayz_CLBase find _iClass; + + _weights = dayz_CLChances select _index; + _cntWeights = count _weights; + + _index = floor(random _cntWeights); + _index = _weights select _index; + _canType = _itemTypes select _index; + _item addMagazineCargoGlobal [_canType,1]; + }; + case "single": + { + //Item is sigle, add 1 item from cfgloot + _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"]; + + _itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0); + _index = dayz_CLBase find _iItem; _weights = dayz_CLChances select _index; _cntWeights = count _weights; diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index a71c4f674..40a25821a 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -260,6 +260,16 @@ if (!isDedicated) then { dayz_spaceInterrupt = { private ["_dikCode", "_handled"]; _dikCode = _this select 1; + + if (_dikCode in actionKeys "MoveForward") exitWith {r_interrupt = true}; + if (_dikCode in actionKeys "MoveLeft") exitWith {r_interrupt = true}; + if (_dikCode in actionKeys "MoveRight") exitWith {r_interrupt = true}; + if (_dikCode in actionKeys "MoveBack") exitWith {r_interrupt = true}; + + //Prevent exploit of drag body + if ((_dikCode in actionKeys "Prone") and r_drag_sqf) exitWith { force_dropBody = true; }; + if ((_dikCode in actionKeys "Crouch") and r_drag_sqf) exitWith { force_dropBody = true; }; + _shift = _this select 2; _ctrl = _this select 3; _alt = _this select 4; @@ -286,13 +296,7 @@ if (!isDedicated) then { { _nill = execvm "\z\addons\dayz_code\actions\playerstats.sqf"; }; - //Prevent exploit of drag body - if ((_dikCode in actionKeys "Prone") and r_drag_sqf) then { force_dropBody = true; }; - if ((_dikCode in actionKeys "Crouch") and r_drag_sqf) then { force_dropBody = true; }; - if (_dikCode in actionKeys "MoveLeft") then {r_interrupt = true}; - if (_dikCode in actionKeys "MoveRight") then {r_interrupt = true}; - if (_dikCode in actionKeys "MoveForward") then {r_interrupt = true}; - if (_dikCode in actionKeys "MoveBack") then {r_interrupt = true}; + if (_dikCode in actionKeys "ForceCommandingMode") then {_handled = true}; if (_dikCode in actionKeys "PushToTalk" and (time - dayz_lastCheckBit > 10)) then { dayz_lastCheckBit = time; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index 7e0e59853..46978f642 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -499,6 +499,10 @@ if(isServer) then { if(isNil "DZE_vehicleAmmo") then { DZE_vehicleAmmo = 0; }; + + if(isNil "DZE_BackpackGuard") then { + DZE_BackpackGuard = true; + }; dayz_flyMonitor = []; //used for monitor flies DZE_FlyWorkingSet = []; diff --git a/SQF/dayz_server/compile/server_onPlayerDisconnect.sqf b/SQF/dayz_server/compile/server_onPlayerDisconnect.sqf index 3e3a2f6d9..bc103e986 100644 --- a/SQF/dayz_server/compile/server_onPlayerDisconnect.sqf +++ b/SQF/dayz_server/compile/server_onPlayerDisconnect.sqf @@ -39,8 +39,17 @@ if (!isNull _object) then { { [_x,"gear"] call server_updateObject } foreach (nearestObjects [getPosATL _object, dayz_updateObjects, 10]); if (alive _object) then { - _isplayernearby = (!_invehicle and ({isPlayer _x} count (_object nearEntities ["AllVehicles", 6]) > 1)); + _isplayernearby = (DZE_BackpackGuard and!_invehicle and ({isPlayer _x} count (_object nearEntities ["AllVehicles", 5]) > 1)); [_object,(magazines _object),true,true,_isplayernearby] call server_playerSync; + + // maybe not needed just testing + _object removeAllEventHandlers "MPHit"; + _object enableSimulation false; + _object removeAllEventHandlers "HandleDamage"; + _object removeAllEventHandlers "Killed"; + _object removeAllEventHandlers "Fired"; + _object removeAllEventHandlers "FiredNear"; + _myGroup = group _object; deleteVehicle _object; deleteGroup _myGroup;