diff --git a/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp b/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp
index 09892ce68..40c664b50 100644
--- a/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp
+++ b/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp
@@ -28,6 +28,10 @@ class DZ_Patrol_Pack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_us_assault_Coyote.p3d";
transportMaxWeapons = 1;
transportMaxMagazines = 10;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_Patrol_Pack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_Assault_Pack_EP1: Bag_Base_EP1
@@ -40,6 +44,10 @@ class DZ_Assault_Pack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_us_assault.p3d";
transportMaxWeapons = 1;
transportMaxMagazines = 12;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_Assault_Pack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_Czech_Vest_Puch: Bag_Base_EP1
@@ -52,6 +60,10 @@ class DZ_Czech_Vest_Puch: Bag_Base_EP1
scope = 2;
transportmaxmagazines = 12;
transportmaxweapons = 0;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_Czech_Vest_Puch'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_ALICE_Pack_EP1: Bag_Base_EP1
@@ -64,6 +76,10 @@ class DZ_ALICE_Pack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_tk_alice.p3d";
transportMaxWeapons = 2;
transportMaxMagazines = 20;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_ALICE_Pack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_TK_Assault_Pack_EP1 : Bag_Base_EP1
@@ -76,6 +92,10 @@ class DZ_TK_Assault_Pack_EP1 : Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_civil_assault.p3d";
transportMaxWeapons = 2;
transportMaxMagazines = 22;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_TK_Assault_Pack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_British_ACU : Bag_Base_EP1
@@ -88,6 +108,10 @@ class DZ_British_ACU : Bag_Base_EP1
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
transportMaxWeapons = 3;
transportMaxMagazines = 30;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_British_ACU'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_CivilBackpack_EP1: Bag_Base_EP1
@@ -100,6 +124,10 @@ class DZ_CivilBackpack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_acr.p3d";
transportMaxWeapons = 4;
transportMaxMagazines = 40;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_CivilBackpack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_Backpack_EP1: Bag_Base_EP1
@@ -112,6 +140,10 @@ class DZ_Backpack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_us.p3d";
transportMaxWeapons = 5;
transportMaxMagazines = 50;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_Backpack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_LargeGunBag_EP1: Bag_Base_EP1
@@ -124,6 +156,10 @@ class DZ_LargeGunBag_EP1: Bag_Base_EP1
mapsize = 2;
transportMaxWeapons = 6;
transportMaxMagazines = 60;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_LargeGunBag_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_GunBag_EP1: Bag_Base_EP1
{
@@ -135,6 +171,10 @@ class DZ_GunBag_EP1: Bag_Base_EP1
mapsize = 2;
transportMaxWeapons = 3;
transportMaxMagazines = 35;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_GunBag_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_CompactPack_EP1: Bag_Base_EP1
{
@@ -146,6 +186,10 @@ class DZ_CompactPack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_rpg.p3d";
transportMaxWeapons = 2;
transportMaxMagazines = 25;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_CompactPack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
class DZ_TerminalPack_EP1: Bag_Base_EP1
{
@@ -157,4 +201,8 @@ class DZ_TerminalPack_EP1: Bag_Base_EP1
model = "\ca\weapons_e\AmmoBoxes\backpack_us_AUV";
transportMaxWeapons = 1;
transportMaxMagazines = 15;
+ class eventHandlers
+ {
+ init="[(_this select 0),'CfgVehicles','DZ_TerminalPack_EP1'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';";
+ };
};
diff --git a/SQF/dayz_code/actions/object_pickup.sqf b/SQF/dayz_code/actions/object_pickup.sqf
index 2680b983a..09849ebad 100644
--- a/SQF/dayz_code/actions/object_pickup.sqf
+++ b/SQF/dayz_code/actions/object_pickup.sqf
@@ -38,7 +38,12 @@ _claimedBy = _holder getVariable["claimed","0"];
if (_claimedBy != _playerID) exitWith {sleep 1; DZE_CanPickup = true; cutText [format[(localize "str_player_beinglooted"),_text] , "PLAIN DOWN"]};
if(_classname isKindOf "Bag_Base_EP1") then {
+
+ _PlayerNear = _holder call dze_isnearest_player;
+ if (_PlayerNear) exitWith {cutText [localize "str_pickup_limit_4", "PLAIN DOWN"]};
+
diag_log("Picked up a bag: " + _classname);
+ player action ["TakeBag", _holder];
};
// test to see if item still exists just before adding and removing
diff --git a/SQF/dayz_code/init/object_BackpackAction.sqf b/SQF/dayz_code/init/object_BackpackAction.sqf
new file mode 100644
index 000000000..936a3a67e
--- /dev/null
+++ b/SQF/dayz_code/init/object_BackpackAction.sqf
@@ -0,0 +1,14 @@
+_holder = _this select 0;
+_type = _this select 1;
+_classname = _this select 2;
+
+_name = getText (configFile >> _type >> _classname >> "displayName");
+
+_actionSet = _holder getVariable["actionSet", false];
+
+if (!_actionSet) then {
+ s_player_holderPickup = _holder addAction [format[(localize "str_init_take"),_name], "\z\addons\dayz_code\actions\object_pickup.sqf",[_type,_classname,_holder], 20, true, true];
+ player reveal _holder;
+ _holder setVariable["actionSet", true];
+
+};
\ No newline at end of file
diff --git a/SQF/dayz_epoch_b/stringtable.xml b/SQF/dayz_epoch_b/stringtable.xml
index ff38970ef..efd6761e6 100644
--- a/SQF/dayz_epoch_b/stringtable.xml
+++ b/SQF/dayz_epoch_b/stringtable.xml
@@ -646,7 +646,52 @@
%1 est déjà en train d'être pillé par quelqu'un d'autre.
%1 už je loupeno někým jiným.
-
+
+ You need to be within 3 meters to pickup!
+ You need to be within 3 meters to pickup!
+ Чтобы поднять предмет, вы должны быть ближе 3х метров!
+ ¡Necesitas estar a menos de 3 metros para tomarlo!
+ You need to be within 3 meters to pickup!
+ Vous devez être à moins de 3 mètres pour ramasser !
+ Aby jste předmět sebrali, musíte být v okolí 3 metrů.
+
+
+ You must wait to pickup this item!
+ You must wait to pickup this item!
+ Чтобы поднять этот предмет, нужно подождать!
+ ¡Necesitas esperar para tomar este objeto!
+ You must wait to pickup this item!
+ Vous devez attendre pour ramasser l'objet !
+ Abyste sebrali předmět, musíte počkat.
+
+
+ You may only pickup one item at a time!
+ You may only pickup one item at a time!
+ Можно поднимать только один предмет за раз!
+ ¡Solo puedes tomar un objeto a la vez!
+ You may only pickup one item at a time!
+ Vous ne pouvez prendre qu'un objet à la fois !
+ Lze sebrat pouze jeden předmět zároveň.
+
+
+ Another Player is Near by, Only one player can be within 5 meters of a bag to pickup
+ Another Player is Near by, Only one player can be within 5 meters of a bag to pickup
+ Другой игрок рядом! Он должен быть далее 5ти метров от поднимаемого рюкзака
+ Otro jugador cerca, solo un jugador debe estar a menos de 5 metros de la mochila para tomarla
+ Another Player is Near by, Only one player can be within 5 meters of a bag to pickup
+ Un autre joueur se trouve à proximité. Un seul joueur peut fouiller un sac dans un rayon de 5 mètres.
+ Poblíž je další hráč. Pouze jeden hráč musí být v rozsahu 5 metrů aby jste mohli batoh zvednout
+
+
+ Another player is nearby, only one player can be near to perform this action
+ Ein anderer Spieler in der Nähe ist, kann nur ein Spieler sich in der Nähe, um diese Aktion durchzuführen
+ Другой игрок рядом, только один игрок может делать это.
+ Otro jugador que está cerca, sólo un jugador puede estar cerca para realizar esta acción
+ Another player is nearby, only one player can be near to perform this action
+ Un autre joueur est à proximité, un seul joueur peut se trouver à proximité pour effectuer cette action
+ Dalším hráčem je v blízkosti, může být jeden hráč blízko k provedení této akce
+
+
That tent is already being packed.
That tent is already being packed.
Dieses Zelt wurde bereits vergepackt.