diff --git a/CHANGE LOG 1.0.6.3.txt b/CHANGE LOG 1.0.6.3.txt deleted file mode 100644 index 130471666..000000000 --- a/CHANGE LOG 1.0.6.3.txt +++ /dev/null @@ -1,23 +0,0 @@ -[NEW] Time between unlocking safes/lockboxes after a failed code will be exponentially higher, see configVariables.sqf\DZE_lockablesHarderPenalty @oiad -[NEW] Added 93 new zombie models with loot groups and strings for Server Admins @Airwavesman -[NEW] Zombie Loot supports backpacks now @Airwavesman - -[FIXED] Some more occurrences of zero_building interiors misaligned or at the wrong terrain height (eaaedf2, 048caa5) -[FIXED] Player could switch into gunner's seat of ArmoredSUV while the hatch was being closed (e89eebc) #2009 @TheFirstNoob -[FIXED] POI fires were still spawning when POI was off and town generator was on (2855997) -[FIXED] Combo locks could be duplicated by two players removing them at the same time (564e3da) -[FIXED] Bush b_corylus.p3d allowed chopping down for wood like a tree (42e519a) -[FIXED] Player could shoot during unconscious wake up animation (634a01a) -[FIXED] Rare publicVariable value restrictions for AuthKey due to RNG with basic Latin characters (d48c907) @oiad @AirwavesMan -[FIXED] Freeze when iterating through CfgWeapons in A2OA 1.64 due to conflict with ItemKeys in dayz_epoch_b.pbo #2010 @S-fly -[FIXED] 45Rnd_545x39_RPK error after it was removed with the 2018-04-05 A2OA CorePatch (d249227) -[FIXED] Disabled Arma's automatic vehicle refuel, repair and rearm at WarfareBVehicleServicePoint buildings (2c4f06c) @dihan48 -[FIXED] DistanceFoot database stat was incorrect. @dihan48 -[FIXED] Wrong cargo count of Refuel Trucks after last Corepatch. @AirwavesMan -[FIXED] Vehicles jumping into the air after flipping. @AirwavesMan - -[UPDATED] Spawning of Zombies and Loot in Safe Zones can now be toggled, disabled by default, see configVariables.sqf/DZE_SafeZoneZombieLoot (6248add, 141b25e) @oiad @_Lance_ -[UPDATED] Added notification when status icons are disabled -[UPDATED] Added night vision mode back to DMR_DZ and M4SPR_DZE after it was removed with the 2018-04-05 A2OA CorePatch - -[INFO] Synced with DayZMod upstream up to commit fe063a8 diff --git a/CHANGE LOG 1.0.7.txt b/CHANGE LOG 1.0.7.txt new file mode 100644 index 000000000..bf393e7b2 --- /dev/null +++ b/CHANGE LOG 1.0.7.txt @@ -0,0 +1,36 @@ +[NEW] Time between unlocking safes/lockboxes after a failed code will be exponentially higher, see configVariables.sqf\DZE_lockablesHarderPenalty (c3cbca1) @oiad +[NEW] Added 93 new zombie models with loot groups and strings for Server Admins. (2e15009) @AirwavesMan +[NEW] Zombie Loot supports backpacks now. (096fc13) @AirwavesMan +[NEW] Hide Body can be edited and toggled now. Enabled by default, configVariables.sqf/DZE_Hide_Body (c0e9fe6) @AirwavesMan +[NEW] 6 AK-107 versions added with attachment support. (82485ea) @AirwavesMan +[NEW] Added new waterbottles from DayZ Mod. Icons made by @DeVloek. Fully functional with all actions. @AirwavesMan + +[FIXED] Some more occurrences of zero_building interiors misaligned or at the wrong terrain height (eaaedf2, 048caa5) @ebayShopper +[FIXED] Player could switch into gunner's seat of ArmoredSUV while the hatch was being closed (e89eebc) #2009 @TheFirstNoob +[FIXED] POI fires were still spawning when POI was off and town generator was on (2855997) @ebayShopper +[FIXED] Combo locks could be duplicated by two players removing them at the same time (564e3da) @shu @oiad +[FIXED] Bush b_corylus.p3d allowed chopping down for wood like a tree (42e519a) @ebayShopper +[FIXED] Player could shoot during unconscious wake up animation (634a01a) @ebayShopper +[FIXED] Rare publicVariable value restrictions for AuthKey due to RNG with basic Latin characters (d48c907) @oiad @AirwavesMan +[FIXED] Freeze when iterating through CfgWeapons in A2OA 1.64 due to conflict with ItemKeys in dayz_epoch_b.pbo #2010 @S-fly +[FIXED] 45Rnd_545x39_RPK error after it was removed with the 2018-04-05 A2OA CorePatch (d249227) @ebayShopper +[FIXED] Disabled Arma's automatic vehicle refuel, repair and rearm at WarfareBVehicleServicePoint buildings (2c4f06c) @dihan48 +[FIXED] DistanceFoot database stat was incorrect. (be777dd) @dihan48 +[FIXED] Wrong cargo count of Refuel Trucks after last Corepatch. (e26fb24) @AirwavesMan +[FIXED] Vehicles jumping into the air after flipping. (096fc13) @AirwavesMan +[FIXED] Crafting wooden arrows from wood piles and razors was not possible. (d4b46e4) @AirwavesMan +[FIXED] Top snap point for half cinder wall was incorrect. (8f10a36) @ndavalos, @AirwavesMan +[FIXED] The RPK-74 magazine could not be used with all AK-74 versions. (82485ea) @AirwavesMan +[FIXED] Multiple Vehicle Upgrades were not possibile. (ac884f2), (a430f79), (c24504a) @F507DMT +[FIXED] Fix an inventory dupe if on water. (a052ba7), (baf92eb) @F507DMT +[FIXED] The pickaxe and the broken pickaxe spawned in the ground on loot spawn. (a09bb81a) @AirwavesMan +[FIXED] Fix floating loot from remove, pack and fn_dropItem. (1268f55) @AirwavesMan +[FIXED] Water dogs did not work with other waterbottles than the normal one. @AirwavesMan + +[UPDATED] Spawning of Zombies and Loot in Safe Zones can now be toggled, disabled by default, see configVariables.sqf/DZE_SafeZoneZombieLoot (6248add, 141b25e) @oiad @_Lance_ +[UPDATED] Added notification when status icons are disabled. (e04f0fc) @ebayShopper +[UPDATED] Added night vision mode back to DMR_DZ and M4SPR_DZE after it was removed with the 2018-04-05 A2OA CorePatch (d6cf707) @ebayShopper +[UPDATED] All M32 grenades using one inventroy slot now. (cc85067) @AirwavesMan +[UPDATED] The Czech Vest Pouch can carry one weapon now. This was changed to be more intuitive and to avoid disappearing weapons. (f7ea9cb) @AirwavesMan + +[INFO] Synced with DayZMod upstream up to commit fe063a8 diff --git a/README.md b/README.md index 74134be34..a210c92cb 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,8 @@ GitHub Collaborators (In order of most commits) * Axles - https://github.com/Axles * Armifer - https://github.com/Armifer * Zupa - https://github.com/Windmolders +* oiad - https://github.com/oiad +* AirwavesMan - https://github.com/AirwavesMan -------------------------- GitHub Contributors (In order of most commits) @@ -116,6 +118,7 @@ GitHub Contributors (In order of most commits) * F507DMT - https://github.com/F507DMT * ndavalos - https://github.com/ndavalos * SmokeyBR - https://github.com/SmokeyBR +* DeVloek - https://github.com/DeVloek -------------------------- Special thanks diff --git a/SQF/dayz_code/Configs/CfgArma.hpp b/SQF/dayz_code/Configs/CfgArma.hpp index 4a3a1bda9..25a1f695b 100644 --- a/SQF/dayz_code/Configs/CfgArma.hpp +++ b/SQF/dayz_code/Configs/CfgArma.hpp @@ -27,6 +27,7 @@ class CfgActions { class PutMagazine : None { show = 0; }; class DeactivateMine : None { show = 0; }; class RepairVehicle: None { show = 0; }; + class HideBody: None { show = 0; }; //Moved to fn_selfactions to allow editing /* "None" "GetInCommander" diff --git a/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp b/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp index 877bb471f..75af544fe 100644 --- a/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp +++ b/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp @@ -288,7 +288,7 @@ class SnapBuilding { {0,0,0,"Pivot"}, {-2.64, 0, 1.685,"Left"}, {2.64, 0, 1.685,"Right"}, - {0, 0, 1.685,"Top"} + {0, 0, 1.5,"Top"} }; }; class CinderWallDoorSmall_DZ: Cinder_DZE {}; diff --git a/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Castle.hpp b/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Castle.hpp index 8192b2f99..6d8ecbb36 100644 --- a/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Castle.hpp +++ b/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Castle.hpp @@ -5,8 +5,10 @@ Castle[] = {Loot_WEAPON, 1, ItemMap}, {Loot_WEAPON, 1, ItemCompass}, {Loot_WEAPON, 2, ItemFlashlight}, - {Loot_WEAPON, 1, ItemPickaxe}, - {Loot_WEAPON, 2, ItemPickaxeBroken}, + //{Loot_WEAPON, 1, ItemPickaxe}, + //{Loot_WEAPON, 2, ItemPickaxeBroken}, + {Loot_VEHICLE, 1, WeaponHolder_ItemPickaxe}, + {Loot_VEHICLE, 2, WeaponHolder_ItemPickaxeBroken}, // {Loot_WEAPON, 2, ItemShovel}, // {Loot_WEAPON, 1, ItemHatchet}, {Loot_VEHICLE, 1, WeaponHolder_ItemHatchet}, diff --git a/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Construction.hpp b/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Construction.hpp index cb2f5d8db..400ff5021 100644 --- a/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Construction.hpp +++ b/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Construction.hpp @@ -10,8 +10,10 @@ Construction[] = {Loot_MAGAZINE, 1, equip_lever}, {Loot_MAGAZINE, 1, ItemComboLock}, - {Loot_WEAPON, 1, ItemPickaxe}, - {Loot_WEAPON, 2, ItemPickaxeBroken}, + //{Loot_WEAPON, 1, ItemPickaxe}, + //{Loot_WEAPON, 2, ItemPickaxeBroken}, + {Loot_VEHICLE, 1, WeaponHolder_ItemPickaxe}, + {Loot_VEHICLE, 2, WeaponHolder_ItemPickaxeBroken}, {Loot_WEAPON, 1, ItemSledge}, {Loot_MAGAZINE, 2, ItemSledgeHandle}, {Loot_MAGAZINE, 2, ItemSledgeHead}, diff --git a/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Industrial.hpp b/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Industrial.hpp index 59452e3df..c9658f64b 100644 --- a/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Industrial.hpp +++ b/SQF/dayz_code/Configs/CfgLoot/Groups/Buildings/Industrial.hpp @@ -7,8 +7,10 @@ Industrial[] = {Loot_VEHICLE, 8, WeaponHolder_ItemCrowbar}, // {Loot_WEAPON, 5, ItemHatchet}, {Loot_VEHICLE, 5, WeaponHolder_ItemHatchet}, - {Loot_WEAPON, 1, ItemPickaxe}, - {Loot_WEAPON, 2, ItemPickaxeBroken}, + //{Loot_WEAPON, 1, ItemPickaxe}, + //{Loot_WEAPON, 2, ItemPickaxeBroken}, + {Loot_VEHICLE, 1, WeaponHolder_ItemPickaxe}, + {Loot_VEHICLE, 2, WeaponHolder_ItemPickaxeBroken}, {Loot_WEAPON, 1, ItemSledge}, {Loot_MAGAZINE, 2, ItemSledgeHandle}, {Loot_MAGAZINE, 2, ItemSledgeHead}, diff --git a/SQF/dayz_code/Configs/CfgLoot/Groups/Weapons.hpp b/SQF/dayz_code/Configs/CfgLoot/Groups/Weapons.hpp index 872c3fb17..d34215562 100644 --- a/SQF/dayz_code/Configs/CfgLoot/Groups/Weapons.hpp +++ b/SQF/dayz_code/Configs/CfgLoot/Groups/Weapons.hpp @@ -74,6 +74,7 @@ assaultrifles[] = { {Loot_WEAPON, 0.1, AKS_GOLD}, {Loot_WEAPON, 0.5, AKM_DZ}, //AK_47_M {Loot_WEAPON, 0.5, AK74_DZ}, //AK_74 + {Loot_WEAPON, 0.5, AK107_DZ}, //AK_107 {Loot_WEAPON, 0.3, FNFAL_DZ}, //FN_FAL {Loot_WEAPON, 0.1, FN_FAL_ANPVS4_DZE}, //FNFAL_ANPVS4_DZ is NV only _DZE is toggleable {Loot_WEAPON, 0.5, G36A_Camo_DZ}, //G36A_camo diff --git a/SQF/dayz_code/Configs/CfgMagazines/CfgMagazines.hpp b/SQF/dayz_code/Configs/CfgMagazines/CfgMagazines.hpp index fec140941..ee1b1aaa5 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/CfgMagazines.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/CfgMagazines.hpp @@ -69,6 +69,7 @@ class CfgMagazines #include "DZE\Currency\TinBar.hpp" #include "DZE\ItemWaterbottle.hpp" + #include "DZE\PlasticWaterbottle.hpp" #include "Planting.hpp" // Building Stuff diff --git a/SQF/dayz_code/Configs/CfgMagazines/Consumables/Canteen.hpp b/SQF/dayz_code/Configs/CfgMagazines/Consumables/Canteen.hpp deleted file mode 100644 index 31fcf1bb1..000000000 --- a/SQF/dayz_code/Configs/CfgMagazines/Consumables/Canteen.hpp +++ /dev/null @@ -1,54 +0,0 @@ -class ItemCanteen : FoodDrink -{ - scope = public; - - model = "\dayz_equip\models\waterbottle_gear.p3d"; - picture = "\dayz_equip\textures\equip_waterbottle_ca.paa"; - displayName = $STR_ITEM_CANTEEN_NAME; - descriptionShort = $STR_ITEM_CANTEEN_DESC; - - Nutrition[] = {0,0,1000,0}; - - infectionChance = 0.3; - - consumeOutput = "ItemCanteenEmpty"; - - containerEmpty = "ItemCanteenEmpty"; - - class ItemActions : ItemActions - { - class Consume : Consume - { - }; - - class Empty - { - text = $STR_ITEM_CANTEEN_EMPTY; - script = "spawn player_emptyContainer"; - }; - }; -}; - -class ItemCanteenInfected : ItemCanteen -{ - infectionChance = 1; -}; - -class ItemCanteenSafe : ItemCanteen -{ - infectionChance = 0; -}; - -class ItemCanteenBoiled : ItemCanteen -{ - displayName = $STR_ITEM_CANTEEN_BOILED_NAME; - - infectionChance = 0; - }; - -class ItemCanteenHerbal : ItemCanteen -{ - displayName = $STR_ITEM_CANTEEN_HERBAL_NAME; - - infectionChance = -0.5; -}; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgMagazines/Consumables/Consumables.hpp b/SQF/dayz_code/Configs/CfgMagazines/Consumables/Consumables.hpp index 2ae55973a..3852eba36 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/Consumables/Consumables.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/Consumables/Consumables.hpp @@ -111,4 +111,3 @@ class FoodCooked : FoodEdible #include "Soda.hpp" #include "WaterBottle.hpp" -//#include "Canteen.hpp" \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgMagazines/DZE/Items.hpp b/SQF/dayz_code/Configs/CfgMagazines/DZE/Items.hpp index 5b9df45aa..e80911e9b 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/DZE/Items.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/DZE/Items.hpp @@ -70,6 +70,8 @@ class ItemJerryMixed: CA_Magazine { picture = "\dayz_equip\textures\equip_jerrycan_ca.paa"; descriptionShort = $STR_EPOCH_CHAINSAW_MIXEDGAS20L_CAN_DESC; sfx = "refuel"; + containerEmpty = "ItemJerrycanEmpty"; + class ItemActions { class Crafting { text = $STR_EPOCH_CHAINSAW_MIXEDGAS_CAN_ACTION; @@ -79,6 +81,10 @@ class ItemJerryMixed: CA_Magazine { output[] = {{"CSGAS",1},{"ItemJerryMixed4",1}}; input[] = {{"ItemJerryMixed",1}}; }; + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; }; }; class ItemJerryMixed4: CA_Magazine { @@ -90,6 +96,8 @@ class ItemJerryMixed4: CA_Magazine { picture = "\dayz_equip\textures\equip_jerrycan_ca.paa"; descriptionShort = $STR_EPOCH_CHAINSAW_MIXEDGAS16L_CAN_DESC; sfx = "refuel"; + containerEmpty = "ItemJerrycanEmpty"; + class ItemActions { class Crafting { text = $STR_EPOCH_CHAINSAW_MIXEDGAS_CAN_ACTION; @@ -99,6 +107,10 @@ class ItemJerryMixed4: CA_Magazine { output[] = {{"CSGAS",1},{"ItemJerryMixed3",1}}; input[] = {{"ItemJerryMixed4",1}}; }; + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; }; }; class ItemJerryMixed3: CA_Magazine { @@ -110,6 +122,8 @@ class ItemJerryMixed3: CA_Magazine { picture = "\dayz_equip\textures\equip_jerrycan_ca.paa"; descriptionShort = $STR_EPOCH_CHAINSAW_MIXEDGAS12L_CAN_DESC; sfx = "refuel"; + containerEmpty = "ItemJerrycanEmpty"; + class ItemActions { class Crafting { text = $STR_EPOCH_CHAINSAW_MIXEDGAS_CAN_ACTION; @@ -119,6 +133,10 @@ class ItemJerryMixed3: CA_Magazine { output[] = {{"CSGAS",1},{"ItemJerryMixed2",1}}; input[] = {{"ItemJerryMixed3",1}}; }; + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; }; }; class ItemJerryMixed2: CA_Magazine { @@ -130,6 +148,8 @@ class ItemJerryMixed2: CA_Magazine { picture = "\dayz_equip\textures\equip_jerrycan_ca.paa"; descriptionShort = $STR_EPOCH_CHAINSAW_MIXEDGAS8L_CAN_DESC; sfx = "refuel"; + containerEmpty = "ItemJerrycanEmpty"; + class ItemActions { class Crafting { text = $STR_EPOCH_CHAINSAW_MIXEDGAS_CAN_ACTION; @@ -139,6 +159,10 @@ class ItemJerryMixed2: CA_Magazine { output[] = {{"CSGAS",1},{"ItemJerryMixed1",1}}; input[] = {{"ItemJerryMixed2",1}}; }; + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; }; }; class ItemJerryMixed1: CA_Magazine { @@ -150,6 +174,8 @@ class ItemJerryMixed1: CA_Magazine { picture = "\dayz_equip\textures\equip_jerrycan_ca.paa"; descriptionShort = $STR_EPOCH_CHAINSAW_MIXEDGAS4L_CAN; sfx = "refuel"; + containerEmpty = "ItemJerrycanEmpty"; + class ItemActions { class Crafting { text = $STR_EPOCH_CHAINSAW_MIXEDGAS_CAN_ACTION; @@ -159,6 +185,10 @@ class ItemJerryMixed1: CA_Magazine { output[] = {{"CSGAS",1},{"ItemJerrycanEmpty",1}}; input[] = {{"ItemJerryMixed1",1}}; }; + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; }; }; diff --git a/SQF/dayz_code/Configs/CfgMagazines/DZE/Misc.hpp b/SQF/dayz_code/Configs/CfgMagazines/DZE/Misc.hpp index b10bdcaa8..b55bbbfd8 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/DZE/Misc.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/DZE/Misc.hpp @@ -274,6 +274,14 @@ class ItemOilBarrel: CA_Magazine model = "\z\addons\dayz_epoch\models\oil_drum_model.p3d"; picture = "\z\addons\dayz_epoch\pictures\equip_oil_drum_model_ca.paa"; descriptionShort = $STR_EPOCH_OILBARREL_DESC; + containerEmpty = "ItemOilBarrelEmpty"; + + class ItemActions { + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + }; }; class ItemFuelBarrel: CA_Magazine { @@ -286,7 +294,14 @@ class ItemFuelBarrel: CA_Magazine picture = "\z\addons\dayz_epoch\pictures\equip_oil_drum_model_ca.paa"; descriptionShort = $STR_EPOCH_FUELBARREL_DESC; fireIntensity = 6; //used for tent burning - emptycan = "ItemFuelBarrelEmpty"; + containerEmpty = "ItemFuelBarrelEmpty"; + + class ItemActions { + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + }; }; class ItemFuelBarrelEmpty: ItemFuelBarrel { @@ -1198,6 +1213,14 @@ class ItemMethylaminBarrel : ItemOilBarrel { displayName = $STR_EPOCH_METHYLAMINEBARREL; descriptionShort = $STR_EPOCH_METHYLAMINEBARREL_DESC; + containerEmpty = "ItemMethylaminBarrelEmpty"; + + class ItemActions { + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + }; }; class ItemC4Charge : CA_Magazine diff --git a/SQF/dayz_code/Configs/CfgMagazines/DZE/PlasticWaterbottle.hpp b/SQF/dayz_code/Configs/CfgMagazines/DZE/PlasticWaterbottle.hpp new file mode 100644 index 000000000..429b3133d --- /dev/null +++ b/SQF/dayz_code/Configs/CfgMagazines/DZE/PlasticWaterbottle.hpp @@ -0,0 +1,649 @@ +class ItemPlasticWaterbottleUnfilled : CA_Magazine +{ + scope = public; + count = 1; + type = WeaponSlotItem; + + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottleEmpty.paa"; + displayName = $STR_EQUIP_NAME_13; + descriptionShort = $STR_EQUIP_DESC_13; + + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + + class ItemActions + { + class Fill + { + text = $STR_ACTIONS_FILL_W; + script = "spawn player_fillWater;"; + }; + }; +}; + +class ItemPlasticWaterbottleDmg : CA_Magazine +{ + scope = public; + count = 1; + type = WeaponSlotItem; + + model = "z\addons\dayz_communityassets\models\waterbottle_damaged.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottleEmpty.paa"; + displayName = $STR_ITEMWATERBOTTLEDMG_CODE_NAME; + descriptionShort = $STR_ITEMWATERBOTTLEDMG_CODE_DESC; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_W; + script = "spawn player_fixBottle;"; + }; + }; +}; + +class ItemPlasticWaterBottle : ItemWaterBottle { + scope = public; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle10oz.paa"; + + Nutrition[] = {0,0,1000,0}; + infectionChance = 0.3; + + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; +}; + +class ItemPlasticWaterBottleInfected : ItemWaterBottle +{ + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle10oz.paa"; + infectionChance = 1; + + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; +}; + +class ItemPlasticWaterBottleSafe : ItemWaterBottle +{ + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle10oz.paa"; + infectionChance = 0; + + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; +}; + +class ItemPlasticWaterBottleBoiled : ItemWaterBottle +{ + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle10oz.paa"; + displayName = $STR_ITEMWATERBOTTLEBOILED_CODE_NAME; + descriptionShort = $STR_ITEMWATERBOTTLEBOILED_CODE_DESC; + + infectionChance = 0; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + }; + +class ItemPlasticWaterBottleHerbal : ItemWaterBottle +{ + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle10oz.paa"; + displayName = $STR_ITEM_NAME_HerbalDrink; + descriptionShort = $STR_ITEM_DESC_HerbalDrink; + + infectionChance = -0.5; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; +}; + +class ItemPlasticWaterbottle1oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE1OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE1OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle1oz.paa"; + wateroz = 1; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,100,0}; + infectionChance = 0.03; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle2oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE2OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE2OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle2oz.paa"; + wateroz = 2; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,200,0}; + infectionChance = 0.06; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; + +}; +class ItemPlasticWaterbottle3oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE3OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE3OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle3oz.paa"; + wateroz = 3; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,300,0}; + infectionChance = 0.09; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; + +}; +class ItemPlasticWaterbottle4oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE4OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE4OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle4oz.paa"; + wateroz = 4; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,400,0}; + infectionChance = 0.12; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; + +}; +class ItemPlasticWaterbottle5oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE5OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE5OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle5oz.paa"; + wateroz = 5; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,500,0}; + infectionChance = 0.15; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; + +}; +class ItemPlasticWaterbottle6oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE6OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE6OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle6oz.paa"; + wateroz = 6; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,600,0}; + infectionChance = 0.18; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; + +}; +class ItemPlasticWaterbottle7oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE7OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE7OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle7oz.paa"; + wateroz = 7; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,700,0}; + infectionChance = 0.21; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle8oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE8OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE8OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle8oz.paa"; + wateroz = 8; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,800,0}; + infectionChance = 0.24; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; + +}; +class ItemPlasticWaterbottle9oz : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE9OZ; + descriptionShort = $STR_EPOCH_WATERBOTTLE9OZ_DESC; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle9oz.paa"; + wateroz = 9; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,900,0}; + infectionChance = 0.27; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +//inherit from ItemWaterBottle because that's how the crafting script checks required input +class ItemPlasticWaterbottle1ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE1OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE1OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle1oz.paa"; + wateroz = 1; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,100,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle2ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE2OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE2OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle2oz.paa"; + wateroz = 2; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,200,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle3ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE3OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE3OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle3oz.paa"; + wateroz = 3; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,300,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle4ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE4OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE4OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle4oz.paa"; + wateroz = 4; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,400,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle5ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE5OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE5OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle5oz.paa"; + wateroz = 5; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,500,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle6ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE6OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE6OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle6oz.paa"; + wateroz = 6; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,600,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle7ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE7OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE7OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle7oz.paa"; + wateroz = 7; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,700,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle8ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE8OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE8OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle8oz.paa"; + wateroz = 8; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,800,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; +class ItemPlasticWaterbottle9ozBoiled : ItemWaterBottle { + displayName = $STR_EPOCH_WATERBOTTLE9OZBOILED; + descriptionShort = $STR_EPOCH_WATERBOTTLE9OZBOILED_DESC; + infectionChance = 0; + model = "z\addons\dayz_communityassets\models\waterbottle.p3d"; + picture = "\dayz_epoch_c\icons\plasticwaterbottle\PETwaterbottle9oz.paa"; + wateroz = 9; + containerWater = "ItemPlasticWaterbottle"; + containerWaterSafe = "ItemPlasticWaterbottleSafe"; + containerWaterInfected = "ItemPlasticWaterbottleInfected"; + Nutrition[] = {0,0,900,0}; + consumeOutput = "ItemPlasticWaterbottleUnfilled"; + containerEmpty = "ItemPlasticWaterbottleUnfilled"; + class ItemActions { + class Consume + { + text = $STR_ACTIONS_DRINK2; + script = "spawn player_consume"; + }; + class Empty + { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + class Fill { + text = "$STR_ACTIONS_FILL_W"; + script = "spawn player_fillWater;"; + }; + }; +}; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgMagazines/Items/Fuel.hpp b/SQF/dayz_code/Configs/CfgMagazines/Items/Fuel.hpp index 995ca137a..171a4811a 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/Items/Fuel.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/Items/Fuel.hpp @@ -20,10 +20,17 @@ class ItemJerrycan : ItemJerrycanEmpty descriptionShort = $STR_ITEM_DESC_JERRYCAN; fuelQuantity = 20; - emptycan = "ItemJerrycanEmpty"; + containerEmpty = "ItemJerrycanEmpty"; //used for tent burning fireIntensity = 6; + + class ItemActions { + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + }; }; class ItemFuelcanEmpty : ItemJerrycanEmpty @@ -46,8 +53,15 @@ class ItemFuelcan : ItemFuelcanEmpty descriptionShort = $STR_ITEM_DESC_FUELCAN; fuelQuantity = 5; - emptycan = "ItemFuelcanEmpty"; + containerEmpty = "ItemFuelcanEmpty"; //used for tent burning fireIntensity = 4; + + class ItemActions { + class Empty { + text = $STR_EQUIP_NAME_13_EMPTY; + script = "spawn player_emptyContainer"; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgMagazines/Magazines/545x39.hpp b/SQF/dayz_code/Configs/CfgMagazines/Magazines/545x39.hpp index 5257c76f4..37447b3b7 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/Magazines/545x39.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/Magazines/545x39.hpp @@ -2,6 +2,7 @@ class 30Rnd_545x39_AK : CA_Magazine { picture = "\z\addons\dayz_communityweapons\magazines\data\m_ak74_ca.paa"; displayName = $STR_DZ_MAG_30RND_545x39_AK_NAME; + descriptionShort = $STR_DZ_MAG_30RND_AK74_DESC; cartridgeName = "545x39"; class ItemActions @@ -27,7 +28,7 @@ class 75Rnd_545x39_RPK : CA_Magazine model = "\ca\weapons\mag_univ.p3d"; picture = "\CA\weapons\AK\data\equip\M_RPK_74_CA.paa"; displayName = $STR_DZ_MAG_75RND_545X39_RPK_NAME; - descriptionShort = $STR_DSS_75Rnd_RPK; + descriptionShort = $STR_DZ_MAG_75RND_RPK74_DESC; count = 75; tracersEvery = 4; diff --git a/SQF/dayz_code/Configs/CfgMagazines/Magazines/556x45.hpp b/SQF/dayz_code/Configs/CfgMagazines/Magazines/556x45.hpp index 99ba006fd..66c417222 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/Magazines/556x45.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/Magazines/556x45.hpp @@ -19,7 +19,7 @@ class 100Rnd_556x45_M249 : 200Rnd_556x45_M249 class 100Rnd_556x45_BetaCMag: CA_Magazine { scope = public; - displayName = "MG36 Mag."; + displayName = $STR_DZ_MAG_100RND_556x45_MG36_NAME; ammo = "B_556x45_Ball"; count = 100; initSpeed = 920; @@ -27,7 +27,7 @@ class 100Rnd_556x45_BetaCMag: CA_Magazine { type="256"; tracersEvery = 4; lastRoundsTracer = 4; - descriptionShort = "Caliber: 5.56x45 mm NATO Rounds: 100 Used in: MG36, X8 SAW"; + descriptionShort = $STR_DZ_MAG_100RND_MG36_DESC; }; diff --git a/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyAssaultRifle.hpp b/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyAssaultRifle.hpp index 71756661a..5fab69e42 100644 --- a/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyAssaultRifle.hpp +++ b/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyAssaultRifle.hpp @@ -769,6 +769,36 @@ class Category_485 { buy[] = {-1,"ItemGoldBar"}; // Sell only sell[] = {1,"ItemGoldBar10oz"}; }; + class AK107_DZ { + type = "trade_weapons"; + buy[] = {2,"ItemGoldBar"}; + sell[] = {1,"ItemGoldBar"}; + }; + class AK107_Kobra_DZ { + type = "trade_weapons"; + buy[] = {-1,"ItemGoldBar"}; // Sell only + sell[] = {3,"ItemGoldBar"}; + }; + class AK107_PSO1_DZ { + type = "trade_weapons"; + buy[] = {-1,"ItemGoldBar"}; // Sell only + sell[] = {5,"ItemGoldBar"}; + }; + class AK107_GL_DZ { + type = "trade_weapons"; + buy[] = {-1,"ItemGoldBar"}; // Sell only + sell[] = {3,"ItemGoldBar"}; + }; + class AK107_GL_Kobra_DZ { + type = "trade_weapons"; + buy[] = {-1,"ItemGoldBar"}; // Sell only + sell[] = {5,"ItemGoldBar"}; + }; + class AK107_GL_PSO1_DZ { + type = "trade_weapons"; + buy[] = {-1,"ItemGoldBar"}; // Sell only + sell[] = {7,"ItemGoldBar"}; + }; class FNFAL_DZ { type = "trade_weapons"; buy[] = {8,"ItemGoldBar"}; diff --git a/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyDrinks.hpp b/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyDrinks.hpp index 34ac1f575..f9b9d8551 100644 --- a/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyDrinks.hpp +++ b/SQF/dayz_code/Configs/CfgServerTrader/Category/FriendlyDrinks.hpp @@ -4,6 +4,11 @@ class Category_601 { buy[] = {3,"ItemSilverBar"}; sell[] = {1,"ItemSilverBar"}; }; + class ItemPlasticWaterbottleUnfilled { + type = "trade_items"; + buy[] = {2,"ItemSilverBar"}; + sell[] = {1,"ItemSilverBar"}; + }; class ItemSodaCoke { type = "trade_items"; buy[] = {2,"ItemSilverBar"}; diff --git a/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp b/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp index 61b169ef4..a6434bbc9 100644 --- a/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp +++ b/SQF/dayz_code/Configs/CfgVehicles/Bags.hpp @@ -62,7 +62,7 @@ class DZ_Czech_Vest_Pouch: Bag_Base_EP1 picture = "\ca\weapons_e\data\icons\backpack_ACR_small_CA.paa"; scope = 2; transportmaxmagazines = 12; - transportmaxweapons = 0; + transportmaxweapons = 1; class eventHandlers { init="[(_this select 0),'CfgVehicles','DZ_Czech_Vest_Pouch'] execVM '\z\addons\dayz_code\init\object_BackpackAction.sqf';"; diff --git a/SQF/dayz_code/Configs/CfgVehicles/WeaponHolder.hpp b/SQF/dayz_code/Configs/CfgVehicles/WeaponHolder.hpp index 0d2cb973e..3a596680a 100644 --- a/SQF/dayz_code/Configs/CfgVehicles/WeaponHolder.hpp +++ b/SQF/dayz_code/Configs/CfgVehicles/WeaponHolder.hpp @@ -22,6 +22,27 @@ class WeaponHolder_ItemCrowbar: WeaponHolderBase init="[(_this select 0),'cfgWeapons','ItemCrowbar'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';"; }; }; +class WeaponHolder_ItemPickaxe: WeaponHolderBase +{ + scope=2; + displayName = $STR_EQUIP_NAME_PICKAXE; + model = "z\addons\dayz_communityweapons\models\pickaxe\pickaxe.p3d"; + destrType = "DestructNo"; + + class eventHandlers + { + init="[(_this select 0),'cfgWeapons','ItemPickaxe'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';"; + }; +}; +class WeaponHolder_ItemPickaxeBroken: WeaponHolder_ItemPickaxe +{ + displayName = $STR_name_ItemPickaxeBroken; + + class eventHandlers + { + init="[(_this select 0),'cfgWeapons','ItemPickaxeBroken'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';"; + }; +}; class WeaponHolder_ItemSledge : WeaponHolderBase { // Epoch class. Needed for player_dropWeapon scope = public; displayName = $STR_EQUIP_NAME_SledgeHammer; diff --git a/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp b/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp index c10c7af8e..587773450 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp @@ -29,6 +29,8 @@ class CfgWeapons #include "Weapon\Sniper\M4SPR.hpp" #include "Weapon\Sniper\VSSVintorez.hpp" + //Ak107 + #include "Weapon\Assault\AK107.hpp" //each include is preceded by its required external references. diff --git a/SQF/dayz_code/Configs/CfgWeapons/Rifles/AK74.hpp b/SQF/dayz_code/Configs/CfgWeapons/Rifles/AK74.hpp index 196a01ab5..243907c02 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Rifles/AK74.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Rifles/AK74.hpp @@ -5,13 +5,14 @@ class AK74_Kobra_DZ : AK_74 model = "z\addons\dayz_communityweapons\ak74\ak74_kobra.p3d"; picture = "\z\addons\dayz_communityweapons\ak74\data\w_ak74_kobra_ca.paa"; displayName = $STR_DZ_WPN_AK74_KOBRA_NAME; - /* //Allow default A2 mags + magazines[] = { 30Rnd_545x39_AK, - 30Rnd_545x39_AKSD + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK }; - */ + class Attachments { Attachment_GP25 = "AK74_GL_Kobra_DZ"; diff --git a/SQF/dayz_code/Configs/CfgWeapons/Rifles/AKS74U.hpp b/SQF/dayz_code/Configs/CfgWeapons/Rifles/AKS74U.hpp index a38b59f82..a2ca5804b 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Rifles/AKS74U.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Rifles/AKS74U.hpp @@ -7,7 +7,8 @@ class AKS74U_Kobra_DZ : AKS_74_U magazines[] = { 30Rnd_545x39_AK, - 30Rnd_545x39_AKSD + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK }; class Attachments @@ -34,7 +35,8 @@ class AKS74U_Kobra_SD_DZ : AKS_74_UN_kobra magazines[] = { 30Rnd_545x39_AKSD, - 30Rnd_545x39_AK //Allow both SD and non-SD + 30Rnd_545x39_AK, //Allow both SD and non-SD + 75Rnd_545x39_RPK }; class ItemActions diff --git a/SQF/dayz_code/Configs/CfgWeapons/Weapon/Assault/AK107.hpp b/SQF/dayz_code/Configs/CfgWeapons/Weapon/Assault/AK107.hpp new file mode 100644 index 000000000..ec4ee4834 --- /dev/null +++ b/SQF/dayz_code/Configs/CfgWeapons/Weapon/Assault/AK107.hpp @@ -0,0 +1,157 @@ +class AK_107_kobra; +class AK107_Kobra_DZ : AK_107_kobra +{ + displayName = $STR_DZ_WPN_AK107_KOBRA_NAME; + + magazines[] = + { + 30Rnd_545x39_AK, + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK + }; + + class Attachments + { + Attachment_GP25 = "AK107_GL_Kobra_DZ"; + }; + + class ItemActions + { + class RemoveKobra + { + text = $STR_DZ_ATT_KOBRA_RMVE; + script = "; ['Attachment_Kobra',_id,'AK107_DZ'] call player_removeAttachment"; + }; + }; +}; + +class AK_107_CP; +class AK107_DZ : AK_107_CP +{ + displayName = $STR_DZ_WPN_AK107_NAME; + + magazines[] = + { + 30Rnd_545x39_AK, + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK + }; + + class Attachments + { + Attachment_Kobra = "AK107_Kobra_DZ"; + Attachment_PSO1 = "AK107_PSO_DZ"; + Attachment_GP25 = "AK107_GL_DZ"; + }; + + class ItemActions {}; +}; + +class AK_107_GL_CP; +class AK107_GL_DZ : AK_107_GL_CP +{ + displayName = $STR_DZ_WPN_AK107_GL_NAME; + + magazines[] = + { + 30Rnd_545x39_AK, + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK + }; + + class Attachments + { + Attachment_Kobra = "AK107_GL_Kobra_DZ"; + Attachment_PSO1 = "AK107_GL_PSO_DZ"; + }; + class ItemActions + { + class RemoveGL + { + text = $STR_DZ_ATT_GP25_RMVE; + script = "; ['Attachment_GP25',_id,'AK107_DZ'] call player_removeAttachment"; + }; + }; +}; + +class AK_107_pso; +class AK107_PSO_DZ : AK_107_pso +{ + displayName = $STR_DZ_WPN_AK107_PSO1_NAME; + + magazines[] = + { + 30Rnd_545x39_AK, + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK + }; + + class Attachments + { + Attachment_GP25 = "AK107_GL_PSO_DZ"; + }; + class ItemActions + { + class RemovePSO1 + { + text = $STR_DZ_ATT_PSO1_RMVE; + script = "; ['Attachment_PSO1',_id,'AK107_DZ'] call player_removeAttachment"; + }; + }; +}; + +class AK_107_GL_pso; +class AK107_GL_PSO_DZ : AK_107_GL_pso +{ + displayName = $STR_DZ_WPN_AK107_GL_PSO1_NAME; + + magazines[] = + { + 30Rnd_545x39_AK, + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK + }; + + class Attachments {}; + class ItemActions + { + class RemovePSO1 + { + text = $STR_DZ_ATT_PSO1_RMVE; + script = "; ['Attachment_PSO1',_id,'AK107_GL_DZ'] call player_removeAttachment"; + }; + class RemoveGL + { + text = $STR_DZ_ATT_GP25_RMVE; + script = "; ['Attachment_GP25',_id,'AK107_PSO_DZ'] call player_removeAttachment"; + }; + }; +}; + +class AK_107_GL_kobra; +class AK107_GL_Kobra_DZ : AK_107_GL_kobra +{ + displayName = $STR_DZ_WPN_AK107_GL_KOBRA_NAME; + + magazines[] = + { + 30Rnd_545x39_AK, + 30Rnd_545x39_AKSD, //Allow both SD and non-SD + 75Rnd_545x39_RPK + }; + + class Attachments {}; + class ItemActions + { + class RemoveKobra + { + text = $STR_DZ_ATT_KOBRA_RMVE; + script = "; ['Attachment_Kobra',_id,'AK107_GL_DZ'] call player_removeAttachment"; + }; + class RemoveGL + { + text = $STR_DZ_ATT_GP25_RMVE; + script = "; ['Attachment_GP25',_id,'AK107_Kobra_DZ'] call player_removeAttachment"; + }; + }; +}; \ No newline at end of file diff --git a/SQF/dayz_code/actions/boil.sqf b/SQF/dayz_code/actions/boil.sqf index fcf8cf159..14159c013 100644 --- a/SQF/dayz_code/actions/boil.sqf +++ b/SQF/dayz_code/actions/boil.sqf @@ -1,61 +1,84 @@ -private ["_bottletext","_tin1text","_tin2text","_tintext","_hastinitem","_qty","_dis","_sfx","_WB2Add","_finished"]; - if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; dayz_actionInProgress = true; +private ["_bottletext","_hastinitem","_qty","_dis","_sfx","_bottle","_finished","_waterbottles","_platicBottles","_magsPlayer","_bottles"]; + _bottletext = getText (configFile >> "CfgMagazines" >> "ItemWaterBottle" >> "displayName"); -_tin1text = getText (configFile >> "CfgMagazines" >> "TrashTinCan" >> "displayName"); -_tin2text = getText (configFile >> "CfgMagazines" >> "ItemSodaEmpty" >> "displayName"); -_tintext = format["%1 / %2",_tin1text,_tin2text]; -_qty = {_x in ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz"]} count magazines player; +_waterbottles = ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterbottle1oz","ItemPlasticWaterbottle2oz","ItemPlasticWaterbottle3oz","ItemPlasticWaterbottle4oz","ItemPlasticWaterbottle5oz","ItemPlasticWaterbottle6oz","ItemPlasticWaterbottle7oz","ItemPlasticWaterbottle8oz","ItemPlasticWaterbottle9oz"]; +_platicBottles = ["ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterbottle1oz","ItemPlasticWaterbottle2oz","ItemPlasticWaterbottle3oz","ItemPlasticWaterbottle4oz","ItemPlasticWaterbottle5oz","ItemPlasticWaterbottle6oz","ItemPlasticWaterbottle7oz","ItemPlasticWaterbottle8oz","ItemPlasticWaterbottle9oz"]; +_magsPlayer = magazines player; +_qty = {_x in _waterbottles} count _magsPlayer; +_hastinitem = true; a_player_boil = true; player removeAction s_player_boil; //s_player_boil = -1; -/* //canteens are metal, we only use canteens in Epoch -_hastinitem = {_x in magazines player} count boil_tin_cans > 0; -if (!_hastinitem) exitWith {format[localize "str_player_31",_tintext,localize "str_player_31_fill"] call dayz_rollingMessages; a_player_boil = false; dayz_actionInProgress = false;}; -*/ +if ({_x in _platicBottles} count _magsPlayer > 0) then { + _hastinitem = {_x in _magsPlayer} count boil_tin_cans > 0; +}; + +if !(_hastinitem) exitWith { + private ["_tin1text","_tin2text","_tintext"]; + + _tin1text = getText (configFile >> "CfgMagazines" >> "TrashTinCan" >> "displayName"); + _tin2text = getText (configFile >> "CfgMagazines" >> "ItemSodaEmpty" >> "displayName"); + _tintext = format["%1 / %2",_tin1text,_tin2text]; + format[localize "str_player_31",_tintext,localize "str_player_31_fill"] call dayz_rollingMessages; + a_player_boil = false; + dayz_actionInProgress = false; +}; + if (_qty > 0) then { _dis=10; _sfx = "cook"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] call player_alertZombies; - - _finished = ["Medic",1] call fn_loopAction; - - // Double check player did not drop item - _qty = {_x in ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz"]} count magazines player; - - if (_qty == 0 or !_finished) exitWith {}; - for "_x" from 1 to _qty do { - _WB2Add = "ItemWaterBottleBoiled"; - switch (true) do { - case ("ItemWaterBottleInfected" in magazines player): { player removeMagazine "ItemWaterBottleInfected"; }; - case ("ItemWaterBottleSafe" in magazines player): { player removeMagazine "ItemWaterBottleSafe"; }; - case ("ItemWaterBottle" in magazines player): { player removeMagazine "ItemWaterBottle"; }; - case ("ItemWaterbottle1oz" in magazines player): { player removeMagazine "ItemWaterbottle1oz"; _WB2Add = "ItemWaterbottle1ozBoiled"; }; - case ("ItemWaterbottle2oz" in magazines player): { player removeMagazine "ItemWaterbottle2oz"; _WB2Add = "ItemWaterbottle2ozBoiled"; }; - case ("ItemWaterbottle3oz" in magazines player): { player removeMagazine "ItemWaterbottle3oz"; _WB2Add = "ItemWaterbottle3ozBoiled"; }; - case ("ItemWaterbottle4oz" in magazines player): { player removeMagazine "ItemWaterbottle4oz"; _WB2Add = "ItemWaterbottle4ozBoiled"; }; - case ("ItemWaterbottle5oz" in magazines player): { player removeMagazine "ItemWaterbottle5oz"; _WB2Add = "ItemWaterbottle5ozBoiled"; }; - case ("ItemWaterbottle6oz" in magazines player): { player removeMagazine "ItemWaterbottle6oz"; _WB2Add = "ItemWaterbottle6ozBoiled"; }; - case ("ItemWaterbottle7oz" in magazines player): { player removeMagazine "ItemWaterbottle7oz"; _WB2Add = "ItemWaterbottle7ozBoiled"; }; - case ("ItemWaterbottle8oz" in magazines player): { player removeMagazine "ItemWaterbottle8oz"; _WB2Add = "ItemWaterbottle8ozBoiled"; }; - case ("ItemWaterbottle9oz" in magazines player): { player removeMagazine "ItemWaterbottle9oz"; _WB2Add = "ItemWaterbottle9ozBoiled"; }; + _finished = ["Medic",1] call fn_loopAction; + + // Double check player did not drop item + _bottles = []; + + { + if (_x in _waterbottles) then { + _bottles set [count _bottles, _x]; }; + } count magazines player; + + _qty = count _bottles; + + if (_qty < 1 || !_finished) exitWith {}; + + { + _bottle = _x; + player removeMagazine _bottle; if (dayz_waterBottleBreaking && {[0.1] call fn_chance}) then { - player addMagazine "ItemWaterBottleDmg"; + if (_bottle in _platicBottles) then { + player addMagazine "ItemPlasticWaterbottleDmg"; + } else { + player addMagazine "ItemWaterBottleDmg"; + }; localize "str_waterbottle_broke" call dayz_rollingMessages; } else { - player addMagazine _WB2Add; + if (_bottle in _platicBottles) then { + if (_bottle in ["ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe"]) then { + player addMagazine "ItemPlasticWaterbottleBoiled"; + } else { + player addMagazine (_bottle + "Boiled"); + }; + } else { + if (_bottle in ["ItemWaterBottleInfected","ItemWaterBottleSafe"]) then { + player addMagazine "ItemWaterBottleBoiled"; + } else { + player addMagazine (_bottle + "Boiled"); + }; + }; }; - }; + } count _bottles; format [localize "str_player_boiledwater",_qty] call dayz_rollingMessages; } else { format[localize "str_player_31",_bottletext,localize "str_player_31_fill"] call dayz_rollingMessages; }; a_player_boil = false; -dayz_actionInProgress = false; \ No newline at end of file +dayz_actionInProgress = false; diff --git a/SQF/dayz_code/actions/dog/feed.sqf b/SQF/dayz_code/actions/dog/feed.sqf index c0ef56085..7688e498e 100644 --- a/SQF/dayz_code/actions/dog/feed.sqf +++ b/SQF/dayz_code/actions/dog/feed.sqf @@ -1,14 +1,15 @@ -private ["_array","_handle","_type","_onLadder","_removed","_itemIn","_countIn"]; +if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; +dayz_actionInProgress = true; + +private ["_array","_handle","_type","_onLadder","_removed","_itemIn","_countIn","_bottles"]; + +_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; +if (_onLadder) exitWith {dayz_actionInProgress = false;localize "str_player_21" call dayz_rollingMessages;}; + _array = _this select 3; _handle = _array select 0; _type = _array select 1; -_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; -if (_onLadder) exitWith {localize "str_player_21" call dayz_rollingMessages;}; - -if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; -dayz_actionInProgress = true; - player playActionNow "PutDown"; switch (_type) do { @@ -17,7 +18,7 @@ switch (_type) do { _removed = 0; _itemIn = "FoodRaw"; _countIn = 1; - { + { if( (_removed < _countIn) && ((_x == _itemIn) || configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn)) then { _removed = _removed + ([player,_x] call BIS_fnc_invRemove); }; @@ -30,13 +31,21 @@ switch (_type) do { }; case 1: { - if(([player,"ItemWaterbottle"] call BIS_fnc_invRemove) == 1) then { - player addMagazine "ItemWaterbottleUnfilled"; - }; - _handle setFSMVariable ["_thirst",0]; + _bottles = ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterBottleBoiled"]; + { + if (_x in _bottles) exitwith { + if (_x in ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled"]) then { + player addMagazine "ItemWaterbottleUnfilled"; + } else { + player addMagazine "ItemPlasticWaterbottleUnfilled"; + }; + player removeMagazine _x; + }; + } count magazines player; + _handle setFSMVariable ["_thirst",0]; player removeAction s_player_waterdog; s_player_waterdog = -1; }; }; -dayz_actionInProgress = false; \ No newline at end of file +dayz_actionInProgress = false; diff --git a/SQF/dayz_code/actions/fill_startGenerator.sqf b/SQF/dayz_code/actions/fill_startGenerator.sqf index 59763a718..d9ca46cb7 100644 --- a/SQF/dayz_code/actions/fill_startGenerator.sqf +++ b/SQF/dayz_code/actions/fill_startGenerator.sqf @@ -1,8 +1,8 @@ -private ["_vehicle","_finished","_soundSource","_fuelCan","_emptyCan"]; - if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; dayz_actionInProgress = true; +private ["_vehicle","_finished","_soundSource","_fuelCan","_emptyCan"]; + player removeAction s_player_fillgen; s_player_fillgen = 1; @@ -24,16 +24,16 @@ _fuelCan = nil; if (_finished) then { // take fuel can and replace with empty - + if(!(_vehicle getVariable ["GeneratorFilled", false]) && !isNil "_fuelCan") then { - + if(([player,_fuelCan] call BIS_fnc_invRemove) == 1) then { - _emptyCan = getText (configFile >> "CfgMagazines" >> _fuelCan >> "emptycan"); + _emptyCan = getText (configFile >> "CfgMagazines" >> _fuelCan >> "containerEmpty"); player addMagazine _emptyCan; // mark as once filled _vehicle setVariable ["GeneratorFilled", true,true]; - + // Start generator _vehicle setVariable ["GeneratorRunning", true,true]; @@ -46,7 +46,7 @@ if (_finished) then { localize "str_epoch_player_28" call dayz_rollingMessages; ["Working",0,[0,1,3,0]] call dayz_NutritionSystem; }; - } else { + } else { // Start generator _vehicle setVariable ["GeneratorRunning", true,true]; @@ -63,4 +63,4 @@ if (_finished) then { }; dayz_actionInProgress = false; -s_player_fillgen = -1; \ No newline at end of file +s_player_fillgen = -1; diff --git a/SQF/dayz_code/actions/hide_body.sqf b/SQF/dayz_code/actions/hide_body.sqf new file mode 100644 index 000000000..646e022a4 --- /dev/null +++ b/SQF/dayz_code/actions/hide_body.sqf @@ -0,0 +1,16 @@ +if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; +dayz_actionInProgress = true; + +private "_body"; + +player removeAction s_player_hide_body; +s_player_hide_body = -1; + +closeDialog 0; + +_body = _this select 3; +if (isNull _body) exitWith { dayz_actionInProgress = false;}; + +player action ["hideBody", _body]; + +dayz_actionInProgress = false; \ No newline at end of file diff --git a/SQF/dayz_code/actions/modular_build.sqf b/SQF/dayz_code/actions/modular_build.sqf index 40883fcd4..b4112f8ff 100644 --- a/SQF/dayz_code/actions/modular_build.sqf +++ b/SQF/dayz_code/actions/modular_build.sqf @@ -66,7 +66,7 @@ _needNear = getArray (configFile >> "CfgMagazines" >> DZE_buildItem >> "ItemActi _isNear = count (nearestObjects [_pos, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; - _reason = localize "STR_BLD_name_ItemWorkshop"; + _reason = localize "STR_EPOCH_WORKBENCH_NEARBY"; }; }; case "fueltank": diff --git a/SQF/dayz_code/actions/player_build.sqf b/SQF/dayz_code/actions/player_build.sqf index d8b277204..89e06840e 100644 --- a/SQF/dayz_code/actions/player_build.sqf +++ b/SQF/dayz_code/actions/player_build.sqf @@ -66,7 +66,7 @@ _needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> _isNear = count (nearestObjects [_pos, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; - _reason = localize "STR_BLD_name_ItemWorkshop"; + _reason = localize "STR_EPOCH_WORKBENCH_NEARBY"; }; }; case "fueltank": diff --git a/SQF/dayz_code/actions/player_craftItem.sqf b/SQF/dayz_code/actions/player_craftItem.sqf index 82ab405c7..16ca71337 100644 --- a/SQF/dayz_code/actions/player_craftItem.sqf +++ b/SQF/dayz_code/actions/player_craftItem.sqf @@ -23,11 +23,11 @@ class ItemActions }; }; */ -private ["_tradeComplete","_onLadder","_canDo","_selectedRecipeOutput","_boiled","_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_itemOut","_countOut","_finished","_removed","_tobe_removed_total","_textCreate","_textMissing","_selectedRecipeInput","_selectedRecipeInputStrict","_num_removed","_removed_total","_temp_removed_array","_abort","_waterLevel","_waterLevel_lowest","_reason","_isNear","_selectedRecipeTools","_distance","_crafting","_needNear","_item","_baseClass","_num_removed_weapons","_outputWeapons","_inputWeapons","_randomOutput","_craft_doLoop","_selectedWeapon","_selectedMag","_sfx"]; - if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; dayz_actionInProgress = true; +private ["_tradeComplete","_onLadder","_canDo","_selectedRecipeOutput","_boiled","_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_itemOut","_countOut","_finished","_removed","_tobe_removed_total","_textCreate","_textMissing","_selectedRecipeInput","_selectedRecipeInputStrict","_num_removed","_removed_total","_temp_removed_array","_abort","_waterLevel","_waterLevel_lowest","_reason","_isNear","_selectedRecipeTools","_distance","_crafting","_needNear","_item","_baseClass","_num_removed_weapons","_outputWeapons","_inputWeapons","_randomOutput","_craft_doLoop","_selectedWeapon","_selectedMag","_sfx","_configParent","_pPos"]; + // This is used to find correct recipe based what itemaction was click allows multiple recipes per item. _crafting = _this select 0; @@ -53,14 +53,14 @@ if ("fire" in _needNear) then { _isNear = {inflamed _x} count (_pPos nearObjects _distance); if(_isNear == 0) then { _abort = true; - _reason = "fire"; + _reason = localize "STR_EPOCH_FIRE"; }; }; if ("workshop" in _needNear) then { _isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; - _reason = "workshop"; + _reason = localize "STR_EPOCH_WORKBENCH_NEARBY"; }; }; if (_abort) exitWith { @@ -102,10 +102,8 @@ if (_canDo) then { _itemIn = _x select 0; _countIn = _x select 1; - _qty = { (_x == _itemIn) || (!_selectedRecipeInputStrict && configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count magazines player; - + _qty = { (_x == _itemIn) || (!_selectedRecipeInputStrict && configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn)} count magazines player; if (_qty < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _qty); _proceed = false; }; - } forEach _selectedRecipeInput; }; @@ -127,7 +125,7 @@ if (_canDo) then { _removed = 0; _itemIn = _x select 0; _countIn = _x select 1; - // diag_log format["Recipe Finish: %1 %2", _itemIn,_countIn]; + //diag_log format["Recipe Finish: %1 %2", _itemIn,_countIn]; _tobe_removed_total = _tobe_removed_total + _countIn; // Preselect the item @@ -135,7 +133,7 @@ if (_canDo) then { _configParent = configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)); if ((_x == _itemIn) || (!_selectedRecipeInputStrict && _configParent == _itemIn)) then { // Get lowest waterlevel - if ((_x == "ItemWaterbottle") ||( _configParent == "ItemWaterbottle")) then { + if ((_x == "ItemWaterbottle") || (_configParent == "ItemWaterbottle")) then { _waterLevel = getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz"); if (_waterLevel_lowest == 0 || _waterLevel < _waterLevel_lowest) then { _waterLevel_lowest = _waterLevel; @@ -157,9 +155,9 @@ if (_canDo) then { _removed_total = _removed_total + _num_removed; if (_num_removed >= 1) then { //diag_log format["debug remove: %1 of: %2", _configParent, _x]; - if (_x == "ItemWaterbottle" || _configParent == "ItemWaterbottle") then { + if ((_x == "ItemWaterbottle") || (_configParent == "ItemWaterbottle")) then { _waterLevel = floor((getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz")) - 1); - if (_x in ["ItemWaterbottle9ozBoiled","ItemWaterbottle8ozBoiled","ItemWaterbottle7ozBoiled","ItemWaterbottle6ozBoiled","ItemWaterbottle5ozBoiled","ItemWaterbottle4ozBoiled","ItemWaterbottle3ozBoiled","ItemWaterbottle2ozBoiled","ItemWaterBottleBoiled"]) then { + if (_x in ["ItemWaterbottle9ozBoiled","ItemWaterbottle8ozBoiled","ItemWaterbottle7ozBoiled","ItemWaterbottle6ozBoiled","ItemWaterbottle5ozBoiled","ItemWaterbottle4ozBoiled","ItemWaterbottle3ozBoiled","ItemWaterbottle2ozBoiled","ItemWaterBottleBoiled","ItemPlasticWaterbottle9ozBoiled","ItemPlasticWaterbottle8ozBoiled","ItemPlasticWaterbottle7ozBoiled","ItemPlasticWaterbottle6ozBoiled","ItemPlasticWaterbottle5ozBoiled","ItemPlasticWaterbottle4ozBoiled","ItemPlasticWaterbottle3ozBoiled","ItemPlasticWaterbottle2ozBoiled","ItemPlasticWaterBottleBoiled"]) then { _boiled = true; }; }; @@ -202,14 +200,28 @@ if (_canDo) then { _itemOut = _x select 0; _countOut = _x select 1; if (_itemOut == "ItemWaterbottleUnfilled") then { - if (_waterLevel > 0) then { - if (_boiled) then { - _itemOut = format["ItemWaterbottle%1ozBoiled",_waterLevel]; + { + if (_x in ["ItemPlasticWaterbottle","ItemPlasticWaterbottleInfected","ItemPlasticWaterbottleSafe","ItemPlasticWaterBottleBoiled","ItemPlasticWaterbottle1oz","ItemPlasticWaterbottle2oz","ItemPlasticWaterbottle3oz","ItemPlasticWaterbottle4oz","ItemPlasticWaterbottle5oz","ItemPlasticWaterbottle6oz","ItemPlasticWaterbottle7oz","ItemPlasticWaterbottle8oz","ItemPlasticWaterbottle9oz","ItemPlasticWaterbottle1ozBoiled","ItemPlasticWaterbottle2ozBoiled","ItemPlasticWaterbottle3ozBoiled","ItemPlasticWaterbottle4ozBoiled","ItemPlasticWaterbottle5ozBoiled","ItemPlasticWaterbottle6ozBoiled","ItemPlasticWaterbottle7ozBoiled","ItemPlasticWaterbottle8ozBoiled","ItemPlasticWaterbottle9ozBoiled"]) then { + _itemOut = "ItemPlasticWaterbottleUnfilled"; + if (_waterLevel > 0) then { + if (_boiled) then { + _itemOut = format["ItemPlasticWaterbottle%1ozBoiled",_waterLevel]; + } else { + _itemOut = format["ItemPlasticWaterbottle%1oz",_waterLevel]; + }; + }; } else { - _itemOut = format["ItemWaterbottle%1oz",_waterLevel]; + if (_waterLevel > 0) then { + if (_boiled) then { + _itemOut = format["ItemWaterbottle%1ozBoiled",_waterLevel]; + } else { + _itemOut = format["ItemWaterbottle%1oz",_waterLevel]; + }; + }; }; - }; + } foreach _temp_removed_array; }; + // diag_log format["Checking for water level: %1", _waterLevel]; for "_x" from 1 to _countOut do { player addMagazine _itemOut; diff --git a/SQF/dayz_code/actions/player_destroyTent.sqf b/SQF/dayz_code/actions/player_destroyTent.sqf index 372cc7cb5..4089c5d40 100644 --- a/SQF/dayz_code/actions/player_destroyTent.sqf +++ b/SQF/dayz_code/actions/player_destroyTent.sqf @@ -1,3 +1,6 @@ +if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; }; +dayz_actionInProgress = true; + private ["_emptycan","_objectID","_objectUID","_obj","_fuelArray","_matchArray","_randomJerryCan","_fireIntensity","_dis","_sfx","_finished"]; //Tent Object @@ -24,11 +27,8 @@ _matchArray = []; } count DayZ_fuelCans; //Make sure we have both components to create the fire. -if ((count _fuelArray == 0)) exitwith { systemChat (localize ("str_setFireFuel")); }; -if ((count _matchArray == 0)) exitwith { systemChat (localize ("str_setFireMatches")); }; - -if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; }; -dayz_actionInProgress = true; +if ((count _fuelArray == 0)) exitwith { dayz_actionInProgress = false; systemChat (localize ("str_setFireFuel")); }; +if ((count _matchArray == 0)) exitwith { dayz_actionInProgress = false; systemChat (localize ("str_setFireMatches")); }; //Actionmenu tools player removeAction s_player_destroytent; @@ -46,10 +46,9 @@ if (!_finished or (isNull _obj)) exitWith { //Jerry can system ** Needs redoing //Select random can from array -_randomJerryCan = _fuelArray call BIS_fnc_selectRandom; +_randomJerryCan = _fuelArray call BIS_fnc_selectRandom; -_name = getText (configFile >> "CfgMagazines" >> _randomJerryCan >> "displayName"); -_emptycan = getText (configFile >> "CfgMagazines" >> _randomJerryCan >> "emptycan"); +_emptycan = getText (configFile >> "CfgMagazines" >> _randomJerryCan >> "containerEmpty"); _fireIntensity = getNumber (configFile >> "CfgMagazines" >> _randomJerryCan >> "fireIntensity"); if !(_randomJerryCan in magazines player) exitWith { @@ -81,4 +80,4 @@ _obj inflame true; //_obj spawn player_fireMonitor; localize "str_success_tent_destroyed" call dayz_rollingMessages; -dayz_actionInProgress = false; \ No newline at end of file +dayz_actionInProgress = false; diff --git a/SQF/dayz_code/actions/player_fixBottle.sqf b/SQF/dayz_code/actions/player_fixBottle.sqf index 039e63d90..6deb22455 100644 --- a/SQF/dayz_code/actions/player_fixBottle.sqf +++ b/SQF/dayz_code/actions/player_fixBottle.sqf @@ -1,11 +1,11 @@ +if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; }; +dayz_actionInProgress = true; + private ["_bottle","_tape","_fixedBottle","_finished"]; _bottle = _this; _tape = "equip_duct_tape"; -_fixedBottle = "ItemWaterBottleUnfilled"; - -if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; }; -dayz_actionInProgress = true; +_fixedBottle = ["ItemPlasticWaterbottleUnfilled", "ItemWaterBottleUnfilled"] select (_bottle == "ItemWaterbottleDmg"); call gear_ui_init; closeDialog 0; diff --git a/SQF/dayz_code/actions/player_sharpen.sqf b/SQF/dayz_code/actions/player_sharpen.sqf index 41b224068..debfa9bbc 100644 --- a/SQF/dayz_code/actions/player_sharpen.sqf +++ b/SQF/dayz_code/actions/player_sharpen.sqf @@ -1,10 +1,13 @@ +if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; +dayz_actionInProgress = true; + private ["_item","_use","_repair","_waterUsed","_displayName"]; //['ItemKnifeBlunt','ItemKnife'] _item = _this select 0; //Item to be sharpened _repair = _this select 1; //Item to be given back. -_use = ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled","ItemWaterBottleHerbal","ItemCanteen","ItemCanteenInfected","ItemCanteenSafe","ItemCanteenBoiled","ItemCanteenHerbal"]; +_use = ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled","ItemWaterBottleHerbal","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterBottleBoiled","ItemPlasticWaterBottleHerbal"]; _waterUsed = nil; call gear_ui_init; @@ -18,20 +21,22 @@ closeDialog 1; if (isNil "_waterUsed") exitWith { //_displayName = getText (configFile >> "CfgMagazines" >> _use >> "displayName"); localize "str_sharpen_missing_water" call dayz_rollingMessages; + dayz_actionInProgress = false; }; // item is missing or tools are missing if !("equip_brick" IN magazines player) exitWith { _displayName = getText (configFile >> "CfgMagazines" >> "equip_brick" >> "displayName"); format [localize "str_missing_to_do_this",_displayName] call dayz_rollingMessages; + dayz_actionInProgress = false; }; if (player hasWeapon _item) then { _displayName = getText (configFile >> "CfgWeapons" >> _item >> "displayName"); - + player removeMagazine _waterUsed; player removeWeapon _item; - + if !(player hasWeapon _repair) then { player addWeapon _repair; } else { @@ -39,11 +44,13 @@ if (player hasWeapon _item) then { [_repair,2,1] call fn_dropItem; format[localize "str_actions_noroom",_repair] call dayz_rollingMessages; }; - + player addMagazine (getText(configFile >> "CfgMagazines" >> _waterUsed >> "containerEmpty")); - + //Remove Later player removeMagazine "equip_brick"; format [localize "str_sharpen_success",_displayName] call dayz_rollingMessages; -}; \ No newline at end of file +}; + +dayz_actionInProgress = false; diff --git a/SQF/dayz_code/actions/refuel.sqf b/SQF/dayz_code/actions/refuel.sqf index a6f7a3ac0..85fa6b513 100644 --- a/SQF/dayz_code/actions/refuel.sqf +++ b/SQF/dayz_code/actions/refuel.sqf @@ -1,5 +1,6 @@ if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; dayz_actionInProgress = true; + private ["_vehicle","_canSize","_configVeh","_capacity","_nameType","_curFuel","_newFuel","_dis","_sfx","_fueling","_array","_cantype", "_emptycan","_started","_finished","_animState","_isRefuel","_type"]; @@ -8,7 +9,7 @@ _cantype = _array select 0; _vehicle = _array select 1; _type = typeOf _vehicle; _canSize = getNumber(configFile >> "cfgMagazines" >> _cantype >> "fuelQuantity"); -_emptycan = getText(configFile >> "cfgMagazines" >> _cantype >> "emptycan"); +_emptycan = getText(configFile >> "cfgMagazines" >> _cantype >> "containerEmpty"); _configVeh = configFile >> "cfgVehicles" >> _type; _capacity = getNumber(_configVeh >> "fuelCapacity"); _nameType = getText(_configVeh >> "displayName"); diff --git a/SQF/dayz_code/actions/remove.sqf b/SQF/dayz_code/actions/remove.sqf index a5b0de1e2..31a9130f9 100644 --- a/SQF/dayz_code/actions/remove.sqf +++ b/SQF/dayz_code/actions/remove.sqf @@ -4,7 +4,7 @@ dayz_actionInProgress = true; delete object from db with extra waiting by [VB]AWOL parameters: _obj */ -private ["_obj","_objectID","_objectUID","_finished","_isOk","_proceed","_counter","_limit","_objType","_itemOut","_countOut","_selectedRemoveOutput","_nearestPole","_ownerID","_refundpart","_isWreck","_IsNearPlot","_brokenTool","_removeTool","_isDestructable","_isRemovable","_objOwnerID","_isOwnerOfObj","_preventRefund","_ipos","_item","_radius","_isWreckBuilding","_nameVehicle","_isModular","_success","_lootGroupIndex","_output"]; +private ["_plotcheck","_PlayerNear","_isMine","_obj","_objectID","_objectUID","_finished","_isOk","_proceed","_counter","_limit","_objType","_itemOut","_countOut","_selectedRemoveOutput","_nearestPole","_refundpart","_isWreck","_IsNearPlot","_brokenTool","_removeTool","_isDestructable","_isRemovable","_objOwnerID","_isOwnerOfObj","_preventRefund","_ipos","_item","_isWreckBuilding","_nameVehicle","_isModular","_success","_lootGroupIndex","_output"]; player removeAction s_player_deleteBuild; s_player_deleteBuild = 1; @@ -38,7 +38,6 @@ _isRemovable = _objType in DZE_isRemovable; _isWreckBuilding = _objType in DZE_isWreckBuilding; _isMine = _objType in ["Land_iron_vein_wreck","Land_silver_vein_wreck","Land_gold_vein_wreck"]; _isModular = _obj isKindOf "ModularItems"; -_distance = DZE_PlotPole select 0; _PlayerNear = {isPlayer _x} count (([_obj] call FNC_GetPos) nearEntities ["CAManBase", 10]) > 1; if (_PlayerNear && (_isMine or _objType == "Land_ammo_supply_wreck")) exitWith {dayz_actionInProgress = false; localize "str_pickup_limit_5" call dayz_rollingMessages;}; @@ -58,6 +57,8 @@ _IsNearPlot = _plotcheck select 1; _nearestPole = _plotcheck select 2; if(_IsNearPlot >= 1) then { + private ["_buildcheck","_isowner","_isfriendly"]; + // Since there are plot poles nearby we need to check ownership && friend status _buildcheck = [player, _nearestPole] call FNC_check_access; _isowner = _buildcheck select 0; @@ -89,7 +90,7 @@ while {_isOk} do { _isOk = false; _proceed = false; }; - + format[localize "str_epoch_player_163",_nameVehicle,(_counter + 1),_limit] call dayz_rollingMessages; [player,"repair",0,false,20] call dayz_zombieSpeak; @@ -150,7 +151,7 @@ if (_proceed && _success) then { // Double check that object is not null if(!isNull(_obj)) then { _ipos = getPosATL _obj; - + if(!_isWreck && !_isWreckBuilding) then { //Server performs deleteVehicle PVDZ_obj_Destroy = [_objectID,_objectUID,player,_obj,dayz_authKey]; @@ -158,7 +159,7 @@ if (_proceed && _success) then { } else { deleteVehicle _obj; }; - + if (_isWreckBuilding) then { PVDZ_send = [player,"RemoveObject",_ipos]; publicVariableServer "PVDZ_send"; @@ -194,10 +195,10 @@ if (_proceed && _success) then { if ({_objType in _x} count DZE_modularConfig > 0) then { { private ["_class", "_refund"]; - + _class = _x select 0; _refund = _x select 1; - + if (_objType == _class) then { {_selectedRemoveOutput set [count _selectedRemoveOutput,_x];} forEach _refund; }; @@ -214,14 +215,10 @@ if (_proceed && _success) then { [localize "str_epoch_player_90",1] call dayz_rollingMessages; }; - if (_ipos select 2 < 0) then { - _ipos set [2,0]; - }; - - _radius = 1; - if (_isMine) then { if((random 10) <= 4) then { + private ["_gems","_weights","_gemSelected"]; + _gems = []; _weights = []; { @@ -235,7 +232,16 @@ if (_proceed && _success) then { // give refund items if((count _selectedRemoveOutput) > 0 && !_preventRefund) then { - _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"]; + private "_posPlayer"; + + _posPlayer = getPosATL player; + _iPos set [2,_posPlayer select 2]; + + if (_iPos select 2 < 0) then { + _iPos set [2,0]; + }; + + _item = "WeaponHolder" createVehicle [0,0,0]; { _itemOut = _x select 0; _countOut = _x select 1; @@ -254,7 +260,6 @@ if (_proceed && _success) then { } count _selectedRemoveOutput; _item setposATL _iPos; - player reveal _item; DZE_GearCheckBypass = true; //Bypass gear menu checks since dialog will always open on item player action ["Gear", _item]; @@ -265,4 +270,4 @@ if (_proceed && _success) then { }; dayz_actionInProgress = false; -s_player_deleteBuild = -1; \ No newline at end of file +s_player_deleteBuild = -1; diff --git a/SQF/dayz_code/actions/salvage.sqf b/SQF/dayz_code/actions/salvage.sqf index 6033f987c..de9255499 100644 --- a/SQF/dayz_code/actions/salvage.sqf +++ b/SQF/dayz_code/actions/salvage.sqf @@ -34,7 +34,7 @@ if (_hasToolbox) then { _hits = [_vehicle,_hitpoint] call object_getHit; _damage = _hits select 0; if (_damage < 1 && {_damage > 0}) then { //Tempfix for issue where certain hitpoints on some vehicles do not get damaged and allow infinite removal - _BreakableParts = ["HitGlass1","HitGlass2","HitGlass3","HitGlass4","HitGlass5","HitGlass6","HitLGlass","HitRGlass","HitEngine","HitFuel","HitHRotor"]; + _BreakableParts = ["HitLFWheel","HitRFWheel","HitLBWheel","HitRBWheel","HitLF2Wheel","HitRF2Wheel","HitLMWheel","HitRMWheel","HitLFWheel","HitRFWheel","HitLBWheel","HitRBWheel","HitLF2Wheel","HitRF2Wheel","HitLMWheel","HitRMWheel","HitGlass1","HitGlass2","HitGlass3","HitGlass4","HitGlass5","HitGlass6","HitLGlass","HitRGlass","HitEngine","HitFuel","HitHRotor"]; if (_hitpoint in _BreakableParts) then { if ((random 1) < (_damage * 0.9)) then { //max 90% chance to break _isOK = true; diff --git a/SQF/dayz_code/compile/fn_dropItem.sqf b/SQF/dayz_code/compile/fn_dropItem.sqf index 758f84537..076f9dbfa 100644 --- a/SQF/dayz_code/compile/fn_dropItem.sqf +++ b/SQF/dayz_code/compile/fn_dropItem.sqf @@ -17,15 +17,18 @@ _nearByPile= nearestObjects [_pos, ["WeaponHolder","WeaponHolderBase"],PILE_SEAR if (count _nearByPile == 0) then { //No weapon holders found in the radius, spawn a new one - _holder = createVehicle ["WeaponHolder", _pos, [], 0, "CAN_COLLIDE"]; + _holder = "WeaponHolder" createVehicle [0,0,0]; + _holder setPosATL _pos; } else { //Found a near by weapon holder lets select it. _holder = _nearByPile select 0; - + if (!_manualPos) then { + private "_objects"; + //check to make sure the player can see the selected weapon holder. _objects = lineIntersectsWith [(_holder modeltoWorld PILE_OFFSET), _pos, player, _holder, true]; - + //Can you see the current selected weapon holder if (count _objects > 0) then { //Unable to see the current selected weapon holder within the radius lets create a new one. @@ -42,4 +45,4 @@ switch _type do { }; //Revel the item -player reveal _holder; \ No newline at end of file +player reveal _holder; diff --git a/SQF/dayz_code/compile/fn_selfActions.sqf b/SQF/dayz_code/compile/fn_selfActions.sqf index 8f51ae0ba..a9abaccb4 100644 --- a/SQF/dayz_code/compile/fn_selfActions.sqf +++ b/SQF/dayz_code/compile/fn_selfActions.sqf @@ -13,7 +13,7 @@ private ["_canPickLight","_text","_unlock","_lock","_totalKeys","_temp_keys","_t "_isModular","_isModularDoor","_isHouse","_isGateOperational","_isGateLockable","_isFence","_isLockableGate","_isUnlocked","_isOpen","_isClosed","_ownerArray","_ownerBuildLock", "_ownerPID","_speed","_dog","_vehicle","_inVehicle","_cursorTarget","_primaryWeapon","_currentWeapon","_magazinesPlayer","_onLadder","_canDo", "_nearLight","_vehicleOwnerID","_hasHotwireKit","_isPZombie","_dogHandle","_allowedDistance","_id","_upgrade","_weaponsPlayer","_hasCrowbar", -"_allowed","_hasAccess","_uid","_myCharID","_isLocked","_isClose"]; +"_allowed","_hasAccess","_uid","_myCharID","_isLocked","_isClose","_hasunboiledwater","_characterID","_text2"]; _vehicle = vehicle player; _inVehicle = (_vehicle != player); @@ -116,10 +116,10 @@ if (_inVehicle) then { if (s_player_lockUnlockInside_ctrl < 0) then { _totalKeys = call epoch_tempKeys; _temp_keys = _totalKeys select 0; - _temp_keys_names = _totalKeys select 1; + _temp_keys_names = _totalKeys select 1; _hasKey = _vehicleOwnerID in _temp_keys; _oldOwner = (_vehicleOwnerID == _uid); - + _text = getText (configFile >> "CfgVehicles" >> (typeOf DZE_myVehicle) >> "displayName"); if (locked DZE_myVehicle) then { if (_hasKey || _oldOwner) then { @@ -239,14 +239,14 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur _weaponsPlayer = weapons player; _hasCrowbar = "ItemCrowbar" in _itemsPlayer or "MeleeCrowbar" in _weaponsPlayer or dayz_onBack == "MeleeCrowbar"; _hasToolbox = "ItemToolbox" in _itemsPlayer; - _hasbottleitem = (("ItemWaterBottle" in _magazinesPlayer) || {"ItemWaterBottleInfected" in _magazinesPlayer} || {"ItemWaterBottleSafe" in _magazinesPlayer} || {"ItemWaterBottleBoiled" in _magazinesPlayer}); + _hasbottleitem = ({_x in ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterBottleBoiled"]} count _magazinesPlayer) > 0; _isAlive = alive _cursorTarget; _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); _isPlant = _typeOfCursorTarget in Dayz_plants; _istypeTent = (_cursorTarget isKindOf "TentStorage_base") or (_cursorTarget isKindOf "IC_Tent"); _upgradeItems = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DesertTentStorage","DesertTentStorage0","DesertTentStorage1","DesertTentStorage2","DesertTentStorage3"]; _characterID = _cursorTarget getVariable ["CharacterID","0"]; - + if (DZE_permanentPlot) then { _id = _uid; _ownerID = _cursorTarget getVariable ["ownerPUID","0"]; @@ -255,13 +255,13 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur _ownerID = _characterID; }; - _isDisallowRefuel = _typeOfCursorTarget in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"]; + _isDisallowRefuel = _typeOfCursorTarget in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"]; _isDog = (_cursorTarget isKindOf "Pastor" || _cursorTarget isKindOf "Fin"); _isModular = _cursorTarget isKindOf "ModularItems"; _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"]; _player_deleteBuild = false; _player_lockUnlock_crtl = false; - + //fuel tanks if (_hasEmptyFuelCan) then { { @@ -283,7 +283,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_flipveh; s_player_flipveh = -1; }; - + //Allow player to fill Fuel can if (_hasEmptyFuelCan && _isFuel && _isAlive) then { if (s_player_fillfuel < 0) then { @@ -293,7 +293,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_fillfuel; s_player_fillfuel = -1; }; - + if (damage _cursorTarget < 1) then { //Allow player to fill vehicle 210L if (_hasBarrel && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { @@ -304,7 +304,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; }; - + //Allow player to fill vehicle 20L if (_hasFuel20 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel20 < 0) then { @@ -348,20 +348,20 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; }; - + //Fireplace Actions check if ((_cursorTarget call isInflamed) or (inflamed _cursorTarget)) then { _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; //_hastinitem = {_x in boil_tin_cans} count _magazinesPlayer > 0; - _hasunboiledwater = {_x in ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz"]} count _magazinesPlayer > 0; + _hasunboiledwater = {_x in ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterbottle1oz","ItemPlasticWaterbottle2oz","ItemPlasticWaterbottle3oz","ItemPlasticWaterbottle4oz","ItemPlasticWaterbottle5oz","ItemPlasticWaterbottle6oz","ItemPlasticWaterbottle7oz","ItemPlasticWaterbottle8oz","ItemPlasticWaterbottle9oz"]} count _magazinesPlayer > 0; - - //Cook Meat + + //Cook Meat if (_hasRawMeat && !a_player_cooking) then { if (s_player_cook < 0) then { s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true]; }; - }; + }; //Boil Water if (_hasunboiledwater && !a_player_boil) then { if (s_player_boil < 0) then { @@ -378,7 +378,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur s_player_boil = -1; }; }; - + if (_isAlive) then { _restrict = _typeOfCursorTarget in DZE_restrictRemoval; @@ -396,14 +396,14 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur _player_deleteBuild = true; }; }; - }; + }; if (_isVehicle) then { if ((_characterID != "0") && {!_isMan}) then { _player_lockUnlock_crtl = true; }; }; }; - + if (_player_deleteBuild) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "STR_EPOCH_REMOVE",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, false, true]; @@ -450,7 +450,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur } else { player removeAction s_player_destroytent; s_player_destroytent = -1; - }; + }; if (_typeOfCursorTarget in ["IC_DomeTent","IC_Tent"]) then { if (s_player_packtentinfected < 0) then { s_player_packtentinfected = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true]; @@ -467,7 +467,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_sleep; s_player_sleep = -1; }; - + //Study Body if (_cursorTarget getVariable["bodyName",""] != "") then { if (s_player_studybody < 0) then { @@ -477,7 +477,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_studybody; s_player_studybody = -1; }; -/* +/* //Carbomb _hasCarBomb = "ItemCarBomb" in _magazinesPlayer; if (((_cursorTarget isKindOf "Car") || (_cursorTarget isKindOf "Air") || (_cursorTarget isKindOf "Motorcycle")) && _hasCarBomb) then { @@ -523,18 +523,18 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur //Only the owners can lock the gates _isLockableGate = _typeOfCursorTarget in ["WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_2","MetalGate_3","MetalGate_4"]; _isUnlocked = _cursorTarget getVariable ["isOpen","0"] == "1"; - + _isActionInProgress = _cursorTarget getVariable ["actionInProgress",false]; //Allow the gates to be opened when not locked by anyone _isOpen = ((_cursorTarget animationPhase "DoorL") == 1) || ((_cursorTarget animationPhase "DoorR") == 1); _isClosed = ((_cursorTarget animationPhase "DoorL") == 0) || ((_cursorTarget animationPhase "DoorR") == 0); - + //[["ownerArray",["PID"]]] _ownerArray = _cursorTarget getVariable ["ownerArray",["0"]]; - _ownerBuildLock = _cursorTarget getVariable ["BuildLock",false]; + _ownerBuildLock = _cursorTarget getVariable ["BuildLock",false]; _ownerPID = (_ownerArray select 0); - + // open Gate if (_isGateOperational && _isClosed && _isUnlocked) then { if (s_player_openGate < 0) then { @@ -636,10 +636,10 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_plot_boundary; s_player_plot_boundary = -1; }; - + if (DZE_HeliLift) then { _liftHeli = objNull; - _found = false; + _found = false; _allowTow = false; if ((count (crew _cursorTarget)) == 0) then { { @@ -676,8 +676,8 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur s_player_heli_lift = -1; }; }; - - // Allow Owner to lock and unlock vehicle + + // Allow Owner to lock and unlock vehicle if (_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _totalKeys = call epoch_tempKeys; @@ -706,12 +706,21 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur s_player_lockUnlock_crtl = 1; }; }; - }; + }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; - + + if (DZE_Hide_Body && {_isMan} && {!_isAlive}) then { + if (s_player_hide_body < 0) then { + s_player_hide_body = player addAction [localize "str_action_hide_body", "\z\addons\dayz_code\actions\hide_body.sqf",_cursorTarget, 1, true, true]; + }; + } else { + player removeAction s_player_hide_body; + s_player_hide_body = -1; + }; + // gear access on surrendered player if (isPlayer _cursorTarget && {_isAlive} && {_cursorTarget getVariable ["DZE_Surrendered",false]}) then { if (s_player_SurrenderedGear < 0) then { @@ -785,13 +794,13 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_information; s_player_information = -1; }; - + //Fuel Pump if (_typeOfCursorTarget in dayz_fuelpumparray) then { - if (s_player_fuelauto < 0) then { + if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGen = {((alive _x) && (_x getVariable ["GeneratorRunning",false]))} count (([player] call FNC_getPos) nearObjects ["Generator_DZ",30]); - + // show that pump needs power if no generator nearby. if (_findNearestGen > 0) then { s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true]; @@ -839,11 +848,11 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; - + // downgrade system if (DZE_Lock_Door == _characterID && {!keypadCancel} && {_cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base"}) then { if ((s_player_lastTarget select 1) != _cursorTarget) then { - if (s_player_downgrade_build > 0) then { + if (s_player_downgrade_build > 0) then { player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; }; @@ -883,10 +892,10 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur //Start Generator if (_isGenerator) then { - if (s_player_fillgen < 0) then { - // check if not running + if (s_player_fillgen < 0) then { + // check if not running if (_cursorTarget getVariable ["GeneratorRunning", false]) then { - s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true]; + s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true]; } else { // check if not filled and player has jerry. if (_cursorTarget getVariable ["GeneratorFilled", false]) then { @@ -908,9 +917,9 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur if(_typeOfCursorTarget == "TOW_DZE") then { if (s_player_towing < 0) then { if(!(_cursorTarget getVariable ["DZEinTow", false])) then { - s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true]; + s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true]; } else { - s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true]; + s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true]; }; }; } else { @@ -923,7 +932,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in serverTraders}) then { if (s_player_parts_crtl < 0) then { _humanity = player getVariable ["humanity",0]; - _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget]; + _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget]; _low_high = localize "STR_EPOCH_ACTIONS_HUMANITY_LOW"; _humanity_logic = false; if ((_traderMenu select 2) == "friendly") then { @@ -943,7 +952,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur // Static Menu { _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true]; - s_player_parts set [count s_player_parts,_buy]; + s_player_parts set [count s_player_parts,_buy]; } count (_traderMenu select 1); if (DZE_ConfigTrader) then { _buyV = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\AdvancedTrading\init.sqf",(_traderMenu select 0), 999, true, false]; @@ -954,13 +963,13 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur s_player_parts set [count s_player_parts,_buy]; }; }; - s_player_parts_crtl = 1; + s_player_parts_crtl = 1; }; } else { {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; - + if (dayz_tameDogs) then { //Dog _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; @@ -992,7 +1001,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur if (s_player_warndog < 0) then { _warn = _dogHandle getFSMVariable "_watchDog"; if (_warn) then { _text = localize "str_epoch_player_247"; _warn = false; } else { _text = localize "str_epoch_player_248"; _warn = true; }; - s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true]; + s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true]; }; if (s_player_followdog < 0) then { s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true]; @@ -1078,7 +1087,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur s_player_BuildUnLock = -1; player removeAction s_player_BuildLock; s_player_BuildLock = -1;*/ - {player removeAction _x} count s_player_combi;s_player_combi = []; + {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; @@ -1091,7 +1100,7 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur player removeAction s_player_maintain_area_force; s_player_maintain_area_force = -1; player removeAction s_player_maintain_area_preview; - s_player_maintain_area_preview = -1; + s_player_maintain_area_preview = -1; player removeAction s_player_tamedog; s_player_tamedog = -1; player removeAction s_player_feeddog; @@ -1132,6 +1141,8 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur s_player_fuelauto2 = -1; player removeAction s_player_manageDoor; s_player_manageDoor = -1; + player removeAction s_player_hide_body; + s_player_hide_body = -1; }; //Dog actions on player self @@ -1154,7 +1165,7 @@ if (_dogHandle > 0) then { }; }; } else { - player removeAction s_player_movedog; + player removeAction s_player_movedog; s_player_movedog = -1; player removeAction s_player_speeddog; s_player_speeddog = -1; diff --git a/SQF/dayz_code/compile/player_packTent.sqf b/SQF/dayz_code/compile/player_packTent.sqf index f334e1fc9..a021679c8 100644 --- a/SQF/dayz_code/compile/player_packTent.sqf +++ b/SQF/dayz_code/compile/player_packTent.sqf @@ -4,7 +4,7 @@ if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; dayz_actionInProgress = true; -private ["_alreadyPacking","_backpacks","_bag","_campItems","_dir","_holder","_magazines","_obj","_objectID","_objectUID","_ownerID","_packobj","_playerNear","_pos","_weapons","_finished"]; +private ["_alreadyPacking","_backpacks","_bag","_campItems","_dir","_holder","_magazines","_obj","_objectID","_objectUID","_ownerID","_packobj","_playerNear","_pos","_weapons","_finished","_posPlayer"]; _obj = _this; _ownerID = _obj getVariable["CharacterID","0"]; @@ -42,13 +42,21 @@ if (_ownerID in [dayz_characterID,dayz_playerUID] or typeOf _obj in _campItems) if (isNull _obj) exitWith {}; if (!_finished) exitWith {_obj setVariable["packing",0,true];}; + _posPlayer = getPosATL player; + _pos set [2,_posPlayer select 2]; + + if (_pos select 2 < 0) then { + _pos set [2,0]; + }; + //place tent (local) - _bag = createVehicle [_packobj, _pos, [], 0, "CAN_COLLIDE"]; + _bag = _packobj createVehicle [0,0,0]; _bag setDir _dir; - player reveal _bag; - - _holder = createVehicle ["WeaponHolder", _pos, [], 0, "CAN_COLLIDE"]; + _bag setPosATL _pos; + _holder = "WeaponHolder" createVehicle [0,0,0]; + _holder setPosATL _pos; + _weapons = getWeaponCargo _obj; _magazines = getMagazineCargo _obj; _backpacks = getBackpackCargo _obj; @@ -59,6 +67,8 @@ if (_ownerID in [dayz_characterID,dayz_playerUID] or typeOf _obj in _campItems) [_weapons,_magazines,_backpacks,_holder] call fn_addCargo; + player reveal _holder; + localize "str_success_tent_pack" call dayz_rollingMessages; } else { localize "str_fail_tent_pack" call dayz_rollingMessages; diff --git a/SQF/dayz_code/compile/player_packVault.sqf b/SQF/dayz_code/compile/player_packVault.sqf index f7d5cd698..767c57d68 100644 --- a/SQF/dayz_code/compile/player_packVault.sqf +++ b/SQF/dayz_code/compile/player_packVault.sqf @@ -1,10 +1,11 @@ +if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; +dayz_actionInProgress = true; + /* [_obj] spawn player_packVault; */ -private ["_obj","_ownerID","_objectID","_objectUID","_location1","_location2","_packedClass","_text","_playerNear","_finished"]; -if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;}; -dayz_actionInProgress = true; +private ["_obj","_ownerID","_objectID","_objectUID","_location1","_location2","_packedClass","_text","_playerNear","_finished","_ComboMatch"]; _obj = _this; _packedClass = getText (configFile >> "CfgVehicles" >> (typeOf _obj) >> "packedClass"); @@ -31,11 +32,11 @@ if (_objectID == "0" && _objectUID == "0") exitWith {dayz_actionInProgress = fal if (!_ComboMatch && (_ownerID != dayz_playerUID)) exitWith { dayz_actionInProgress = false; s_player_packvault = -1; format[localize "str_epoch_player_119",_text] call dayz_rollingMessages;}; format[localize "str_epoch_player_121",_text] call dayz_rollingMessages; -uiSleep 1; +uiSleep 1; _location1 = getPosATL player; uiSleep 5; _location2 = getPosATL player; - + if(_location1 distance _location2 > 0.1) exitWith { format[localize "str_epoch_player_122",_text] call dayz_rollingMessages; s_player_packvault = -1; @@ -44,22 +45,22 @@ if(_location1 distance _location2 > 0.1) exitWith { if (!isNull _obj && alive _obj) then { [player,"tentpack",0,false] call dayz_zombieSpeak; - + _finished = ["Medic",1] call fn_loopAction; if (isNull _obj or !_finished) exitWith {}; - + ["Working",0,[3,2,4,0]] call dayz_NutritionSystem; - + (findDisplay 106) closeDisplay 0; // Close gear dze_waiting = nil; - + [_packedClass,objNull] call fn_waitForObject; - + PVDZE_handleSafeGear = [player,_obj,2]; - publicVariableServer "PVDZE_handleSafeGear"; + publicVariableServer "PVDZE_handleSafeGear"; //wait for response from server to verify pack was logged and gear added before proceeding waitUntil {!isNil "dze_waiting"}; - + format[localize "str_epoch_player_123",_text] call dayz_rollingMessages; }; s_player_packvault = -1; diff --git a/SQF/dayz_code/config.cpp b/SQF/dayz_code/config.cpp index 368f806c1..090bba880 100644 --- a/SQF/dayz_code/config.cpp +++ b/SQF/dayz_code/config.cpp @@ -86,6 +86,7 @@ class CfgAddons "redryder", "Anzio_20", "dayz_epoch_b", + "dayz_epoch_c", "CfgVehicles" }; }; diff --git a/SQF/dayz_code/configVariables.sqf b/SQF/dayz_code/configVariables.sqf index 9f4dc3e79..373b57bb6 100644 --- a/SQF/dayz_code/configVariables.sqf +++ b/SQF/dayz_code/configVariables.sqf @@ -34,6 +34,7 @@ DZE_DisabledChannels = [(localize "str_channel_side"),(localize "str_channel_glo DZE_NutritionDivisor = [1, 1, 1, 1]; //array of DIVISORS that regulate the rate of [calories, thirst, hunger, temperature] use when "working" (keep in mind that temperature raises with actions) - min values 0.1 - Larger values slow the effect, smaller values accelerate it DZE_ZombieSpeed = [0,0]; //Default agro speed is 6 per zombie config, set array elements 0 and 1 the same for non-variable speed, set to 0 to disable. array format = [min, max]; Ex: [2, 6]; results in a range of speed between 2 and 6 (2 is the old DZE_slowZombies hard-coded speed) DZE_lockablesHarderPenalty = true; // Enforce an exponential wait on attempts between unlocking a safe/lockbox from a failed code. +DZE_Hide_Body = true; //Enable hide dead bodies. Hiding a dead body removes the corpse marker from the map too. Default = true // SafeZone DZE_SafeZoneZombieLoot = false; // Enable spawning of Zombies and loot in positions listed in DZE_SafeZonePosArray? diff --git a/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Magazines/Drinks.hpp b/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Magazines/Drinks.hpp index e4f1e0a69..f6972c22f 100644 --- a/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Magazines/Drinks.hpp +++ b/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Magazines/Drinks.hpp @@ -7,57 +7,205 @@ along with this program. If not, see . @version 1.00 @date 20101006 *****************************************************************************/ -class ItemCanteen -{ - weight = 0.25; -}; -class ItemCanteenInfected -{ - weight = 0.25; -}; -class ItemCanteenSafe -{ - weight = 0.25; -}; -class ItemCanteenBoiled -{ - weight = 0.25; -}; -class ItemCanteenHerbal -{ - weight = 0.25; -}; -class ItemCanteenEmpty -{ - weight = 0.05; -}; class ItemWaterbottle { - weight = 0.25; + weight = 0.22; }; class ItemWaterbottleBoiled { - weight = 0.25; + weight = 0.22; }; class ItemWaterBottleInfected { - weight = 0.25; + weight = 0.22; }; class ItemWaterBottleSafe { - weight = 0.25; + weight = 0.22; }; class ItemWaterBottleHerbal { - weight = 0.25; + weight = 0.22; }; -class ItemWaterbottleUnfilled +class ItemWaterBottleUnfilled { - weight = 0.05; + weight = 0.02; }; class ItemWaterBottleDmg { - weight = 0.05; + weight = 0.02; +}; +class ItemWaterbottle1oz +{ + weight = 0.04; +}; +class ItemWaterbottle2oz +{ + weight = 0.06; +}; +class ItemWaterbottle3oz +{ + weight = 0.08; +}; +class ItemWaterbottle4oz +{ + weight = 0.1; +}; +class ItemWaterbottle5oz +{ + weight = 0.12; +}; +class ItemWaterbottle6oz +{ + weight = 0.14; +}; +class ItemWaterbottle7oz +{ + weight = 0.16; +}; +class ItemWaterbottle8oz +{ + weight = 0.17; +}; +class ItemWaterbottle9oz +{ + weight = 0.2; +}; +class ItemWaterbottle1ozBoiled +{ + weight = 0.04; +}; +class ItemWaterbottle2ozBoiled +{ + weight = 0.06; +}; +class ItemWaterbottle3ozBoiled +{ + weight = 0.08; +}; +class ItemWaterbottle4ozBoiled +{ + weight = 0.1; +}; +class ItemWaterbottle5ozBoiled +{ + weight = 0.12; +}; +class ItemWaterbottle6ozBoiled +{ + weight = 0.14; +}; +class ItemWaterbottle7ozBoiled +{ + weight = 0.16; +}; +class ItemWaterbottle8ozBoiled +{ + weight = 0.17; +}; +class ItemWaterbottle9ozBoiled +{ + weight = 0.2; +}; +class ItemPlasticWaterBottle +{ + weight = 0.22; +}; +class ItemPlasticWaterBottleBoiled +{ + weight = 0.22; +}; +class ItemPlasticWaterBottleInfected +{ + weight = 0.22; +}; +class ItemPlasticWaterBottleSafe +{ + weight = 0.22; +}; +class ItemPlasticWaterBottleHerbal +{ + weight = 0.22; +}; +class ItemPlasticWaterbottleUnfilled +{ + weight = 0.02; +}; +class ItemPlasticWaterbottleDmg +{ + weight = 0.02; +}; +class ItemPlasticWaterbottle1oz +{ + weight = 0.04; +}; +class ItemPlasticWaterbottle2oz +{ + weight = 0.06; +}; +class ItemPlasticWaterbottle3oz +{ + weight = 0.08; +}; +class ItemPlasticWaterbottle4oz +{ + weight = 0.1; +}; +class ItemPlasticWaterbottle5oz +{ + weight = 0.12; +}; +class ItemPlasticWaterbottle6oz +{ + weight = 0.14; +}; +class ItemPlasticWaterbottle7oz +{ + weight = 0.16; +}; +class ItemPlasticWaterbottle8oz +{ + weight = 0.17; +}; +class ItemPlasticWaterbottle9oz +{ + weight = 0.2; +}; +class ItemPlasticWaterbottle1ozBoiled +{ + weight = 0.04; +}; +class ItemPlasticWaterbottle2ozBoiled +{ + weight = 0.06; +}; +class ItemPlasticWaterbottle3ozBoiled +{ + weight = 0.08; +}; +class ItemPlasticWaterbottle4ozBoiled +{ + weight = 0.1; +}; +class ItemPlasticWaterbottle5ozBoiled +{ + weight = 0.12; +}; +class ItemPlasticWaterbottle6ozBoiled +{ + weight = 0.14; +}; +class ItemPlasticWaterbottle7ozBoiled +{ + weight = 0.16; +}; +class ItemPlasticWaterbottle8ozBoiled +{ + weight = 0.17; +}; +class ItemPlasticWaterbottle9ozBoiled +{ + weight = 0.2; }; class ItemSodaMdew { diff --git a/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp b/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp index 90a557eb4..219637f30 100644 --- a/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp +++ b/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp @@ -23,6 +23,30 @@ class AK_107_GL_pso { weight = 5.5; }; +class AK107_Kobra_DZ +{ + weight = 3.8; +}; +class AK107_GL_Kobra_DZ +{ + weight = 5.3; +}; +class AK107_PSO_DZ +{ + weight = 4; +}; +class AK107_GL_PSO_DZ +{ + weight = 5.5; +}; +class AK107_DZ +{ + weight = 3; +}; +class AK107_GL_DZ +{ + weight = 4.5; +}; class AKS_74_U { weight = 2.7; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index b6232cc90..fe68884bf 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -194,7 +194,7 @@ dayz_resetSelfActions = { s_player_setCode = -1; s_player_BuildUnLock = -1; s_player_BuildLock = -1;*/ - + // EPOCH ADDITIONS s_player_packvault = -1; s_player_lockvault = -1; @@ -217,7 +217,7 @@ dayz_resetSelfActions = { s_player_barkdog = -1; s_player_warndog = -1; s_player_followdog = -1; - s_player_information = -1; + s_player_information = -1; s_player_fuelauto = -1; s_player_fuelauto2 = -1; s_player_fillgen = -1; @@ -247,6 +247,7 @@ dayz_resetSelfActions = { s_player_toggleVectors=[]; vectorActions = -1; s_player_manageDoor = -1; + s_player_hide_body = -1; }; call dayz_resetSelfActions; @@ -311,13 +312,13 @@ gear_done = false; //player warming up vars //heatpack r_player_warming_heatpack = [false, 0]; -r_player_warming_heatpack_time = 600; +r_player_warming_heatpack_time = 600; //displays temp progress r_player_temp_factor = 0; //to be used for temp(up/down) indicators r_player_temp_min_factor = -0.04; //(lvl3 down arrow) r_player_temp_max_factor = 0.04; //(lvl3 up arrow) - + //INT Nutrition Info r_player_Nutrition = 0; // Calories r_player_nutritionMuilpty = 2; @@ -376,10 +377,10 @@ dayz_traps_active = []; dayz_traps_trigger = []; //Settings Not under dayz_settings -if(isNil "dayz_attackRange") then { +if(isNil "dayz_attackRange") then { dayz_attackRange = 3; }; -if(isNil "dayz_DamageMultiplier") then { +if(isNil "dayz_DamageMultiplier") then { dayz_DamageMultiplier = 1; }; if(isNil "dayz_quickSwitch") then { @@ -416,7 +417,7 @@ if (toLower worldName != "chernarus") then { if(isNil "dayz_presets") then { dayz_presets = "Vanilla"; }; switch (dayz_presets) do { - case "Custom": { //Custom + case "Custom": { //Custom if(isNil "dayz_enableGhosting") then { dayz_enableGhosting = false; }; if(isNil "dayz_ghostTimer") then { dayz_ghostTimer = 120; }; if(isNil "dayz_spawnselection") then { dayz_spawnselection = 0; }; @@ -436,7 +437,7 @@ switch (dayz_presets) do { dayz_spawnselection = 0; //Turn on spawn selection 0 = random only spawns, 1 = Spawn choice based on limits dayz_spawncarepkgs_clutterCutter = 0; //0 = loot hidden in grass, 1 = loot lifted and 2 = no grass dayz_spawnCrashSite_clutterCutter = 0; // heli crash options 0 = loot hidden in grass, 1 = loot lifted and 2 = no grass - dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass + dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass dayz_bleedingeffect = 2; //1= blood on the ground, 2= partical effect, 3 = both. dayz_OpenTarget_TimerTicks = 60 * 10; //how long can a player be freely attacked for after attacking someone unprovoked. dayz_temperature_override = true; // Set to true to disable all temperature changes. @@ -450,7 +451,7 @@ switch (dayz_presets) do { dayz_spawnselection = 0; //Turn on spawn selection 0 = random only spawns, 1 = Spawn choice based on limits dayz_spawncarepkgs_clutterCutter = 0; //0 = loot hidden in grass, 1 = loot lifted and 2 = no grass dayz_spawnCrashSite_clutterCutter = 0; // heli crash options 0 = loot hidden in grass, 1 = loot lifted and 2 = no grass - dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass + dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass dayz_bleedingeffect = 3; //1= blood on the ground, 2= partical effect, 3 = both. dayz_OpenTarget_TimerTicks = 60 * 25; //how long can a player be freely attacked for after attacking someone unprovoked. dayz_temperature_override = false; // Set to true to disable all temperature changes. @@ -464,7 +465,7 @@ switch (dayz_presets) do { dayz_spawnselection = 1; //Turn on spawn selection 0 = random only spawns, 1 = Spawn choice based on limits dayz_spawncarepkgs_clutterCutter = 0; //0 = loot hidden in grass, 1 = loot lifted and 2 = no grass dayz_spawnCrashSite_clutterCutter = 0; // heli crash options 0 = loot hidden in grass, 1 = loot lifted and 2 = no grass - dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass + dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass dayz_bleedingeffect = 3; //1= blood on the ground, 2= partical effect, 3 = both. dayz_OpenTarget_TimerTicks = 60 * 10; //how long can a player be freely attacked for after attacking someone unprovoked. dayz_temperature_override = false; // Set to true to disable all temperature changes. @@ -554,8 +555,8 @@ if (isServer) then { dead_bodyCleanup = []; needUpdate_objects = []; needUpdate_FenceObjects = []; - //dayz_spawnCrashSite_clutterCutter=0; // helicrash spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass - //dayz_spawnInfectedSite_clutterCutter=0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass + //dayz_spawnCrashSite_clutterCutter=0; // helicrash spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass + //dayz_spawnInfectedSite_clutterCutter=0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass //Objects to remove when killed. DayZ_nonCollide = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3", "StashMedium4", "DomeTentStorage", "DomeTentStorage0", "DomeTentStorage1", "DomeTentStorage2", "DomeTentStorage3", "DomeTentStorage4", "CamoNet_DZ", "DesertTentStorage", "DesertTentStorage0", "DesertTentStorage1", "DesertTentStorage2", "DomeTentStorage3", "DesertTentStorage4"]; DayZ_WoodenFence = ["WoodenFence_1","WoodenFence_2","WoodenFence_3","WoodenFence_4","WoodenFence_5","WoodenFence_6","WoodenFence_7"]; @@ -589,7 +590,7 @@ if (!isDedicated) then { dayz_plantTypes = ["","MAP_pumpkin","MAP_p_Helianthus","fiberplant"]; //Needed for trees spawned with createVehicle like POI (typeOf returns class instead of "") dayz_treeTypes = ["","MAP_t_picea1s","MAP_t_picea2s","MAP_t_picea3f","MAP_t_pinusN2s","MAP_t_pinusS2f","MAP_t_populus3s","MAP_t_betula2s","MAP_t_fagus2s","MAP_t_fagus2W","MAP_t_malus1s"]; - + //temperature variables dayz_temperatur = 36; //TeeChange dayz_temperaturnormal = 36; //TeeChange @@ -649,7 +650,7 @@ if (!isDedicated) then { //Animals dayz_currentGlobalAnimals = 0; dayz_maxGlobalAnimals = 50; - //Plants + //Plants dayz_currentGlobalPlants = 0; dayz_maxGlobalPlants = 500; //Loot diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml index b6db5c88d..ba158b32f 100644 --- a/SQF/dayz_code/stringtable.xml +++ b/SQF/dayz_code/stringtable.xml @@ -14798,7 +14798,7 @@ Lumber Pack - Bauholzstapel + Bauholzpaket Упаковка пиломатериалов @@ -14833,7 +14833,7 @@ Plywood in a stack. - Sperrholzstapel. + Sperrholz, gestapelt und zusammengebunden. Упакованная фанера. @@ -16853,6 +16853,10 @@ Feuer (angezündet) Ohniště (hořící) + + Workbench, Wooden Shed or Wood Shack + Werkbank, Holzschuppen oder Holzhütte + Humans Nearby Spieler in der Nähe @@ -17257,7 +17261,74 @@ Leaf of a tobacco plant Blatt einer Tabakpflanze Лист табака с табачной плантации - + + + + + Kaliber: 5,45x39mm <br/>Schuss: 30 <br/>Eingesetzt in: AK-74, AK-74 Kobra, AKS-74U, AK-107 und RPK-74 + Caliber: 5.45x39mm <br/>Rounds: 30 <br/>Used in: AK-74, AK-74 Kobra, AKS-74U, AK-107 and RPK-74 + Calibro: 5,45x39 mm <br/>Munizioni: 30 <br/>Si usa in: AK-74, AK-74 Kobra, AKS-74U, AK-107 e RPK-74 + Calibre: 5,45x39 mm <br/>Cargas: 30 <br/>Uso: AK-74, AK-74 Kobra, AKS-74U, AK-107 y RPK-74 + Calibre : 5.45x39 mm <br/>Munitions : 30 <br/>Utilisé avec : AK-74, AK-74 Kobra, AKS-74U, AK-107 et RPK-74 + Kalibr: 5,45x39mm <br/>Nábojů: 30 <br/>Pro: AK-74, AK-74 Kobra, AKS-74U, AK-107 a RPK-74 + Патрон: 5.45x39 мм <br/>Количество: 30 <br/>Используется в: АК-74, АКС-74, АКС-74У, АК-107, РПК-74 + Kaliber: 5,45x39mm <br/>Naboje: 30 <br/>Używane w: AK-74, AK-74 Kobra, AKS-74U, AK-107 i RPK-74 + Kaliber: 5.45x39mm <br/> Töltények: 30 <br/> Hozzá tartozó fegyver: AK-74, AK-74 Kobra, AKS-74U, AK-107 and RPK-74 + + + Kaliber: 5,45x39mm <br/>Schuss: 75 <br/>Eingesetzt in: AK-74, AK-74 Kobra, AKS-74U, AK-107 und RPK-74 + Caliber: 5.45x39mm <br/>Rounds: 75 <br/>Used in: AK-74, AK-74 Kobra, AKS-74U, AK-107 and RPK-74 + Calibro: 5,45x39 mm <br/>Munizioni: 75 <br/>Si usa in: AK-74, AK-74 Kobra, AKS-74U, AK-107 e RPK-74 + Calibre: 5,45x39 mm <br/>Cargas: 75 <br/>Uso: AK-74, AK-74 Kobra, AKS-74U, AK-107 y RPK-74 + Calibre : 5.45x39 mm <br/>Munitions : 75 <br/>Utilisé avec : AK-74, AK-74 Kobra, AKS-74U, AK-107 et RPK-74 + Kalibr: 5,45x39mm <br/>Nábojů: 75 <br/>Pro: AK-74, AK-74 Kobra, AKS-74U, AK-107 a RPK-74 + Патрон: 5.45x39 мм <br/>Количество: 75 <br/>Используется в: АК-74, АКС-74, АКС-74У, АК-107, РПК-74 + Kaliber: 5,45x39mm <br/>Naboje: 75 <br/>Używane w: AK-74, AK-74 Kobra, AKS-74U, AK-107 i RPK-74 + Kaliber: 5.45x39mm <br/> Töltények: 75 <br/> Hozzá tartozó fegyver: AK-74, AK-74 Kobra, AKS-74U, AK-107 and RPK-74 + + + 100Rnd. MG36 drum mag. + 100 Schuss MG36 Trommelmagazin + 100п. МГ-36 барабан + + + Kaliber: 5.56x45mm <br/>Schuss: 100 <br/>Eingesetzt in: G36, MG36, M16, M4, M249, MK-12, M8 und L110 + Caliber: 5.56x45mm <br/>Rounds: 100 <br/>Used in: G36, MG36, M16, M4, M249, MK-12, M8 and L110 + Calibro: 5.56x45mm <br/>Munizioni: 100 <br/>Si usa in: G36, MG36, M16, M4, M249, MK-12, M8 e L110 + Calibre: 5.56x45mm <br/>Cargas: 100 <br/>Uso: G36, MG36, M16, M4, M249, MK-12, M8 y L110 + Calibre : 5.56x45mm <br/>Munitions : 100 <br/>Utilisé avec : G36, MG36, M16, M4, M249, MK-12, M8 et L110 + Kalibr: 5.56x45mm <br/>Nábojů: 100 <br/>Pro: G36, MG36, M16, M4, M249, MK-12, M8 a L110 + Патрон: 5.56x45 мм <br/>Количество: 100 <br/>Используется в: G36, MG36, M16, M4, M249, MK-12, M8, L110 + Kaliber: 5.56x45mm <br/>Naboje: 100 <br/>Używane w: G36, MG36, M16, M4, M249, MK-12, M8 i L110 + Kaliber: 5.56x45mm <br/> Töltények: 100 <br/> Hozzá tartozó fegyver: G36, MG36, M16, M4, M249, MK-12, M8 and L110 + + + + + AK-107 + АК-107 + + + AK-107 GP-25 + АК-107 ГП-25 + + + AK-107 Kobra + АК-107 Кобра + + + AK-107 GP-25 Kobra + АК-107 ГП-25 Кобра + + + AK-107 PSO-1 + АК-107 ПСО-1 + + + AK-107 GP-25 PSO-1 + АК-107 ГП-25 ПСО-1 + + Winter Ghillie Suit diff --git a/SQF/dayz_code/system/handleGear.sqf b/SQF/dayz_code/system/handleGear.sqf index 2aca86ca5..14f045992 100644 --- a/SQF/dayz_code/system/handleGear.sqf +++ b/SQF/dayz_code/system/handleGear.sqf @@ -97,6 +97,13 @@ _isMagazine = { _return }; +_isBackpack = { + private ["_item","_return"]; + _item = _this select 0; + _return = (str(configfile >> "cfgVehicles" >> _item) != ""); + _return +}; + _IDCsArray = [ [107], [121], @@ -421,6 +428,11 @@ private ["_inputItem","_return"]; _return = (_name); }; + if ([_inputItem] call _isBackpack) then { + _name = getText(configfile >> "cfgVehicles" >> _inputItem >> "descriptionShort"); + _return = ( _name); + }; + _return }; @@ -439,6 +451,11 @@ _itemName = { _return = ( _name); }; + if ([_item] call _isBackpack) then { + _name = getText(configfile >> "cfgVehicles" >> _item >> "displayName"); + _return = ( _name); + }; + _return };