diff --git a/Changelogs/0.3.7.0.txt b/Changelogs/0.3.7.0.txt
index 535dc98a..515cd275 100644
--- a/Changelogs/0.3.7.0.txt
+++ b/Changelogs/0.3.7.0.txt
@@ -1,17 +1,19 @@
**Client**
-[ADDED] Repack magazines. Select a magazine and press the "Repack" button.
+[Added] Repack magazines feature. Simply select a magazine and press the "Repack" button.
+[Added] 55 Gallon (210 liters) Fuel Barrel that can be used to refill/siphon vehicles. (Full - ItemBarrelF,Empty - ItemBarrelE).
+[Added] Ability to siphon fuel from other fuel sources like gas stations and gas tanks.
+[ADDED-WIP] Pack/unpack empty backpacks into carryable items.
[ADDED-WIP] Hotwire Kit (ItemHotwire).
[ADDED-WIP] Key Makers Kit (ItemKeyKit).
[ADDED-WIP] Keys in colors: (Black ItemKey,ItemKeyRed,ItemKeyGreen,ItemKeyBlue,ItemKeyYellow).
-[ADDED-WIP] 55 Gallon Fuel Barrel (Full - ItemBarrelF,Empty - ItemBarrelE).
[ADDED-WIP] Metal Pipes (ItemPipe).
[ADDED-WIP] Documents (Trash,Books,Vehicle Upgrades) (ItemDoc1-8, ItemVehDoc1-4).
[ADDED-WIP] Light Bulb (ItemBulb).
[ADDED-WIP] Burlap (ItemBurlap).
[ADDED-WIP] Briefcase (Empty - ItemBriefcaseE).
-[ADDED-WIP] Aluminum Bars (ItemAluminumBar,ItemAluminumBar10oz).
-[ADDED-WIP] Copper Bars (ItemCopperBar,ItemCopperBar10oz).
-[ADDED-WIP] Tin Bars (ItemTinBar,ItemTinBar10oz).
+[ADDED-WIP] Aluminum Bars (ItemAluminumBar).
+[ADDED-WIP] Copper Bars (ItemCopperBar).
+[ADDED-WIP] Tin Bars (ItemTinBar).
[ADDED-WIP] Plywood sheets in small and large stacks (ItemPlywood,ItemPlywoodPack).
[Changed] Change all publicVariableServer calls to use remoteExec calls for better performance.
[Fixed] Incorrectly being able to sell/buy items from a dead trader.
@@ -19,7 +21,9 @@
[Fixed] Custom epoch swing animations for Hatchet and sledge now work correctly.
[Fixed] Boss Sapper incorrectly cleaned up before detonation.
**Server**
+[Added] telePos array can now use world position for tele pads if 5th array element is true.
[Added] Setting to control random magazine ammo counts in loot spawner. CfgEpochClient -> randomizeMagazineAmmoCount (default: true)
+[Changed] Empty fuel barrel added to large trash and vehicle loot tables.
[Changed] Earthquakes with mineral veins spawn chances increased with less players.
[Changed] Driver or passengers of a driverless can now control vehicle locks. Also only the owner can control locks from outside of a occupied vehicle.
[Changed] Commented out Halloween masks from loot tables.
diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo
index 1803d425..b7338518 100644
Binary files a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo and b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo differ
diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo
index 0274671b..cefca4ff 100644
Binary files a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo and b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo differ
diff --git a/Server_Install_Pack/sc/battleye/remoteexec.txt b/Server_Install_Pack/sc/battleye/remoteexec.txt
index 9f2083cd..cf37027f 100644
--- a/Server_Install_Pack/sc/battleye/remoteexec.txt
+++ b/Server_Install_Pack/sc/battleye/remoteexec.txt
@@ -1 +1 @@
-5 "" !="epoch_server_checkplayer [A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3} \(.+\) REMOTE" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|createAirDrop|airDropCrate|destroytrash) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]"
+5 "" !="epoch_server_checkplayer [A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3} \(.+\) REMOTE" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|createAirDrop|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]"
diff --git a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf
index 79e621e2..7cfd4ef7 100644
--- a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf
+++ b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf
@@ -190,14 +190,14 @@ switch _interactOption do {
if (cursorTarget in _vehicles) then {
_vehicle = cursorTarget;
_currentFuel = fuel _vehicle;
- _canCapacity = 10;
+ _canCapacity = _interactAttributes param [0,10];
_fuelCapacity = getNumber (configfile >> "CfgVehicles" >> (typeOf _vehicle) >> "fuelCapacity");
_currentFuel = _currentFuel * _fuelCapacity;
_newFuel = _currentFuel + _canCapacity;
_newFuel = _newFuel / _fuelCapacity;
if (_item call _removeItem) then {
- player addMagazine "jerrycanE_epoch";
+ player addMagazine _interactReturnOnUse;
// send
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
@@ -207,22 +207,37 @@ switch _interactOption do {
};
case 5: {
_vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 6];
+ _canCapacity = _interactAttributes param [0,10];
+
if (cursorTarget in _vehicles) then {
_vehicle = cursorTarget;
- _canCapacity = 10;
_fuelCapacity = getNumber (configfile >> "CfgVehicles" >> (typeOf _vehicle) >> "fuelCapacity");
_newFuel = (((fuel _vehicle) * _fuelCapacity) - _canCapacity) / _fuelCapacity;
-
- //diag_log format["FIND fill _newFuel %1 capacity: %2 current: %3",_newFuel,_fuelCapacity,_currentFuel];
if (_newFuel > 0) then {
if (_item call _removeItem) then {
- player addMagazine "jerrycan_epoch";
+ player addMagazine _interactReturnOnUse;
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
_dt = ["Fuel Siphoned", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};
} else {
_dt = ["Not Enough Fuel", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};
+ } else {
+
+ // find any other nearby fuel sources
+ _transportFuel = 0;
+ {
+ _transportFuel = _transportFuel + getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "transportFuel");
+ } forEach (player nearObjects["ALL", 6]);
+
+ if (_transportFuel > _canCapacity) then {
+ if (_item call _removeItem) then {
+ player addMagazine _interactReturnOnUse;
+ _dt = ["Fuel Siphoned", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
+ };
+ } else {
+ _dt = ["Not Enough Fuel", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
+ };
};
};
case 6: _unifiedInteract; //Clean -25
@@ -327,6 +342,13 @@ switch _interactOption do {
};
};
+ case 14: { // Unpack Backpack
+ if (_item call _removeItem) then {
+ [_interactReturnOnUse,player,Epoch_personalToken] remoteExec ["EPOCH_server_unpackBackpack",2];
+ _dt = ["Unpacked backpack", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
+ };
+ };
+
default {
// bottom
_dt = ["Found nothing", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf
index 94480849..d66a251c 100644
--- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf
+++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf
@@ -25,7 +25,7 @@ private["_item", "_currQty", "_tradeType", "_itemWorth", "_aiItems", "_itemClass
if (!isNil "EPOCH_TRADE_COMPLETE") exitWith {};
if (!isNil "EPOCH_TRADE_STARTED") exitWith{};
-if (!isNull _this) exitWith{};
+if (isNull _this) exitWith{};
if (alive _this) then {
diff --git a/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp b/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp
index 6aee44ad..b5213185 100644
--- a/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp
+++ b/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp
@@ -30,6 +30,8 @@ class ItemBarrelF : CA_Magazine {
mass = 25;
interactAction = 2;
interactText = "USE";
+ interactAttributes[] = {210};
+ interactReturnOnUse = "ItemBarrelE";
};
class ItemBarrelE : CA_Magazine {
picture = "\x\addons\a3_epoch_assets_1\pictures\equip_oildrum_e_CA.paa";
@@ -41,6 +43,8 @@ class ItemBarrelE : CA_Magazine {
mass = 25;
interactAction = 2;
interactText = "USE";
+ interactAttributes[] = {210};
+ interactReturnOnUse = "ItemBarrelF";
};
class ItemPipe : CA_Magazine {
picture = "\x\addons\a3_epoch_assets_1\pictures\equip_pipe_CA.paa";
@@ -195,15 +199,6 @@ class ItemAluminumBar : CA_Magazine {
count = 1;
mass = 1;
};
-class ItemAluminumBar10oz : CA_Magazine {
- picture = "\x\addons\a3_epoch_assets_1\pictures\equip_alum_bar_10oz_CA.paa";
- displayName = "$STR_EPOCH_AluminumBar10oz_19"; // Aluminum Bar (10oz)
- scope = 2;
- model = "\x\addons\a3_epoch_assets_1\models\aluminum_bar_10oz.p3d";
- descriptionShort = "$STR_EPOCH_AluminumBar10oz_19"; // Aluminum Bar (10oz)
- count = 1;
- mass = 1;
-};
class ItemCopperBar : CA_Magazine {
picture = "\x\addons\a3_epoch_assets_1\pictures\equip_copper_bar_CA.paa";
displayName = "$STR_EPOCH_CopperBar1oz_16"; // Copper Bar (1oz)
@@ -213,15 +208,6 @@ class ItemCopperBar : CA_Magazine {
count = 1;
mass = 1;
};
-class ItemCopperBar10oz : CA_Magazine {
- picture = "\x\addons\a3_epoch_assets_1\pictures\equip_copper_bar_10oz_CA.paa";
- displayName = "$STR_EPOCH_CopperBar10oz_17"; // Copper Bar (10oz)
- scope = 2;
- model = "\x\addons\a3_epoch_assets_1\models\copper_bar_10oz.p3d";
- descriptionShort = "$STR_EPOCH_CopperBar10oz_17"; // Copper Bar (10oz)
- count = 1;
- mass = 1;
-};
class ItemTinBar : CA_Magazine {
picture = "\x\addons\a3_epoch_assets_1\pictures\equip_tin_bar_CA.paa";
displayName = "$STR_EPOCH_TinBar1oz_13"; // Tin Bar (1oz)
@@ -231,15 +217,6 @@ class ItemTinBar : CA_Magazine {
count = 1;
mass = 1;
};
-class ItemTinBar10oz : CA_Magazine {
- picture = "\x\addons\a3_epoch_assets_1\pictures\equip_tin_bar_10oz_CA.paa";
- displayName = "$STR_EPOCH_TinBar10oz_14"; // Tin Bar (10oz)
- scope = 2;
- model = "\x\addons\a3_epoch_assets_1\models\tin_bar_10oz.p3d";
- descriptionShort = "$STR_EPOCH_TinBar10oz_14"; // Tin Bar (10oz)
- count = 1;
- mass = 1;
-};
class ItemPlywood : CA_Magazine {
picture = "\x\addons\a3_epoch_assets_1\pictures\equip_plywood_CA.paa";
displayName = "$STR_EPOCH_Plywood_7"; // Plywood
@@ -267,3 +244,399 @@ class ItemComboLock : CA_Magazine {
count = 1;
mass = 1;
};
+class Item_AssaultPack_cbr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_cbr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_cbr";
+};
+class Item_AssaultPack_dgtl : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_dgtl0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_dgtl";
+};
+class Item_AssaultPack_khk : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_khk0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_khk";
+};
+class Item_AssaultPack_mcamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_mcamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_mcamo";
+};
+class Item_AssaultPack_ocamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_ocamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_ocamo";
+};
+class Item_AssaultPack_rgr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_rgr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_rgr";
+};
+class Item_AssaultPack_sgg : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_sgg0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_sgg";
+};
+class Item_AssaultPack_blk : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_AssaultPack_blk0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 20;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_AssaultPack_blk";
+};
+class Item_Carryall_cbr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Carryall_cbr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 60;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Carryall_cbr";
+};
+class Item_Carryall_khk : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Carryall_khk0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 60;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Carryall_khk";
+};
+class Item_Carryall_mcamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Carryall_mcamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 60;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Carryall_mcamo";
+};
+class Item_Carryall_ocamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Carryall_ocamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 60;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Carryall_ocamo";
+};
+class Item_Carryall_oli : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Carryall_oli0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 60;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Carryall_oli";
+};
+class Item_Carryall_oucamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Carryall_oucamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 60;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Carryall_oucamo";
+};
+class Item_FieldPack_blk : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_FieldPack_blk0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 30;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_FieldPack_blk";
+};
+class Item_FieldPack_cbr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_FieldPack_cbr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 30;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_FieldPack_cbr";
+};
+class Item_FieldPack_khk : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_FieldPack_khk0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 30;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_FieldPack_khk";
+};
+class Item_FieldPack_ocamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_FieldPack_ocamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 30;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_FieldPack_ocamo";
+};
+class Item_FieldPack_oli : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_FieldPack_oli0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 30;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_FieldPack_oli";
+};
+class Item_FieldPack_oucamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_FieldPack_oucamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 30;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_FieldPack_oucamo";
+};
+class Item_Kitbag_cbr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Kitback_cbr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 50;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Kitbag_cbr";
+};
+class Item_Kitbag_mcamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Kitback_mcamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 50;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Kitbag_mcamo";
+};
+class Item_Kitbag_rgr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Kitback_rgr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 50;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Kitbag_rgr";
+};
+class Item_Kitbag_sgg : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_Kitback_sgg0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 50;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_Kitbag_sgg";
+};
+class Item_TacticalPack_blk : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_TacticalPack_blk0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 40;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_TacticalPack_blk";
+};
+class Item_TacticalPack_mcamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_TacticalPack_mcamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 40;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_TacticalPack_mcamo";
+};
+class Item_TacticalPack_ocamo : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_TacticalPack_ocamo0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 40;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_TacticalPack_ocamo";
+};
+class Item_TacticalPack_oli : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_TacticalPack_oli0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 40;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_TacticalPack_oli";
+};
+class Item_TacticalPack_rgr : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_A3_B_TacticalPack_rgr0";
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 40;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "B_TacticalPack_rgr";
+};
+class Item_smallbackpack_red : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_EPOCH_SmallBackpackRe_20"; // Small Backpack (Red)
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 25;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "smallbackpack_red_epoch";
+};
+class Item_smallbackpack_green : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_EPOCH_SmallBackpackGr_22"; // Small Backpack (Green)
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 25;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "smallbackpack_green_epoch";
+};
+class Item_smallbackpack_teal : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_EPOCH_SmallBackpackTe_21"; // Small Backpack (Teal)
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 25;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "smallbackpack_teal_epoch";
+};
+class Item_smallbackpack_pink : CA_Magazine {
+ picture = "\x\addons\a3_epoch_assets\textures\backpack\gear_packedBag_ca.paa";
+ displayName = "$STR_EPOCH_SmallBackpackPi_21"; // Small Backpack (Pink)
+ scope = 2;
+ model = "\x\addons\a3_epoch_assets\models\PackedBag.p3d";
+ descriptionShort = "$STR_EPOCH_PackedBackpack_15"; // Packed Backpack
+ count = 1;
+ mass = 25;
+ interactAction = 14;
+ interactText = "UNPACK";
+ interactReturnOnUse = "smallbackpack_pink_epoch";
+};
diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp
index 250d3bdf..224a5e81 100644
--- a/Sources/epoch_config/Configs/CfgPricing.hpp
+++ b/Sources/epoch_config/Configs/CfgPricing.hpp
@@ -450,12 +450,13 @@ class CfgPricing
class B_Kitbag_mcamo {price = 25;};
class B_Kitbag_rgr {price = 25;};
class B_Kitbag_sgg {price = 25;};
- class B_Parachute {price = 25;};
+ class B_Parachute {price = 25;}; // no packed option
class B_TacticalPack_blk {price = 20;};
class B_TacticalPack_mcamo {price = 20;};
class B_TacticalPack_ocamo {price = 20;};
class B_TacticalPack_oli {price = 20;};
class B_TacticalPack_rgr {price = 20;};
+
class smallbackpack_red_epoch {price = 22;};
class smallbackpack_green_epoch {price = 22;};
class smallbackpack_teal_epoch {price = 22;};
diff --git a/Sources/epoch_config/Configs/CfgPricing/AutoGen.hpp b/Sources/epoch_config/Configs/CfgPricing/AutoGen.hpp
index 30396405..951c1383 100644
--- a/Sources/epoch_config/Configs/CfgPricing/AutoGen.hpp
+++ b/Sources/epoch_config/Configs/CfgPricing/AutoGen.hpp
@@ -5,7 +5,7 @@ class ItemKeyKit {
price = 15;
};
class ItemBarrelF {
- price = 150;
+ price = 200;
};
class ItemBarrelE {
price = 150;
@@ -76,21 +76,12 @@ class ItemBriefcaseE {
class ItemAluminumBar {
price = 10;
};
-class ItemAluminumBar10oz {
- price = 100;
-};
class ItemCopperBar {
price = 100;
};
-class ItemCopperBar10oz {
- price = 1000;
-};
class ItemTinBar {
price = 1;
};
-class ItemTinBar10oz {
- price = 10;
-};
class ItemPlywood {
price = 10;
};
@@ -100,3 +91,102 @@ class ItemPlywoodPack {
class ItemComboLock {
price = 45;
};
+class Item_AssaultPack_cbr {
+ price = 10;
+};
+class Item_AssaultPack_dgtl {
+ price = 10;
+};
+class Item_AssaultPack_khk {
+ price = 10;
+};
+class Item_AssaultPack_mcamo {
+ price = 10;
+};
+class Item_AssaultPack_ocamo {
+ price = 10;
+};
+class Item_AssaultPack_rgr {
+ price = 10;
+};
+class Item_AssaultPack_sgg {
+ price = 10;
+};
+class Item_AssaultPack_blk {
+ price = 10;
+};
+class Item_Carryall_cbr {
+ price = 40;
+};
+class Item_Carryall_khk {
+ price = 40;
+};
+class Item_Carryall_mcamo {
+ price = 40;
+};
+class Item_Carryall_ocamo {
+ price = 40;
+};
+class Item_Carryall_oli {
+ price = 40;
+};
+class Item_Carryall_oucamo {
+ price = 40;
+};
+class Item_FieldPack_blk {
+ price = 15;
+};
+class Item_FieldPack_cbr {
+ price = 15;
+};
+class Item_FieldPack_khk {
+ price = 15;
+};
+class Item_FieldPack_ocamo {
+ price = 15;
+};
+class Item_FieldPack_oli {
+ price = 15;
+};
+class Item_FieldPack_oucamo {
+ price = 15;
+};
+class Item_Kitbag_cbr {
+ price = 25;
+};
+class Item_Kitbag_mcamo {
+ price = 25;
+};
+class Item_Kitbag_rgr {
+ price = 25;
+};
+class Item_Kitbag_sgg {
+ price = 25;
+};
+class Item_TacticalPack_blk {
+ price = 20;
+};
+class Item_TacticalPack_mcamo {
+ price = 20;
+};
+class Item_TacticalPack_ocamo {
+ price = 20;
+};
+class Item_TacticalPack_oli {
+ price = 20;
+};
+class Item_TacticalPack_rgr {
+ price = 20;
+};
+class Item_smallbackpack_red {
+ price = 22;
+};
+class Item_smallbackpack_green {
+ price = 22;
+};
+class Item_smallbackpack_teal {
+ price = 22;
+};
+class Item_smallbackpack_pink {
+ price = 22;
+};
diff --git a/Sources/epoch_config/Configs/CfgRemoteExec.hpp b/Sources/epoch_config/Configs/CfgRemoteExec.hpp
index c6c890fe..a7afba0e 100644
--- a/Sources/epoch_config/Configs/CfgRemoteExec.hpp
+++ b/Sources/epoch_config/Configs/CfgRemoteExec.hpp
@@ -191,7 +191,10 @@ class CfgRemoteExec
allowedTargets=2;
jip = 0;
};
-
+ class EPOCH_server_unpackBackpack {
+ allowedTargets=2;
+ jip = 0;
+ };
};
class Commands {mode=0;};
};
diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_unpackBackpack.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_unpackBackpack.sqf
new file mode 100644
index 00000000..311465df
--- /dev/null
+++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_unpackBackpack.sqf
@@ -0,0 +1,32 @@
+/*
+ Author: Aaron Clark - EpochMod.com
+
+ Contributors:
+
+ Description:
+ Unpack backpack
+
+ Licence:
+ Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
+
+ Github:
+ https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_player/EPOCH_server_unpackBackpack.sqf
+*/
+private ["_wHPos","_wH","_nearByHolder","_item","_player"];
+_item = _this select 0;
+_player = _this select 1;
+if !([_player,_this select 2] call EPOCH_server_getPToken) exitWith {};
+if (_item isKindOf "Bag_Base") then {
+ _wH = objNull;
+ _nearByHolder = nearestObjects [position _player,["groundWeaponHolder"],3];
+ if (_nearByHolder isEqualTo []) then {
+ _wHPos = _player modelToWorld [0,1,0];
+ if (surfaceIsWater _wHPos) then {
+ _wHPos = ASLToATL _wHPos;
+ };
+ _wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"];
+ } else {
+ _wH = _nearByHolder select 0;
+ };
+ _wh addBackpackCargoGlobal [_item,1];
+};
diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf
index fd595fe3..201ec54e 100644
--- a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf
+++ b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf
@@ -17,7 +17,6 @@ for "_i" from 5 to 8 do {
_debug1 setDir 90;
};
-
_config = configFile >> "CfgEpoch";
// spawn area props
@@ -34,7 +33,7 @@ _config = configFile >> "CfgEpoch";
};
_ep = createVehicle[_class, _pos, [], 0, "CAN_COLLIDE"];
-
+
_ep allowDamage false;
if (typeName _dir == "ARRAY") then{
_ep setVectorDirAndUp _dir;
@@ -51,7 +50,16 @@ _config = configFile >> "CfgEpoch";
{
_enterClass = _x select 0;
- _pos1 = _debug modelToWorld (_x select 1);
+
+ _useWorldPos = false;
+ if (count _x >= 5) then {
+ _useWorldPos = (_x select 4) isEqualTo "true";
+ };
+ _pos1 = _x select 1;
+ if !(_useWorldPos) then {
+ _pos1 = _debug modelToWorld (_x select 1);
+ };
+
_exitClass = _x select 2;
_pos = _x select 3;
diff --git a/Sources/epoch_server_settings/configs/loots.h b/Sources/epoch_server_settings/configs/loots.h
index 27805d14..fb9d85d8 100644
--- a/Sources/epoch_server_settings/configs/loots.h
+++ b/Sources/epoch_server_settings/configs/loots.h
@@ -848,13 +848,15 @@ class CfgLootTable
items[] = {
{ { "MortarBucket", "magazine" }, 16 },
{ { "CinderBlocks", "magazine" }, 17 },
- { { "VehicleRepair", "magazine" }, 17 },
+ { { "VehicleRepair", "magazine" }, 16 },
{ { "CircuitParts", "magazine" }, 17 },
{ { "ItemCorrugated", "magazine" }, 17 },
{ { "ItemSolar", "magazine" }, 5 },
{ { "ItemBattery", "magazine" }, 5 },
{ { "ItemCables", "magazine" }, 5 },
- { { "ItemSafe", "magazine" }, 1 }
+ { { "ItemSafe", "magazine" }, 1 },
+ { { "ItemBarrelE", "magazine" }, 1 }
+
};
};
@@ -870,13 +872,14 @@ class CfgLootTable
{ { "VehicleRepair", "magazine" }, 10 },
{ { "ItemCorrugated", "magazine" }, 11 },
{ { "CinderBlocks", "magazine" }, 12 },
- { { "JackKit", "magazine" }, 9 },
+ { { "JackKit", "magazine" }, 8 },
{ { "ItemCoolerE", "magazine" }, 13 },
{ { "ItemScraps", "magazine" }, 13 },
{ { "lighter_epoch", "magazine" }, 1 },
{ { "ItemSolar", "magazine" }, 3 },
{ { "ItemBattery", "magazine" }, 3 },
- { { "ItemCables", "magazine" }, 3 }
+ { { "ItemCables", "magazine" }, 3 },
+ { { "ItemBarrelE", "magazine" }, 1 }
};
};