This reverts commit 4bbb3ac609, reversing
changes made to 96f1d40a71.
This commit is contained in:
seelenapparat
2021-08-24 15:32:43 +02:00
parent 4bbb3ac609
commit 109ec5c9a3
145 changed files with 629 additions and 9202 deletions

View File

@@ -2,22 +2,7 @@
[ADDED] AKS-74, AKS-74 Kobra, AKS-74 PSO1, AKS-74 NSPU and AKS-74 TWS with full attachment support. (db1ed4c0) @AirwavesMan
[ADDED] Red Ryder BB gun and magazine as Epoch version. (597e6086) @AirwavesMan
[ADDED] G36A and G36K as Epoch version. (e0a00512) @AirwavesMan
[ADDED] More snappoints for the 4x metal floors. (f68e92d5) @worldwidesorrow
[ADDED] Right click menu made by Mudzereli and updated by Salival. (c4919d65) @AirwavesMan
[ADDED] Missing Combine Magazine option for the Desert Eagle and the 20Rnd Stanag magazine. (858f418a) @seelenapparat, @AirwavesMan
[ADDED] Toggleable Remote Vehicle by Salival. (a9500b4e) @AirwavesMan
[ADDED] Toggleable Locate Vehicle by Salival. (152ec42d) @AirwavesMan
[ADDED] Toggleable Take Clothes by Salival. (1113b579) @AirwavesMan
[ADDED] Toggleable Safe Zone Relocate by Salival. (cc005a97) @AirwavesMan
[ADDED] Toggleable Vehicle Service Point by Salival. (343128bb) @AirwavesMan
[ADDED] Toggleable Garage Door Opener by Salival. (b3871aa3) @AirwavesMan
[ADDED] Toggleable Bury and Butcher Bodies by Salival. (be7898aa) @AirwavesMan
[ADDED] Toggleable Vehicle Key Changer by Salival. (e6eb9419) @AirwavesMan
[ADDED] Toggleable Virtual Garage by Salival. (30f15326) @AirwavesMan
[ADDED] Fully functional Namalsk Bloodsuckers by SumrakDZN. Can be activated in the configVariables.sqf. (05118343) @worldwidesorrow
[ADDED] G3A3 with attachment support. (a3a4cf90) @AirwavesMan
[UPDATED] Better message for filling fuel containers if the fuel tank has not enough fuel. (93bf494c) @AirwavesMan
[UPDATED] Snappoints got improved. (f68e92d5) @worldwidesorrow
[FIXED] Side Chat was unintentionally disabled on Podagorsk Mission. (cf43c20d) @Voltan, @AirwavesMan
[FIXED] English string from the Broken APSI got overwritten by the german string. (43786eec) @seelenapparat, @AirwavesMan
[FIXED] Open or close a winter lockbox or an upgraded lockbox had the wrong sound. (ffccff6a, cdfc57fd) @AirwavesMan
@@ -25,7 +10,7 @@
[FIXED] DayZ Mod gates could not be removed. (2bbb126a) @Aschalder, @AirwavesMan
[FIXED] The AK74 taped magazine could not be used with the AN94. (31c4a0a7) @Schalldampfer, @AirwavesMan
[FIXED] Dupe with player_emptyContainer and dayz_actionInProgress bug. (44c94541) @F507DMT, @AirwavesMan
[FIXED] Remove the iron sight view from the RK95 ACOG, SVD Gold and SVU since it does not work. (ee259c4a, ad3c38e4) @IsGoose, @AirwavesMan
[FIXED] Remove the iron sight view from the RK95 ACOG since it does not work. (ee259c4a) @IsGoose, @AirwavesMan
[FIXED] Some building wrecks could not be removed. (b43279cd) @Seelenapparat, @AirwavesMan
[FIXED] Wrong name of the PIVOT snappoint of all wooden stairs. (f24a8193) @AirwavesMan
[FIXED] ArmoredSUV gunner glitch. (aeafb3b3) @TheFirstNoob, @AirwavesMan
@@ -38,9 +23,4 @@
[FIXED] Radio state variable got resetted after changing clothes. (6becd3d8) @AirwavesMan
[FIXED] Missing side and faction entry for many epoch vehicles (4ba6fa32) @iben, @AirwavesMan
[FIXED] Missing terrainCoef for the Mini Cooper. (53d92ba3) @DeVloek, @AirwavesMan
[FIXED] Weapon dupe on gear syncing. (9852778b) @F507DMT, @AirwavesMan
[FIXED] 200Rnd 40mm FV510 HE and Sabot magazines could not be used. (c10a436c) @Schalldampfer, @AirwavesMan
[FIXED] Client RPT Spam 'Strange convex component288 in warehouse\models\warehouse.p3d:geometry' @helion4
[REMOVED] gsc_cloth_loner_head_DZ model and Skin_gsc_cloth_loner_head_DZ due to model issues. (b1e77a39) @Seelenapparat, @AirwavesMan
[INFO] Big thanks to the following authors which allowed us to use their content: SumrakDZN, SyNcRoNiCzZ
[REMOVED] gsc_cloth_loner_head_DZ model and Skin_gsc_cloth_loner_head_DZ due to model issues. (b1e77a39) @Seelenapparat, @AirwavesMan

View File

@@ -1,169 +0,0 @@
[NEW] Time between unlocking safes/lockboxes after a failed code will be exponentially higher, see configVariables.sqf\DZE_lockablesHarderPenalty (c3cbca1) @oiad
[NEW] Added over 200 new zombie models with loot groups and strings for Server Admins to use. (2e15009) @AirwavesMan
[NEW] Zombie can wear backpacks. (096fc13) @AirwavesMan
[NEW] Hide Body can be edited and toggled. Enabled by default, configVariables.sqf/DZE_Hide_Body (c0e9fe6) @AirwavesMan
[NEW] Added 6 AK-107 versions with attachment support. (82485ea) @AirwavesMan
[NEW] Added new waterbottles from DayZ Mod. Icons made by @DeVloek. Fully functional with all actions. @AirwavesMan
[NEW] All fuel containers can be emptied. (276615a8) @AirwavesMan
[NEW] Different boxes of matches can be combined. (bc75ad8) @AirwavesMan
[NEW] Added a basic support for PVE Servers. This disables the PVP damage on the server. Disabled by default, configVariables.sqf/DZE_PVE_Mode (e7dbc5dd) @AirwavesMan
[NEW] Dedicated sounds for opening and closing vaults. (c001c38, 9c83ef2, 61258c9, 76721e3) @worldwidesorrow
[NEW] Added the option for vectorUp on spawned objects in fnc_spawnObjects. (bf9dc49) @worldwidesorrow
[NEW] Added 2 new cargo truck versions. A truck with more items slots and a truck with more weapons slots. (02c91007) @AirwavesMan
[NEW] Added an option to give another player an antibacterial wipe. (8c074be) @worldwidesorrow
[NEW] The maps Podagorsk and Chernarus Winter are now part of Epoch.
[NEW] Added snow fall, snow storm, ground fog and cold breath to the game. This can be enabled in the configVariables.sqf/DZE_WeatherVariables and DZE_Weather @worldwidesorrow
[NEW] Added warm clothes support. configVariables.sqf/DZE_WarmClothes (4058f596) @AirwavesMan
[NEW] Added shivering - if the players body temperature is under a certain value the shivering starts. Can be defined and disabled with the last value in the DZE_WeatherVariables array. (4058f596) @AirwavesMan
[NEW] Players can choose among 5 sets of status icons by pressing the F3 key or selecting in the game options menu. @worldwidesorrow
[NEW] Added over 100 new weapons and magazines with attachment support, eg. HK417, Famas, Steyr Aug, G3, MP7 and many more. @AirwavesMan
[NEW] Added M110_DZ with double zoom which was removed with the last Arma 2 1.64 patch. (9a531b3) @AirwavesMan
[NEW] Almost all items have a world model now, eg. FN Fal mag, M203 Flare, AS50 mag. @Helion4, @AirwavesMan
[NEW] Added over 130 new male and female skins. @AirwavesMan @Helion4
[NEW] Added 11 new backpacks. (637358b, 88053499) @Seelenapparat, @DeVloek, @AirwavesMan, @Helion4
[NEW] Added different backpack skins for the Coyote and the Czech Backpack. (637358b) @Seelenapparat, @DeVloek, @AirwavesMan
[NEW] All backpacks got updated and have 2 versions, a regular and an upgraded version. (637358b) @Seelenapparat, @DeVloek, @AirwavesMan
[NEW] Fireplaces can be crafted directly from a wooden log. (2b8997ec) @AirwavesMan
[NEW] New sounds for M9, M1911, SVD, VSS Vintorez, PDW, PDW SD, Winchester 1866, Saiga 12k, Anzio. @AirwavesMan
[NEW] All vehicles/buildings are grouped under special vehicle categories in the editor with the indicator: 'DayZ Epoch', @AirwavesMan
[NEW] Painkiller packages can have 0 to 6 pills and can also be combined, similar to antibiotics. (b4b8860c) @AirwavesMan
[NEW] New helicopter skins for CH-47, Mi-17, UH-1H. (43337b6a, c47821ee) @AirwavesMan
[NEW] Added KA60 and AW159 Epoch versions with PKT and M240. (8de9858b) @AirwavesMan
[NEW] Added Land_Ind_Oil_Pump_EP1_DZE, a version without the pumping sound. (8557f559) @seelenapparat
[NEW] Added a proper display name for heli crashes. (ba31c67b) @seelenapparat
[NEW] Players can craft a firebarrel kit from empty methylamin/oil barrels. (b4b93562) @AirwavesMan
[NEW] Enabled DZE_defaultSkin by default. (9842279d) @AirwavesMan
[NEW] Added 2 new AN2 versions with Twin Vickers and M134. (d98834aa) @AirwavesMan
[NEW] Every vehicle ammunition can now be spawned in-game and was added to the loot tables and traders. (6e813dc1) @AirwavesMan
[NEW] Reintroduced DayZ Mod stashes. Build the stash by right-clicking the canvas item. (8304efe9) @AirwavesMan
[NEW] Storage buildings like gun racks, storage sheds, safes etc. can be upgraded to a version with more gear slots. (19889a9d) @AirwavesMan
[NEW] Lumber can be crafted directly from wooden logs. (ae79f4ce) @AirwavesMan
[NEW] Added DayZ Mod fences and gates with upgrade and snap support. (3724a1f3) @AirwavesMan
[NEW] Added sounds for taking painkillers/antibiotics and attaching/detaching a weapon attachment. (a69948d5) @AirwavesMan
[NEW] The community localization stringtable is now part of Epoch. (04a81c15) @AirwavesMan
[NEW] Salival's Change Code script is now part of Epoch. (5e296fc0) @AirwavesMan
[NEW] Added ZSC with global banking. Pull request # 2076. @oiad, @worldwidesorrow, @DevZupa
[NEW] Added remote messaging with localization. Pull request # 2076. @oiad, @worldwidesorrow, @BigEgg17
[NEW] Almost all epoch vehicles can now be upgraded. This includes trucks, helicopters and APCs. @AirwavesMan
[NEW] Added vehicle upgrade manuals for trucks, helicopters and APCs. @AirwavesMan, @DeVloek, @Helion4
[NEW] Added new variables DZE_Hero and DZE_Bandit. The variables define the Hero and Bandit humanity. Used for traders and in player_death. (431cbc88, 272a7406) @AirwavesMan
[NEW] Heroes and Bandits will drop a dog tag on death which can be traded at the Hero or Bandit trader for humanity. Thx for the idea @Tecumseh. (431cbc88, 272a7406, 4f106220) @AirwavesMan
[NEW] Special handling for floating loot in buildings over water. Use fixWaterPos = 1; in the building class that has this problem. (89bca2c9) @AirwavesMan
[NEW] With activated weight system, traders will show the item's weight under item information. (e5af93b5) @AirwavesMan
[NEW] Female players can now wear all ghillie suits. (758be289) @AirwavesMan, @Helion4
[NEW] Added MTVR Bird helicopter. (8fa93188) @AirwavesMan, @Helion4
[NEW] Added a winter version of the following objects: Lockbox, Camo Net, Tent, Dome Tent. (215932d7, 420ad269, 83012eb1) @AirwavesMan, @Helion4
[NEW] Added a winter version of the following vehicles: BMP2, BRDM2, SUV, UAZ, Mi17, UH1H, T72, Ural, Kamaz, HMMWV. (34455948, cb1b34fc) @AirwavesMan
[NEW] Added Mini Cooper, old Jeep, 11 Nissan 350z versions, VS3 Camper, MTVR Open, Scrap APC, armored Tractor and armored Bus. (a1e5fca7, db36bb48, 1ce3f92b, 0dc00d97, d0f647c0, 34c2c716, f8d8a686, 8feed62b) @AirwavesMan, @Helion4
[NEW] Added interior to storage sheds and those on the map can now spawn loot. (ad8ca464, 35135c75) @AirwavesMan, @Helion4
[NEW] Added a few new female skins. (758be289) @AirwavesMan, @Helion4
[NEW] Added over 30 new base building items like a drawbridge, metal and wood gates, glass floors and many more. @AirwavesMan, @Helion4
[NEW] Added many broken versions of already existing items and tools like Safe, Engine Parts, Wheel, Toolbox and many more. @AirwavesMan
[NEW] Added lots of new items and tools like Handsaw, Hammer, Cement Bag, Carrot, Potato, Mobile Phone and more. @AirwavesMan, @Helion4
[NEW] Added snapping support for Storage Sheds, Wood Shacks, Wooden Sheds, Gun Racks and Outhouses. (ca05896f) @AirwavesMan
[NEW] Added Submarine (c316d20) @AirwavesMan, @Helion4
[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] 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 some AK-74 versions. (82485ea) @AirwavesMan
[FIXED] Multiple vehicle upgrades were not possible. (ac884f2, a430f79, c24504a) @F507DMT
[FIXED] 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] Floating loot from remove, pack and fn_dropItem. (1268f55) @AirwavesMan
[FIXED] Giving water to dogs did not work with all waterbottles. (915cf72) @AirwavesMan
[FIXED] Backpacks had no descriptions. (f1d5038) @AirwavesMan
[FIXED] Potential dupe on lag with Advanced Trading. (0617a77, 5f44161) @oiad, @AirwavesMan, @loooooool(TEMA)
[FIXED] Invisible backseat bug on LAV-HQ DZ and DZE version. (5c3f2162) @AirwavesMan
[FIXED] The fuel capacity of the MH-6J Little Bird, Mi17 Civilian, UH60M was incorrect. (862cf39a, f0e08f22, fc9cb679) @AirwavesMan
[FIXED] AIs could attack traders. (f0ac4afc) @AirwavesMan
[FIXED] RHIB_DZ floating gunner position. (38a31290) @AirwavesMan
[FIXED] The carry and drag functions have been fixed. (bcc5b63) @worldwidesorrow
[FIXED] Bug on switching weapons. @worldwidesorrow
[FIXED] Backpacks and keys were not counted within the weight system. (838e4a06, 49446122) @Damian6666 @AirwavesMan
[FIXED] Biomeat had no infection chance. (b52325c9) @AirwavesMan
[FIXED] Parachute speed bug by pressing certain keys. (2a41d122) @ch0c
[FIXED] Loading screen progress bar did not work since the last Arma 2 1.64 patch. (21e5cfae) @IsGoose
[FIXED] Players were unable to open a few tank versions with their key. (9cc8b5d8) @AirwavesMan
[FIXED] The epoch versions of the RHIB boats were incorrect. (38a31290) @AirwavesMan
[FIXED] Players are no longer able to exploit the player_wearClothes function to reset AI targeting. (5c29704) @morgoth0, @Arrakis, @worldwidesorrow.
[FIXED] Vehicles should no longer explode after a server restart due to buildings loading in late. (99dc7cd7) @Seelenapparat
[FIXED] CZ550 shadow bug (c22ae9e5) @AirwavesMan
[FIXED] Floating loot in buildings over water. (89bca2c9) @AirwavesMan
[FIXED] Potential kill count doubling after change clothes. (0b26ae12) @Seelenapparat
[FIXED] Damaged vehicles will no longer repair after a vehicle upgrade. (95d528b8) @AirwavesMan
[FIXED] Exorbitant damage from chainsaws and sledgehammers on buildings (118dbfa6) @AirwavesMan
[FIXED] Players always looked north on spawn. (4aad93fe) @TH, @AirwavesMan
[FIXED] Trees could be knocked down on the first hit by a hatchet or chainsaw. (8dc6ef8d) @AirwavesMan
[FIXED] Female players had not the correct armor and camouflage set. (758be289) @AirwavesMan
[FIXED] Sometimes players were not properly ejected from an exploded Cessna wreck. (0b6df456) @AirwavesMan
[FIXED] Players were not in combat after shooting from certain helicopters or planes. (e6680aaa) @AirwavesMan
[FIXED] Often the weapon on back was duped when the player was kicked or didn't log out properly. (1697af97) @AirwavesMan
[FIXED] Filling mixed gas into a chainsaw now requires a chainsaw. (b0edf3cb) @AirwavesMan
[UPDATED] All Epoch items and buildable models updated and optimized to affect less the performance. @Helion4
[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 now use only one inventory slot. (cc85067) @AirwavesMan
[UPDATED] The Czech Vest Pouch can now carry one weapon. This was changed to be more intuitive and to avoid disappearing weapons. (f7ea9cb) @AirwavesMan
[UPDATED] Old/unused variables removed from variables.sqf. Entire file reorganized. (4accdee) @worldwidesorrow
[UPDATED] Functions fnc_usec_damageHandler, dayz_inflame_showMenu, dayz_inflame_showMenu_other, DZ_KeyDown_EH, dayz_EjectPlayer compiled on client only - compiles.sqf. (7613e3a) @worldwidesorrow
[UPDATED] Many unused trader cities were moved into a new folder called 'Archive'. Those files will no longer be updated. (6699d8d7) @AirwavesMan
[UPDATED] All vehicle names updated and localizations added. (e36e3cc4) @AirwavesMan
[UPDATED] The gunner optics angle of the BRDM-2 HQ was adjusted to have a better usage. (9ab576fa) @AirwavesMan
[UPDATED] Moved FPS logging and server event spawner to the server scheduler (0a264b9) @worldwidesorrow
[UPDATED] Vanilla events adjusted and moved to the server modules folder. The events are now spawned by the scheduler. (0a264b9) @worldwidesorrow
[UPDATED] Rebuilt trader files and overhauled trader cities. (92700e8a) @AirwavesMan
[UPDATED] Server side security added for higher risk PVDZ_send usage. (40dcf6f) @worldwidesorrow
[UPDATED] New strings added to the string table for medical functions. (2a145bf) @worldwidesorrow
[UPDATED] Medical functions revised. Old/unused medical functions moved to archive. @worldwidesorrow
[UPDATED] Separate actions added for typed blood bags. Variable dayz_classicBloodBagSystem used to bypass unnecessary code. (a4c0638) @worldwidesorrow
[UPDATED] All vehicles updated and many bugs fixed. Now there is a DZ and DZE class for every armed Epoch vehicle. @AirwavesMan
[UPDATED] All silenced weapons can only be used with SD ammo, and all non-silenced weapons can only be used with regular (non-SD) ammo. (6f4b1706) @AirwavesMan
[UPDATED] Increased bullet speed for the MK17 SD and Vintorez ammo. (1e69f357) @AirwavesMan
[UPDATED] MK17 Sniper SD and Vintorez DZ and DZE versions have a higher zeroing. (3895cf9c) @AirwavesMan
[UPDATED] AK74 and AKM start with the semi-automatic firemode instead of full-automatic. (9aeceebb, becfee04) @AirwavesMan
[UPDATED] The FN Fal has a full-automatic mode again. (052becb) @AirwavesMan
[UPDATED] Zombies will no longer get triggered by a chemlight at daytime. (93ba732e) @AirwavesMan
[UPDATED] All magazines now have the combine option. @AirwavesMan
[UPDATED] The Humanity system was updated for hotwiring vehicles and killing players. (f68bbda0, d5910357) @AirwavesMan, @oiad
[UPDATED] The gear count of many vehicles (helicopters in particular) was updated and increased. (06b788a) @AirwavesMan
[UPDATED] Sharpening a knife now has an animation. (b7892bfc) @AirwavesMan
[UPDATED] Added full localization to snap and vector building. (fe1d7fb4) @AirwavesMan
[UPDATED] Added the correct icon for the Terminal Backpack. (1a411660) @AirwavesMan, @DeVloek
[UPDATED] Crafting a tent requires 2x equip_tent_poles instead of 2x ItemPole. (73289a69) @AirwavesMan
[UPDATED] Crafting a firebarrel kit no longer requires matches. (b4b93562) @nadal28 @AirwavesMan
[UPDATED] Crafting shows all required items now. (8315d899) @AirwavesMan
[UPDATED] Relogging with a chainsaw in the backpack will delete the chainsaw gas instead of refilling it. (132e9506) @AirwavesMan
[UPDATED] The group invite message now contains the name of the inviter. (396d0313) @ch0c, @AirwavesMan
[UPDATED] Harvesting wood with a hatchet can now drop both wood piles and wooden logs. (ae79f4ce) @AirwavesMan
[UPDATED] The maintain animation is interruptible now. (910ab43a) @AirwavesMan
[UPDATED] Trading single items can be configured to change the player's humanity value. (4f106220) @AirwavesMan
[UPDATED] The Journal main page was reworked and has some more information about the server settings now. (ef05eb4e) @AirwavesMan
[UPDATED] Harvesting wood will yield at least 16 or more wood. This was added in order to decrease network traffic. (8dc6ef8d) @AirwavesMan
[UPDATED] Increased cargo count of Refuel Trucks. (4667f20b) @AirwavesMan
[UPDATED] Cinder buildings and metal floors have a new texture. @Helion4
[UPDATED] Highly increased infection chance if the player eats uncooked meat or fish. (29b6a26) @AirwavesMan
[UPDATED] Crafting wooden buildings now requires a handsaw and a hammer. (247f5dc6) @AirwavesMan
[UPDATED] Full Russian Localization @RedLink-kam, @dreamforceinc
[REMOVED] Epoch 1.0.7 does not support Database Traders any longer. All server admins with DB Traders have to switch to the config traders now. (49378f62) @AirwavesMan
[REMOVED] NORRN_loadVcl, posForceUpdate, and medForceUpdate removed from setvariable.txt (47f07a8) @worldwidesorrow
[REMOVED] PVDZ_drg_RaDrag, PVDZ_drg_RaLW, PVDZ_drg_RLact and PVDZ_Unconscious removed from publicvariable.txt. They have been replaced with PVDZ_send. (2d03fb9) @worldwidesorrow
[REMOVED] DayZ Vanilla Crafting - all recipes were moved to Epoch Crafting. (8315d899) @AirwavesMan
[INFO] Synced with DayZMod upstream up to commit fe063a8
[INFO] Removed functions can be found under "dayz_code\old".
[INFO] Big thanks to the following authors which allowed us to use their content: SumrakDZN, Icewindo, Brainbug, lennard91, stagler, SyNcRoNiCzZ, Sam563, Alwarren, Robert Hammer, Marseille77

107
README.md
View File

@@ -14,63 +14,62 @@ http://dayzmod.com
--------------------------
Included Custom Addons
--------------------------
* DayZero Enterable Buildings
* AutoGyro - by CSJ
* Taxi by [GLT]Myke
* Blackhawk and Seahawk Wrecks by [GLT]Myke
* SUV Colors by Python.au
* R3F Realism by Team [R3F]
* ASC EU Lights Mod
* MAP Editorupgrade (EU)
* ShackTac Movement by Rg
* ShackTac Bunnyhop by Macolik
* Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr and Sahbazz
* gdtmod_grass 1.00 by HeinBloed
* Bell 47/H-13 Helicopter by hcpookie
* USEC CH53 by Rocket
* Anzio 20mm Rifle by WillRobinson
* RedRyder BB Gun by WillRobinson
* Namalsk Addons and Bloodsucker by SumrakDZN
* Stalker Units by Icewindo
* Post Apocalypse Units by Icewindo
* Ghillie Suits by Brainbug
* Retextured German KSK Units by Brainbug
* 19 Backpack Variants by lennard91
* Spetsnaz GRU by stagler
* CH-47 Reskins by SyNcRoNiCzZ
* RACS UH-1H Huey Reskins by lennard91
* UH1H Search and Rescue Skin by Sam563
* Contractor Mi-17 Pack by lennard91
* "Heckler & Koch" MP7 by SyNcRoNiCzZ
* P99 Projekt by SyNcRoNiCzZ
* FAMAS Pack by SyNcRoNiCzZ
* FHQ Remington Weapon Pack by Alwarren
* RH PDW pack by Robert Hammer
* RH M14 pack by Robert Hammer
* RH Pistol Pack Remake by Robert Hammer
* RH SMG pack by Robert Hammer
* RH HK416 Pack by Robert Hammer
* RH Ak's Pack by Robert Hammer
* RH MGS weapon pack by Robert Hammer
* German Technical Relief Pack (THW Pack) by Marseille77
* German Firefighters Pack by Marseille77
* German Civil Pack by Marseille77
* Sahrani Rearmed: Sahrani Civilians by Marseille77
* Modern Irish Defence Forces - Steyr Aug A3 Pack by SyNcRoNiCzZ
* Standard Vehicles Pack by Marseille77
* Nissan 350z by CRASHNZ
* G3 Pack by Marseille77
* DayZero Enterable Buildings - https://zombies.nu/
* AutoGyro - by CSJ http://www.armaholic.com/page.php?id=2359
* Taxi by [GLT]Myke http://www.armaholic.com/page.php?id=12289
* Blackhawk and Seahawk Wrecks by [GLT]Myke http://www.armaholic.com/page.php?id=10670
* SUV Colors by Python.au http://www.armaholic.com/page.php?id=17176
* R3F Realism by Team [R3F] - http://www.armaholic.com/page.php?id=12610
* ASC EU Lights Mod http://www.armaholic.com/page.php?id=12076
* MAP Editorupgrade (EU) http://www.armaholic.com/page.php?id=6194
* ShackTac Movement by Rg - http://www.armaholic.com/page.php?id=12540
* ShackTac Bunnyhop by Macolik - http://www.armaholic.com/page.php?id=17546
* Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr and Sahbazz http://www.armaholic.com/page.php?id=13053
* gdtmod_grass 1.00 by HeinBloed - http://www.armaholic.com/page.php?id=6628
* Bell 47/H-13 Helicopter by hcpookie - http://www.armaholic.com/page.php?id=22143
* USEC CH53 by Rocket - http://www.armaholic.com/page.php?id=13949
* Anzio 20mm Rifle by WillRobinson - http://www.armaholic.com/page.php?id=30175
* RedRyder BB Gun by WillRobinson - https://github.com/arma2WillRobinson/Red-Ryder
* Namalsk Addons by SumrakDZN - https://github.com/SumrakDZN/DayZNamalsk
* Stalker Units by Icewindo - http://www.armaholic.com/page.php?id=9795
* Post Apocalypse Units by Icewindo - http://www.armaholic.com/page.php?id=11840
* Ghillie Suits by Brainbug - http://www.armaholic.com/page.php?id=11424
* Retextured German KSK Units by Brainbug - http://www.armaholic.com/page.php?id=11129
* 19 Backpack Variants by lennard91 - http://www.armaholic.com/page.php?id=13793
* Spetsnaz GRU by stagler - http://www.armaholic.com/page.php?id=15693
* CH-47 Reskins by SyNcRoNiCzZ - http://www.armaholic.com/page.php?id=11202
* RACS UH-1H Huey Reskins by lennard91 - http://www.armaholic.com/page.php?id=11697
* UH1H Search and Rescue Skin by Sam563 - https://opendayz.net/threads/uh1h-search-and-rescue-skin.22516/
* Contractor Mi-17 Pack by lennard91 - http://www.armaholic.com/page.php?id=18498
* "Heckler & Koch" MP7 by SyNcRoNiCzZ - http://www.armaholic.com/page.php?id=8379
* P99 Projekt by SyNcRoNiCzZ - http://www.armaholic.com/page.php?id=9985
* FAMAS Pack by SyNcRoNiCzZ - http://www.armaholic.com/page.php?id=8867
* FHQ Remington Weapon Pack by Alwarren - http://www.armaholic.com/page.php?id=17971
* RH PDW pack by Robert Hammer - http://www.armaholic.com/page.php?id=12214
* RH M14 pack by Robert Hammer - http://www.armaholic.com/page.php?id=11374
* RH Pistol Pack Remake by Robert Hammer - http://www.armaholic.com/page.php?id=12800
* RH SMG pack by Robert Hammer - http://www.armaholic.com/page.php?id=13788
* RH HK416 Pack by Robert Hammer - http://www.armaholic.com/page.php?id=11789
* RH Ak's Pack by Robert Hammer - http://www.armaholic.com/page.php?id=9029
* RH MGS weapon pack by Robert Hammer - http://www.armaholic.com/page.php?id=13095
* German Technical Relief Pack (THW Pack) by Marseille77 - http://www.armaholic.com/page.php?id=15466
* German Firefighters Pack by Marseille77 - http://www.armaholic.com/page.php?id=20391
* German Civil Pack by Marseille77 - http://www.armaholic.com/page.php?id=9793
* Sahrani Rearmed: Sahrani Civilians by Marseille77 - http://www.armaholic.com/page.php?id=24325
* Modern Irish Defence Forces - Steyr Aug A3 Pack by SyNcRoNiCzZ - http://www.armaholic.com/page.php?id=9505
* Standard Vehicles Pack by Marseille77 - https://www.armaholic.com/page.php?id=10730
* Nissan 350z by CRASHNZ - https://www.armaholic.com/page.php?id=8570
--------------------------
Included Custom Islands
--------------------------
* Sauerland by Falconsan
* Sauerland by Falconsan - http://www.s6computer.de/
* Napf Island by #momo# - http://forums.bistudio.com/showthread.php?136469-Napf-Island-beta
* | MBG Killhouses
* | MBG Buildings 3 - European Theatre
* | MBG Generic African Buildings
* | German Town - and waysigns
* FDF Podagorsk by Goth
* Chernarus Winter by ArmanIII
* | MBG Killhouses http://www.armaholic.com/page.php?id=15180
* | MBG Buildings 3 - European Theatre http://www.armaholic.com/page.php?id=14828
* | MBG Generic African Buildings http://www.armaholic.com/page.php?id=17817
* | German Town - and waysigns http://www.armaholic.com/page.php?id=9658
* FDF Podagorsk by Goth http://www.armaholic.com/page.php?id=8791
* Chernarus Winter by ArmanIII http://www.armaholic.com/page.php?id=27807
--------------------------
Initial Developers
@@ -166,7 +165,7 @@ Special thanks
* Rajkosto - DayZ Hive DLL - https://github.com/rajkosto/hive
* DayZ Community Developers - https://github.com/DayZMod
* ziellos2k - Tag Friendly code. https://github.com/ziellos2k
* Tansien and Zac - for providing and creating DayZero Enterable Buildings
* Tansien and Zac - for providing and creating DayZero Enterable Buildings https://zombies.nu/
* Munchiefest - Beta Tester, Wiki Editor, Ideas - http://www.twitch.tv/munchiefest
* Chelsey - Beta Tester, New female textures.
* OrangeSherbet - Beta Tester - http://www.twitch.tv/orangesherbet

View File

@@ -1,527 +0,0 @@
class M2_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_M2_MG;
descriptionShort = $STR_DN_M2_MG;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "M2_MG_Static_DZ";
};
};
};
class M2_TriPod_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_M2HD_MINITRIPOD;
descriptionShort = $STR_DN_M2HD_MINITRIPOD;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "M2_TriPod_MG_Static_DZ";
};
};
};
class DSHKM_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_DSHKM;
descriptionShort = $STR_DN_DSHKM;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "DSHKM_MG_Static_DZ";
};
};
};
class DSHKM_TriPod_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_DSHKM_MINITRIPOD;
descriptionShort = $STR_DN_DSHKM_MINITRIPOD;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "DSHKM_TriPod_MG_Static_DZ";
};
};
};
class KORD_TriPod_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_KORD_LOW;
descriptionShort = $STR_DN_KORD_LOW;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "KORD_Tripod_MG_Static_DZ";
};
};
};
class KORD_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_KORD;
descriptionShort = $STR_DN_KORD;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "KORD_MG_Static_DZ";
};
};
};
class L2A1_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_BAF_BAF_L2A1_TRIPOD_D0;
descriptionShort = $STR_BAF_BAF_L2A1_TRIPOD_D0;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "L2A1_MG_Static_DZ";
};
};
};
class L2A1_Tripod_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_BAF_BAF_L2A1_MINITRIPOD_D0;
descriptionShort = $STR_BAF_BAF_L2A1_MINITRIPOD_D0;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "L2A1_Tripod_MG_Static_DZ";
};
};
};
class GMG_Tripod_MG_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_BAF_BAF_GMG_TRIPOD_D0;
descriptionShort = $STR_BAF_BAF_GMG_TRIPOD_D0;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "GMG_Tripod_MG_Static_DZ";
};
};
};
class AGS30_GrenadeLauncher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_AGS30;
descriptionShort = $STR_DN_AGS30;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "AGS30_GrenadeLauncher_Static_DZ";
};
};
};
class MK19_TriPod_GrenadeLauncher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_MK19_TRIPOD;
descriptionShort = $STR_DN_MK19_TRIPOD;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "MK19_TriPod_GrenadeLauncher_Static_DZ";
};
};
};
class GPMG_TriPod_GrenadeLauncher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_BAF_BAF_GPMG_MINITRIPOD_D0;
descriptionShort = $STR_BAF_BAF_GPMG_MINITRIPOD_D0;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "GPMG_TriPod_GrenadeLauncher_Static_DZ";
};
};
};
class M119_Artillery_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_M119;
descriptionShort = $STR_DN_M119;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "M119_Artillery_Static_DZ";
};
};
};
class D30_Artillery_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_D30;
descriptionShort = $STR_DN_D30;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "D30_Artillery_Static_DZ";
};
};
};
class SearchLight_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_SEARCHLIGHT;
descriptionShort = $STR_DN_SEARCHLIGHT;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "SearchLight_Static_DZ";
};
};
};
class M252_Mortar_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_M252;
descriptionShort = $STR_DN_M252;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "M252_Mortar_Static_DZ";
};
};
};
class 2b14_82mm_Mortar_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_2B14;
descriptionShort = $STR_DN_2B14;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "2b14_82mm_Mortar_Static_DZ";
};
};
};
class Metis_Launcher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_AT13;
descriptionShort = $STR_DN_AT13;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "Metis_Launcher_Static_DZ";
};
};
};
class SPG9_Launcher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_SPG9;
descriptionShort = $STR_DN_SPG9;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "SPG9_Launcher_Static_DZ";
};
};
};
class Stinger_Tripod_Launcher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_STINGER_POD;
descriptionShort = $STR_DN_STINGER_POD;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "Stinger_Tripod_Launcher_Static_DZ";
};
};
};
class TOW_Tripod_Launcher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_TOW_TRIPOD;
descriptionShort = $STR_DN_TOW_TRIPOD;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "TOW_Tripod_Launcher_Static_DZ";
};
};
};
class Rbs70_Launcher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_ACR_DN_RBS70;
descriptionShort = $STR_ACR_DN_RBS70;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "Rbs70_Launcher_Static_DZ";
};
};
};
class Igla_AntiAir_Launcher_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_IGLA_AA_POD_EAST;
descriptionShort = $STR_DN_IGLA_AA_POD_EAST;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "Igla_AntiAir_Launcher_Static_DZ";
};
};
};
class ZU23_AntiAir_Static_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = $STR_DN_ZU23;
descriptionShort = $STR_DN_ZU23;
model = "\z\addons\dayz_epoch\models\supply_crate.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_wooden_crate_ca.paa";
class ItemActions
{
class Build
{
text = $STR_ACTIONS_BUILD;
script = "spawn player_build;";
require[] = {"ItemToolbox"};
create = "ZU23_AntiAir_Static_DZ";
};
};
};

View File

@@ -65,6 +65,5 @@ class CfgMagazines
#include "Buildings\Fences.hpp"
#include "Buildings\Storage.hpp"
#include "Buildings\Tent.hpp"
#include "Buildings\Misc.hpp"
#include "Buildings\StaticWeapons.hpp"
#include "Buildings\Misc.hpp"
};

View File

@@ -262,160 +262,6 @@ class ItemCeramicParts : CA_Magazine
type = 256;
};
class ItemWeaponPartsPistol : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_PISTOL;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_PISTOL_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsSMG : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_SMG;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_SMG_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsShotgun : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_SHOTGUN;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_SHOTGUN_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsRifle : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_RIFLE;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_RIFLE_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsSniperRilfe : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_SNIPERRIFLE;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_SNIPERRIFLE_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsMG : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_MG;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_MG_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsUnknown : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_UNKNOWN_MG;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_UNKNOWN_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsBad : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_BAD;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_BAD_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsNormal : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_NORMAL;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_NORMAL_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsGood : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_GOOD;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_GOOD_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemWeaponPartsExecellent : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_WEAPON_PARTS_EXCELLENT;
descriptionShort = $STR_EPOCH_WEAPON_PARTS_EXCELLENT_DESC;
model = "\z\addons\dayz_communityassets\models\crate.p3d";
picture = "\z\addons\dayz_communityassets\CraftingPlaceholders\equip_part_somegeneric.paa";
type = 256;
};
class ItemGunPowderSmall : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_GUN_POWDER_SMALL;
descriptionShort = $STR_EPOCH_GUN_POWDER_SMALL_DESC;
model = "\z\addons\dayz_communityassets\models\tin_powder.p3d";
picture = "\z\addons\dayz_communityassets\pictures\equip_tin_powder_co.paa";
type = 256;
};
class ItemGunPowder : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_GUN_POWDER;
descriptionShort = $STR_EPOCH_GUN_POWDER_DESC;
model = "\z\addons\dayz_communityassets\models\tin_powder.p3d";
picture = "\z\addons\dayz_communityassets\pictures\equip_tin_powder_co.paa";
type = 256;
};
class ItemGunPowderBig : CA_Magazine
{
scope = 2;
count = 1;
displayName = $STR_EPOCH_GUN_POWDER_BIG;
descriptionShort = $STR_EPOCH_GUN_POWDER_BIG_DESC;
model = "\z\addons\dayz_communityassets\models\tin_powder.p3d";
picture = "\z\addons\dayz_communityassets\pictures\equip_tin_powder_co.paa";
type = 256;
};
//No models
class equip_cable_tie : CA_Magazine
{

View File

@@ -9,9 +9,4 @@ class 7Rnd_50AE_Deagle: CA_Magazine
ammo = "B_357mag_Ball";
count = 7;
initSpeed = 400;
class ItemActions
{
COMBINE_MAG
};
};

View File

@@ -50,14 +50,7 @@ class 100Rnd_556x45_BetaCMagSD: 100Rnd_556x45_BetaCMag {
};
/* STANAG <-> G36 */
class 20Rnd_556x45_Stanag : CA_Magazine
{
class ItemActions
{
COMBINE_MAG
};
};
class 20Rnd_556x45_Stanag;
class 30Rnd_556x45_Stanag : 20Rnd_556x45_Stanag
{
displayName = $STR_DZ_MAG_30RND_556x45_STANAG_NAME;

View File

@@ -1484,7 +1484,7 @@ class 8Rnd_82mmILLUM_2B14: 8Rnd_82mmHE_2B14
};
class 200Rnd_40mmHE_FV510: Vehicle_ammo_base
{
scope = 2;
scope = 1;
displayName = $STR_DZ_MAG_200RND_FV510HE_NAME;
descriptionShort = $STR_DZ_MAG_200RND_FV510HE_DESC;
ammo = "Sh_40_HE";

View File

@@ -459,10 +459,10 @@ class Category_16 {
class AK74_GL_PSO1_SD_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};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[] = {3,"ItemGoldBar"};};
class AK107_PSO_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {5,"ItemGoldBar"};};
class AK107_PSO1_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {5,"ItemGoldBar"};};
class AK107_GL_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {3,"ItemGoldBar"};};
class AK107_GL_Kobra_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {5,"ItemGoldBar"};};
class AK107_GL_PSO_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {7,"ItemGoldBar"};};
class AK107_GL_PSO1_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {7,"ItemGoldBar"};};
class AN94_DZ {type = "trade_weapons";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
class AN94_GL_DZ {type = "trade_weapons";buy[] = {-1,"ItemGoldBar"};sell[] = {3,"ItemGoldBar"};};
class SCAR_H_AK_DZ {type = "trade_weapons";buy[] = {8,"ItemGoldBar"};sell[] = {4,"ItemGoldBar"};};

View File

@@ -16,12 +16,4 @@ class Category_50 {
class ItemRSJ {type = "trade_items";buy[] = {1,"ItemGoldBar10oz"};sell[] = {5,"ItemGoldBar"};};
class ItemFuelBarrelEmpty {type = "trade_items";buy[] = {1,"ItemGoldBar"};sell[] = {5,"ItemSilverBar10oz"};};
class ItemFuelBarrel {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
};
class Category_52 {
class helipad_civil_kit {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
class helipad_rescue_kit {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
class helipad_army_kit {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
class helipad_cross_kit {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
class helipad_parkborder_kit {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};};
};

View File

@@ -459,10 +459,10 @@ class Category_16 {
class AK74_GL_PSO1_SD_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {1000,"worth"};};
class AK107_DZ {type = "trade_weapons";buy[] = {200,"worth"};sell[] = {100,"worth"};};
class AK107_Kobra_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {300,"worth"};};
class AK107_PSO_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {500,"worth"};};
class AK107_PSO1_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {500,"worth"};};
class AK107_GL_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {300,"worth"};};
class AK107_GL_Kobra_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {500,"worth"};};
class AK107_GL_PSO_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {700,"worth"};};
class AK107_GL_PSO1_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {700,"worth"};};
class AN94_DZ {type = "trade_weapons";buy[] = {200,"worth"};sell[] = {100,"worth"};};
class AN94_GL_DZ {type = "trade_weapons";buy[] = {-1,"worth"};sell[] = {300,"worth"};};
class SCAR_H_AK_DZ {type = "trade_weapons";buy[] = {800,"worth"};sell[] = {400,"worth"};};

View File

@@ -16,12 +16,4 @@ class Category_50 {
class ItemRSJ {type = "trade_items";buy[] = {1000,"worth"};sell[] = {500,"worth"};};
class ItemFuelBarrelEmpty {type = "trade_items";buy[] = {100,"worth"};sell[] = {50,"worth"};};
class ItemFuelBarrel {type = "trade_items";buy[] = {200,"worth"};sell[] = {100,"worth"};};
};
class Category_52 {
class helipad_civil_kit {type = "trade_items";buy[] = {200,"worth"};sell[] = {100,"worth"};};
class helipad_rescue_kit {type = "trade_items";buy[] = {200,"worth"};sell[] = {100,"worth"};};
class helipad_army_kit {type = "trade_items";buy[] = {200,"worth"};sell[] = {100,"worth"};};
class helipad_cross_kit {type = "trade_items";buy[] = {200,"worth"};sell[] = {100,"worth"};};
class helipad_parkborder_kit {type = "trade_items";buy[] = {200,"worth"};sell[] = {100,"worth"};};
};

View File

@@ -241,6 +241,22 @@ class Fort_RazorWire : BuiltItems {
nounderground = 0;
};
class USMC_WarfareBMGNest_M240;
class M240Nest_DZ: USMC_WarfareBMGNest_M240
{
destrType = "DestructBuilding";
armor = 450;
scope = 2;
offset[] = {0,3.5,0};
displayName = $STR_EPOCH_M240NEST;
vehicleClass = "DayZ Epoch Buildables";
transportMaxMagazines = 25;
transportMaxWeapons = 4;
transportMaxBackpacks = 1;
constructioncount = 10;
removeoutput[] = {{"m240_nest_kit",1}};
};
class WoodGate_DZ: BuiltItems
{
scope = 2;
@@ -317,7 +333,7 @@ class Greenhouse_DZ: MAP_Misc_Greenhouse
mapSize = 2;
displayName = $STR_EPOCH_GREENHOUSE;
constructioncount = 1;
offset[] = {0,5,1.4};
offset[] = {0,3,2};
removeoutput[] = {{"greenhouse_kit",1}};
vehicleClass = "DayZ Epoch Buildables";
};

View File

@@ -1,288 +0,0 @@
class USMC_WarfareBMGNest_M240;
class M240Nest_DZ: USMC_WarfareBMGNest_M240
{
destrType = "DestructBuilding";
armor = 450;
scope = 2;
offset[] = {0,3.5,0};
displayName = $STR_EPOCH_M240NEST;
transportMaxMagazines = 25;
transportMaxWeapons = 4;
transportMaxBackpacks = 1;
constructioncount = 10;
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"m240_nest_kit",1}};
};
class M2StaticMG;
class M2_MG_Static_DZ: M2StaticMG {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "M2_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"M2_MG_Static_kit",1}};
};
class M2HD_mini_TriPod;
class M2_TriPod_MG_Static_DZ: M2HD_mini_TriPod {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "M2_TriPod_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"M2_TriPod_MG_Static_kit",1}};
};
class DSHKM_Ins;
class DSHKM_MG_Static_DZ: DSHKM_Ins {
side = 1;
faction = "USMC";
offset[] = {0,3,2};
GhostPreview = "DSHKM_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"DSHKM_MG_Static_kit",1}};
};
class DSHkM_Mini_TriPod;
class DSHKM_TriPod_MG_Static_DZ: DSHkM_Mini_TriPod {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "DSHKM_TriPod_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"DSHKM_TriPod_MG_Static_kit",1}};
};
class KORD;
class KORD_Tripod_MG_Static_DZ: KORD {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "KORD_Tripod_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"KORD_TriPod_MG_Static_kit",1}};
};
class KORD_high;
class KORD_MG_Static_DZ: KORD_high {
side = 1;
faction = "USMC";
offset[] = {0,3,2};
GhostPreview = "KORD_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"KORD_MG_Static_kit",1}};
};
class BAF_L2A1_ACOG_base;
class BAF_L2A1_Tripod_D: BAF_L2A1_ACOG_base {
class assembleInfo;
};
class L2A1_MG_Static_DZ: BAF_L2A1_Tripod_D {
side = 1;
faction = "USMC";
class assembleInfo: assembleInfo {
dissasembleTo[] = {};
};
offset[] = {0,3,1};
GhostPreview = "L2A1_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"L2A1_MG_Static_kit",1}};
};
class BAF_L2A1_Minitripod_D: BAF_L2A1_ACOG_base {
class assembleInfo;
};
class L2A1_Tripod_MG_Static_DZ: BAF_L2A1_Minitripod_D {
side = 1;
faction = "USMC";
class assembleInfo: assembleInfo {
dissasembleTo[] = {};
};
offset[] = {0,3,1};
GhostPreview = "L2A1_Tripod_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"L2A1_Tripod_MG_Static_kit",1}};
};
class GMG_TriPod;
class BAF_GMG_Tripod_D: GMG_TriPod {
class assembleInfo;
};
class GMG_Tripod_MG_Static_DZ: BAF_GMG_Tripod_D {
side = 1;
faction = "USMC";
class assembleInfo: assembleInfo {
dissasembleTo[] = {};
};
offset[] = {0,3,0};
GhostPreview = "GMG_Tripod_MG_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"GMG_Tripod_MG_Static_kit",1}};
};
class AGS_Ins;
class AGS30_GrenadeLauncher_Static_DZ: AGS_Ins {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "AGS30_GrenadeLauncher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"AGS30_GrenadeLauncher_Static_kit",1}};
};
class MK19_TriPod;
class MK19_TriPod_GrenadeLauncher_Static_DZ: MK19_TriPod {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "MK19_TriPod_GrenadeLauncher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"MK19_TriPod_GrenadeLauncher_Static_kit",1}};
};
class BAF_GPMG_Minitripod_D: BAF_L2A1_ACOG_base {
class assembleInfo;
};
class GPMG_TriPod_GrenadeLauncher_Static_DZ: BAF_GPMG_Minitripod_D {
side = 1;
faction = "USMC";
class assembleInfo: assembleInfo {
dissasembleTo[] = {};
};
offset[] = {0,3,1};
GhostPreview = "GPMG_TriPod_GrenadeLauncher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"GPMG_TriPod_GrenadeLauncher_Static_kit",1}};
};
class M119;
class M119_Artillery_Static_DZ: M119 {
side = 1;
faction = "USMC";
offset[] = {0,5,0.5};
GhostPreview = "M119_Artillery_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"M119_Artillery_Static_kit",1}};
};
class D30_Ins;
class D30_Artillery_Static_DZ: D30_Ins {
side = 1;
faction = "USMC";
offset[] = {0,5,1};
GhostPreview = "D30_Artillery_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"D30_Artillery_Static_kit",1}};
};
class SearchLight_INS;
class SearchLight_Static_DZ: SearchLight_INS {
side = 1;
faction = "USMC";
offset[] = {0,3,0};
GhostPreview = "SearchLight_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"SearchLight_Static_kit",1}};
};
class M252;
class M252_Mortar_Static_DZ: M252 {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "M252_Mortar_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"M252_Mortar_Static_kit",1}};
};
class 2b14_82mm;
class 2b14_82mm_Mortar_Static_DZ: 2b14_82mm {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "2b14_82mm_Mortar_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"2b14_82mm_Mortar_Static_kit",1}};
};
class Metis;
class Metis_Launcher_Static_DZ: Metis {
side = 1;
faction = "USMC";
offset[] = {0,3,1};
GhostPreview = "Metis_Launcher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"Metis_Launcher_Static_kit",1}};
};
class SPG9_Gue;
class SPG9_Launcher_Static_DZ: SPG9_Gue {
side = 1;
faction = "USMC";
offset[] = {0,3,0};
GhostPreview = "SPG9_Launcher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"SPG9_Launcher_Static_kit",1}};
};
class Stinger_Pod;
class Stinger_Tripod_Launcher_Static_DZ: Stinger_Pod {
side = 1;
faction = "USMC";
offset[] = {0,3,0};
GhostPreview = "Stinger_Tripod_Launcher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"Stinger_Tripod_Launcher_Static_kit",1}};
};
class TOW_TriPod;
class TOW_Tripod_Launcher_Static_DZ: TOW_TriPod {
side = 1;
faction = "USMC";
offset[] = {0,3,2};
GhostPreview = "TOW_Tripod_Launcher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"TOW_Tripod_Launcher_Static_kit",1}};
};
class Stinger_Pod_base;
class Rbs70_ACR: Stinger_Pod_base {
class AssembleInfo;
};
class Rbs70_Launcher_Static_DZ: Rbs70_ACR {
side = 1;
faction = "USMC";
class AssembleInfo : AssembleInfo {
dissasembleTo[] = {};
};
offset[] = {0,3,4};
GhostPreview = "Rbs70_Launcher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"Rbs70_Launcher_Static_kit",1}};
};
class Igla_AA_pod_East;
class Igla_AntiAir_Launcher_Static_DZ: Igla_AA_pod_East {
side = 1;
faction = "USMC";
offset[] = {0,3,2};
GhostPreview = "Igla_AntiAir_Launcher_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"Igla_AntiAir_Launcher_Static_kit",1}};
};
class ZU23_Ins;
class ZU23_AntiAir_Static_DZ: ZU23_Ins {
side = 1;
faction = "USMC";
offset[] = {0,3,2};
GhostPreview = "ZU23_AntiAir_Static_DZ";
vehicleClass = "DayZ Epoch Static Weapons";
removeoutput[] = {{"ZU23_AntiAir_Static_kit",1}};
};

View File

@@ -622,7 +622,6 @@ class CfgVehicles
#include "Zeds\WildZeds.hpp" //Wild type zeds
#include "Zeds\SwarmZeds.hpp" //Swarm type zeds
#include "Zeds\PlayerZeds.hpp" //Player type zeds
#include "Zeds\Bloodsuckers.hpp" //NS Bloodsuckers
//Skins
#include "Skins\Male.hpp"
#include "Skins\Female.hpp"
@@ -781,7 +780,6 @@ class CfgVehicles
#include "Buildables\Sandbags.hpp"
#include "Buildables\Billboards.hpp"
#include "Buildables\Misc.hpp"
#include "Buildables\StaticWeapons.hpp"
//Loot Container
#include "LootContainer\AmmoCrates.hpp"

View File

@@ -1,134 +0,0 @@
class z_bloodsucker : Zed_Base {
scope = 2;
glassesEnabled = 0;
vehicleClass = "Zombie";
displayName = $STR_ZNAME_BLOODSUCKER;
model = "\nst\NS_mutants\blood\bloodsucker.p3d";
hiddenSelections[] = {"invisible"};
//hiddenSelectionsTextures[] = {};
fsmDanger = "";
fsmFormation = "";
//zombieLoot = "bloodsucker";
moves = "CfgMovesBloodsucker";
isMan = false;
weapons[] = {};
magazines[] = {};
sensitivity = 1; // sensor sensitivity
sensitivityEar = 1;
identityTypes[] = {};
class TalkTopics {};
languages[] = {};
armor = 46;
damageScale = 250;
sepsisChance = 0;
BleedChance = 10; // Maybe this should be higher
forcedSpeed = 6; // Left here to prevent errors in player_zombieCheck
class Eventhandlers {
init = "[(_this select 0)] execFSM ""\z\AddOns\dayz_code\system\mutant_agent.fsm""";
local = "_z = _this select 0; if (!(_this select 1)) exitWith {}; if (isServer) exitWith { _z call sched_co_deleteVehicle; }; [_z,true] execFSM '\z\AddOns\dayz_code\system\mutant_agent.fsm';";
//HandleDamage = "_this call local_zombieDamage;";
//Killed = "[_this,'zombieKills'] call local_eventKill;";
};
class UserActions
{
class Butcher
{
displayName = $STR_EPOCH_ACTIONS_GUTBLOOD;
displayNameDefault = $STR_EPOCH_ACTIONS_GUTBLOOD;
priority = 0;
radius = 3;
position = "";
showWindow = 1;
onlyForPlayer = 1;
shortcut = "";
condition = "(['Butcher',this] call userActionConditions)";
statement = "this spawn player_butcher;";
};
};
class HitPoints {
class HitHead {
armor = 10;
material = -1;
name = "head_hit";
passThrough = true;
memoryPoint = "pilot";
};
class HitBody : HitHead {
armor = 20;
name = "body";
memoryPoint = "aimPoint";
};
class HitSpine : HitHead {
armor = 10;
name = "Spine2";
memoryPoint = "aimPoint";
};
class HitHands : HitHead {
armor = 10;
material = -1;
name = "hands";
passThrough = true;
};
class HitLArm : HitHands {
name = "LeftArm";
memoryPoint = "lelbow";
};
class HitRArm : HitHands {
name = "RightArm";
memoryPoint = "relbow";
};
class HitLForeArm : HitHands {
name = "LeftForeArm";
memoryPoint = "lwrist";
};
class HitRForeArm : HitHands {
name = "RightForeArm";
memoryPoint = "rwrist";
};
class HitLHand : HitHands {
name = "LeftHand";
memoryPoint = "LeftHandMiddle1";
};
class HitRHand : HitHands {
name = "RightHand";
memoryPoint = "RightHandMiddle1";
};
class HitLegs : HitHands {
name = "legs";
memoryPoint = "pelvis";
};
class HitLLeg : HitHands {
name = "LeftLeg";
memoryPoint = "lknee";
};
class HitLLegUp : HitHands {
name = "LeftUpLeg";
memoryPoint = "lfemur";
};
class HitRLeg : HitHands {
name = "RightLeg";
memoryPoint = "rknee";
};
class HitRLegUp : HitHands {
name = "RightUpLeg";
memoryPoint = "rfemur";
};
};
};

View File

@@ -346,10 +346,9 @@ class CfgWeapons
#include "Tools\Scissors.hpp"
#include "Tools\ScrewExtractor.hpp"
#include "Tools\Wrench.hpp"
#include "Tools\MutantHeart.hpp"
#include "Item\ItemKeys.hpp"
#include "Item\Documents.hpp"
#include "VehicleWeapons.hpp"
#include "VehicleWeapons.hpp"
};

View File

@@ -1,24 +1,3 @@
#define G3_ACOG modelOptics = "\Ca\weapons_E\SCAR\ACOG_TA31_optic_4x.p3d";\
class OpticsModes\
{\
class ACOG\
{\
opticsID = 1;\
useModelOptics = true;\
opticsFlare = true;\
opticsDisablePeripherialVision = true;\
opticsZoomMin = 0.0623;\
opticsZoomMax = 0.0623;\
opticsZoomInit = 0.0623;\
distanceZoomMin = 300;\
distanceZoomMax = 300;\
memoryPointCamera = "opticView";\
visionMode[] = {"Normal"};\
opticsPPEffects[] = {"OpticsCHAbera3","OpticsBlur3"};\
cameraDir = "";\
};\
}
class G3_DZ: FNFAL_DZ
{
scope = 2;
@@ -31,30 +10,30 @@ class G3_DZ: FNFAL_DZ
fireLightDuration = 0.000;
fireLightIntensity = 0.000;
drySound[] = {"Ca\sounds\Weapons\rifles\dry",db-50,1,10};
reloadMagazineSound[] = {"\C1987_G3\sound\G3_Reload.wss",0.056234,1,20};
reloadMagazineSound[] = {"ca\sounds\weapons\rifles\reload-m16-3",db-25,1,25};
distanceZoomMin = 50;
distanceZoomMax = 50;
handAnim[] = {"OFP2_ManSkeleton"};
modes[] = {Single, FullAuto};
class Single : Mode_SemiAuto
{
begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
soundBegin[] = {"begin1",1};
begin1[] = {"rh_mgswp\sound\scarAk", db5, 1,1000};
soundBegin[] = {begin1,1};
reloadTime = 0.07;
recoil = "recoil_single_primary_3outof10";
recoilProne = "recoil_single_primary_prone_3outof10";
dispersion = 0.003;
minRange = 2;
minRangeProbab = 0.25;
midRange = 200;
midRange = 20;
midRangeProbab = 0.7;
maxRange = 500;
maxRange = 50;
maxRangeProbab = 0.05;
};
class FullAuto : Mode_FullAuto
{
begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
soundBegin[] = {"begin1",1};
begin1[] = {"rh_mgswp\sound\scarAk", db5, 1,1000};
soundBegin[] = {begin1,1};
soundContinuous = 0;
reloadTime = 0.1;
ffCount = 1;
@@ -64,142 +43,10 @@ class G3_DZ: FNFAL_DZ
dispersion = 0.003; //0.007;
minRange = 0;
minRangeProbab = 0.20;
midRange = 150;
midRange = 7;
midRangeProbab = 0.7;
maxRange = 400;
maxRange = 15;
maxRangeProbab = 0.05;
};
class Attachments {};
};
class G3A3_DZ: G3_DZ
{
displayName = $STR_DZ_WPN_G3A3_NAME;
model = "\C1987_G3\g3.p3d";
picture = "\C1987_G3\equip\g3.paa";
class Attachments
{
Attachment_CCO = "G3A3_CCO_DZ";
Attachment_Holo = "G3A3_HOLO_DZ";
Attachment_ACOG = "G3A3_ACOG_DZ";
};
};
class G3A3_CCO_DZ: G3A3_DZ
{
displayName = $STR_DZ_WPN_G3A3_CCO_NAME;
model = "\C1987_G3\g3_aimshot.p3d";
picture = "\C1987_G3\equip\g3_aim.paa";
class Attachments {};
class ItemActions
{
class RemoveCCO
{
text = $STR_DZ_ATT_CCO_RMVE;
script = "; ['Attachment_CCO',_id,'G3A3_DZ'] call player_removeAttachment";
};
};
};
class G3A3_Holo_DZ: G3A3_DZ
{
displayName = $STR_DZ_WPN_G3A3_HOLO_NAME;
model = "\C1987_G3\g3_eotech.p3d";
picture = "\C1987_G3\equip\g3_eotech.paa";
class Attachments {};
class ItemActions
{
class RemoveHolo
{
text = $STR_DZ_ATT_HOLO_RMVE;
script = "; ['Attachment_Holo',_id,'G3A3_DZ'] call player_removeAttachment";
};
};
};
class G3A3_ACOG_DZ: G3A3_DZ
{
displayName = $STR_DZ_WPN_G3A3_ACOG_NAME;
model = "\C1987_G3\g3_acog.p3d";
picture = "\C1987_G3\equip\g3_acog.paa";
class Attachments {};
G3_ACOG;
class ItemActions
{
class RemoveACOG
{
text = $STR_DZ_ATT_ACOG_RMVE;
script = "; ['Attachment_ACOG',_id,'G3A3_DZ'] call player_removeAttachment";
};
};
};
class G3_SG1_DZ: G3A3_DZ
{
displayName = $STR_DZ_WPN_G3_SG1_NAME;
model = "\C1987_G3\g3sg1.p3d";
picture = "\C1987_G3\equip\g3sg1.paa";
modelOptics = "\ca\weapons\2Dscope_MilDot_10";
opticsPPEffects[] = {"OpticsCHAbera1","OpticsBlur1"};
opticsZoomMin = 0.029624;
opticsZoomMax = 0.09222;
opticsZoomInit = 0.09222;
distanceZoomMin = 329;
distanceZoomMax = 329;
optics = 1;
class Single : Mode_SemiAuto
{
begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
soundBegin[] = {"begin1",1};
reloadTime = 0.07;
recoil = "recoil_single_primary_3outof10";
recoilProne = "recoil_single_primary_prone_3outof10";
dispersion = 0.003;
minRange = 2;
minRangeProbab = 0.25;
midRange = 400;
midRangeProbab = 0.7;
maxRange = 800;
maxRangeProbab = 0.05;
};
class FullAuto : Mode_FullAuto
{
begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
soundBegin[] = {"begin1",1};
soundContinuous = 0;
reloadTime = 0.1;
ffCount = 1;
recoil = "recoil_auto_primary_3outof10";
recoilProne = "recoil_auto_primary_prone_3outof10";
aiRateOfFire = 0.001;
dispersion = 0.003; //0.007;
minRange = 0;
minRangeProbab = 0.20;
midRange = 350;
midRangeProbab = 0.7;
maxRange = 700;
maxRangeProbab = 0.05;
};
class Attachments {};
};
class G3_SG1_Bipod_DZ: G3_SG1_DZ
{
displayName = $STR_DZ_WPN_G3_SG1_BIPOD_NAME;
model = "\C1987_G3\g3sg1_bipod.p3d";
picture = "\C1987_G3\equip\g3sg1_bipod.paa";
class Single : Single
{
recoilProne = "recoil_single_primary_prone_1outof10";
};
class FullAuto : FullAuto
{
recoilProne = "recoil_auto_primary_prone_2outof10";
};
};
#undef G3_ACOG
};

View File

@@ -172,26 +172,6 @@ class SVD_Gold_DZ : SVD_PSO1_DZ {
model = "\RH_aks\RH_svdg.p3d";
picture = "\RH_aks\inv\svdg.paa";
class OpticsModes {
class Scope {
discreteDistance[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
discreteDistanceInitIndex = 2;
cameraDir = "";
distanceZoomMax = 300;
distanceZoomMin = 300;
memoryPointCamera = "opticView";
opticsDisablePeripherialVision = 1;
opticsFlare = 1;
opticsID = 1;
opticsPPEffects[] = {"OpticsCHAbera3", "OpticsBlur3"};
opticsZoomInit = 0.0623;
opticsZoomMax = 0.0623;
opticsZoomMin = 0.0623;
useModelOptics = 1;
visionMode[] = {"Normal"};
};
};
class ItemActions {};
class Attachments {};
};

View File

@@ -8,24 +8,4 @@ class SVU_PSO1_DZ: SVD_PSO1_DZ {
magazines[] = {"10Rnd_762x54_SVD"};
class ItemActions {};
class Attachments {};
class OpticsModes {
class Scope {
discreteDistance[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
discreteDistanceInitIndex = 2;
cameraDir = "";
distanceZoomMax = 300;
distanceZoomMin = 300;
memoryPointCamera = "opticView";
opticsDisablePeripherialVision = 1;
opticsFlare = 1;
opticsID = 1;
opticsPPEffects[] = {"OpticsCHAbera3", "OpticsBlur3"};
opticsZoomInit = 0.0623;
opticsZoomMax = 0.0623;
opticsZoomMin = 0.0623;
useModelOptics = 1;
visionMode[] = {"Normal"};
};
};
};

View File

@@ -1,7 +0,0 @@
class ItemMutantHeart: ItemCore
{
scope = 2;
displayName = $STR_MUTANT_HEART;
picture = "\nst\ns_mutants\blood\heart_icon_ca.paa";
descriptionShort = $STR_MUTANT_HEART_DESC;
};

View File

@@ -931,24 +931,4 @@ class RscTitles
};
};
};
class mutant_attack
{
idd=-1;
movingEnable=0;
duration=1;
fadein=0;
name="Skrabanec";
controls[]=
{
"skrabanec"
};
class skrabanec: RscPicture
{
x=0;
y=0;
w=1;
h=1;
text="\nst\textures\skrabanec.paa";
};
};
};

View File

@@ -1,304 +0,0 @@
class rv_RscText {
idc = -1;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
type = 0;
style = 0;
shadow = 2;
colorShadow[] = {0, 0, 0, 0.5};
font = "Zeppelin32";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
colorText[] = {1, 1, 1, 1.0};
colorBackground[] = {0, 0, 0, 0};
linespacing = 1;
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
};
class rv_RscTitle : rv_RscText {
idc = -1;
style = 0;
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {0.95, 0.95, 0.95, 1};
};
class rv_RscShortcutButton {
idc = -1;
style = 0;
default = 0;
shadow = 2;
w = 0.183825;
h = "((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
color[] = {1,1,1,1.0};
colorFocused[] = {1,1,1,1.0};
color2[] = {0.95,0.95,0.95,1};
colorDisabled[] = {1,1,1,0.25};
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
colorBackground2[] = {1,1,1,1};
animTextureDefault = "gza\scripts\gold\gui\normal_ca.paa";
animTextureNormal = "gza\scripts\gold\gui\normal_ca.paa";
animTextureDisabled = "gza\scripts\gold\gui\normal_ca.paa";
animTextureOver = "gza\scripts\gold\gui\over_ca.paa";
animTextureFocused = "gza\scripts\gold\gui\focus_ca.paa";
animTexturePressed = "gza\scripts\gold\gui\down_ca.paa";
periodFocus = 1.2;
periodOver = 0.8;
class HitZone {
left = 0.0;
top = 0.0;
right = 0.0;
bottom = 0.0;
};
class ShortcutPos {
left = 0;
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class TextPos {
left = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0.0;
};
period = 0.4;
font = "Zeppelin32";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
action = "";
class Attributes {
font = "Zeppelin32";
color = "#E5E5E5";
align = "left";
shadow = 1;
};
class AttributesImage {
font = "Zeppelin32";
color = "#E5E5E5";
align = "left";
};
soundPush[] = { "", 0, 1 };
soundEnter[] ={ "", 0, 1 };
soundClick[] ={ "", 0, 1 };
soundEscape[] ={ "", 0, 1 };
sound[] ={ "", 0, 1 };
};
class rv_RscButtonMenu : rv_RscShortcutButton {
idc = -1;
type = 16;
style = "0x02 + 0xC0";
default = 0;
shadow = 0;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
colorBackground[] = {0,0,0,0.8};
colorBackgroundFocused[] = {1,1,1,1};
colorBackground2[] = {0.75,0.75,0.75,1};
color[] = {1,1,1,1};
colorFocused[] = {0,0,0,1};
color2[] = {0,0,0,1};
colorText[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.25};
period = 1.2;
periodFocus = 1.2;
periodOver = 1.2;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
class TextPos {
left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0.0;
};
class Attributes {
font = "Zeppelin32";
color = "#E5E5E5";
align = "center";
shadow = 0;
};
class ShortcutPos {
left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
top = 0.005;
w = 0.0225;
h = 0.03;
};
textureNoShortcut = "";
};
class rv_RscListBox {
style = 16;
idc = -1;
type = 5;
w = 0.275;
h = 0.04;
font = "Zeppelin32";
colorSelect[] = {0.11,0.686,0.831,1};
colorText[] = {1, 1, 1, 1};
colorBackground[] = {0.28,0.28,0.28,0.28};
colorSelect2[] = {1, 1, 1, 1};
colorSelectBackground[] = {0.95, 0.95, 0.95, 0.5};
colorSelectBackground2[] = {1, 1, 1, 0.5};
colorScrollbar[] = {0.2, 0.2, 0.2, 1};
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
wholeHeight = 0.45;
rowHeight = 0.04;
color[] = {0.7, 0.7, 0.7, 1};
colorActive[] = {0,0,0,1};
colorDisabled[] = {0,0,0,0.3};
sizeEx = 0.023;
maxHistoryDelay = 1;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
class ScrollBar {
color[] = {1, 1, 1, 0.6};
colorActive[] = {1, 1, 1, 1};
colorDisabled[] = {1, 1, 1, 0.3};
thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa";
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
border = "\ca\ui\data\igui_border_scroll_ca.paa";
};
soundPush[] = { "", 0, 1 };
soundEnter[] ={ "", 0, 1 };
soundClick[] ={ "", 0, 1 };
soundEscape[] ={ "", 0, 1 };
sound[] ={ "", 0, 1 };
soundSelect[] = { "", 0, 1 };
};
class rv_RscStructuredText {
type = 13;
style = 0;
x = 0;
y = 0;
h = 0.035;
w = 0.1;
text = "";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {1, 1, 1, 1.0};
shadow = 1;
class Attributes {
font = "Zeppelin32";
color = "#ffffff";
align = "left";
shadow = 1;
};
};
class remoteVehicle {
idd = 8800;
name="remoteVehicle";
onLoad = "uiNamespace setVariable ['rv_dialog', _this select 0]";
movingEnabled = 0;
enableSimulation = 1;
class controlsBackground {
class rv_RscTitleBackground : rv_RscText {
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
idc = -1;
x = 0.1;
y = 0.2;
w = 0.8;
h = (1 / 25);
};
class MainBackground : rv_RscText {
colorBackground[] = {0,0,0,0.7};
idc = -1;
x = 0.1;
y = 0.2 + (11 / 250);
w = 0.8;
h = 0.7 - (22 / 250);
};
class VehicleInfoHeader : rv_RscText {
idc = 8830;
text = $STR_CL_RV_VEHICLE_INFO;
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
x = 0.47; y = 0.26;
w = 0.42;
h = (1 / 25);
};
class CloseBtn : rv_RscButtonMenu {
idc = -1;
text = $STR_UI_CLOSE;
onButtonClick = "closeDialog 2;";
x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 40);
h = (1 / 25);
};
};
class controls {
class Title : rv_RscTitle {
idc = 8801;
text = "";
x = 0.1;
y = 0.2;
w = 0.8;
h = (1 / 25);
};
class VehicleList : rv_RscListBox {
idc = 8802;
text = "";
sizeEx = 0.04;
colorBackground[] = {0.1,0.1,0.1,0.9};
onLBSelChanged = "[_this] call rv_vehicleInfo;";
x = 0.11; y = 0.302;
w = 0.35; h = 0.49;
};
class VehicleTitleBox : rv_RscText {
idc = 8804;
text = $STR_CL_RV_VEHICLE_LIST;
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
x = 0.11; y = 0.26;
w = 0.35;
h = (1 / 25);
};
class selectVehicle : rv_RscButtonMenu {
idc = 8850;
text = $STR_CL_RV_SELECT_VEHICLE;
onButtonClick = "rv_isOk = true;closeDialog 0;";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 20);
h = (1 / 25);
};
class vehicleInfomationList : rv_RscStructuredText {
idc = 8803;
text = "";
sizeEx = 0.035;
x = 0.47; y = 0.3;
w = 0.41; h = 0.5;
};
};
};

View File

@@ -1,315 +0,0 @@
class vkc_RscText {
idc = -1;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
type = 0;
style = 0;
shadow = 2;
colorShadow[] = {0, 0, 0, 0.5};
font = "Zeppelin32";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
colorText[] = {1, 1, 1, 1.0};
colorBackground[] = {0, 0, 0, 0};
linespacing = 1;
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
};
class vkc_RscTitle : vkc_RscText {
idc = -1;
style = 0;
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {0.95, 0.95, 0.95, 1};
};
class vkc_RscShortcutButton {
idc = -1;
style = 0;
default = 0;
shadow = 2;
w = 0.183825;
h = "((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
color[] = {1,1,1,1.0};
colorFocused[] = {1,1,1,1.0};
color2[] = {0.95,0.95,0.95,1};
colorDisabled[] = {1,1,1,0.25};
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
colorBackground2[] = {1,1,1,1};
animTextureDefault = "gza\scripts\gold\gui\normal_ca.paa";
animTextureNormal = "gza\scripts\gold\gui\normal_ca.paa";
animTextureDisabled = "gza\scripts\gold\gui\normal_ca.paa";
animTextureOver = "gza\scripts\gold\gui\over_ca.paa";
animTextureFocused = "gza\scripts\gold\gui\focus_ca.paa";
animTexturePressed = "gza\scripts\gold\gui\down_ca.paa";
periodFocus = 1.2;
periodOver = 0.8;
class HitZone {
left = 0.0;
top = 0.0;
right = 0.0;
bottom = 0.0;
};
class ShortcutPos {
left = 0;
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class TextPos {
left = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0.0;
};
period = 0.4;
font = "Zeppelin32";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
action = "";
class Attributes {
font = "Zeppelin32";
color = "#E5E5E5";
align = "left";
shadow = 1;
};
class AttributesImage {
font = "Zeppelin32";
color = "#E5E5E5";
align = "left";
};
soundPush[] = { "", 0, 1 };
soundEnter[] ={ "", 0, 1 };
soundClick[] ={ "", 0, 1 };
soundEscape[] ={ "", 0, 1 };
sound[] ={ "", 0, 1 };
};
class vkc_RscButtonMenu : vkc_RscShortcutButton {
idc = -1;
type = 16;
style = "0x02 + 0xC0";
default = 0;
shadow = 0;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
colorBackground[] = {0,0,0,0.8};
colorBackgroundFocused[] = {1,1,1,1};
colorBackground2[] = {0.75,0.75,0.75,1};
color[] = {1,1,1,1};
colorFocused[] = {0,0,0,1};
color2[] = {0,0,0,1};
colorText[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.25};
period = 1.2;
periodFocus = 1.2;
periodOver = 1.2;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
class TextPos {
left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0.0;
};
class Attributes {
font = "Zeppelin32";
color = "#E5E5E5";
align = "center";
shadow = 0;
};
class ShortcutPos {
left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
top = 0.005;
w = 0.0225;
h = 0.03;
};
textureNoShortcut = "";
};
class vkc_RscListBox {
style = 16;
idc = -1;
type = 5;
w = 0.275;
h = 0.04;
font = "Zeppelin32";
colorSelect[] = {0.11,0.686,0.831,1};
colorText[] = {1, 1, 1, 1};
colorBackground[] = {0.28,0.28,0.28,0.28};
colorSelect2[] = {1, 1, 1, 1};
colorSelectBackground[] = {0.95, 0.95, 0.95, 0.5};
colorSelectBackground2[] = {1, 1, 1, 0.5};
colorScrollbar[] = {0.2, 0.2, 0.2, 1};
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
wholeHeight = 0.45;
rowHeight = 0.04;
color[] = {0.7, 0.7, 0.7, 1};
colorActive[] = {0,0,0,1};
colorDisabled[] = {0,0,0,0.3};
sizeEx = 0.023;
maxHistoryDelay = 1;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
class ScrollBar {
color[] = {1, 1, 1, 0.6};
colorActive[] = {1, 1, 1, 1};
colorDisabled[] = {1, 1, 1, 0.3};
thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa";
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
border = "\ca\ui\data\igui_border_scroll_ca.paa";
};
soundPush[] = { "", 0, 1 };
soundEnter[] ={ "", 0, 1 };
soundClick[] ={ "", 0, 1 };
soundEscape[] ={ "", 0, 1 };
sound[] ={ "", 0, 1 };
soundSelect[] = { "", 0, 1 };
};
class vkc_RscStructuredText {
type = 13;
style = 0;
x = 0;
y = 0;
h = 0.035;
w = 0.1;
text = "";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {1, 1, 1, 1.0};
shadow = 1;
class Attributes {
font = "Zeppelin32";
color = "#ffffff";
align = "left";
shadow = 1;
};
};
class vkc {
idd = 4800;
name="vkc";
onload = "player setVariable['isBusy',true,true];";
onUnload = "player setVariable['isBusy',false,true];";
movingEnabled = 0;
enableSimulation = 1;
class controlsBackground {
class vkc_RscTitleBackground : vkc_RscText {
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
idc = -1;
x = 0.1;
y = 0.2;
w = 0.8;
h = (1 / 25);
};
class MainBackground : vkc_RscText {
colorBackground[] = {0,0,0,0.7};
idc = -1;
x = 0.1;
y = 0.2 + (11 / 250);
w = 0.8;
h = 0.7 - (22 / 250);
};
class Title : vkc_RscTitle {
idc = 4801;
text = $STR_CL_VKC_TITLE;
x = 0.1;
y = 0.2;
w = 0.8;
h = (1 / 25);
};
class VehicleInfoHeader : vkc_RscText {
idc = 4830;
text = $STR_CL_VKC_INFO;
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
x = 0.47; y = 0.26;
w = 0.42;
h = (1 / 25);
};
class CloseBtn : vkc_RscButtonMenu {
idc = -1;
text = $STR_UI_CLOSE;
onButtonClick = "closeDialog 2;";
x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 40);
h = (1 / 25);
};
};
class controls {
class VehicleList : vkc_RscListBox {
idc = 4802;
text = "";
sizeEx = 0.04;
colorBackground[] = {0.1,0.1,0.1,0.9};
onLBSelChanged = "vkc_charID = (vkc_keyList select 0) select (lbCurSel 4802);vkc_keyName = (vkc_keyList select 1) select (lbCurSel 4802);";
x = 0.11; y = 0.302;
w = 0.35; h = 0.49;
};
class VehicleTitleBox : vkc_RscText {
idc = 4804;
text = $STR_CL_VKC_KEYS;
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
x = 0.11; y = 0.26;
w = 0.35;
h = (1 / 25);
};
class claimVehicle : vkc_RscButtonMenu {
idc = 4850;
text = $STR_CL_VKC_CLAIM;
onButtonClick = "vkc_isOk = true;closeDialog 0;";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 20);
h = (1 / 25);
};
class changeKey : vkc_RscButtonMenu {
idc = 4851;
text = $STR_CL_VKC_CHANGE;
onButtonClick = "vkc_isOk = true;closeDialog 0;";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 20);
h = (1 / 25);
};
class vehicleInfomationList : vkc_RscStructuredText {
idc = 4803;
text = "";
sizeEx = 0.035;
x = 0.47; y = 0.3;
w = 0.41; h = 0.5;
};
};
};

View File

@@ -1,367 +0,0 @@
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
// Rewritten by salival (https://github.com/oiad)
class vg_RscText {
idc = -1;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
type = 0;
style = 0;
shadow = 2;
colorShadow[] = {0, 0, 0, 0.5};
font = "Zeppelin32";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
colorText[] = {1, 1, 1, 1.0};
colorBackground[] = {0, 0, 0, 0};
linespacing = 1;
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
};
class vg_RscTitle : vg_RscText {
idc = -1;
style = 0;
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {0.95, 0.95, 0.95, 1};
};
class vg_RscShortcutButton {
idc = -1;
style = 0;
default = 0;
shadow = 2;
w = 0.183825;
h = "((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
color[] = {1,1,1,1.0};
colorFocused[] = {1,1,1,1.0};
color2[] = {0.95,0.95,0.95,1};
colorDisabled[] = {1,1,1,0.25};
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
colorBackground2[] = {1,1,1,1};
animTextureDefault = "gza\scripts\gold\gui\normal_ca.paa";
animTextureNormal = "gza\scripts\gold\gui\normal_ca.paa";
animTextureDisabled = "gza\scripts\gold\gui\normal_ca.paa";
animTextureOver = "gza\scripts\gold\gui\over_ca.paa";
animTextureFocused = "gza\scripts\gold\gui\focus_ca.paa";
animTexturePressed = "gza\scripts\gold\gui\down_ca.paa";
periodFocus = 1.2;
periodOver = 0.8;
class HitZone {
left = 0.0;
top = 0.0;
right = 0.0;
bottom = 0.0;
};
class ShortcutPos {
left = 0;
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class TextPos {
left = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0.0;
};
period = 0.4;
font = "Zeppelin32";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
action = "";
class Attributes {
font = "Zeppelin32";
color = "#E5E5E5";
align = "left";
shadow = 1;
};
class AttributesImage {
font = "Zeppelin32";
color = "#E5E5E5";
align = "left";
};
soundPush[] = { "", 0, 1 };
soundEnter[] ={ "", 0, 1 };
soundClick[] ={ "", 0, 1 };
soundEscape[] ={ "", 0, 1 };
sound[] ={ "", 0, 1 };
};
class vg_RscButtonMenu : vg_RscShortcutButton {
idc = -1;
type = 16;
style = "0x02 + 0xC0";
default = 0;
shadow = 0;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
colorBackground[] = {0,0,0,0.8};
colorBackgroundFocused[] = {1,1,1,1};
colorBackground2[] = {0.75,0.75,0.75,1};
color[] = {1,1,1,1};
colorFocused[] = {0,0,0,1};
color2[] = {0,0,0,1};
colorText[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.25};
period = 1.2;
periodFocus = 1.2;
periodOver = 1.2;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
class TextPos {
left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0.0;
};
class Attributes {
font = "Zeppelin32";
color = "#E5E5E5";
align = "center";
shadow = 0;
};
class ShortcutPos {
left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
top = 0.005;
w = 0.0225;
h = 0.03;
};
textureNoShortcut = "";
};
class vg_RscListBox {
style = 16;
idc = -1;
type = 5;
w = 0.275;
h = 0.04;
font = "Zeppelin32";
colorSelect[] = {0.11,0.686,0.831,1};
colorText[] = {1, 1, 1, 1};
colorBackground[] = {0.28,0.28,0.28,0.28};
colorSelect2[] = {1, 1, 1, 1};
colorSelectBackground[] = {0.95, 0.95, 0.95, 0.5};
colorSelectBackground2[] = {1, 1, 1, 0.5};
colorScrollbar[] = {0.2, 0.2, 0.2, 1};
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
wholeHeight = 0.45;
rowHeight = 0.04;
color[] = {0.7, 0.7, 0.7, 1};
colorActive[] = {0,0,0,1};
colorDisabled[] = {0,0,0,0.3};
sizeEx = 0.023;
maxHistoryDelay = 1;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
tooltipColorText[] = {1,1,1,1};
tooltipColorBox[] = {1,1,1,1};
tooltipColorShade[] = {0,0,0,0.65};
class ScrollBar {
color[] = {1, 1, 1, 0.6};
colorActive[] = {1, 1, 1, 1};
colorDisabled[] = {1, 1, 1, 0.3};
thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa";
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
border = "\ca\ui\data\igui_border_scroll_ca.paa";
};
soundPush[] = { "", 0, 1 };
soundEnter[] ={ "", 0, 1 };
soundClick[] ={ "", 0, 1 };
soundEscape[] ={ "", 0, 1 };
sound[] ={ "", 0, 1 };
soundSelect[] = { "", 0, 1 };
};
class vg_RscStructuredText {
type = 13;
style = 0;
x = 0;
y = 0;
h = 0.035;
w = 0.1;
text = "";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {1, 1, 1, 1.0};
shadow = 1;
class Attributes {
font = "Zeppelin32";
color = "#ffffff";
align = "left";
shadow = 1;
};
};
class virtualGarage {
idd = 2800;
name="virtualGarage";
onload = "player setVariable['isBusy',true,true]; [] spawn vg_maintainSetText;";
onUnload = "player setVariable['isBusy',false,true];dayz_actionInProgress = false;";
movingEnabled = 0;
enableSimulation = 1;
class controlsBackground {
class vg_RscTitleBackground : vg_RscText {
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
idc = -1;
x = 0.1;
y = 0.2;
w = 0.8;
h = (1 / 25);
};
class MainBackground : vg_RscText {
colorBackground[] = {0,0,0,0.7};
idc = -1;
x = 0.1;
y = 0.2 + (11 / 250);
w = 0.8;
h = 0.7 - (22 / 250);
};
class Title : vg_RscTitle {
idc = 2801;
text = $STR_CL_VG_VIRTUAL_GARAGE;
x = 0.1;
y = 0.2;
w = 0.8;
h = (1 / 25);
};
class VehicleInfoHeader : vg_RscText {
idc = 2830;
text = $STR_CL_VG_VEHICLE_INFO;
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
x = 0.47; y = 0.26;
w = 0.42;
h = (1 / 25);
};
class CloseBtn : vg_RscButtonMenu {
idc = -1;
text = $STR_UI_CLOSE;
onButtonClick = "closeDialog 2;";
x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 40);
h = (1 / 25);
};
};
class controls {
class VehicleList : vg_RscListBox {
idc = 2802;
text = "";
sizeEx = 0.04;
colorBackground[] = {0.1,0.1,0.1,0.9};
onLBSelChanged = "[_this] call vehicleInfo;";
x = 0.11; y = 0.302;
w = 0.35; h = 0.49;
};
class VehicleTitleBox : vg_RscText {
idc = 2804;
text = "";
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
x = 0.11; y = 0.26;
w = 0.35;
h = (1 / 25);
};
class storeVehicle : vg_RscButtonMenu {
idc = 2850;
text = $STR_CL_VG_STORE_VEHICLE;
onButtonClick = "if (!vg_hasRun) then {vg_hasRun = true;[true] spawn player_storeVehicle;};";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 36);
h = (1 / 25);
};
class storeVehicleGear : vg_RscButtonMenu {
idc = 2851;
text = $STR_CL_VG_STORE_VEHICLE_GEAR;
onButtonClick = "if (!vg_hasRun) then {vg_hasRun = true;[false] spawn player_storeVehicle;};";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 15.85);
h = (1 / 25);
};
class getVehicle : vg_RscButtonMenu {
idc = 2852;
text = $STR_CL_VG_GET_VEHICLE;
onButtonClick = "if (!vg_hasRun) then {vg_hasRun = true;[] spawn player_getVehicle;};";
x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = (6.25 / 20);
h = (1 / 25);
};
class removePad : vg_RscButtonMenu {
idc = 2853;
text = $STR_CL_VG_REMOVE_PAD;
onButtonClick = "call player_removePad;";
x = 0.5 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.9 - (1 / 25);
w = 0.241;
h = (1 / 25);
};
class MaintainGarage : vg_RscButtonMenu {
idc = 2854;
text = $STR_CL_VG_MAINTAIN_GARAGE;
onButtonClick = "if (!vg_hasRun) then {vg_hasRun = true;[] spawn Player_MaintainVG;};";
x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
y = 0.903;
w = 0.8;
h = (1 / 25);
};
class vehicleInfomationList : vg_RscStructuredText {
idc = 2803;
text = "";
sizeEx = 0.035;
x = 0.47; y = 0.3;
w = 0.41; h = 0.5;
};
class MainBackgroundHider : vg_RscText {
colorBackground[] = {0,0,0,1};
idc = 2810;
x = 0.1;
y = 0.2 + (11 / 250);
w = 0.8;
h = 0.7 - (22 / 250);
};
class MainHideText : vg_RscText {
idc = 2811;
text = $STR_CL_VG_SEARCH_VEHICLES;
sizeEx = 0.06;
x = 0.10;
y = 0.5;
w = 0.8;
h = (1 / 15);
};
};
};

File diff suppressed because it is too large Load Diff

View File

@@ -135,7 +135,6 @@ if (Z_SellingFrom == 2) then {
if (_type == "trade_weapons") then {_name = configFile >> "CfgWeapons" >> _name;};
if (_x select 0 == dayz_onBack) then {
dayz_onBack = ""; // Remove from back
player setVariable ["dayz_onBack",dayz_onBack,true];
_localResult = 1;
} else {
_localResult = [player,_name,1] call BIS_fnc_invRemove; // Use config for BIS_fnc_invRemove

View File

@@ -1,85 +0,0 @@
/*
Bury/Butcher body script by salival (https://github.com/oiad)
*/
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
private ["_action","_backPackMag","_backPackWpn","_crate","_corpse","_cross","_gain","_isBury","_grave","_name","_playerNear","_backPack","_position","_sound","_notOnRoad"];
_corpse = (_this select 3) select 0;
if (isNull _corpse) exitWith {dayz_actionInProgress = false; systemChat localize "str_cursorTargetNotFound";};
_playerNear = {isPlayer _x} count (([_corpse] call FNC_GetPos) nearEntities ["CAManBase", 10]) > 1;
if (_playerNear) exitWith {dayz_actionInProgress = false; localize "str_pickup_limit_5" call dayz_rollingMessages;};
_action = (_this select 3) select 1;
_notOnRoad = false; // Restrict burying/butchering on roads?
player removeAction s_player_bury_human;
s_player_bury_human = -1;
player removeAction s_player_butcher_human;
s_player_butcher_human = -1;
_position = getPosATL _corpse;
_isBury = _action == "bury";
if (_notOnRoad && {isOnRoad _position}) exitWith {dayz_actionInProgress = false; format[localize "STR_CL_BA_ROAD",if (_isBury) then {localize "STR_CL_BA_BURY1"} else {"STR_CL_BA_BUTCHER1"}] call dayz_rollingMessages;};
_finished = ["Medic",1] call fn_loopAction;
if (!_finished) exitWith {dayz_actionInProgress = false;localize "str_epoch_player_26" call dayz_rollingMessages;};
_corpse setVariable["isBuried",true,true];
_backPack = typeOf (unitBackPack _corpse);
_crate = createVehicle ["DZ_AmmoBoxSmallUS",_position,[],0,"CAN_COLLIDE"];
_crate setPosATL [(_position select 0)+1,(_position select 1)+1.5,_position select 2];
_crate setVariable ["permaLoot",true,true];
_crate setVariable ["bury",true,true];
_grave = createVehicle ["Grave",_position,[],0,"CAN_COLLIDE"];
_grave setPosATL [(_position select 0)+1,_position select 1,_position select 2];
_grave setVariable ["bury",true,true];
if (_isBury) then {
_name = _corpse getVariable["bodyName","unknown"];
_cross = createVehicle ["GraveCross1",_position,[],0,"CAN_COLLIDE"];
_cross setPosATL [(_position select 0)+1,(_position select 1)-1.2,_position select 2];
_cross setVariable ["bury",true,true];
};
{_crate addWeaponCargoGlobal [_x,1]} forEach weapons _corpse;
{_crate addMagazineCargoGlobal [_x,1]} forEach magazines _corpse;
if (_backPack != "") then {
_backPackWpn = getWeaponCargo unitBackpack _corpse;
_backPackMag = getMagazineCargo unitBackpack _corpse;
if (count _backPackWpn > 0) then {{_crate addWeaponCargoGlobal [_x,(_backPackWpn select 1) select _forEachIndex]} forEach (_backPackWpn select 0);};
if (count _backPackMag > 0) then {{_crate addMagazineCargoGlobal [_x,(_backPackMag select 1) select _forEachIndex]} forEach (_backPackMag select 0);};
_crate addBackpackCargoGlobal [_backPack,1];
};
_sound = _corpse getVariable ["sched_co_fliesSource",nil];
if (!isNil "_sound") then {
detach _sound;
deleteVehicle _sound;
};
deleteVehicle _corpse;
if (_isBury) then {
if (_name != "unknown") then {
format[localize "STR_CL_BA_RIP",_name] call dayz_rollingMessages;
} else {
localize "STR_CL_BA_RIP_UNKNOWN" call dayz_rollingMessages;
};
} else {
["knives",0.2] call fn_dynamicTool;
};
_gain = if (_isBury) then {DZE_Bury_Body_Value} else {DZE_Butcher_Body_Value};
_gain call player_humanityChange;
dayz_actionInProgress = false;

View File

@@ -1,70 +0,0 @@
/*
Garage door opener script by salival (https://github.com/oiad)
*/
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
private ["_door","_typeof","_state"];
_door = _this select 3;
_typeof = typeof _door;
_state = 5;
if (isNull _door) exitWith {dayz_actionInProgress = false; systemChat localize "str_cursorTargetNotFound";};
{DZE_myVehicle removeAction _x} count s_player_gdoor_opener;s_player_gdoor_opener = [];
s_player_gdoor_opener_ctrl = 1;
call {
if (_typeof in ["WoodenGate_1_DZ","WoodenGate_2_DZ","WoodenGate_3_DZ","WoodenGate_4_DZ"]) exitwith {
if (_door animationPhase "DoorR" == 0) then {
systemChat localize "STR_CL_GDO_DOOR_OPEN";
_door animate ["DoorR",1];
_door animate ["DoorL",1];
} else {
systemChat localize "STR_CL_GDO_DOOR_CLOSE";
_door animate ["DoorR",0];
_door animate ["DoorL",0];
_state = 4;
};
};
if (_typeof in ["CinderGarageOpenTopLocked_DZ","Land_DZE_WoodOpenTopGarageLocked"]) exitwith {
if (_door animationPhase "doorl" == 0) then {
systemChat localize "STR_CL_GDO_DOOR_OPEN";
_door animate ["doorR",1];
_door animate ["doorl",1];
} else {
systemChat localize "STR_CL_GDO_DOOR_CLOSE";
_door animate ["doorR",0];
_door animate ["doorl",0];
_state = 4;
};
};
if (_typeof in ["CinderGateLocked_DZ","Land_DZE_WoodGateLocked"]) exitwith {
if (_door animationPhase "Open_door" == 0) then {
systemChat localize "STR_CL_GDO_DOOR_OPEN";
_door animate ["Open_door",1];
_door animate ["Open_doorR",1];
} else {
systemChat localize "STR_CL_GDO_DOOR_CLOSE";
_door animate ["Open_door",0];
_door animate ["Open_doorR",0];
_state = 4;
};
};
if (_door animationPhase "Open_door" == 0) then {
systemChat localize "STR_CL_GDO_DOOR_OPEN";
_door animate ["Open_door",1];
} else {
systemChat localize "STR_CL_GDO_DOOR_CLOSE";
_door animate ["Open_door",0];
_state = 4;
};
};
PVDZE_handleSafeGear = [player,_door,_state,"DoorOpener"];
publicVariableServer "PVDZE_handleSafeGear";
s_player_gdoor_opener_ctrl = -1;
dayz_actionInProgress = false;

View File

@@ -1,27 +1,27 @@
private ["_item","_type","_hasHarvested","_knifeArray","_PlayerNear","_isListed","_activeKnife","_text","_qty","_string","_isZombie","_humanity","_finished"];
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
local _body = _this;
if (isNull _body) exitWith {dayz_actionInProgress = false; systemChat localize "str_cursorTargetNotFound";};
if (_body getVariable["meatHarvested",false]) exitWith {dayz_actionInProgress = false;}; // Exit the script if the meat has already been harvested.
if ({isPlayer _x} count ((getPosATL _body) nearEntities ["CAManBase", 12]) > 1) exitWith {dayz_actionInProgress = false;localize "str_pickup_limit_5" call dayz_rollingMessages;}; // Exit the script if another player is near to prevent duping.
_item = _this;
_type = typeOf _item;
_isZombie = _type isKindOf "zZombie_base";
_hasHarvested = _item getVariable["meatHarvested",false];
local _type = typeOf _body;
local _isZombie = _type isKindOf "zZombie_base";
local _isMutant = _type == "z_bloodsucker";
local _knives = [];
local _string = "";
_knifeArray = [];
// Count how many knives the player has
_PlayerNear = {isPlayer _x} count ((getPosATL _item) nearEntities ["CAManBase", 12]) > 1;
if (_PlayerNear) exitWith {localize "str_pickup_limit_5" call dayz_rollingMessages; dayz_actionInProgress = false;};
//Count how many active tools the player has
{
if (_x in items player) then {
_knives set [count _knives, _x];
if (_x IN items player) then {
_knifeArray set [count _knifeArray, _x];
};
} count Dayz_Gutting;
// Exit the script if the player doesn't have a knife
if ((count _knives) < 1) exitWith {
if (_isZombie || _isMutant) then {
if ((count _knifeArray) < 1) exitWith {
if (_isZombie) then {
format[localize "str_missing_to_do_this",localize "STR_EQUIP_NAME_4"] call dayz_rollingMessages;
} else {
localize "str_cannotgut" call dayz_rollingMessages;
@@ -29,48 +29,48 @@ if ((count _knives) < 1) exitWith {
dayz_actionInProgress = false;
};
[player,(getPosATL player),10,"gut"] spawn fnc_alertZombies;
if ((count _knifeArray > 0) and !_hasHarvested) then {
//Use sharpest knife player has
_activeKnife = _knifeArray select 0;
local _finished = ["Medic",1] call fn_loopAction;
if (!_finished) exitWith {dayz_actionInProgress = false;};
//Get Animal Type
_isListed = isClass (configFile >> "CfgSurvival" >> "Meat" >> _type);
_text = getText (configFile >> "CfgVehicles" >> _type >> "displayName");
// Added Nutrition-Factor for work
["Working",0,[20,40,15,0]] call dayz_NutritionSystem;
[player,(getPosATL player),10,"gut"] spawn fnc_alertZombies;
//Get Animal Type
local _isListed = isClass (configFile >> "CfgSurvival" >> "Meat" >> _type);
local _text = getText (configFile >> "CfgVehicles" >> _type >> "displayName");
_finished = ["Medic",1] call fn_loopAction;
if (!_finished) exitWith {};
_body setVariable ["meatHarvested",true,true];
local _qty = if (_isListed) then {getNumber (configFile >> "CfgSurvival" >> "Meat" >> _type >> "yield")} else {2};
if ((_knives select 0) == "ItemKnifeBlunt") then {_qty = round(_qty / 2);};
// Added Nutrition-Factor for work
["Working",0,[20,40,15,0]] call dayz_NutritionSystem;
if (local _body) then {
[_body,_qty] spawn local_gutObject; //leave as spawn (sleeping in loops will work but can freeze the script)
} else {
PVCDZ_obj_GutBody =[_body,_qty];
publicVariable "PVCDZ_obj_GutBody";
};
_item setVariable ["meatHarvested",true,true];
["knives",0.2] call fn_dynamicTool;
_qty = if (_isListed) then {getNumber (configFile >> "CfgSurvival" >> "Meat" >> _type >> "yield")} else {2};
if (_activeKnife == "ItemKnifeBlunt") then { _qty = round(_qty / 2); };
call {
if (_isZombie) exitWith {
if (local _item) then {
[_item,_qty] spawn local_gutObject; //leave as spawn (sleeping in loops will work but can freeze the script)
} else {
PVCDZ_obj_GutBody =[_item,_qty];
publicVariable "PVCDZ_obj_GutBody";
};
["knives",0.2] call fn_dynamicTool;
if (_isZombie) then {
// Reduce humanity for gutting zeds
local _humanity = player getVariable ["humanity",0];
player setVariable ["humanity",(_humanity - 10),true];
_humanity = player getVariable ["humanity",0];
_humanity = _humanity - 10;
player setVariable ["humanity",_humanity,true];
_string = format[localize "str_success_gutted_zombie",_text]; //%1 has been gutted, zombie parts are now on the carcass
} else {
_string = format[localize "str_success_gutted_animal",_text,_qty];
};
if (_isMutant) exitWith {
_string = format[localize "str_success_gutted_mutant",_text];
};
_string = format[localize "str_success_gutted_animal",_text,_qty]; // default is gut animal
closeDialog 0;
uiSleep 0.02;
_string call dayz_rollingMessages;
};
closeDialog 0;
uiSleep 0.02;
_string call dayz_rollingMessages;
dayz_actionInProgress = false;
dayz_actionInProgress = false;

View File

@@ -1,57 +0,0 @@
/*
locateVehicle by salival (https://github.com/oiad)
*/
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
private ["_characterID","_found","_i","_keyID","_keyIDS","_keyList","_keyName","_keyNames","_locateMarkerDelete","_locateMarkerTime","_marker","_name","_position","_vehicle"];
_keyList = call epoch_tempKeys;
_keyIDS = _keyList select 0;
_keyNames = _keyList select 1;
_locateMarkerDelete = true; // Delete markers after a certain amount of time to avoid cluttering the map?
_locateMarkerTime = 60; // Time in seconds before markers are deleted if enabled above.
_i = 0;
for "_i" from 0 to 60 do {deleteMarkerLocal ("vehicleMarker"+ (str _i));};
if (count _keyIDS < 1) exitWith {dayz_actionInProgress = false; systemChat localize "STR_CL_LV_NO_KEYS";};
_i = 0;
{
_keyID = parseNumber (_keyIDS select _forEachIndex);
_keyName = _keyNames select _forEachIndex;
_found = 0;
{
_vehicle = typeOf _x;
_characterID = parseNumber (_x getVariable ["CharacterID","0"]);
if ((_characterID == _keyID) && {_vehicle isKindOf "Air" || {_vehicle isKindOf "LandVehicle"} || {_vehicle isKindOf "Ship"}}) then {
_found = _found +1;
_i = _i +1;
_position = getPos _x;
_name = getText (configFile >> "CfgVehicles" >> _vehicle >> "displayName");
_marker = createMarkerLocal ["vehicleMarker" + (str _i),[_position select 0,_position select 1]];
_marker setMarkerShapeLocal "ICON";
_marker setMarkerTypeLocal "DOT";
_marker setMarkerColorLocal "ColorOrange";
_marker setMarkerSizeLocal [1.0, 1.0];
_marker setMarkerTextLocal format ["%1",_name];
systemChat format[localize "STR_CL_LV_BELONGS",_keyName,_name,if (!alive _x) then {toLower (format [" (%1)",localize "str_artdlg_destroyed"])} else {""}];
};
} forEach vehicles;
if (_found == 0) then {systemChat format[localize "STR_CL_LV_NO_VEHICLES",_keyName]};
} forEach _keyIDS;
if (_i > 0) then {
systemChat format[localize "STR_CL_LV_FOUND",_i];
if (_locateMarkerDelete) then {
_locateMarkerTime spawn {
uiSleep _this;
for "_i" from 0 to 60 do {deleteMarkerLocal ("vehicleMarker"+ (str _i));};
};
};
};
dayz_actionInProgress = false;

View File

@@ -38,7 +38,6 @@ call gear_ui_init;
if (_item == dayz_onBack && carryClick) then {
dayz_onBack = "";
player setVariable ["dayz_onBack",dayz_onBack,true];
carryClick = false;
((findDisplay 106) displayCtrl 1209) ctrlSetText "";
_removed = true;

View File

@@ -17,12 +17,13 @@ call gear_ui_init;
if (_item in ["ItemHatchet","ItemCrowbar","ItemMachete","ItemFishingPole","ItemSledge"]) then {
//free primary slot for new melee (remember item to add after)
call {
if (_item == "ItemHatchet") exitwith {player removeWeapon "ItemHatchet"; dayz_onBack = "MeleeHatchet";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (_item == "ItemCrowbar") exitwith {player removeWeapon "ItemCrowbar"; dayz_onBack = "MeleeCrowbar";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (_item == "ItemMachete") exitwith {player removeWeapon "ItemMachete"; dayz_onBack = "MeleeMachete";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (_item == "ItemFishingPole") exitwith {player removeWeapon "ItemFishingPole"; dayz_onBack = "MeleeFishingPole";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (_item == "ItemSledge") exitwith {player removeWeapon "ItemSledge"; dayz_onBack = "MeleeSledge";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (_item == "ItemHatchet") exitwith {player removeWeapon "ItemHatchet"; dayz_onBack = "MeleeHatchet";};
if (_item == "ItemCrowbar") exitwith {player removeWeapon "ItemCrowbar"; dayz_onBack = "MeleeCrowbar";};
if (_item == "ItemMachete") exitwith {player removeWeapon "ItemMachete"; dayz_onBack = "MeleeMachete";};
if (_item == "ItemFishingPole") exitwith {player removeWeapon "ItemFishingPole"; dayz_onBack = "MeleeFishingPole";};
if (_item == "ItemSledge") exitwith {player removeWeapon "ItemSledge"; dayz_onBack = "MeleeSledge";};
};
disableSerialization;
[[(findDisplay 106)],"onLBSelChanged"] spawn fn_handleGear; //update back
};

View File

@@ -1,6 +1,3 @@
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
dayz_actionInProgress = true;
private ["_item","_config","_onLadder","_consume","_bag","_droppedType"];
disableSerialization;
@@ -11,22 +8,23 @@ _droppedType = getText (_config >> "droppeditem");
//Make sure the player still has the tool this script was spawned with
if ((dayz_onBack != _item && carryClick) or (!(player hasWeapon _item) && !carryClick)) exitWith {
format[localize "str_player_30",getText (_config >> "displayName")] call dayz_rollingMessages;
dayz_actionInProgress = false;
};
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
if (_onLadder) exitWith {dayz_actionInProgress = false; localize "str_player_21" call dayz_rollingMessages; };
if (_onLadder) exitWith { localize "str_player_21" call dayz_rollingMessages; };
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
dayz_actionInProgress = true;
call gear_ui_init;
_consume = ([] + getArray (_config >> "magazines")) select 0;
if (_item == dayz_onBack && carryClick) then {
call {
if (dayZ_onBack == "MeleeHatchet") exitWith {_item = "ItemHatchet"; dayz_onBack = ""; player setVariable ["dayz_onBack",dayz_onBack,true];};
if (dayZ_onBack == "MeleeCrowbar") exitWith {_item = "ItemCrowbar"; dayz_onBack = "";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (dayZ_onBack == "MeleeMachete") exitWith {_item = "ItemMachete"; dayz_onBack = "";player setVariable ["dayz_onBack",dayz_onBack,true];};
if (dayZ_onBack == "MeleeSledge") exitWith {_item = "ItemSledge"; dayz_onBack = "";player setVariable ["dayz_onBack",dayz_onBack,true];};
switch DayZ_onBack do {
case "MeleeHatchet": {_item = "ItemHatchet"; dayz_onBack = "";};
case "MeleeCrowbar": {_item = "ItemCrowbar"; dayz_onBack = "";};
case "MeleeMachete": {_item = "ItemMachete"; dayz_onBack = "";};
case "MeleeSledge": {_item = "ItemSledge"; dayz_onBack = "";};
};
carryClick = false;
((findDisplay 106) displayCtrl 1209) ctrlSetText "";

View File

@@ -110,7 +110,7 @@ while {_isOk} do {
} else {
call gear_ui_init;
//Remove melee magazines (BIS_fnc_invAdd fix)
false call dz_fn_meleeMagazines;
{player removeMagazines _x} forEach MeleeMagazines;
_result = [player,_itemOut] call BIS_fnc_invAdd;
if (_result) then {
//Let the player know what he caught

View File

@@ -1,12 +1,12 @@
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
dayz_actionInProgress = true;
private ["_mineChance","_breaking","_counter","_rocks","_findNearestRock","_objName","_countOut","_isOk","_proceed","_finished","_itemOut","_weapons"];
_item = _this;
call gear_ui_init;
closeDialog 1;
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
dayz_actionInProgress = true;
// allowed rocks list move this later
_rocks = ["r2_boulder1.p3d","r2_boulder2.p3d","r2_rock1.p3d","r2_rock2.p3d","r2_rocktower.p3d","r2_rockwall.p3d","r2_stone.p3d"];
_findNearestRock = objNull;
@@ -37,7 +37,7 @@ if (!isNull _findNearestRock) then {
_weapons set [count _weapons,dayz_onBack];
//Make sure player did not drop pickaxe
if (!_finished || !("ItemPickaxe" in _weapons)) exitWith {
if (!_finished or !("MeleePickaxe" in _weapons or ("ItemPickaxe" in _weapons))) exitWith {
_isOk = false;
_proceed = false;
};
@@ -48,9 +48,18 @@ if (!isNull _findNearestRock) then {
_breaking = false;
if (dayz_toolBreaking && _mineChance) then {
_breaking = true;
if ("ItemPickaxe" in weapons player) then {
player removeWeapon "ItemPickaxe";
};
if ("MeleePickaxe" in weapons player) then {
player removeWeapon "MeleePickaxe";
} else {
if ("ItemPickaxe" in weapons player) then {
player removeWeapon "ItemPickaxe";
} else {
if (dayz_onBack == "MeleePickaxe") then {
dayz_onBack = "";
if (!isNull findDisplay 106) then {findDisplay 106 displayCtrl 1209 ctrlSetText "";};
};
};
};
if (!("ItemPickaxeBroken" in weapons player)) then {
player addWeapon "ItemPickaxeBroken";
};

View File

@@ -32,7 +32,6 @@ if (_canDo && !DZE_Surrender && !(player isKindOf "PZombie_VB")) then {
if (dayz_onBack != "") then {
[dayz_onBack,2,1] call fn_dropItem;
dayz_onBack = ""; // Remove from back
player setVariable ["dayz_onBack",dayz_onBack,true];
if (!isNull findDisplay 106) then {findDisplay 106 displayCtrl 1209 ctrlSetText "";};
};
call player_forceSave;

View File

@@ -151,8 +151,6 @@ dz_fn_switchWeapon_swap = {
dayz_onBack = [primaryWeapon player,player removeWeapon primaryWeapon player,player addWeapon dayz_onBack] select 0;
};
player setVariable ["dayz_onBack",dayz_onBack,true];
if (_this) then {
player selectWeapon primaryWeapon player;
if (IS_MELEE(primaryWeapon player)) then {

View File

@@ -1,152 +0,0 @@
/*
Remote vehicle script by salival (https://github.com/oiad)
*/
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
private ["_characterID","_checkDistance","_display","_distance","_fuel","_group","_vehicleFound","_keyID","_keyName","_option","_time","_vehicle","_vehicleType","_index","_control","_keyDisplay","_exit"];
_keyName = _this select 0;
_option = _this select 1;
_checkDistance = true; // Check to see if the player is too far away from the remote
_distance = 300; // Maximum distance the player can be away from the vehicle to be able to use the remote.
disableSerialization;
_exit = {
dayz_actionInProgress = false;
rv_vehicleList = nil;
rv_selected = nil;
};
_display = findDisplay 106;
_display closeDisplay 0;
_keyList = call epoch_tempKeys;
_keyID = 0;
_keyID = (_keyList select 0) select ((_keyList select 2) find _keyName);
_foundPos = (_keyList select 0) find _keyID;
if (_foundPos >= 0) then {
_keyDisplay = (_keyList select 1) select _foundPos;
};
if (_foundPos == -1) exitWith {systemChat localize "STR_CL_RV_NO_KEYS"; call _exit;};
rv_vehicleList = [];
_vehicleFound = false;
{
_vehicleType = typeOf _x;
_characterID = _x getVariable ["CharacterID","0"];
if ((_characterID == _keyID) && {_vehicleType isKindOf "Air" || _vehicleType isKindOf "LandVehicle" || _vehicleType isKindOf "Ship"}) then {
_vehicleFound = true;
rv_vehicleList set [count rv_vehicleList,_x];
};
} count vehicles;
if (count rv_vehicleList > 1) then {
rv_isOk = false;
createDialog "remoteVehicle";
_display = uiNamespace getVariable["rv_dialog", displayNull];
_display displayCtrl 8801 ctrlSetText(format[localize "STR_CL_RV_TITLE",_keyDisplay]);
_control = ((findDisplay 8800) displayCtrl 8802);
lbClear _control;
{
_control lbAdd getText(configFile >> "CfgVehicles" >> typeOf _x >> "displayName");
if (!isNull DZE_myVehicle && {local DZE_myVehicle} && {alive DZE_myVehicle} && {DZE_myVehicle == _x}) then {
_control lbSetColor [(lbSize _control)-1,[0, 1, 0, 1]];
};
} count rv_vehicleList;
_control lbSetCurSel 0;
waitUntil {!dialog};
} else {
rv_selected = rv_vehicleList select 0;
rv_isOk = true;
};
if (!rv_isOk) exitWith {call _exit;};
if (!_vehicleFound) exitWith {systemChat localize "STR_CL_RV_NO_VEHICLES"; call _exit;};
_vehicleType = typeOf rv_selected;
_displayName = getText(configFile >> "CfgVehicles" >> _vehicleType >> "displayName");
if (!alive rv_selected) exitWith {systemChat localize "STR_CL_RV_DESTROYED"; call _exit;};
if (_checkDistance && {(player distance rv_selected) >= _distance}) exitWith {format[localize "STR_CL_RV_RANGE_FAIL",_displayName] call dayz_rollingMessages; call _exit;};
if (_option == 1) then {
_group = units group player;
systemChat format[localize "STR_CL_RV_EJECT",_displayName];
{
if !(_x in _group) then {
_x action ["eject",rv_selected];
systemChat format[localize "STR_CL_RV_EJECT_PLAYER",name _x];
};
} forEach (crew rv_selected);
};
if (_option == 2) then {
systemChat format[localize "STR_CL_RV_ENGINE",if (isEngineOn rv_selected) then {localize "strwfoff"} else {localize "strwfon"},_displayName];
if (isEngineOn rv_selected) then {
if (rv_selected isKindOf "Helicopter") then { // This is needed because dayz_engineSwitch won't turn off the engine for a helicopter.
_fuel = fuel rv_selected;
rv_selected setFuel 0;
player action ["engineOff",rv_selected];
uiSleep 4.5;
rv_selected setFuel _fuel;
} else {
[rv_selected,false] call dayz_engineSwitch;
};
} else {
[rv_selected,true] call dayz_engineSwitch;
};
};
if (_option == 3) then {
systemChat format[localize "STR_BLD_UNLOCKED",_displayName];
PVDZE_veh_Lock = [rv_selected,false];
_time = diag_tickTime;
if (local rv_selected) then {
PVDZE_veh_Lock call local_lockUnlock;
} else {
publicVariable "PVDZE_veh_Lock";
waitUntil {uiSleep 0.1;(!locked rv_selected or (diag_tickTime - _time > 4))};
};
};
if (_option == 4) then {
systemChat format[localize "STR_EPOCH_PLAYER_117",_displayName];
PVDZE_veh_Lock = [rv_selected,true];
_time = diag_tickTime;
if (local rv_selected) then {
PVDZE_veh_Lock call local_lockUnlock;
} else {
publicVariable "PVDZE_veh_Lock";
waitUntil {uiSleep 0.1;(locked rv_selected or (diag_tickTime - _time > 4))};
};
};
if (_option == 5) then {
if !(rv_selected getVariable["vehicleLights",false]) then {
player action ["lightOn", rv_selected];
systemChat format[localize "STR_CL_RV_LIGHTS",localize "strwfon",_vehicleType];
rv_selected setVariable ["vehicleLights",true,true];
} else {
player action ["lightOff", rv_selected];
systemChat format[localize "STR_CL_RV_LIGHTS",localize "strwfoff",_vehicleType];
rv_selected setVariable ["vehicleLights",false,true];
};
};
call _exit;

View File

@@ -1,54 +0,0 @@
private ["_backPackCount","_backPackCount_raw","_backPackSlots","_formattedText","_gearCount","_magazineCount","_magazineCount_raw","_magazineSlots","_name","_picture","_price","_text","_typeOf","_weaponSlots","_weaponsCount","_weaponsCount_raw","_control","_index"];
_gearCount = {
private ["_counter"];
_counter = 0;
{_counter = _counter + _x;} count _this;
_counter
};
_control = (_this select 0) select 0;
_index = (_this select 0) select 1;
rv_selected = rv_vehicleList select _index;
_typeOf = typeOf rv_selected;
_weaponsCount_raw = getWeaponCargo rv_selected;
_magazineCount_raw = getMagazineCargo rv_selected;
_backPackCount_raw = getBackpackCargo rv_selected;
_weaponSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportMaxWeapons");
_magazineSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportMaxMagazines");
_backPackSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportmaxbackpacks");
_name = getText(configFile >> "CfgVehicles" >> _typeOf >> "displayName");
_picture = getText(configFile >> 'CfgVehicles' >> _typeOf >> 'picture');
_weaponsCount = (_weaponsCount_raw select 1) call _gearCount;
_magazineCount = (_magazineCount_raw select 1) call _gearCount;
_backPackCount = (_backPackCount_raw select 1) call _gearCount;
_formattedText = format [
"<img image='%1' size='3' align='center'/><br />" +
"<t color='#33BFFF' size='0.7'>%2: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
"<t color='#33BFFF' size='0.7'>%4: </t><t color='#ffffff' size='0.7'>%5</t><br />" +
"<t color='#33BFFF' size='0.7'>%6: </t><t color='#ffffff' size='0.7'><img image='%7'/> %13/%10 <img image='%8'/> %14/%11 <img image='%9'/> %15/%12</t><br />",
_picture,
localize "STR_EPOCH_NAME",
_name,
localize "STR_EPOCH_CLASS",
_typeOf,
localize "STR_EPOCH_CARGO_SPACE",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_weapons_white.paa",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_items_white.paa",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_backPacks_white.paa",
_weaponSlots,
_magazineSlots,
_backPackSlots,
_weaponsCount,
_magazineCount,
_backPackCount,
_text
];
((findDisplay 8800) displayCtrl 8803) ctrlSetStructuredText parseText _formattedText;
ctrlShow [8803,true];

View File

@@ -137,7 +137,6 @@ if (_brokenTool) then {
} else {
if (dayz_onBack == "MeleeCrowbar") then {
dayz_onBack = ""; // Remove
player setVariable ["dayz_onBack",dayz_onBack,true];
_success = true;
if (!isNull (findDisplay 106)) then {((findDisplay 106) displayCtrl 1209) ctrlSetText "";};
};

View File

@@ -1,176 +0,0 @@
/*
Vehicle Service Point by Axe Cop
Rewritten for single currency, gems, briefcase support and 1.0.7 epoch compatibility by salival - https://github.com/oiad/
Requires DayZ Epoch 1.0.7
This version adds support for both single currency and gems (from the epoch 1.0.7 update) as well as the original epoch briefcase currency system.
Instead of pricing things like the original way, prices are now done on a "worth" similar to how coins are done. The price value of items are below.
1 silver = 1 worth
1 10oz silver = 10 worth
1 gold = 100 worth
1 10oz gold = 1,000 worth
1 briefcase = 10,000 worth
Please see dayz_code\configVariables.sqf for the value of gems (DZE_GemWorthArray) and their relevant worth if they are enabled.
Example config settings for DZE_SP_Refuel_Costs, DZE_SP_Repair_Costs and DZE_SP_Rearm_Costs:
All 3 sections can either be made free, disabled or a specifc price with the following examples:
["Air",localize "strwffree"] will make the vehicle config class of "Air" free for the specific action.
["Air",localize "str_temp_param_disabled"] will make the vehicle config class of "Air" disabled for the specific action.
["Air",2000] will make the vehicle config class of "Air" have a worth of 2000 for the specific action.
["Armored_SUV_PMC",2000] will make the specific vehicle have a worth of 2000 for the specific action.
["Armored_SUV_PMC",localize "strwffree"] will make the specific vehicle be free for the specific action.
["Armored_SUV_PMC",localize "str_temp_param_disabled"] will make the specific vehicle be disabled for the specific action.
Valid vehicle config classes as an example: "Air", "AllVehicles", "All", "APC", "Bicycle", "Car", "Helicopter", "Land", "Motorcycle", "Plane", "Ship", "Tank"
*/
private ["_folder","_actionTitleFormat","_actionCostsFormat","_message","_messageShown","_lastVehicle","_lastRole","_fnc_removeActions","_fnc_getCostsWep","_fnc_getCostsWep","_fnc_actionTitle","_fnc_isArmed","_fnc_getWeapons","_cycleTime","_servicePoints","_vehicle","_role","_costs","_actionTitle","_weapons","_weaponName"];
// general settings
_folder = "\z\addons\dayz_code\actions\servicePoints\"; // folder where the service point scripts are saved, relative to the mission file
_actionTitleFormat = "%1 (%2)"; // text of the vehicle menu, %1 = action name (Refuel, Repair, Rearm), %2 = costs (see format below)
_actionCostsFormat = "%2 %1"; // %1 = item name, %2 = item count
_message = localize "STR_CL_SP_MESSAGE"; // This is translated from your stringtable.xml in your mission folder root. Set to "" to disable
_cycleTime = 5; // Time in sections for how often the action menu will be refreshed and how often it will search for a nearby fuel station (setting this too low can make a lot of lag)
_lastVehicle = objNull;
_lastRole = [];
_messageShown = false;
SP_refuel_action = -1;
SP_repair_action = -1;
SP_rearm_actions = [];
_fnc_removeActions = {
if (isNull _lastVehicle) exitWith {};
_lastVehicle removeAction SP_refuel_action;
SP_refuel_action = -1;
_lastVehicle removeAction SP_repair_action;
SP_repair_action = -1;
{
_lastVehicle removeAction _x;
} forEach SP_rearm_actions;
SP_rearm_actions = [];
_lastVehicle = objNull;
_lastRole = [];
};
_fnc_getCosts = {
private ["_getVehicle","_getCosts","_cost","_getTypeName"];
_getVehicle = _this select 0;
_getCosts = _this select 1;
_cost = [];
{
_getTypeName = _x select 0;
if (_getVehicle isKindOf _getTypeName) exitWith {
_cost = _x select 1;
};
} forEach _getCosts;
_cost
};
_fnc_getCostsWep = {
private ["_weapon","_getCostsWep","_returnCostWep","_typeName"];
_weapon = _this select 0;
_getCostsWep = _this select 1;
_returnCostWep = DZE_SP_Rearm_Defaultcost;
{
_typeName = _x select 0;
if (_weapon == _typeName) exitWith {
_returnCostWep = _x select 1;
};
} forEach _getCostsWep;
_returnCostWep
};
_fnc_actionTitle = {
private ["_actionName","_actionCosts","_costsText","_return"];
_actionName = _this select 0;
_actionCosts = _this select 1;
if (typeName _actionCosts == "STRING") then {
_costsText = _actionCosts;
} else {
_costsText = if (Z_SingleCurrency) then {format ["%1 %2",[_actionCosts] call BIS_fnc_numberText,CurrencyName]} else {format ["%1",[_actionCosts,true] call z_calcCurrency]};
};
_return = format [_actionTitleFormat,_actionName,_costsText];
_return
};
_fnc_getWeapons = {
private ["_gWeaponsVehicle","_gWeaponsRole","_gWeapons","_gWeaponName","_gTurret","_gWeaponsTurret"];
_gWeaponsVehicle = _this select 0;
_gWeaponsRole = _this select 1;
_gWeapons = [];
if (count _gWeaponsRole > 1) then {
_gTurret = _gWeaponsRole select 1;
_gWeaponsTurret = _gWeaponsVehicle weaponsTurret _gTurret;
{
_gWeaponName = getText (configFile >> "CfgWeapons" >> _x >> "displayName");
if !(_gWeaponName in DZE_SP_Rearm_Ignore) then {
_gWeapons set [count _gWeapons, [_x,_gWeaponName,_gTurret]];
};
} forEach _gWeaponsTurret;
};
_gWeapons
};
while {1==1} do {
_vehicle = vehicle player;
if (_vehicle != player) then {
_servicePoints = (nearestObjects [getPosATL _vehicle,DZE_SP_Classes,DZE_SP_MaxDistance]) - [_vehicle];
if (count _servicePoints > 0) then {
if (assignedDriver _vehicle == player) then {
_role = ["Driver", [-1]];
} else {
_role = assignedVehicleRole player;
};
if (((str _role) != (str _lastRole)) || {_vehicle != _lastVehicle}) then {
call _fnc_removeActions;
};
_lastVehicle = _vehicle;
_lastRole = _role;
if (DZE_SP_Refuel_Enable) then {
if (SP_refuel_action < 0) then {
_costs = [_vehicle,DZE_SP_Refuel_Costs] call _fnc_getCosts;
_actionTitle = [localize "config_depot.sqf8",_costs] call _fnc_actionTitle;
SP_refuel_action = _vehicle addAction [_actionTitle,_folder + "servicePointActions.sqf",["refuel",_costs,DZE_SP_Refuel_UpdateInterval,DZE_SP_Refuel_Amount],-1,false,true];
};
};
if (DZE_SP_Repair_Enable) then {
if (SP_repair_action < 0) then {
_costs = [_vehicle,DZE_SP_Repair_Costs] call _fnc_getCosts;
_actionTitle = [localize "config_depot.sqf1",_costs] call _fnc_actionTitle;
SP_repair_action = _vehicle addAction [_actionTitle,_folder + "servicePointActions.sqf",["repair",_costs,DZE_SP_Repair_RepairTime],-1,false,true];
};
};
if (DZE_SP_Rearm_Enable) then {
if ((count _role > 1) && {count SP_rearm_actions == 0}) then {
_weapons = [_vehicle,_role] call _fnc_getWeapons;
{
_weaponName = _x select 1;
_costs = [_weaponName,DZE_SP_Rearm_Costs] call _fnc_getCostsWep;
_actionTitle = [format["%1 %2",localize "config_depot.sqf5",_weaponName],_costs] call _fnc_actionTitle;
SP_rearm_action = _vehicle addAction [_actionTitle,_folder + "servicePointActions.sqf",["rearm",_costs,DZE_SP_Rearm_MagazineCount,_x],-1,false,true];
SP_rearm_actions set [count SP_rearm_actions, SP_rearm_action];
} forEach _weapons;
};
};
if (!_messageShown && {_message != ""}) then {
_messageShown = true;
_vehicle vehicleChat _message;
};
} else {
call _fnc_removeActions;
_messageShown = false;
};
} else {
call _fnc_removeActions;
_messageShown = false;
};
uiSleep _cycleTime;
};

View File

@@ -1,143 +0,0 @@
// Vehicle Service Point (Rearm) by Axe Cop
// Rewritten for single currency, gems, briefcase support and 1.0.7 epoch compatibility by salival - https://github.com/oiad/
// Requires DayZ Epoch 1.0.7 for gem support.
private ["_vehicle","_costs","_fuel","_magazineCount","_weapon","_type","_name","_weaponType","_weaponName","_turret","_magazines","_ammo","_textMissing","_pos","_message","_action","_damage","_selection","_strH","_disabled","_amount","_enoughMoney","_moneyInfo","_wealth","_success","_reason","_cmpt"];
_vehicle = _this select 0;
_ammo = "";
_reason = "";
_action = (_this select 3) select 0;
_type = typeOf _vehicle;
_disabled = false;
_name = getText(configFile >> "cfgVehicles" >> _type >> "displayName");
_amount = (_this select 3) select 1;
if (_action == "rearm") then {
_magazineCount = (_this select 3) select 2;
_weapon = (_this select 3) select 3;
_weaponType = _weapon select 0;
_weaponName = _weapon select 1;
_turret = _weapon select 2;
};
if (typeName _amount == "STRING") then {
if (_amount == (localize "str_temp_param_disabled")) then {
if (_action == "rearm") then {_reason = format[localize "STR_CL_SP_UNABLE_REARM",_weaponName]; _disabled = true};
if (_action == "repair") then {_reason = format[localize "STR_CL_SP_UNABLE_REPAIR",_name]; _disabled = true};
if (_action == "refuel") then {_reason = format[localize "STR_CL_SP_UNABLE_REFUEL",_name]; _disabled = true};
};
if (_amount == (localize "strwffree")) then {_amount = 0};
};
if (_disabled) exitWith {[_reason,1] call dayz_rollingMessages};
_enoughMoney = false;
_moneyInfo = [false, [], [], [], 0];
_wealth = player getVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),0];
if (Z_SingleCurrency) then {
_enoughMoney = (_wealth >= _amount);
} else {
Z_Selling = false;
if (Z_AllowTakingMoneyFromVehicle) then {false call Z_checkCloseVehicle};
_moneyInfo = _amount call Z_canAfford;
_enoughMoney = _moneyInfo select 0;
};
_success = if (Z_SingleCurrency) then {true} else {[player,_amount,_moneyInfo,true,0] call Z_payDefault};
if (!_success && _enoughMoney) exitWith {systemChat localize "STR_EPOCH_TRADE_GEAR_AND_BAG_FULL"}; // Not enough room in gear or bag to accept change
if (_enoughMoney) then {
_success = if (Z_SingleCurrency) then {_amount <= _wealth} else {[player,_amount,_moneyInfo,false,0] call Z_payDefault};
if (_success) then {
if (Z_SingleCurrency) then {
player setVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),(_wealth - _amount),true];
};
[player,(getPosATL player),50,"refuel"] spawn fnc_alertZombies;
_vehicle engineOn false;
if (_action == "refuel") then {
[format[localize "STR_CL_SP_REFUELING",_name],1] call dayz_rollingMessages;
while {vehicle player == _vehicle} do {
if ([0,0,0] distance (velocity _vehicle) > 1) exitWith {[format[localize "STR_CL_SP_REFUELING_STOPPED",_name],1] call dayz_rollingMessages};
_fuel = (fuel _vehicle) + ((_this select 3) select 3);
if (_fuel > 0.99) exitWith {
_vehicle setFuel 1;
[format[localize "STR_CL_SP_REFUEL_OK",_name],1] call dayz_rollingMessages;
};
_vehicle setFuel _fuel;
uiSleep ((_this select 3) select 2);
};
};
if (_action == "repair") then {
[player,(getPosATL player),50,"repair"] spawn fnc_alertZombies;
_hitpoints = _vehicle call vehicle_getHitpoints;
_allRepaired = true;
{
if ((vehicle player != _vehicle) || {[0,0,0] distance (velocity _vehicle) > 1}) exitWith {
_allRepaired = false;
[format[localize "STR_CL_SP_REPAIRING_STOPPED",_name],1] call dayz_rollingMessages;
};
_hits = [_vehicle,_x] call object_getHit;
_damage = _hits select 0;
if (_damage > 0) then {
_cmpt = [];
{
if (_forEachIndex > 2) then {_cmpt set [count _cmpt,_x]};
} forEach toArray (_x);
_cmpt = toString _cmpt;
[format[localize "STR_CL_SP_REPAIRING",_cmpt],1] call dayz_rollingMessages;
_selection = getText(configFile >> "cfgVehicles" >> _type >> "HitPoints" >> _x >> "name");
_strH = "hit_" + (_selection);
_vehicle setHit[_selection,0];
_vehicle setVariable [_strH,0,true];
uiSleep ((_this select 3) select 2);
};
} forEach _hitpoints;
PVDZ_veh_Save = [_vehicle,"repair",true];
publicVariableServer "PVDZ_veh_Save";
if (_allRepaired) then {
_vehicle setDamage 0;
_vehicle setVelocity [0,0,1];
[format[localize "STR_CL_SP_REPAIR_OK",_name],1] call dayz_rollingMessages;
};
};
if (_action == "rearm") then {
_magazines = getArray (configFile >> "CfgWeapons" >> _weaponType >> "magazines");
_ammo = _magazines select 0;
if (_weaponType == "CMFlareLauncher") then {
_vehicle removeWeaponTurret ["CMFlareLauncher",_turret];
for "_i" from 1 to _magazineCount do {_vehicle addMagazineTurret [_ammo,_turret];};
_vehicle addWeaponTurret ["CMFlareLauncher",_turret];
} else {
{_vehicle removeMagazinesTurret [_x,_turret];} forEach _magazines;
for "_i" from 1 to _magazineCount do {_vehicle addMagazineTurret [_ammo,_turret];};
};
[format[localize "STR_CL_SP_REARMED",_weaponName,_name],1] call dayz_rollingMessages;
};
call player_forceSave;
} else {
systemChat localize "STR_EPOCH_TRADE_DEBUG";
};
} else {
_itemText = if (Z_SingleCurrency) then {CurrencyName} else {[_amount,true] call z_calcCurrency};
if (Z_SingleCurrency) then {
systemChat format[localize "STR_CL_SP_FAIL_COINS",[_amount] call BIS_fnc_numberText,_itemText,_action,_name];
} else {
systemChat format[localize "STR_CL_SP_FAIL_BRIEFCASES",_itemText,_action,_name];
};
};

View File

@@ -1,45 +0,0 @@
/*
Originally by Zabn
Modified for DayZ Epoch 1.0.7+ by salival (https://github.com/oiad)
*/
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
private ["_body","_clothesTaken","_finished","_itemNew","_itemNewName","_okSkin","_playerNear","_result","_skin"];
_body = _this select 3;
player removeAction s_player_clothes;
s_player_clothes = -1;
if (isNull _body) exitWith {dayz_actionInProgress = false; systemChat localize "str_cursorTargetNotFound";};
_playerNear = {isPlayer _x} count (([_body] call FNC_GetPos) nearEntities ["CAManBase", 10]) > 1;
if (_playerNear) exitWith {dayz_actionInProgress = false; localize "str_pickup_limit_5" call dayz_rollingMessages;};
_clothesTaken = _body getVariable["clothesTaken",false];
if (_clothesTaken) exitWith {dayz_actionInProgress = false; localize "STR_CL_TC_ALREADY_TAKEN" call dayz_rollingMessages;};
_skin = typeOf _body;
_itemNew = _skin;
_itemNew = "Skin_" + _itemNew;
_okSkin = isClass (configFile >> "CfgMagazines" >> _itemNew);
if (!_okSkin || _skin in DZE_Disable_Take_Clothes) exitWith {dayz_actionInProgress = false; format[localize "STR_CL_TC_NOT_SUPPORTED",_skin] call dayz_rollingMessages;};
_finished = ["Medic",1] call fn_loopAction;
if (_finished) then {
_itemNewName = getText (configFile >> "CfgMagazines" >> _itemNew >> "displayName");
_result = [player,_itemNew] call BIS_fnc_invAdd;
if (_result) then {
_body setVariable["clothesTaken",true,true];
format[localize "STR_CL_TC_ADD_OK",_itemNewName] call dayz_rollingMessages;
} else {
format[localize "STR_CL_TC_ADD_FAIL",_itemNewName] call dayz_rollingMessages;
};
} else {
localize "str_epoch_player_26" call dayz_rollingMessages;
};
dayz_actionInProgress = false;

View File

@@ -1,42 +0,0 @@
// Written by icomrade (https://github.com/icomrade)
private ["_hasAccess","_heliPad","_objectID","_objectUID","_plotCheck"];
closeDialog 0;
_itemText = if (Z_SingleCurrency) then {CurrencyName} else {[vg_maintainCost,true] call z_calcCurrency};
_enoughMoney = false;
_moneyInfo = [false, [], [], [], 0];
if (Z_SingleCurrency) then {
_wealth = player getVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),0];
_enoughMoney = (_wealth >= vg_maintainCost);
} else {
Z_Selling = false;
_moneyInfo = vg_maintainCost call Z_canAfford;
_enoughMoney = _moneyInfo select 0;
};
_success = true;
if (vg_maintainCost > 0) then {
_success = if (Z_SingleCurrency) then {_enoughMoney} else {[player,vg_maintainCost,_moneyInfo,false,0] call Z_payDefault};
};
if (!_success && _enoughMoney) exitWith {systemChat localize "STR_EPOCH_TRADE_GEAR_AND_BAG_FULL";};
if (_enoughMoney || vg_maintainCost < 1) then {
if (Z_SingleCurrency) then {
player setVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),(_wealth - vg_maintainCost),true];
};
localize "STR_CL_VG_MAINTAINSUCCESS" call dayz_rollingMessages;
PVDZE_maintainGarage = if (vg_tiedToPole) then {
_plotCheck = [player,false] call FNC_find_plots;
_ownerPUID = if (_plotCheck select 1 > 0) then {(_plotCheck select 2) getVariable ["ownerPUID","0"]} else {dayz_playerUID};
[player,_ownerPUID]
} else {
[player]
};
publicVariableServer "PVDZE_maintainGarage";
} else {
localize "STR_CL_VG_MAINTAINFAIL" call dayz_rollingMessages;
};

View File

@@ -1,69 +0,0 @@
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
// Rewritten by salival (https://github.com/oiad)
private ["_backPack","_charID","_dir","_heliPad","_inventory","_isNearPlot","_keyID","_keyName","_location","_plotCheck","_sign","_vehicle"];
closeDialog 0;
_vehicle = (call compile format["%1",lbData[2802,(lbCurSel 2802)]]);
if (vg_removeKey && {_vehicle select 3 != 0} && {({getNumber (configFile >> "CfgWeapons" >> _x >> "type") == 131072} count (weapons player)) == 12}) exitWith {localize "str_epoch_player_107" call dayz_rollingMessages;};
_dir = round(random 360);
_backPack = [];
_plotCheck = [player,false] call FNC_find_plots;
_isNearPlot = (_plotCheck select 1) > 0;
_heliPad = nearestObjects [if (_isNearPlot) then {_plotCheck select 2} else {player},vg_heliPads,if (_isNearPlot) then {DZE_maintainRange} else {Z_VehicleDistance}];
if ((count _heliPad == 0) && ((_vehicle select 1) isKindOf "Air")) exitWith {localize "STR_CL_VG_NEED_HELIPAD" call dayz_rollingMessages;};
if (count _heliPad > 0) then {
_location = [(_heliPad select 0)] call FNC_GetPos;
} else {
_location = [(position player),0,400,10,0,2000,0] call BIS_fnc_findSafePos;
_location set [2,0];
};
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal [0,0,0];
_sign setPos _location;
if (surfaceIsWater _location && {count (_location nearEntities ["Ship",8]) > 0}) then {
deleteVehicle _sign;
localize "STR_EPOCH_TRADE_OBSTRUCTED" call dayz_rollingMessages;
} else {
[_vehicle select 1,_sign] call fn_waitForObject;
};
PVDZE_spawnVehicle = [[_dir,_location],player,_vehicle select 0];
publicVariableServer "PVDZE_spawnVehicle";
waitUntil {!isNil "PVDZE_spawnVehicleResult"};
if (PVDZE_spawnVehicleResult != "0") then {
_keyID = "";
_charID = parseNumber PVDZE_spawnVehicleResult;
if ((_charID > 0) && (_charID <= 2500)) then {_keyID = format["ItemKeyGreen%1",_charID];};
if ((_charID > 2500) && (_charID <= 5000)) then {_keyID = format["ItemKeyRed%1",_charID-2500];};
if ((_charID > 5000) && (_charID <= 7500)) then {_keyID = format["ItemKeyBlue%1",_charID-5000];};
if ((_charID > 7500) && (_charID <= 10000)) then {_keyID = format["ItemKeyYellow%1",_charID-7500];};
if ((_charID > 10000) && (_charID <= 12500)) then {_keyID = format["ItemKeyBlack%1",_charID-10000];};
_keyName = getText(configFile >> "CfgWeapons" >> _keyID >> "displayName");
if (vg_removeKey) then {
_inventory = weapons player;
dayz_myBackpack = unitBackpack player;
if (!isNull dayz_myBackpack) then {_backPack = (getWeaponCargo dayz_myBackpack) select 0;};
if (_keyID in (_inventory+_backPack)) then {
if (_keyID in _inventory) then {format[localize "STR_CL_VG_IN_INVENTORY",_keyName] call dayz_rollingMessages;};
if (_keyID in _backPack) then {format[localize "STR_CL_VG_IN_BACKPACK",_keyName] call dayz_rollingMessages;};
} else {
player addWeapon _keyID;
format[localize "STR_CL_VG_ADDED_INVENTORY",_keyName] call dayz_rollingMessages;
};
};
};
PVDZE_spawnVehicle = nil;
PVDZE_spawnVehicleResult = nil;
vg_vehicleList = nil;
localize "STR_CL_VG_VEHICLE_SPAWNED" call dayz_rollingMessages;

View File

@@ -1,24 +0,0 @@
// Written by salival (https://github.com/oiad)
private ["_hasAccess","_objectID","_objectUID","_plotCheck"];
closeDialog 0;
_plotCheck = [player, false] call FNC_find_plots;
_hasAccess = [player,_plotCheck select 2] call FNC_check_access;
if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3) or (_hasAccess select 4)) then {
{
_objectID = _x getVariable ["ObjectID","0"];
_objectUID = _x getVariable ["ObjectUID","0"];
PVDZ_obj_Destroy = [_objectID,_objectUID,player,_x,dayz_authKey];
publicVariableServer "PVDZ_obj_Destroy";
deleteVehicle _x;
systemChat format[localize "STR_CL_VG_HELIPAD_REMOVED",typeOf _x];
} count (nearestObjects [_plotCheck select 2,vg_heliPads,Z_VehicleDistance]);
} else {
systemChat localize "STR_EPOCH_PLAYER_134";
};

View File

@@ -1,209 +0,0 @@
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
// Rewritten by salival (https://github.com/oiad)
private ["_amount","_backPackCount","_backPackGear","_cargoAmount","_charID","_control","_counter","_display","_enoughMoney","_gearCount","_hasKey","_isLimitArray","_itemText","_items","_keyName","_limit","_magazineCount","_matchedCount","_moneyInfo","_name","_overLimit","_storedVehicles","_success","_typeName","_typeOf","_vehicle","_vehicleID","_vehicleUID","_wealth","_weaponsCount","_woGear","_playerNear","_ownerPUID","_plotCheck"];
disableSerialization;
_display = findDisplay 2800;
_control = ((findDisplay 2800) displayCtrl 2802);
_vehicle = vg_vehicleList select (lbCurSel _control);
_typeOf = typeOf _vehicle;
_isLimitArray = typeName vg_limit == "ARRAY";
_overLimit = false;
_matchedCount = 0;
_storedVehicles = [];
{if (_typeOf isKindOf _x) exitWith {_overLimit = true;}} count vg_blackListed;
if (_overLimit) exitWith {localize "STR_CL_VG_BLACKLISTED" call dayz_rollingMessages;};
{
if (typeName _x == "ARRAY") then {
_storedVehicles set [count _storedVehicles,_x select 1];
};
} count vg_vehicleList;
_gearCount = {
private ["_counter"];
_counter = 0;
{_counter = _counter + _x;} count _this;
_counter
};
if (_isLimitArray) then {
{
_typeName = _x select 0;
_limit = _x select 1;
if (typeName _x == "ARRAY") then {
if (_typeOf isKindOf _typeName) then {
{
if (_x isKindOf _typeName) then {_matchedCount = _matchedCount +1};
if (_matchedCount >= _limit) then {_overLimit = true;};
} count _storedVehicles;
};
};
if (_overLimit) exitWith {};
} count vg_limit;
} else {
if (count _storedVehicles >= vg_limit) then {_overLimit = true;};
};
if (_overLimit) exitWith {
if (_isLimitArray) then {
systemChat localize "STR_CL_VG_LIMIT_ARRAY";
} else {
systemChat localize "STR_CL_VG_LIMIT_NUMBER";
};
};
vg_vehicleList = nil;
_woGear = _this select 0;
closeDialog 0;
if (!vg_storeWithGear && !_woGear) exitWith {localize "STR_CL_VG_NOSTOREWITHGEAR" call dayz_rollingMessages;};
_charID = _vehicle getVariable ["CharacterID","0"];
_vehicleID = _vehicle getVariable ["ObjectID","0"];
_vehicleUID = _vehicle getVariable ["ObjectUID","0"];
_weaponsCount = ((getWeaponCargo _vehicle) select 1) call _gearCount;
_magazineCount = ((getMagazineCargo _vehicle) select 1) call _gearCount;
_backPackCount = ((getBackpackCargo _vehicle) select 1) call _gearCount;
_cargoAmount = (_weaponsCount + _magazineCount + _backPackCount);
if (_vehicleID == "1" || _vehicleUID == "1") exitWith {localize "STR_CL_VG_STORE_MISSION" call dayz_rollingMessages;};
if (isNull DZE_myVehicle || !local DZE_myVehicle) exitWith {localize "STR_EPOCH_PLAYER_245" call dayz_rollingMessages;};
_hasKey = false;
_items = items player;
dayz_myBackpack = unitBackpack player;
if (!isNull dayz_myBackpack) then {
_backPackGear = (getWeaponCargo dayz_myBackpack) select 0;
_items = _items + _backPackGear;
};
if (_charID != "0") then {
{
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in DZE_itemKeys) then {
if (str(getNumber(configFile >> "CfgWeapons" >> _x >> "keyid")) == _charID) then {
_keyName = _x;
_hasKey = true;
};
};
} count _items;
} else {
if (vg_store_keyless_vehicles) then {
_hasKey = true;
};
};
if (vg_requireKey && {!_hasKey}) exitWith {localize "STR_CL_VG_REQUIRE_KEY" call dayz_rollingMessages;};
_name = getText(configFile >> "cfgVehicles" >> _typeOf >> "displayName");
{
if (_typeOf isKindOf (_x select 0)) exitWith {_amount = _x select 1};
} forEach vg_price;
if (_cargoAmount > 0) then {_amount = _amount + (_cargoAmount * vg_pricePer);};
if (!isNil "sk_dualCurrency") then {_amount = if (z_singleCurrency) then {_amount * 10} else {_amount};};
/*
_playerNear = {isPlayer _x && (_x != player)} count (([_vehicle] call FNC_GetPos) nearEntities ["CAManBase", 15]) > 0;
if (_playerNear) exitWith {localize "STR_CL_VG_PLAYERNEARVEHICLE" call dayz_rollingMessages;};
*/
if (count (crew _vehicle) > 0) exitWith {localize "STR_CL_VG_PLAYERINVEHICLE" call dayz_rollingMessages;};
_enoughMoney = false;
_moneyInfo = [false,[],[],[],0];
if (Z_SingleCurrency) then {
_wealth = player getVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),0];
_enoughMoney = (_wealth >= _amount);
} else {
Z_Selling = false;
if (Z_AllowTakingMoneyFromVehicle) then {false call Z_checkCloseVehicle};
_moneyInfo = _amount call Z_canAfford;
_enoughMoney = _moneyInfo select 0;
};
_success = if (Z_SingleCurrency) then {true} else {[player,_amount,_moneyInfo,true,0] call Z_payDefault};
if (!_success && {_enoughMoney}) exitWith {systemChat localize "STR_EPOCH_TRADE_GEAR_AND_BAG_FULL"};
if (_enoughMoney) then {
_success = if (Z_SingleCurrency) then {_amount <= _wealth} else {[player,_amount,_moneyInfo,false,0] call Z_payDefault};
if (_success) then {
if (Z_SingleCurrency) then {player setVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),(_wealth - _amount),true];};
[_vehicle,true] call local_lockUnlock;
DZE_myVehicle = objNull;
PVDZE_storeVehicle = if (vg_tiedToPole) then {
_plotCheck = [player,false] call FNC_find_plots;
_ownerPUID = if (_plotCheck select 1 > 0) then {(_plotCheck select 2) getVariable ["ownerPUID","0"]} else {dayz_playerUID};
[_vehicle,player,_woGear,_ownerPUID]
} else {
[_vehicle,player,_woGear]
};
publicVariableServer "PVDZE_storeVehicle";
waitUntil {!isNil "PVDZE_storeVehicleResult"};
PVDZE_storeVehicle = nil;
PVDZE_storeVehicleResult = nil;
format[localize "STR_CL_VG_VEHICLE_STORED",_name] call dayz_rollingMessages;
if (vg_removeKey && {_charID != "0"}) then {
if (_keyName in (items player)) then {
[player,_keyName,1] call BIS_fnc_invRemove;
} else {
private ["_weparray", "_qtyarray", "_arraycnt","_newwepqty","_newwep","_newarray","_cntarray","_weapon","_weaponqty"];
_weparray = [];
_qtyarray = [];
_arraycnt = -1;
_backPackGear = getWeaponCargo dayz_myBackpack;
{
_arraycnt = _arraycnt + 1;
if (_x == _keyName) then {
} else {
_newwep = (_backPackGear select 0) select _arraycnt;
_newwepqty = (_backPackGear select 1) select _arraycnt;
_weparray set [count _weparray, _newwep];
_qtyarray set [count _qtyarray,_newwepqty];
};
} forEach (_backPackGear select 0);
_newarray = [];
_newarray = [_weparray] + [_qtyarray];
clearWeaponCargoGlobal dayz_myBackpack;
_cntarray = count _weparray;
for "_i" from 0 to (_cntarray-1) do {
_weapon = (_newarray select 0) select _i;
_weaponqty = (_newarray select 1) select _i;
dayz_myBackpack addWeaponCargoGlobal [_weapon,_weaponqty];
};
};
};
} else {
systemChat localize "STR_EPOCH_TRADE_DEBUG";
};
} else {
_itemText = if (Z_SingleCurrency) then {CurrencyName} else {[_amount,true] call z_calcCurrency};
if (Z_SingleCurrency) then {
systemChat format[localize "STR_CL_VG_NEED_COINS",[_amount] call BIS_fnc_numberText,_itemText,_name];
} else {
systemChat format[localize "STR_CL_VG_NEED_BRIEFCASES",_itemText,_name];
};
};

View File

@@ -1,110 +0,0 @@
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
// Rewritten by salival (https://github.com/oiad)
private ["_backPackCount","_backPackSlots","_cargoAmount","_control","_counter","_DateStored","_formattedText","_index","_inventory","_localVehicle","_magazineCount","_magazineSlots","_name","_picture","_price","_typeOf","_vehicle","_weaponSlots","_weaponsCount","_MaintainDays","_DateMaintained"];
disableSerialization;
_control = (_this select 0) select 0;
_index = (_this select 0) select 1;
_localVehicle = typeName (vg_vehicleList select _index) == "OBJECT";
_DateMaintained = "";
_MaintainDays = -1;
_gearCount = {
private ["_counter"];
_counter = 0;
{_counter = _counter + _x;} count _this;
_counter;
};
if (_localVehicle) then {
_vehicle = vg_vehicleList select _index;
_typeOf = typeOf _vehicle;
_weaponsCount = ((getWeaponCargo _vehicle) select 1) call _gearCount;
_magazineCount = ((getMagazineCargo _vehicle) select 1) call _gearCount;
_backPackCount = ((getBackpackCargo _vehicle) select 1) call _gearCount;
ctrlShow[2852,false]; // getVehicle
ctrlShow[2850,true]; // storeVehicle
ctrlShow[2851,true]; // storeVehicleWithGear
} else {
_vehicle = (vg_vehicleList select _index) select 1;
_inventory = (vg_vehicleList select _index) select 2;
_DateStored = (vg_vehicleList select _index) select 4;
_DateMaintained = (vg_vehicleList select _index) select 5;
_MaintainDays = (vg_vehicleList select _index) select 6;
_typeOf = _vehicle;
_weaponsCount = _inventory select 0;
_magazineCount = _inventory select 1;
_backPackCount = _inventory select 2;
ctrlShow[2852,true]; // getVehicle
ctrlShow[2850,false]; // storeVehicle
ctrlShow[2851,false]; // storeVehicleWithGear
};
_weaponSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportMaxWeapons");
_magazineSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportMaxMagazines");
_backPackSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportmaxbackpacks");
_name = getText(configFile >> "CfgVehicles" >> _typeOf >> "displayName");
_picture = getText (configFile >> 'CfgVehicles' >> _typeOf >> 'picture');
_cargoAmount = (_weaponsCount + _magazineCount + _backPackCount);
if (_localVehicle) then {
{
if (_typeOf isKindOf (_x select 0)) exitWith {_price = _x select 1;};
} forEach vg_price;
if (_cargoAmount > 0) then {
_price = _price + (_cargoAmount * vg_pricePer);
ctrlShow[2850,false];
} else {
ctrlShow[2851,false];
};
_price = if (_price == 0) then {localize "strwffree"} else {
if (!isNil "sk_dualCurrency") then {_price = if (z_singleCurrency) then {_price * 10} else {_price};};
if (z_singleCurrency) then {
format ["%1 %2",[_price] call BIS_fnc_numberText,currencyName]
} else {
[_price,true] call z_calcCurrency
};
};
};
_formattedText = format [
"<img image='%1' size='3' align='center'/><br />" +
"<t color='#33BFFF' size='0.7'>%2: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
"<t color='#33BFFF' size='0.7'>%4: </t><t color='#ffffff' size='0.7'>%5</t><br />" +
"<t color='#33BFFF' size='0.7'>%6: </t><t color='#ffffff' size='0.7'><img image='%7'/> %13/%10 <img image='%8'/> %14/%11 <img image='%9'/> %15/%12</t><br />",
_picture,
localize "STR_EPOCH_NAME",
_name,
localize "STR_EPOCH_CLASS",
_typeOf,
localize "STR_EPOCH_CARGO_SPACE",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_weapons_white.paa",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_items_white.paa",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_backPacks_white.paa",
_weaponSlots,
_magazineSlots,
_backPackSlots,
_weaponsCount,
_magazineCount,
_backPackCount
];
if (_localVehicle) then {_formattedText = _formattedText + format ["<t color='#33BFFF' size='0.7'>%1: </t><t color='#ffffff' size='0.7'>%2</t><br />",localize "STR_CL_VG_PRICE",_price];};
if (!_localVehicle) then {
if (_DateStored != "old") then {
_formattedText = _formattedText + format ["<t color='#33BFFF' size='0.7'>%1: </t><t color='#ffffff' size='0.7'>%2</t><br />",localize "STR_CL_VG_STOREDATE",_DateStored];
if (_MaintainDays >= 0) then {
_formattedText = _formattedText + format ["<t color='#33BFFF' size='0.7'>%1: </t><t color='#ffffff' size='0.7'>%2</t><br /><t color='#33BFFF' size='0.7'>%3: </t><t color='#ffffff' size='0.7'>%4</t><br />",localize "STR_CL_VG_MAINTAINDATE",_DateMaintained,localize "STR_CL_VG_MAINTAININTERVAL",_MaintainDays];
};
} else {
_formattedText = _formattedText + format ["<t color='#33BFFF' size='0.7'>%1: </t><t color='#ffffff' size='0.7'>%2</t><br />",localize "STR_CL_VG_STOREDATE",localize "STR_CL_VG_STOREDATE_INVALID"];
};
};
((findDisplay 2800) displayCtrl 2803) ctrlSetStructuredText parseText _formattedText;
ctrlShow [2803,true];
ctrlShow [2830,true];

View File

@@ -1,64 +0,0 @@
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
// Rewritten by salival (https://github.com/oiad)
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
private ["_class","_control","_displayName","_heliPad","_isNearPlot","_itemText","_localVehicles","_plotCheck","_storedVehicles","_vgDisplCtl"];
disableSerialization;
vg_hasRun = false;
createDialog "virtualGarage";
{ctrlShow [_x,false]} count [2803,2830,2850,2851,2852,2853];
_plotCheck = [player,false] call FNC_find_plots;
_isNearPlot = (_plotCheck select 1) > 0;
PVDZE_queryVehicle = if (vg_tiedToPole) then {
[player,if (_isNearPlot) then {(_plotCheck select 2) getVariable ["ownerPUID","0"]} else {dayz_playerUID}]
} else {
[player]
};
publicVariableServer "PVDZE_queryVehicle";
waitUntil {!isNil "PVDZE_queryVehicleResult"};
_storedVehicles = PVDZE_queryVehicleResult;
PVDZE_queryVehicle = nil;
PVDZE_queryVehicleResult = nil;
_localVehicles = ([player] call FNC_getPos) nearEntities [["Air","LandVehicle","Ship"],Z_VehicleDistance];
_heliPad = nearestObjects [if (_isNearPlot) then {_plotCheck select 2} else {player},vg_heliPads,if (_isNearPlot) then {DZE_maintainRange} else {Z_VehicleDistance}];
if (count _heliPad > 0 && {_isNearPlot}) then {ctrlShow[2853,true];};
_control = ((findDisplay 2800) displayCtrl 2802);
lbClear _control;
if (count _storedVehicles == 0 && {isNull DZE_myVehicle || {!(alive DZE_myVehicle)} || {!(local DZE_myVehicle)}}) exitWith {ctrlSetText[2811,localize "STR_CL_VG_NO_VEHICLES"];};
vg_vehicleList = [];
{
_displayName = getText(configFile >> "CfgVehicles" >> (_x select 1) >> "displayName");
_control lbAdd _displayName;
_control lbSetData [(lbSize _control)-1,str(_x)];
vg_vehicleList set [count vg_vehicleList,_x];
} count _storedVehicles;
{
if (!isNull DZE_myVehicle && {local DZE_myVehicle} && {alive DZE_myVehicle} && {DZE_myVehicle == _x}) then {
_class = typeOf _x;
_displayName = getText(configFile >> "CfgVehicles" >> _class >> "displayName");
_control lbAdd _displayName;
_control lbSetData [(lbSize _control)-1,_class];
_control lbSetColor [(lbSize _control)-1,[0, 1, 0, 1]];
vg_vehicleList set [count vg_vehicleList,_x];
};
} count _localVehicles;
ctrlShow[2810,false];
ctrlShow[2811,false];
ctrlSetText [2804, format ["%1 (%2 %3)",localize "STR_CL_VG_YOUR_VEHICLES",count (_storedVehicles),localize "STR_CL_VG_VEHICLES"]];

View File

@@ -1,68 +0,0 @@
private ["_backPackCount","_backPackCount_raw","_backPackSlots","_formattedText","_gearCount","_magazineCount","_magazineCount_raw","_magazineSlots","_name","_picture","_price","_text","_typeOf","_weaponSlots","_weaponsCount","_weaponsCount_raw"];
_gearCount = {
private ["_counter"];
_counter = 0;
{_counter = _counter + _x;} count _this;
_counter
};
if (vkc_action == "claim") then {
ctrlShow[4850,true];
_text = localize "STR_CL_VKC_CLAIM";
_price = vkc_claimPrice;
} else {
ctrlShow[4851,true];
_text = localize "STR_CL_VKC_CHANGE";
_price = vkc_changePrice;
};
_typeOf = typeOf vkc_cursorTarget;
_weaponsCount_raw = getWeaponCargo vkc_cursorTarget;
_magazineCount_raw = getMagazineCargo vkc_cursorTarget;
_backPackCount_raw = getBackpackCargo vkc_cursorTarget;
_weaponSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportMaxWeapons");
_magazineSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportMaxMagazines");
_backPackSlots = getNumber(configFile >> "CfgVehicles" >> _typeOf >> "transportmaxbackpacks");
_name = getText(configFile >> "CfgVehicles" >> _typeOf >> "displayName");
_picture = getText(configFile >> 'CfgVehicles' >> _typeOf >> 'picture');
_weaponsCount = (_weaponsCount_raw select 1) call _gearCount;
_magazineCount = (_magazineCount_raw select 1) call _gearCount;
_backPackCount = (_backPackCount_raw select 1) call _gearCount;
if (!isNil "sk_dualCurrency") then {if (z_singleCurrency) then {_price = _price * 10};};
_price = if (z_singleCurrency) then {
format ["%1 %2",[_price] call BIS_fnc_numberText,currencyName]
} else {
[_price,true] call z_calcCurrency
};
_formattedText = format [
"<img image='%1' size='3' align='center'/><br />" +
"<t color='#33BFFF' size='0.7'>%2: </t><t color='#ffffff' size='0.7'>%3</t><br />" +
"<t color='#33BFFF' size='0.7'>%4: </t><t color='#ffffff' size='0.7'>%5</t><br />" +
"<t color='#33BFFF' size='0.7'>%6: </t><t color='#ffffff' size='0.7'><img image='%7'/> %13/%10 <img image='%8'/> %14/%11 <img image='%9'/> %15/%12</t><br />" +
"<t color='#33BFFF' size='0.7'>Price to %16: </t><t color='#ffffff' size='0.7'>%17</t><br />",
_picture,
localize "STR_EPOCH_NAME",
_name,
localize "STR_EPOCH_CLASS",
_typeOf,
localize "STR_EPOCH_CARGO_SPACE",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_weapons_white.paa",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_items_white.paa",
"\z\addons\dayz_code\gui\gear\gear_ui_slots_backPacks_white.paa",
_weaponSlots,
_magazineSlots,
_backPackSlots,
_weaponsCount,
_magazineCount,
_backPackCount,
toLower (_text),
_price
];
((findDisplay 4800) displayCtrl 4803) ctrlSetStructuredText parseText _formattedText;
ctrlShow [4803,true];

View File

@@ -1,175 +0,0 @@
/*
Vehicle Key Changer by salival (https://github.com/oiad)
This version adds support for both single currency and gems (from the epoch 1.0.6 update) as well as the original epoch briefcase currency system.
Instead of pricing things like the original way, prices are now done on a "worth" similar to how coins are done. The price value of items are below.
If you are using coins, I would recommend using the _currencyModifier variable since coins typically are 10x the value of briefcase based currency (1 brief == 100,000 coins)
1 silver = 1 worth
1 10oz silver = 10 worth
1 gold = 100 worth
1 10oz gold = 1,000 worth
1 briefcase = 10,000 worth
Please see dayz_code\configVariables.sqf for the value of gems (DZE_GemWorthArray) and their relevant worth if they are enabled.
*/
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
dayz_actionInProgress = true;
disableSerialization;
private ["_amount","_characterID","_control","_currencyModifier","_enoughMoney","_exit","_foundPos","_index","_itemText","_message","_moneyInfo","_name","_playerNear","_position","_success","_typeOf","_vehicleID","_vehicleUID","_wealth"];
vkc_cursorTarget = (_this select 3) select 0;
_characterID = (_this select 3) select 1;
vkc_action = (_this select 3) select 2;
vkc_isOk = false;
player removeAction s_player_claimVehicle;
s_player_claimVehicle = 1;
player removeAction s_player_copyToKey;
s_player_copyToKey = 1;
_exit = {
vkc_action = nil;
vkc_keyList = nil;
vkc_keyName = nil;
vkc_charID = nil;
vkc_isOk = nil;
vkc_cursorTarget = nil;
s_player_copyToKey = -1;
s_player_claimVehicle = -1;
dayz_actionInProgress = false;
};
if (isNull vkc_cursorTarget) exitWith {call _exit; systemChat localize "str_cursorTargetNotFound";};
_playerNear = {isPlayer _x} count (([vkc_cursorTarget] call FNC_GetPos) nearEntities ["CAManBase", 10]) > 1;
if (_playerNear) exitWith {call _exit; localize "str_pickup_limit_5" call dayz_rollingMessages;};
if !(vkc_cursorTarget isKindOf "Air" || {vkc_cursorTarget isKindOf "LandVehicle"} || {vkc_cursorTarget isKindOf "Ship"}) exitWith {call _exit; localize "STR_CL_VKC_FAIL_CURSOR" call dayz_rollingMessages;};
if (isNull DZE_myVehicle || {!(alive DZE_myVehicle)} || {!(local DZE_myVehicle)}) exitWith {call _exit; localize "str_epoch_player_245" call dayz_rollingMessages;};
_vehicleID = vkc_cursorTarget getVariable ["ObjectID","0"];
_vehicleUID = vkc_cursorTarget getVariable ["ObjectUID","0"];
_typeOf = typeOf vkc_cursorTarget;
_name = getText(configFile >> "cfgVehicles" >> _typeOf >> "displayName");
if ((_vehicleID == "0" && {_vehicleUID == "0"}) || {_vehicleID == "1" || _vehicleUID == "1"}) exitWith {call _exit; format[localize "STR_CL_VKC_FAIL_SUPPORT",_name] call dayz_rollingMessages;};
if (_vehicleUID == "0") then {
_vehicleUID = "";
{
_x = _x * 10;
if (_x < 0) then {_x = _x * -10};
_vehicleUID = _vehicleUID + str(round(_x));
} forEach getPosATL vkc_cursorTarget;
_vehicleUID = _vehicleUID + str(round((getDir vkc_cursorTarget) + time));
vkc_cursorTarget setVariable["ObjectUID",_vehicleUID,true];
};
vkc_keyList = call epoch_tempKeys;
if (vkc_action == "change") then {
_amount = vkc_changePrice;
_message = [localize "STR_CL_VKC_CHANGE_MESSAGE_1",localize "STR_CL_VKC_CHANGE_MESSAGE_2",localize "STR_CL_VKC_CHANGE_MESSAGE_3"];
_foundPos = (vkc_keyList select 0) find _characterID;
if (_foundPos >= 0) then {
vkc_keyList set [0,(vkc_keyList select 0) - [(vkc_keyList select 0) select _foundPos]];
vkc_keyList set [1,(vkc_keyList select 1) - [(vkc_keyList select 1) select _foundPos]];
vkc_keyList set [2,(vkc_keyList select 2) - [(vkc_keyList select 2) select _foundPos]];
} else {
vkc_keyList = [[],[]];
};
} else {
_amount = vkc_claimPrice;
_message = [localize "STR_CL_VKC_CLAIM_MESSAGE_1",localize "STR_CL_VKC_CLAIM_MESSAGE_2",localize "STR_CL_VKC_CLAIM_MESSAGE_3"];
};
if (count (vkc_keyList select 0) == 0) exitWith {systemChat localize "STR_CL_VKC_FAIL_KEYS"; call _exit;};
if (!isNil "sk_dualCurrency") then {if (z_singleCurrency) then {_amount = _amount * 10};};
_itemText = if (Z_SingleCurrency) then {format ["%1 %2",[_amount] call BIS_fnc_numberText,CurrencyName]} else {[_amount,true] call z_calcCurrency};
createDialog "vkc";
{ctrlShow [_x,false]} count [4803,4850,4851];
call vkc_vehicleInfo;
_control = ((findDisplay 4800) displayCtrl 4802);
lbClear _control;
{
_index = _control lbAdd ((vkc_keyList select 1) select _forEachIndex);
_control lbSetPicture [_index,getText(configFile >> "CfgWeapons" >> ((vkc_keyList select 2) select _index) >> "picture")];
} forEach (vkc_keyList select 0);
_control lbSetCurSel 0;
waitUntil {!dialog};
if (!vkc_isOk) exitWith {call _exit;};
if (isNull DZE_myVehicle || {!(alive DZE_myVehicle)} || {!(local DZE_myVehicle)}) exitWith {call _exit; localize "str_epoch_player_245" call dayz_rollingMessages;};
_enoughMoney = false;
_moneyInfo = [false,[],[],[],0];
if (Z_SingleCurrency) then {
_wealth = player getVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),0];
_enoughMoney = (_wealth >= _amount);
} else {
Z_Selling = false;
if (Z_AllowTakingMoneyFromVehicle) then {false call Z_checkCloseVehicle};
_moneyInfo = _amount call Z_canAfford;
_enoughMoney = _moneyInfo select 0;
};
_success = if (Z_SingleCurrency) then {true} else {[player,_amount,_moneyInfo,true,0] call Z_payDefault};
if (!_success && {_enoughMoney}) exitWith {call _exit;systemChat localize "STR_EPOCH_TRADE_GEAR_AND_BAG_FULL"};
if (_enoughMoney) then {
_success = if (Z_SingleCurrency) then {_amount <= _wealth} else {[player,_amount,_moneyInfo,false,0] call Z_payDefault};
if (_success) then {
if (Z_SingleCurrency) then {player setVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),(_wealth - _amount),true];};
vkc_cursorTarget setVehicleLock "LOCKED";
player playActionNow "Medic";
_position = [vkc_cursorTarget] call FNC_GetPos;
[_typeOf,objNull] call fn_waitForObject;
dze_waiting = nil;
PVDZE_veh_Upgrade = [vkc_cursorTarget,[getDir vkc_cursorTarget,_position],_typeOf,vkc_charID,player,dayz_authKey,if (vkc_action == "change") then {"changed the key for"} else {"claimed"}];
publicVariableServer "PVDZE_veh_Upgrade";
localize "STR_CL_VKC_WAIT" call dayz_rollingMessages;
waitUntil {!isNil "dze_waiting"};
if (dze_waiting == "fail") then {
systemChat format[localize "STR_CL_VKC_FAIL_UPGRADE",_name];
if (z_singleCurrency) then {
player setVariable [(["cashMoney","globalMoney"] select Z_persistentMoney),_wealth,true];
} else {
Z_Selling = true;
_success = [_amount,0,false,0,[],[],false] call Z_returnChange;
};
} else {
{player reveal _x;} count (player nearEntities [["LandVehicle"],10]);
[format[_message select 0,_name,vkc_keyName],1] call dayz_rollingMessages;
};
} else {
systemChat localize "STR_EPOCH_TRADE_DEBUG";
};
} else {
systemChat format[localize "STR_CL_VKC_FAIL_MONEY",_itemText,_message select 1,_name];
};
call _exit;

View File

@@ -1,105 +0,0 @@
disableSerialization;
local _control = _this select 0;
local _button = _this select 1;
local _parent = findDisplay 106;
if (carryClick) then {carryClick = false;};
if (_button == 1) then {
if (animationState player in ["ainjppnemstpsnonwnondnon_rolltofront","amovppnemstpsnonwnondnon_healed"]) exitWith {
//Prevent bypassing unconscious wake up animation with bandage or other right click actions
localize "str_player_actionslimit" call dayz_rollingMessages;
};
local _group = _parent displayCtrl 6902;
local _pos = ctrlPosition _group;
local _item = gearSlotData _control;
if ( //No right click action
(!DZE_SelfTransfuse && {_item in ["ItemBloodbag","wholeBloodBagANEG","wholeBloodBagAPOS","wholeBloodBagBNEG","wholeBloodBagBPOS","wholeBloodBagABNEG","wholeBloodBagABPOS","wholeBloodBagONEG","wholeBloodBagOPOS"]})
) exitWith {};
if (mouseOverCarry) then {
_item = DayZ_onBack;
carryClick = true;
};
_pos set [0,((_this select 2) + 0.46)];
_pos set [1,((_this select 3) + 0.07)];
local _conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
local _name = getText(_conf >> "displayName");
local _cfgActions = _conf >> "ItemActions";
local _numActions = (count _cfgActions);
local _height = 0;
if (!dayz_groupSystem && {_item == "ItemRadio"}) then {_numActions = 1;}; // Used to bypass the group action when not enabled.
local _i = 0;
//Populate Menu
while {_i <= (_numActions - 1)} do {
local _menu = _parent displayCtrl (1600 + _i);
_menu ctrlShow true;
local _config = (_cfgActions select _i);
local _type = getText (_config >> "text");
local _script = getText (_config >> "script");
local _outputOriented = getNumber (_config >> "outputOriented") == 1;
_height = _height + (0.025 * safezoneH);
local _compile = format["_id = '%2' %1;",_script,_item];
uiNamespace setVariable ['uiControl', _control];
if (_outputOriented) then {
/*
This flag means that the action is output oriented
the output class will then be transferred to the script
and the type used for the name
*/
local _array = getArray (_config >> "output");
local _outputClass = _array select 0;
local _outputType = _array select 1;
_name = getText (configFile >> _outputType >> _outputClass >> "displayName");
_compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
};
_menu ctrlSetText format[_type,_name];
_menu ctrlSetEventHandler ["ButtonClick",_compile];
_i = _i + 1;
};
local _isKey = ((["ItemKey",_item] call fnc_inString) && (_item != "ItemKeyKit"));
{
local _classname = _x select 0;
local _text = _x select 1;
local _execute = _x select 2;
local _condition = _x select 3;
if ((_item == _classname || (_isKey && (_className == "ItemKey"))) && (call compile _condition)) then {
local _menu = _parent displayCtrl (1600 + _numActions);
_menu ctrlShow true;
_height = _height + (0.025 * safezoneH);
uiNamespace setVariable ['uiControl', _control];
_menu ctrlSetText _text;
if (_isKey && (_className == "ItemKey")) then {
if (count _this > 4) then {
local _option = _x select 4;
_menu ctrlSetEventHandler ["ButtonClick",format ["[%1,%2] %3",str _item,_option,_execute]];
};
} else {
_menu ctrlSetEventHandler ["ButtonClick",_execute];
};
_numActions = _numActions + 1;
};
} forEach DZE_CLICK_ACTIONS;
_pos set [3,_height];
//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];
_group ctrlShow true;
ctrlSetFocus _group;
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};

View File

@@ -41,11 +41,4 @@ if (!([_objPos] call DZE_SafeZonePosCheck)) then {
};
} forEach _positions;
};
// Bloodsuckers
if (DZE_Bloodsuckers) then {
if ((dayz_spawnBloodsuckers < DZE_BloodsuckersMaxLocal) && {dayz_CurrentNearBloodsuckers < DZE_BloodsuckersMaxNear} && {dayz_currentGlobalBloodsuckers < DZE_BloodsuckersMaxGlobal} && {_type in DZE_BloodsuckerBuildings} && {(random 1) < DZE_BloodsuckerChance}) then {
_objPos call mutant_generate;
};
};
};

View File

@@ -128,28 +128,9 @@ if (_inVehicle) then {
{DZE_myVehicle removeAction _x} count s_player_lockUnlockInside;s_player_lockUnlockInside = [];
s_player_lockUnlockInside_ctrl = -1;
};
//Allows to open garage doors from the vehicle, but may negatively impact performance
if (DZE_GarageDoor_Opener) then {
local _doors = nearestObjects [DZE_myVehicle, DZE_GarageDoors, DZE_GarageDoor_Radius];
if (count _doors > 0 && {driver DZE_myVehicle == player}) then {
local _hasAccess = [player,_doors select 0] call FNC_check_access;
if (s_player_gdoor_opener_ctrl < 0 && ((_hasAccess select 0) || (_hasAccess select 2) || (_hasAccess select 3) || (_hasAccess select 4))) then {
local _door = DZE_myVehicle addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_GDO_GARAGE"],"\z\addons\dayz_code\actions\garageDoorOpener.sqf",_doors select 0, 1, false, true];
s_player_gdoor_opener set [count s_player_gdoor_opener,_door];
s_player_gdoor_opener_ctrl = 1;
};
} else {
{DZE_myVehicle removeAction _x} count s_player_gdoor_opener;s_player_gdoor_opener = [];
s_player_gdoor_opener_ctrl = -1;
};
};
} else {
{DZE_myVehicle removeAction _x} count s_player_lockUnlockInside;s_player_lockUnlockInside = [];
s_player_lockUnlockInside_ctrl = -1;
{DZE_myVehicle removeAction _x} count s_player_gdoor_opener;s_player_gdoor_opener = [];
s_player_gdoor_opener_ctrl = -1;
};
if (DZE_HeliLift) then {
@@ -234,7 +215,6 @@ if (!isNull _cursorTarget && {!_inVehicle && !_isPZombie && _canDo && player dis
local _weaponsPlayer = weapons player;
local _hasCrowbar = "ItemCrowbar" in _itemsPlayer || "MeleeCrowbar" in _weaponsPlayer || dayz_onBack == "MeleeCrowbar";
local _hasToolbox = "ItemToolbox" in _itemsPlayer;
local _hasKeymakerskit = "ItemKeyKit" in _itemsPlayer;
local _isAlive = alive _cursorTarget;
local _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
local _isPlant = _typeOfCursorTarget in Dayz_plants;
@@ -569,12 +549,11 @@ if (!isNull _cursorTarget && {!_inVehicle && !_isPZombie && _canDo && player dis
// Allow Owner to lock and unlock vehicle
if (_player_lockUnlock_crtl) then {
local _totalKeys = call epoch_tempKeys;
local _temp_keys = _totalKeys select 0;
local _temp_keys_names = _totalKeys select 1;
local _hasKey = _characterID in _temp_keys;
if (s_player_lockUnlock_crtl < 0) then {
local _totalKeys = call epoch_tempKeys;
local _temp_keys = _totalKeys select 0;
local _temp_keys_names = _totalKeys select 1;
local _hasKey = _characterID in _temp_keys;
local _oldOwner = (_characterID == _uid);
local _unlock = [];
@@ -600,18 +579,9 @@ if (!isNull _cursorTarget && {!_inVehicle && !_isPZombie && _canDo && player dis
};
};
};
if (DZE_VehicleKey_Changer) then {
if (s_player_copyToKey < 0) then {
if ((_hasKeymakerskit && _hasKey && !_isLocked && {(count _temp_keys) > 1}) || {_cursorTarget getVariable ["hotwired",false]}) then {
s_player_copyToKey = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_VKC_CHANGE_ACTION"],"\z\addons\dayz_code\actions\vkc\vehicleKeyChanger.sqf",[_cursorTarget,_characterID,if (_cursorTarget getVariable ["hotwired",false]) then {"claim"} else {"change"}],5,false,true];
};
};
};
} else {
{player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
s_player_lockUnlock_crtl = -1;
player removeAction s_player_copyToKey;
s_player_copyToKey = -1;
};
if (DZE_Hide_Body && {_isMan && !_isAlive}) then {
@@ -646,7 +616,7 @@ if (!isNull _cursorTarget && {!_inVehicle && !_isPZombie && _canDo && player dis
};
//Allow owner to unlock vault
if (_isClose && !keypadCancel && {(_typeOfCursorTarget in (DZE_LockedStorage + DZE_UnLockedStorage)) && {_characterID != "0"}}) then {
if (_isClose && !keypadCancel && {(_typeOfCursorTarget in DZE_LockedStorage) && {_characterID != "0"}}) then {
if (s_player_unlockvault < 0) then {
local _combi = [];
if (_typeOfCursorTarget in DZE_LockedStorage) then {
@@ -820,73 +790,22 @@ if (!isNull _cursorTarget && {!_inVehicle && !_isPZombie && _canDo && player dis
player removeAction s_player_fillgen;
s_player_fillgen = -1;
};
if (DZE_VehicleKey_Changer) then {
if (_hasKeymakerskit && _isVehicle && !_isMan && _isAlive && {_characterID == "0"}) then {
if (s_player_claimVehicle < 0) then {
_totalKeys = call epoch_tempKeys;
if (count (_totalKeys select 0) > 0) then {
s_player_claimVehicle = player addAction [format["<t color='#0059FF'>%1</t>",format[localize "STR_CL_VKC_CLAIM_ACTION",_text]],"\z\addons\dayz_code\actions\vkc\vehicleKeyChanger.sqf",[_cursorTarget,_characterID,"claim"],5,false,true];
};
};
} else {
player removeAction s_player_claimVehicle;
s_player_claimVehicle = -1;
};
};
if (!_isAlive && _isMan && !_isZombie && {!(_cursorTarget isKindOf "Animal")}) then {
if (DZE_Take_Clothes) then {
if (!(_cursorTarget getVariable["clothesTaken",false]) && {_typeOfCursorTarget in AllPlayers} && {!(_typeOfCursorTarget in DZE_Disable_Take_Clothes)}) then {
if (s_player_clothes < 0) then {
s_player_clothes = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_TC_TAKE_CLOTHES"],"\z\addons\dayz_code\actions\takeClothes.sqf",_cursorTarget,0, false,true];
};
//Towing with tow truck
/*
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];
} else {
player removeAction s_player_clothes;
s_player_clothes = -1;
};
};
if (DZE_Bury_Body) then {
local _hasShovel = ("ItemEtool" in _itemsPlayer || "ItemShovel" in _itemsPlayer);
if (_hasShovel && !(_cursorTarget getVariable ["bodyButchered",false])) then {
if (s_player_bury_human < 0) then {
s_player_bury_human = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_BA_BURY"],"\z\addons\dayz_code\actions\buryActions.sqf",[_cursorTarget,"bury"],0,false,true];
};
} else {
player removeAction s_player_bury_human;
s_player_bury_human = -1;
};
};
if (DZE_Butcher_Body) then {
if (({_x in ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnife1"]} count _itemsPlayer > 0) && !(_cursorTarget getVariable ["bodyButchered",false])) then {
if (s_player_butcher_human < 0) then {
s_player_butcher_human = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_BA_BUTCHER"],"\z\addons\dayz_code\actions\buryActions.sqf",[_cursorTarget,"butcher"],0,false,true];
};
} else {
player removeAction s_player_butcher_human;
s_player_butcher_human = -1;
s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true];
};
};
} else {
player removeAction s_player_towing;
s_player_towing = -1;
};
if (DZE_Virtual_Garage) then {
if (_typeOfCursorTarget in vg_List) then {
if (s_garage_dialog < 0) then {
local _hasAccess = [player,_cursorTarget] call FNC_check_access;
local _plotCheck = [player, false] call FNC_find_plots;
local _isNearPlot = ((_plotCheck select 1) > 0);
if ((_isNearPlot && ((_hasAccess select 0) || (_hasAccess select 2) || (_hasAccess select 3) || (_hasAccess select 4))) || !_isNearPlot) then {
s_garage_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_VG_VIRTUAL_GARAGE"],"\z\addons\dayz_code\actions\virtualGarage\virtualGarage.sqf",_cursorTarget,3,false,true];
};
};
} else {
player removeAction s_garage_dialog;
s_garage_dialog = -1;
};
};
*/
// ZSC
if (Z_singleCurrency) then {
@@ -1160,18 +1079,6 @@ if (!isNull _cursorTarget && {!_inVehicle && !_isPZombie && _canDo && player dis
s_bank_dialog3 = -1;
player removeAction s_player_checkWallet;
s_player_checkWallet = -1;
player removeAction s_player_clothes;
s_player_clothes = -1;
player removeAction s_player_bury_human;
s_player_bury_human = -1;
player removeAction s_player_butcher_human;
s_player_butcher_human = -1;
player removeAction s_player_copyToKey;
s_player_copyToKey = -1;
player removeAction s_player_claimVehicle;
s_player_claimVehicle = -1;
player removeAction s_garage_dialog;
s_garage_dialog = -1;
};
//Dog actions on player self
@@ -1203,4 +1110,4 @@ if (_dogHandle > 0) then {
};
//Monitor
player setVariable ["selfActions", diag_ticktime, false];
player setVariable ["selfActions", diag_ticktime, false];

View File

@@ -1,43 +1,38 @@
local _body = _this select 0;
local _qty = _this select 1;
local _rawfoodtype = "";
local _bodyType = typeOf _body;
local _time = diag_tickTime;
private ["_amount","_animalbody","_rawfoodtype","_qty"];
call {
if (_body isKindOf "zZombie_base") exitWith {
_qty = 1;
_rawfoodtype = "ItemZombieParts";
};
if (_bodyType == "z_bloodsucker") exitWith {
_qty = 1;
_rawfoodtype = "ItemMutantHeart"; // toolbelt item
};
// default is animal
_rawfoodtype = getText (configFile >> "CfgSurvival" >> "Meat" >> _bodyType >> "rawfoodtype");
_animalbody = _this select 0;
_qty = _this select 1;
if (_animalbody isKindOf "zZombie_base") then {
_qty = 1;
_rawfoodtype = "ItemZombieParts";
} else {
_rawfoodtype = getText (configFile >> "CfgSurvival" >> "Meat" >> typeOf _animalbody >> "rawfoodtype");
};
if (local _body) then {
if (local _animalbody) then {
for "_i" from 1 to _qty do {
if (_rawfoodtype == "ItemMutantHeart") then {
_body addWeapon _rawfoodtype;
} else {
_body addMagazine _rawfoodtype;
};
_animalbody addMagazine _rawfoodtype;
};
if (_bodyType in ["Cock","Hen"]) then {
local _amount = (floor (random 4)) + 2;
if (typeOf _animalbody in ["Cock","Hen"]) then {
_amount = (floor (random 4)) + 2;
for "_x" from 1 to _amount do {
_body addMagazine "equip_feathers";
_animalbody addMagazine "equip_feathers";
};
};
while {((count magazines _body > 0) || (count weapons _body > 0)) && (diag_tickTime - _time < 300)} do {
uiSleep 5;
[time, _animalbody] spawn {
_timer = _this select 0;
_body = _this select 1;
_pos = getPosATL _body;
while {(count magazines _body > 0) && (time - _timer < 300)} do {
uiSleep 5;
};
hideBody _body;
uiSleep 10;
deleteVehicle _body;
true
};
hideBody _body;
uiSleep 10;
deleteVehicle _body;
};

View File

@@ -1,29 +0,0 @@
/*
_localtargets and _remotetargets are set in player_zombieCheck.
The bloodsucker will move in the direction of the player assigned as target.
Players with a mutant heart on tool belt will not be targeted.
*/
local _mutant = _this;
if (isNull _mutant) exitWith {objNull}; // Prevent errors if mutant is suddenly deleted
local _localtargets = _mutant getVariable ["localtargets",[]];
local _remotetargets = _mutant getVariable ["remotetargets",[]];
local _targets = _localtargets + _remotetargets;
local _target = objNull;
local _scandist = 200;
{
local _skip = (DZE_MutantHeartProtect && {_x hasWeapon "ItemMutantHeart"});
if (!_skip) then {
local _dist = _x distance _mutant;
if (_dist < _scandist) then {
_target = _x;
_scandist = _dist;
};
};
} count _targets;
_target

View File

@@ -1,16 +0,0 @@
// Select random position between 50 and 100 meters away from the building.
local _pos = [_this, 50, 100, 1] call fn_selectRandomLocation;
if (surfaceIsWater _pos) exitWith { diag_log "Mutant_Generate: Location is in water...abort"; };
// Create mutant
_agent = createAgent ["z_bloodsucker", _pos, [], 0, "NONE"];
_agent setDir (random 360);
_agent setPosATL _pos;
// Add to counts
dayz_spawnBloodsuckers = dayz_spawnBloodsuckers + 1;
dayz_CurrentNearBloodsuckers = dayz_CurrentNearBloodsuckers + 1;
dayz_currentGlobalBloodsuckers = dayz_currentGlobalBloodsuckers + 1;
//diag_log format ["Bloodsucker Counts: Current local - %1, Current near - %2, Current global - %3",dayz_spawnBloodsuckers,dayz_CurrentNearBloodsuckers,dayz_currentGlobalBloodsuckers];

View File

@@ -1,16 +1,23 @@
local _unit = _this select 0;
local _distance = _this select 1;
local _doRun = _this select 2;
local _pos = _this select 3;
private ["_unit","_distance","_doRun","_pos","_listTalk","_zombie","_50","_localtargets","_remotetargets","_targets","_dis"];
_unit = _this select 0;
_distance = _this select 1;
_doRun = _this select 2;
_pos = _this select 3;
_listTalk = _pos nearEntities ["zZombie_Base",_distance];
{
local _dis = _x distance _unit;
_distance = _distance max floor(_distance*.9);
_dis = _x distance _unit;
_zombie = _x;
call {
if (_dis < 51) exitwith {
if (_doRun) then {
local _localtargets = _x getVariable ["localtargets",[]];
local _remotetargets = _x getVariable ["remotetargets",[]];
local _targets = _localtargets + _remotetargets;
_localtargets = _x getVariable ["localtargets",[]];
_remotetargets = _x getVariable ["remotetargets",[]];
_targets = _localtargets + _remotetargets;
if (!(_unit in _targets)) then {
if !(local _x) then {
_remotetargets set [count _remotetargets,_unit];
@@ -21,15 +28,16 @@ local _pos = _this select 3;
};
};
} else {
_x setVariable ["myDest",_pos,true];
_zombie setVariable ["myDest",_pos,true];
};
};
if ((_dis > 50) && {_dis <= 71}) exitwith {
if (random 100 < 50) then {
_50 = round(random 100);
if (_50 < 50) then {
if (_doRun) then {
local _localtargets = _x getVariable ["localtargets",[]];
local _remotetargets = _x getVariable ["remotetargets",[]];
local _targets = _localtargets + _remotetargets;
_localtargets = _x getVariable ["localtargets",[]];
_remotetargets = _x getVariable ["remotetargets",[]];
_targets = _localtargets + _remotetargets;
if (!(_unit in _targets)) then {
if !(local _x) then {
_remotetargets set [count _remotetargets,_unit];
@@ -40,14 +48,14 @@ local _pos = _this select 3;
};
};
} else {
_x setVariable ["myDest",_pos,true];
_zombie setVariable ["myDest",_pos,true];
};
} else {
_x setVariable ["myDest",_pos,true];
_zombie setVariable ["myDest",_pos,true];
};
};
if (_dis > 70) exitwith {
_x setVariable ["myDest",_pos,true];
_zombie setVariable ["myDest",_pos,true];
};
};
} count (_pos nearEntities ["Zed_Base",_distance]);
} count _listTalk;

View File

@@ -8,7 +8,7 @@ That will interrupt actions like shooting. For loops use player_regularSave but
local _magazineArray = [] call player_countMagazines;
PVDZ_plr_Save = [player, if (player isKindOf "PZombie_VB") then {nil} else {_magazineArray}];
PVDZ_plr_Save = [player, if (player isKindOf "PZombie_VB") then {nil} else {_magazineArray},dayz_onBack,weapons player];
publicVariableServer "PVDZ_plr_Save";
//diag_log format["Player_forceSave with magazines: %1",_magazineArray];

View File

@@ -5,7 +5,6 @@ if (count _inventory > 0) then {
_mags = _inventory select 1;
dayz_onBack = if (count _inventory > 2) then { _inventory select 2 } else { "" };
player setVariable ["dayz_onBack",dayz_onBack,true];
//Add inventory
{

View File

@@ -28,7 +28,6 @@ local _ConfirmedBanditKills = player getVariable ["ConfirmedBanditKills",0];
local _friendlies = player getVariable ["friendlies",[]];
local _tagSetting = player getVariable ["DZE_display_name",false];
local _radiostate = player getVariable ["radiostate",false];
local _dayz_onBack = player getVariable ["dayz_onBack",""];
local _coins = 0;
local _bankCoins = 0;
local _globalCoins = 0;
@@ -98,7 +97,6 @@ player setVariable ["ConfirmedBanditKills",_ConfirmedBanditKills,true];
player setVariable ["friendlies",_friendlies,true];
player setVariable ["DZE_display_name",_tagSetting,true];
player setVariable ["radiostate",_radiostate];
player setVariable ["dayz_onBack",_dayz_onBack,true];
if (Z_SingleCurrency) then {
player setVariable ["cashMoney",_coins,true];

View File

@@ -1,76 +0,0 @@
/*
DayZ Epoch mutant attack script by JasonTM
Adapted from player_zombieAttack by facoptere
and Nightstalker melee attack effects by sumrak<at>nightstalkers.cz
*/
local _mutant = _this;
if (isNull _mutant) exitWith {}; // Prevent errors if mutant is deleted suddenly
local _damage = 0.5 + random (1.2); // Not sure about this. Maybe bloodsuckers should cause more damage.
local _wound = "";
local _dir = [_mutant,player] call BIS_Fnc_dirTo;
_mutant setDir _dir;
if (r_player_blood < (r_player_bloodTotal * 0.8)) then {
local _cnt = count (DAYZ_woundHit select 1);
local _index = floor (random _cnt);
_index = (DAYZ_woundHit select 1) select _index;
_wound = (DAYZ_woundHit select 0) select _index;
} else {
local _cnt = count (DAYZ_woundHit_ok select 1);
local _index = floor (random _cnt);
_index = (DAYZ_woundHit_ok select 1) select _index;
_wound = (DAYZ_woundHit_ok select 0) select _index;
};
local _pos = getPosATL player;
local _nearPlayer = false;
{
if (isPlayer _x && _x != player && {_x distance _pos < 100}) exitWith {_nearPlayer = true;};
} count playableUnits;
// Select a random attack sound
_sound = ["bloodatt0","bloodatt1","bloodatt2","bloodatt3"] call BIS_fnc_selectRandom;
// Broadcast hit noise and animation if a player is near
if (_nearPlayer) then {
[_mutant,_sound,0,false] call dayz_zombieSpeak;
//[objNull, _mutant, rplayMove, "AmelPercMstpSnonWnonDnon_amaterUder2"] call RE;
[nil, _mutant, rSwitchMove, "AmelPercMstpSnonWnonDnon_amaterUder2"] call RE;
} else {
[_mutant,_sound,0,true] call dayz_zombieSpeak;
//_mutant playMove "AmelPercMstpSnonWnonDnon_amaterUder2";
_mutant switchMove "AmelPercMstpSnonWnonDnon_amaterUder2";
};
uiSleep 0.3; // This sleep better coordinates the UI effects below with the animation and attack sound above.
if (DZE_BloodsuckerScreenEffect) then {cutRSC ["mutant_attack","PLAIN"];}; // the cool red slash marks that show up on screen.
"dynamicBlur" ppEffectEnable true;
"dynamicBlur" ppEffectAdjust [2];
"dynamicBlur" ppEffectCommit 0.1;
_pp = ppEffectCreate ["colorCorrections", 1553];
_pp ppEffectEnable true;
_pp ppEffectAdjust [1, 1, 0, [0.1, 0.0, 0.0, 1], [1.0, 0.5, 0.5, 0.1], [0.199, 0.587, 0.114, 0.0]];
_pp ppEffectCommit 0.1;
uiSleep 0.1;
_pp ppEffectAdjust [1, 1, 0, [0.1, 0.0, 0.0, 0.5], [1.0, 0.5, 0.5, 0.1], [0.199, 0.587, 0.114, 0.0]];
_pp ppEffectCommit 0.3;
uiSleep 0.3;
ppEffectDestroy _pp;
[player, _wound, _damage, _mutant, "zombie"] call fnc_usec_damageHandler;
uiSleep 0.2;
if (_nearPlayer) then {
[nil, _mutant, rSWITCHMOVE, ""] call RE;
} else {
_mutant switchMove "";
};
uiSleep 3;
"dynamicBlur" ppEffectEnable false;

View File

@@ -15,5 +15,5 @@
local _magazineArray = (magazines player) - ["CSGAS","Hatchet_Swing","Crowbar_Swing","Machete_Swing","Bat_Swing","BatBarbed_Swing","BatNails_Swing","Fishing_Swing","Sledge_Swing"];
PVDZ_plr_Save = [player,_magazineArray];
PVDZ_plr_Save = [player,_magazineArray,dayz_onBack,weapons player];
publicVariableServer "PVDZ_plr_Save";

View File

@@ -21,22 +21,6 @@ dayz_maxControlledZombies = dayz_maxLocalZombies; // This variable is also used
// Current loot spawns
dayz_currentWeaponHolders = count (_position nearObjects ["ReammoBox",_radius]);
// Current bloodsuckers
if (DZE_Bloodsuckers) then {
local _bloodsuckers = entities "z_bloodsucker";
dayz_currentGlobalBloodsuckers = count _bloodsuckers;
dayz_CurrentNearBloodsuckers = 0;
dayz_spawnBloodsuckers = 0;
{
if ((_x distance _position) < _radius && {alive _x}) then {
if (local _x) then {
dayz_spawnBloodsuckers = dayz_spawnBloodsuckers + 1;
};
dayz_CurrentNearBloodsuckers = dayz_CurrentNearBloodsuckers + 1;
};
} count _bloodsuckers;
};
// In vehicle check
local _vehicle = vehicle player;
local _inVehicle = (_vehicle != player);

View File

@@ -1,145 +1,139 @@
// Check for near zombies and mutants and attack player
private ["_attacked","_chance","_near","_targeted","_localtargets","_remotetargets","_forcedSpeed","_vehicle","_refObj",
"_multiplier","_isAir","_hearingThreshold","_sightThreshold","_type","_dist","_attackDist",
"_targetedBySight","_targetedBySound","_targets","_last","_entHeight","_pHeight","_delta","_attackResult","_cantSee","_tPos","_zPos",
"_targetAngle","_inAngle","_lowBlood","_speedMin","_speedMax"];
local _vehicle = vehicle player;
local _inVehicle = _vehicle != player;
local _refObj = driver _vehicle;
local _attacked = false; // at least one Z attacked the player
local _isAir = _vehicle isKindOf "Air";
local _speedMin = DZE_ZombieSpeed select 0;
local _speedMax = DZE_ZombieSpeed select 1;
local _cantSee = false;
_vehicle = vehicle player;
_refObj = driver _vehicle;
_attacked = false; // at least one Z attacked the player
_near = false;
//_multiplier = 1;
_isAir = _vehicle isKindOf "Air";
_speedMin = DZE_ZombieSpeed select 0;
_speedMax = DZE_ZombieSpeed select 1;
{
local _isZombie = _x isKindOf "zZombie_base";
local _isMutant = (DZE_Bloodsuckers && {typeOf _x == "z_bloodsucker"});
local _forcedSpeed = if ((_speedMin != _speedMax) && {(_speedMin > 0) && (_speedMax > 0)}) then {((random (DZE_ZombieSpeed select 1)) max (DZE_ZombieSpeed select 0));} else {getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "forcedSpeed");};
local _dist = _x distance _refObj;
local _chance = 1; //0 / dayz_monitorPeriod; // Z verbosity
local _targetedBySight = false;
local _targetedBySound = false;
local _localtargets = _x getVariable ["localtargets",[]];
local _remotetargets = _x getVariable ["remotetargets",[]];
local _targets = _localtargets + _remotetargets;
if (_isMutant) then {
if (_dist <= 5) then {
local _skin = _x getVariable ["mutantSkin", "act_krovosos_new1"]; // Set textures locally on each client to prevent issues with RESec
_x setObjectTexture [0, format["\nst\ns_mutants\blood\%1.paa",_skin]];
} else {
_x setObjectTexture [0, ""];
local _sound = ["bloodgrowl0","bloodgrowl2","bloodgrowl3","bloodgrowl4","bloodforest1","bloodforest2","bloodforest3","bloodforest4"] call BIS_fnc_selectRandom;
[_x,_sound,(_chance + 4),false] call dayz_zombieSpeak;
};
};
if (_isZombie) then {
if (_x distance _refObj >= (dayz_areaAffect*2)) then {
if (speed _x < 4) then {
[_x,"idle",(_chance + 4),true] call dayz_zombieSpeak;
} else {
[_x,"chase",(_chance + 3),true] call dayz_zombieSpeak;
};
};
if (_dist >= 3.3) then {_x setVariable ["speedLimit",_forcedSpeed,false];};
};
if (_refObj in _targets) then {
if (_isZombie) then {_x setVariable ["speedLimit", 0, false];};
_forcedSpeed = if ((_speedMin != _speedMax) && {(_speedMin > 0) && (_speedMax > 0)}) then {((random (DZE_ZombieSpeed select 1)) max (DZE_ZombieSpeed select 0));} else {getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "forcedSpeed");};
//_forcedSpeed = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "forcedSpeed");
//_hearingThreshold = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "hearingThreshold");
//_sightThreshold = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "sightThreshold");
if (_dist <= 3) then {
//Force AI to Stand
_x setUnitPos "UP";
if !(animationState _x == "ZombieFeed") then {
local _last = _x getVariable ["lastAttack", 0];
local _entHeight = (getPosATL _x) select 2;
local _pHeight = (getPosATL _refObj) select 2;
local _delta = _pHeight - _entHeight;
if (((diag_tickTime - _last) > 1.5) && ((_delta < 1.5) && (_delta > -1.5))) then {
_cantSee = [_refObj,_x] call dayz_losCheck;
if (!_cantSee) then {
if (_isZombie) then {
[_x, "zombie"] spawn player_zombieAttack;
} else {
local _noAttack = (DZE_MutantHeartProtect && {_refObj hasWeapon "ItemMutantHeart"});
if (!_noAttack && !_inVehicle) then {
_x spawn player_mutantAttack;
};
};
_x setVariable ["lastAttack", diag_tickTime];
};
};
};
} else {
if (_isZombie) then {_x setVariable ["speedLimit", _forcedSpeed, false];};
};
_attacked = true;
} else {
if (_isZombie) then {_x setVariable ["speedLimit", _forcedSpeed, false];};
};
//Block all target attempts while in an aircraft
if (!_isAir) then {
if !(_refObj in _targets) then {
//Noise Activation (zed is within players audial projection)
if (_dist < DAYZ_disAudial) then {
if (DAYZ_disAudial > 80) then {
_targetedBySound = true;
if !(typeOf _x == "swarm_newBase") then {
_type = "zombie";
if (alive _x) then {
private ["_dist","_attackDist"];
_dist = _x distance _refObj;
_group = _x;
_chance = 1; //0 / dayz_monitorPeriod; // Z verbosity
_targetedBySight = false;
_targetedBySound = false;
_localtargets = _group getVariable ["localtargets",[]];
_remotetargets = _group getVariable ["remotetargets",[]];
_targets = _localtargets + _remotetargets;
if (_x distance player >= (dayz_areaAffect*2)) then {
if (speed _x < 4) then {
[_x,"idle",(_chance + 4),true] call dayz_zombieSpeak;
} else {
//if (DAYZ_disAudial > 6) then {
_chance = [_x,_dist,DAYZ_disAudial] call dayz_losChance;
//diag_log ("Visual Detection: " + str([_x,_dist]) + " " + str(_chance));
if ((random 1) < _chance) then {
//make sure the player isnt behind a building or wall if target is in the open always target if player is making too much noise
_cantSee = [_refObj,_x] call dayz_losCheck;
if (!_cantSee) then {
_targetedBySound = true;
} else {
if (_dist < (DAYZ_disAudial / 2)) then {_targetedBySound = true;};
};
};
//};
[_x,"chase",(_chance + 3),true] call dayz_zombieSpeak;
};
};
//Sight Activation
if (_dist < DAYZ_disVisual) then {
_chance = [_x,_dist,DAYZ_disVisual] call dayz_losChance;
if ((random 1) < _chance) then {
local _tPos = getPosASL _vehicle;
local _zPos = getPosASL _x;
local _targetAngle = 30;
local _inAngle = [_zPos,(direction _x),_targetAngle,_tPos] call fnc_inAngleSector;
if (_inAngle) then {
_cantSee = [_refObj,_x] call dayz_losCheck;
if (!_cantSee) then {_targetedBySight = true;};
if (_x distance _refObj >= 3.3) then {_x setVariable ["speedLimit",_forcedSpeed,false];};
//if (!local _x) then {
if (_refObj in _targets) then {
_last = _x getVariable ["lastAttack", 0];
_entHeight = (getPosATL _x) select 2;
_pHeight = (getPosATL _refObj) select 2;
_delta = _pHeight - _entHeight;
_x setVariable ["speedLimit", 0, false];
if (_x distance _refObj <= 3) then {
//Force AI to Stand
_x setUnitPos "UP";
if !(animationState _x == "ZombieFeed") then {
if (((diag_tickTime - _last) > 1.5) && ((_delta < 1.5) && (_delta > -1.5))) then {
_cantSee = [_x,_refObj] call dayz_losCheck;
if (!_cantSee) then {
_attackResult = [_x, _type] spawn player_zombieAttack;
_x setVariable ["lastAttack", diag_tickTime];
};
};
};
} else {
_x setVariable ["speedLimit", _forcedSpeed, false];
};
};
_attacked = true;
} else {
_x setVariable ["speedLimit", _forcedSpeed, false];
};
//};
//Block all target atteps while in a vehicle
if (!_isAir) then {
if !(_refObj in _targets) then {
//Noise Activation (zed is within players audial projection)
if (_dist < DAYZ_disAudial) then {
if (DAYZ_disAudial > 80) then {
_targetedBySound = true;
} else {
//if (DAYZ_disAudial > 6) then {
_chance = [_x,_dist,DAYZ_disAudial] call dayz_losChance;
//diag_log ("Visual Detection: " + str([_x,_dist]) + " " + str(_chance));
if ((random 1) < _chance) then {
//make sure the player isnt behind a building or wall if target is in the open always target if player is making too much noise
_cantSee = [_refObj,_x] call dayz_losCheck;
if (!_cantSee) then {
_targetedBySound = true;
} else {
if (_dist < (DAYZ_disAudial / 2)) then {_targetedBySound = true;};
};
};
//};
};
};
//Sight Activation
if (_dist < DAYZ_disVisual ) then {
_chance = [_x,_dist,DAYZ_disVisual] call dayz_losChance;
if ((random 1) < _chance) then {
_tPos = getPosASL _vehicle;
_zPos = getPosASL _x;
_targetAngle = 30;
_inAngle = [_zPos,(direction _x),_targetAngle,_tPos] call fnc_inAngleSector;
if (_inAngle) then {
_cantSee = [_refObj,_x] call dayz_losCheck;
if (!_cantSee) then {_targetedBySight = true;};
};
};
};
};
};
if (_targetedBySight or _targetedBySound) then {
[_x, "spotted", 0, false] call dayz_zombieSpeak;
//diag_log format["Zombie: %1, Distance: %2, Target Reason: Sight-%3,%5/Sound-%4,%6",(typeof _x),_dist,_targetedBySight,_targetedBySound,DAYZ_disVisual,DAYZ_disAudial];
switch (local _x) do {
case false: {
_remotetargets set [count _remotetargets,_refObj];
_x setVariable ["remotetargets",_remotetargets,true];
};
case true: {
_localtargets set [count _localtargets,_refObj];
_x setVariable ["localtargets",_localtargets,false];
};
};
};
};
};
if (_targetedBySight || _targetedBySound) then {
local _sound = ["spotted","bloodgrowl1"] select _isMutant;
[_x, _sound, 0, false] call dayz_zombieSpeak;
//diag_log format["Zombie: %1, Distance: %2, Target Reason: Sight-%3,%5/Sound-%4,%6",(typeof _x),_dist,_targetedBySight,_targetedBySound,DAYZ_disVisual,DAYZ_disAudial];
if (local _x) then {
_localtargets set [count _localtargets,_refObj];
_x setVariable ["localtargets",_localtargets,false];
} else {
_remotetargets set [count _remotetargets,_refObj];
_x setVariable ["remotetargets",_remotetargets,true];
};
};
if (_isMutant && {DZE_BloodsuckerDeleteNearTrader && isInTraderCity}) then {deleteVehicle _x}; // Delete bloodsucker if the player is in a trader city
} forEach ((getPosATL _refObj) nearEntities ["Zed_Base",100]);
if (_attacked) then {
if (r_player_unconscious) then {
[_refObj, "scream", 6, false] call dayz_zombieSpeak;
} else {
local _lowBlood = (r_player_blood / r_player_bloodTotal) < 0.5;
_lowBlood = (r_player_blood / r_player_bloodTotal) < 0.5;
if (diag_ticktime - dayz_panicCooldown > 9 && _lowBlood) then {
//Prevents overlapping sounds (panic tracks are 4-9s, this script is called every 1s)
//50% chance every 9s
@@ -149,5 +143,5 @@ if (_attacked) then {
};
};
// return true if attacked. if so, player_monitor will perform its ridiculous 'while true' loop faster.
_attacked
// return true if attacked or near. if so, player_monitor will perform its ridiculous 'while true' loop faster.
(_attacked OR _near)

View File

@@ -1,7 +1,8 @@
//private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
local _control = _this select 0;
local _button = _this select 1;
local _parent = findDisplay 106;
_control = _this select 0;
_button = _this select 1;
_parent = findDisplay 106;
if (carryClick) then {carryClick = false;};
@@ -11,10 +12,12 @@ if (_button == 1) then {
localize "str_player_actionslimit" call dayz_rollingMessages;
};
local _group = _parent displayCtrl 6902;
local _pos = ctrlPosition _group;
local _item = gearSlotData _control;
private ["_conf","_name","_compile","_height","_item"];
_group = _parent displayCtrl 6902;
_pos = ctrlPosition _group;
_item = gearSlotData _control;
if ( //No right click action
(!DZE_SelfTransfuse && {_item in ["ItemBloodbag","wholeBloodBagANEG","wholeBloodBagAPOS","wholeBloodBagBNEG","wholeBloodBagBPOS","wholeBloodBagABNEG","wholeBloodBagABPOS","wholeBloodBagONEG","wholeBloodBagOPOS"]})
) exitWith {};
@@ -27,28 +30,28 @@ if (_button == 1) then {
_pos set [0,((_this select 2) + 0.46)];
_pos set [1,((_this select 3) + 0.07)];
local _conf = configFile >> "cfgMagazines" >> _item;
_conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
local _name = getText(_conf >> "displayName");
_name = getText(_conf >> "displayName");
local _cfgActions = _conf >> "ItemActions";
local _numActions = (count _cfgActions);
local _height = 0;
_cfgActions = _conf >> "ItemActions";
_numActions = (count _cfgActions);
_height = 0;
if (!dayz_groupSystem && {_item == "ItemRadio"}) then {_numActions = 1;}; // Used to bypass the group action when not enabled.
local _i = 0;
//Populate Menu
while {_i <= (_numActions - 1)} do {
local _menu = _parent displayCtrl (1600 + _i);
for "_i" from 0 to (_numActions - 1) do
{
_menu = _parent displayCtrl (1600 + _i);
_menu ctrlShow true;
local _config = (_cfgActions select _i);
local _type = getText (_config >> "text");
local _script = getText (_config >> "script");
local _outputOriented = getNumber (_config >> "outputOriented") == 1;
_config = (_cfgActions select _i);
_type = getText (_config >> "text");
_script = getText (_config >> "script");
_outputOriented = getNumber (_config >> "outputOriented") == 1;
_height = _height + (0.025 * safezoneH);
local _compile = format["_id = '%2' %1;",_script,_item];
_compile = format["_id = '%2' %1;",_script,_item];
uiNamespace setVariable ['uiControl', _control];
if (_outputOriented) then {
/*
@@ -56,16 +59,15 @@ if (_button == 1) then {
the output class will then be transferred to the script
and the type used for the name
*/
local _array = getArray (_config >> "output");
local _outputClass = _array select 0;
local _outputType = _array select 1;
_array = getArray (_config >> "output");
_outputClass = _array select 0;
_outputType = _array select 1;
_name = getText (configFile >> _outputType >> _outputClass >> "displayName");
_compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
};
_menu ctrlSetText format[_type,_name];
_menu ctrlSetEventHandler ["ButtonClick",_compile];
_i = _i + 1;
};
_pos set [3,_height];
@@ -75,4 +77,4 @@ if (_button == 1) then {
ctrlSetFocus _group;
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};
};

View File

@@ -129,9 +129,6 @@ class DefaultEventhandlers {
#include "Configs\RscDisplay\doorManagement\doorManagement.hpp"
#include "Configs\RscDisplay\doorManagement\doorAccess.hpp"
#include "Configs\RscDisplay\zscDialogs.hpp"
#include "Configs\RscDisplay\remoteVehicle.hpp"
#include "Configs\RscDisplay\vehicleKeyChanger.hpp"
#include "Configs\RscDisplay\virtualGarage.hpp"
//#include "Configs\RscDisplay\tradermenu.hpp"
class CfgTasks

View File

@@ -3,86 +3,6 @@
// To change a variable copy paste it in the mission init.sqf below the #include line.
// Standard DayZ variables are found in dayz_code\init\variables.sqf.
// Both
dayz_infectiouswaterholes = true; //Enable infected waterholes
dayz_townGenerator = false; // Spawn vanilla map junk instead of Epoch DynamicDebris. Currently only compatible with Chernarus. Also enables comfrey plant spawner which negatively impacts performance.
dayz_townGeneratorBlackList = []; // If townGenerator is enabled it will not spawn junk within 150m of these positions. Example for Chernarus traders: [[4053,11668,0],[11463,11349,0],[6344,7806,0],[1606,7803,0],[12944,12766,0],[5075,9733,0],[12060,12638,0]]
DZE_HeliLift = true; // Enable Epoch heli lift system
DZE_GodModeBaseExclude = []; //Array of object class names excluded from the god mode bases feature
DZE_NoVehicleExplosions = false; //Disable vehicle explosions to prevent damage to objects by ramming. Doesn't work with amphibious pook which should not be used due to FPS issues.
DZE_SafeZoneZombieLoot = false; // Enable spawning of Zombies and loot in positions listed in DZE_SafeZonePosArray?
dayz_ForcefullmoonNights = false; // Forces night time to be full moon.
infectedWaterHoles = []; //Needed for non-cherno maps.
DZE_GodModeBase = false; // Disables damage handler from base objects so they can't be destroyed.
dayz_spawnselection = 0; //(Chernarus only) Turn on spawn selection 0 = random only spawns, 1 = spawn choice based on limits
dayz_classicBloodBagSystem = false; // disable blood types system and use the single classic ItemBloodbag
dayz_enableFlies = true; // Enable flies on dead bodies (negatively impacts FPS).
// Death Messages
DZE_DeathMsgChat = "none"; //"none","global","side","system" Display death messages in selected chat channel.
DZE_DeathMsgDynamicText = false; // Display death messages as dynamicText in the top left with weapon icons.
DZE_DeathMsgRolling = false; // Display death messages as rolling messages in bottom center of screen.
// ZSC
Z_SingleCurrency = false; // Enable single currency system.
if (Z_SingleCurrency) then {
Z_globalBanking = false; // Enable global banking system.
Z_persistentMoney = false; // Enabling this stores currency to player_data instead of character_data. Currency transfers to a new character after death. For PVE servers only. Formerly called "GlobalMoney".
CurrencyName = "Coins"; // If using single currency this is the currency display name.
DZE_MoneyStorageClasses = ["VaultStorage","VaultStorage2","VaultStorageLocked","VaultStorage2Locked","LockboxStorageLocked","LockboxStorage2Locked","LockboxStorage","LockboxStorage2","LockboxStorageWinterLocked","LockboxStorageWinter2Locked","LockboxStorageWinter","LockboxStorageWinter2","TallSafe","TallSafeLocked"]; // If using single currency this is an array of object classes players can store coins in. E.g.: ["GunRack_DZ","WoodCrate_DZ"]
ZSC_VehicleMoneyStorage = true; // Allow players to store money in vehicles. If vehicles are destroyed the money is also destroyed.
};
Z_VehicleDistance = 40; // Max distance a vehicle can be sold or accessed from at a trader.
// Vehicle Key Changer
DZE_VehicleKey_Changer = false; // Enable Vehicle Key Changer. Create or change the key for a vehicle.
// Virtual Garage
DZE_Virtual_Garage = false; // Enable the Virtual Garage to store vehicles.
// Plot Management and Plot for Life
DZE_permanentPlot = true; // Plot ownership saves after death. Enables Plot for Life by @RimBlock and Plot Management by @DevZupa.
DZE_isRemovable = ["Plastic_Pole_EP1_DZ"]; //Items that can be removed with a crowbar with no ownership or access required. To forbid base take overs remove plot pole from this list and add it to DZE_restrictRemoval. It is not necessary to add wrecks or items that inherit from 'BuiltItems' to this list.
// Door Management
DZE_doorManagement = true; // Enable Door Management by @DevZupa.
// Group System
dayz_groupSystem = false; // Enable group system
// Bury and Butcher Bodies
DZE_Bury_Body = false; // Enable Bury Bodies
DZE_Butcher_Body = false; // Enable Butcher Bodies
// Weather
DZE_Weather = 2; // Options: 1 - Summer Static, 2 - Summer Dynamic, 3 - Winter Static, 4 - Winter Dynamic. If static is selected, the weather settings will be set at server startup and not change. Weather settings can be adjusted with array DZE_WeatherVariables.
// The settings in the array below may be adjusted as desired. The default settings are designed to maximize client and server performance.
// Having several features enabled at once might have adverse effects on client performance. For instance, you could have snowfall, ground fog, and breath fog threads all running at once.
DZE_WeatherVariables = [
15, // Minimum time in minutes for the weather to change. (default value: 15).
30, // Maximum time in minutes for the weather to change. (default value: 30).
0, // Minimum fog intensity (0 = no fog, 1 = maximum fog). (default value: 0).
.2, // Maximum fog intensity (0 = no fog, 1 = maximum fog). (default value: 0.8).
0, // Minimum overcast intensity (0 = clear sky, 1 = completely overcast). (default value: 0). Note: Rain and snow will not occur when overcast is less than 0.70.
.6, // Maximum overcast intensity (0 = clear sky, 1 = completely overcast). (default value: 1).
0, // Minimum rain intensity (0 = no rain, 1 = maximum rain). Overcast needs to be at least 70% for it to rain.
.6, // Maximum rain intensity (0 = no rain, 1 = maximum rain). Overcast needs to be at least 70% for it to rain.
0, // Minimum wind strength (default value: 0).
3, // Maximum wind strength (default value: 5).
.25, // Probability for wind to change when weather changes. (default value: .25).
1, // Minimum snow intensity (0 = no snow, 1 = maximum snow). Overcast needs to be at least 75% for it to snow.
1, // Maximum snow intensity (0 = no snow, 1 = maximum snow). Overcast needs to be at least 75% for it to snow.
.2,// Probability for a blizzard to occur when it is snowing. (0 = no blizzards, 1 = blizzard all the time). (default value: .2).
10, // Blizzard interval in minutes. Set to zero to have the blizzard run for the whole interval, otherwise you can set a custom time interval for the blizzard.
0, // Ground Fog Effects. Options: 0 - no ground fog, 1 - only at evening, night, and early morning, 2 - anytime, 3 - near cities and towns, at late evening, night, and early morning, 4 - near cities and towns, anytime.
400, // Distance in meters from player to scan for buildings to spawn ground fog. By default, only the 15 nearest buildings will spawn ground fog.
false, // Allow ground fog when it's snowing or raining?
2 // Winter Breath Fog Effects. Options: 0 - no breath fog, 1 - anytime, 2 - only when snowing or blizzard. Note: breath fog is only available with winter weather enabled.
];
//Server
if (isServer) then {
DynamicVehicleDamageLow = 0; // Min damage random vehicles can spawn with
@@ -103,20 +23,6 @@ if (isServer) then {
// ZSC
Z_globalBankingTraders = false; // Enable banking NPCs at trader cities.
// Safe Zone Relocating
DZE_SafeZone_Relocate = false; //Enables relocating of vehicles left in Safe Zones over a server restart.
if (DZE_VehicleKey_Changer) then {
vkc_clearAmmo = true; // Clear the ammo of vehicles after they have been rekeyed/claimed? (stops users getting a free rearm)
vkc_disableThermal = [""]; // Array of vehicle config classes as well as vehicle classnames to disable thermal on when being spawned. i.e: ["All","Land","Air","Ship","StaticWeapon","AH1Z","MTVR"];
};
if (DZE_Virtual_Garage) then {
vg_clearAmmo = true; // Clear the ammo of vehicles spawned during the same restart they are stored? (stops users storing a vehicle for a free rearm)
vg_disableThermal = []; // Array of vehicle config classes as well as vehicle classnames to disable thermal on when being spawned. i.e: ["All","Land","Air","Ship","StaticWeapon","AH1Z","MTVR"];
vg_sortColumn = 0; //0 or an out of range value sorts by the default column 'DisplayName', otherwise 1 = 'DateStored', 2 = 'id', 3 = 'Name' (of storing player), 4 = 'DateMaintained'
};
};
// Client
@@ -239,253 +145,89 @@ if (!isDedicated) then {
DZE_Bandit = -5000; // Defines the value at how much humanity the player is classed as a bandit.
// ZSC
if (Z_SingleCurrency) then {
Z_showCurrencyUI = true; // Show the currency icon on the screen when Z_SingleCurrency is enabled.
Z_showBankUI = true; // Show the banking icon on the screen when Z_globalBanking is enabled.
ZSC_bankTraders = ["Functionary1_EP1"]; // Array of trader classnames that are available for banking (i.e Functionary1_EP1), do not use _DZ classes - they are used as player skins
ZSC_limitOnBank = true; // Have a limit on the bank? (i.e true or false) limits the global banking to the number below.
ZSC_bankObjects = [""]; // Array of objects that are available for banking i.e: ["Suitcase","Info_Board_EP1","Laptop_EP1","SatPhone"]
ZSC_maxBankMoney = 500000; // Default limit for bank objects.
ZSC_defaultStorageMultiplier = 200; // Default magazine count for bank objects that don't have storage slots i.e: ["Suitcase","Info_Board_EP1","Laptop_EP1","SatPhone"]
ZSC_MaxMoneyInStorageMultiplier = 5000; // Multiplier for how much money a bank object can hold, example: 200 magazine slots in the object (or the default value above ^^) multiplied by the 5000 multiplier is 1 million coin storage. (200 * 5000 = 1,000,000 coins)
ZSC_ZombieCoins = [false,[0,1000]]; // First value activate coins on zombies, second value from 0 - 1000 coins on each zombie. Coin for zombies are handled directly in check wallet.
};
Z_showCurrencyUI = true; // Show the currency icon on the screen when Z_SingleCurrency is enabled.
Z_showBankUI = true; // Show the banking icon on the screen when Z_globalBanking is enabled.
ZSC_bankTraders = ["Functionary1_EP1"]; // Array of trader classnames that are available for banking (i.e Functionary1_EP1), do not use _DZ classes - they are used as player skins
ZSC_limitOnBank = true; // Have a limit on the bank? (i.e true or false) limits the global banking to the number below.
ZSC_bankObjects = [""]; // Array of objects that are available for banking i.e: ["Suitcase","Info_Board_EP1","Laptop_EP1","SatPhone"]
ZSC_maxBankMoney = 500000; // Default limit for bank objects.
ZSC_defaultStorageMultiplier = 200; // Default magazine count for bank objects that don't have storage slots i.e: ["Suitcase","Info_Board_EP1","Laptop_EP1","SatPhone"]
ZSC_MaxMoneyInStorageMultiplier = 5000; // Multiplier for how much money a bank object can hold, example: 200 magazine slots in the object (or the default value above ^^) multiplied by the 5000 multiplier is 1 million coin storage. (200 * 5000 = 1,000,000 coins)
ZSC_ZombieCoins = [false,[0,1000]]; // First value activate coins on zombies, second value from 0 - 1000 coins on each zombie. Coin for zombies are handled directly in check wallet.
// Loot system
dayz_toolBreaking = false; //Sledgehammer, crowbar and pickaxe have a chance to break when used.
dayz_knifeDulling = false; // Enable knife dulling. Knives need to be sharpened after so many uses.
dayz_matchboxCount = false; // Enable match stick count. After five uses matches run out and must be replaced.
dayz_waterBottleBreaking = false; // Water bottles have a chance to break when boiling and require duct tape to fix
// Bury and Butcher Bodies
if (DZE_Bury_Body) then {
DZE_Bury_Body_Value = 30;// Amount of humanity to gain for burying a body.
};
if (DZE_Butcher_Body) then {
DZE_Butcher_Body_Value = -30;// Amount of humanity to lose for butchering a body.
};
// Take Clothes
DZE_Take_Clothes = false; // Allows to take the clothing from dead players and AIs
DZE_Disable_Take_Clothes = []; // Enter the skins you do not want to be allowed to be recovered from dead bodies. E.g.: DZE_Disable_Take_Clothes = ["Doctor_DZ","Assistant_DZ","Worker1_DZ"];
/*
DZE_CLICK_ACTIONS
This is where you register your right-click actions
FORMAT -- (no comma after last array entry)
[_classname,_text,_execute,_condition],
PARAMETERS
_classname : the name of the class to click on (example = "ItemBloodbag")
_text : the text for the option that is displayed when right clicking on the item (example = "Self Transfuse")
_execute : compiled code to execute when the option is selected (example = "execVM 'my\scripts\self_transfuse.sqf';")
_condition : compiled code evaluated to determine whether or not the option is displayed (example = {true})
*/
DZE_CLICK_ACTIONS = [
/* ["ItemGPS",localize "STR_CL_CA_SCAN_NEARBY","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_ZOMBIE_COUNT = count ((position player) nearEntities ['zZombie_Base',CA_GPS_RANGE]); CA_MAN_COUNT = count ((position player) nearEntities ['CAManBase',CA_GPS_RANGE]); format[localize 'STR_CL_CA_SCAN',CA_GPS_RANGE,CA_MAN_COUNT - CA_ZOMBIE_COUNT,count ((position player) nearEntities ['zZombie_Base',CA_GPS_RANGE]),count ((position player) nearEntities ['allVehicles',CA_GPS_RANGE]) - CA_MAN_COUNT] call dayz_rollingMessages;","true"],
["ItemGPS",localize "STR_CL_CA_RANGE_UP","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_GPS_RANGE = (CA_GPS_RANGE + 100) min 2500; format[localize 'STR_CL_CA_RANGE_GPS',CA_GPS_RANGE] call dayz_rollingMessages;","true"],
["ItemGPS",localize "STR_CL_CA_RANGE_DOWN","if(isNil 'CA_GPS_RANGE') then {CA_GPS_RANGE = 1500;};CA_GPS_RANGE = (CA_GPS_RANGE - 100) max 1000; format[localize 'STR_CL_CA_RANGE_GPS',CA_GPS_RANGE] call dayz_rollingMessages;","true"]
*/
];
DZE_Remote_Vehicle = false; // Enable/Disable the Remote Vehicle options like ejecting players from a vehicle or lock/unlock the vehicle from the distance just by the key.
if (DZE_Remote_Vehicle) then {
DZE_CLICK_ACTIONS = DZE_CLICK_ACTIONS + [
["ItemKey",localize "STR_CL_RV_CA_EJECT","spawn remoteVehicle;","true",1],
["ItemKey",localize "STR_CL_RV_CA_ENGINE","spawn remoteVehicle;","true",2],
["ItemKey",localize "STR_CL_RV_CA_UNLOCK","spawn remoteVehicle;","true",3],
["ItemKey",localize "STR_CL_RV_CA_LOCK","spawn remoteVehicle;","true",4],
["ItemKey",localize "STR_CL_RV_CA_LIGHTS","spawn remoteVehicle;","true",5]
];
};
DZE_LocateVehicle = false; // Enable/Disable the option to locate a vehicle from a key in the inventory with a rightclick on the GPS.
if (DZE_LocateVehicle) then {
DZE_CLICK_ACTIONS = DZE_CLICK_ACTIONS + [
["ItemGPS",localize "STR_CL_LV_LOCATE_VEHICLES","[] spawn locateVehicle;","true"]
];
};
if (DZE_VehicleKey_Changer) then {
vkc_claimPrice = 1000; // Amount in worth for claiming a vehicle. See the top of this script for an explanation.
vkc_changePrice = 5000; // Amount in worth for changing the key for a vehicle. See the top of this script for an explanation.
};
if (DZE_Virtual_Garage) then {
vg_list = ["Plastic_Pole_EP1_DZ"]; // List of objects/traders that are allowed to interact with virtual garage. i.e: ["Plastic_Pole_EP1_DZ","Worker2"];
vg_blackListed = []; // Array of vehicle config classes as well as vehicle classnames that are blacklisted from being stored, i.e ["All","Land","Air","Ship","StaticWeapon","AH1Z","MTVR"]
vg_heliPads = ["Helipad_Civil_DZ","Helipad_Rescue_DZ","Helipad_Army_DZ","Helipad_Cross_DZ","Helipad_ParkBorder_DZ"]; // Array of heli pad classnames
vg_store_keyless_vehicles = false; // Allow storing of keyless vehicle (map or mission spawned)
vg_removeKey = true; // Remove the key from the players inventory after storing vehicle?
vg_requireKey = true; // Require the player to have the key when storing a locked vehicle.
vg_storeWithGear = true; // Allow storing vehicles with gear?
vg_tiedToPole = true; // Tie the virtual garage to a local plot pole? If no plot pole is present (i.e a communal garage at a trader etc) the players UID will be used.
vg_pricePer = 100; // Price in worth to store a vehicle per gear item, use 0 if you want it to be free.
vg_maintainCost = 10000; //cost is 1000 per 10oz gold, gem cost is as defined in DZE_GemWorthArray; if you use ZSC then this is an amount of coins. This is a flate rate for all vehicles in the garage/per player depending on vg_tiedToPole
vg_price = [["Land",500],["Air",500],["Ship",500]];
/*
vg_price can be an array of vehicle config classes as well as vehicle classnames, you need to put these in order of what you prefer to get checked first.
Price is in worth for briefcases or coins for gold based servers (10,000 worth is considered 1 briefcase, 100,000 coins is considered 1 briefcase)
i.e:
vg_price = [["Land",500],["Air",300],["Ship",100]];
vg_price = [["350z_red",200],["Land",500],["AH1Z",1000],["Air",300],["Ship",100]];
*/
vg_limit = [["Land",5],["Air",5],["Ship",5]];
/*
vg_limit can be an array of vehicle config classes and classnames to narrow down what players can store or it can be a numerical value for a total limit.
These can be classnames as well as config classnames, you need to put these in order of what you prefer to get checked first.
i.e:
vg_limit = [["Land",5],["Air",3],["Ship",1]];
vg_limit = [["350z_red",2],["Land",5],["AH1Z",1],["Air",3],["Ship",1]];
vg_limit = 5;
*/
};
// Bloodsuckers
DZE_Bloodsuckers = false; // Enable bloodsucker spawning.
if (DZE_Bloodsuckers) then {
DZE_BloodsuckerChance = .15; // Chance that a building will spawn a bloodsucker. Default .15 (15%)
DZE_BloodsuckerBuildings = ["Land_Hlidac_budka","Land_Mil_Guardhouse","Land_Mil_Barracks","Land_Mil_House","Land_Mil_Barracks_i","CrashSite_RU","CrashSite_US","CrashSite_EU","CrashSite_UN"]; // Bloodsuckers will spawn near these building classes.
DZE_BloodsuckersMaxGlobal = 15; // Maximum number of bloodsuckers allowed on the map at one time.
DZE_BloodsuckersMaxNear = 3; // Maximum number of bloodsuckers allowed in any 200 meter area.
DZE_BloodsuckersMaxLocal = 2; // Maximum number of bloodsuckers that can spawn per client.
DZE_BloodsuckerScreenEffect = true; // On screen slash marks when the bloodsuckers attack.
DZE_BloodsuckerDeleteNearTrader = true; // Deletes bloodsuckers when near trader cities.
DZE_MutantHeartProtect = true; // Disables targeting and attack if the player has a mutant heart in inventory.
};
// Garage Door Opener
DZE_GarageDoor_Opener = false; // Enables the option to open Garage Doors from the inside of a vehicle.
if (DZE_GarageDoor_Opener) then {
DZE_GarageDoors = ["CinderWallDoorLocked_DZ","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","WoodenGate_1_DZ","WoodenGate_2_DZ","WoodenGate_3_DZ","WoodenGate_4_DZ","Land_DZE_WoodGateLocked","CinderGateLocked_DZ","Land_DZE_WoodOpenTopGarageLocked","CinderGarageOpenTopLocked_DZ"]; // Array of Garage Doors that can be opened.
DZE_GarageDoor_Radius = 30; // Radius from where the Garage Doors can be opened. Higher values may negatively impact the performance
};
// Service Points for Refuel, Repair and Rearm
DZE_Service_Points = false;
if (DZE_Service_Points) then {
// Valid vehicle config classes as an example: "Air", "AllVehicles", "All", "APC", "Bicycle", "Car", "Helicopter", "Land", "Motorcycle", "Plane", "Ship", "Tank"
DZE_SP_Classes = ["Map_A_FuelStation_Feed","Land_A_FuelStation_Feed","FuelPump_DZ"]; // service point classes, You can also use dayz_fuelpumparray by its self for all the default fuel pumps.
DZE_SP_MaxDistance = 50; // maximum distance from a service point for the options to be shown
// Refuel Settings
DZE_SP_Refuel_Enable = true; // enable or disable the refuel option
if (DZE_SP_Refuel_Enable) then {
DZE_SP_Refuel_Costs = [
//["Ship",localize "str_temp_param_disabled"], // All vehicles are disabled to refuel.
["Land",localize "strwffree"], // All vehicles are free to refuel.
["Air",1000] //1000 worth is 1 10oz gold for all air vehicles
];
DZE_SP_Refuel_UpdateInterval = 1; // update interval (in seconds)
DZE_SP_Refuel_Amount = 0.05; // amount of fuel to add with every update (in percent)
};
// Repair Settings
DZE_SP_Repair_Enable = true; // enable or disable the repair option
if (DZE_SP_Repair_Enable) then {
DZE_SP_Repair_RepairTime = 2; // time needed to repair each damaged part (in seconds)
DZE_SP_Repair_Costs = [
["Air",4000], // 4000 worth is 4 10oz gold.
["AllVehicles",2000] // 2000 worth is 2 10oz gold for all other vehicles
];
};
// Rearm Settings
DZE_SP_Rearm_Enable = true; // enable or disable the rearm option
if (DZE_SP_Rearm_Enable) then {
DZE_SP_Rearm_Defaultcost = 10000; // Default cost to rearm a weapon. (10000 worth == 1 briefcase)
DZE_SP_Rearm_MagazineCount = 2; // amount of magazines to be added to the vehicle weapon
DZE_SP_Rearm_Ignore = [(localize "str_dn_horn"),(localize "str_dn_laser_designator")]; // Array of weapon display names that are ignored in the rearm listing.
/*
DZE_SP_Rearm_Costs is an array based on the AMMO type. I.e M240, MK19, PKM, PKT, M134 etc.
You can disable certain ammo types from being able to be rearmed by making the price disabled text
example: ["M134",localize "str_temp_param_disabled"]
*/
DZE_SP_Rearm_Costs = [
[(localize "str_mn_40rnd_grad"),localize "str_temp_param_disabled"], // BM-21 Grad is disabled (ammo is broken)
[(localize "str_dn_flarelauncher"),2000], // Flares
[(localize "str_ep1_dn_smokelauncher"),2000], // Smokes
[(localize "str_dn_pk"),5000], // PKM
[(localize "str_dn_pkt"),5000], // PKT
[(localize "str_sn_m134"),5000], // M134
[(localize "str_dn_ags30"),5000], // AGS-30
[(localize "str_dn_dshkm"),5000], // DSHKM
[(localize "str_DN_VIKHR_CCP"),5000], // Vikhr 9A4172
[(localize "str_baf_baf_l94a10"),5000], // L94A1 Chain Gun
[(localize "str_baf_crv70"),5000], // CRV7
[(localize "str_baf_ctws0"),5000], // CTWS
[(localize "str_baf_m621_manual0"),5000], // M621
[(localize "str_dn_2a38m"),5000], // 2A38M Gun
[(localize "str_dn_2a42"),5000], // 2A42
[(localize "str_dn_2a46m"),5000], // 2A46M Cannon
[(localize "str_dn_2a46m_rocket"),5000], // 9M119M Refleks rocket
[(localize "str_dn_2a70"),5000], // 2A70 100mm
[(localize "str_dn_2a70_rocket"),5000], // 9M117M1 Arkan
[(localize "str_dn_2a72"),5000], // 2A72 30mm
[(localize "str_dn_80mmlauncher_burst"),5000], // S-8
[(localize "str_dn_9m311laucher"),5000], // Tunguska 9M311
[(localize "str_dn_ags17"),5000], // AGS-17
[(localize "str_dn_d81"),5000], // D-81
[(localize "str_dn_dt_veh"),5000], // DT
[(localize "str_dn_hellfire"),5000], // AGM-114 Hellfire
[(localize "str_dn_kord"),5000], // KORD
[(localize "str_dn_m197"),5000], // M197
[(localize "str_dn_m240"),5000], // M240
[(localize "str_dn_m242"),5000], // M242
[(localize "str_dn_m256"),5000], // M256
[(localize "str_dn_sidewinderlaucher"),5000], // AIM-9L Sidewinder
[(localize "str_dn_zis_s_53"),5000], // ZiS-S-53
[(localize "str_ep1_dn_57mmlauncher"),5000], // S-5
[(localize "str_ep1_dn_azp85"),5000], // AZP-23
[(localize "str_ep1_dn_ffarlauncher"),5000], // Hydra
[(localize "str_ep1_dn_m2"),5000], // M2 Machinegun
[(localize "str_ep1_dn_m230"),5000], // M230
[(localize "str_ep1_dn_m32_ep1"),5000], // M32
[(localize "str_ep1_dn_mk19"),5000], // Mk19
[(localize "str_ep1_dn_yakb"),5000], // Yak-B
[(localize "str_mn_at2_mi24d"),5000], // Falanga 3M11
[(localize "str_mn_at5_bmp2"),5000], // Konkurs 9M113
[(localize "str_mn_stinger"),5000], // FIM-92F Stinger
[(localize "str_mn_12rnd_mlrs"),5000], // MLRS
[(localize "str_baf_baf_l2a10"),5000], // L111A1
[(localize "STR_DN_D10_CCP"),5000], // D-10
[(localize "str_dn_tow"),5000], // M220 TOW
[(localize "str_dn_zu23"),5000], // ZU-23
[(localize "str_dn_kpvt"),5000], // KPVT
[(localize "str_dn_m3p"),5000], // M3P
[(localize "str_dn_spg9"),5000], // SPG-9
[(localize "str_dn_gau8"),5000], // GAU-8
[(localize "str_dn_maverick"),5000], // AGM-65 Maverick
[(localize "str_dn_gbu12"),5000], // GBU-12
[(localize "str_dn_gau12"),5000], // GAU-12
[(localize "STR_DN_KH29_CCP"),5000], // Kh-29L
[(localize "str_dn_r73"),5000], // R-73
[(localize "str_mn_fab250"),5000], // FAB-250
[(localize "str_dn_gsh301"),5000], // GSh-301
[(localize "str_mn_23mm_gsh23l"),5000], // GSh-23L
[(localize "str_sn_grenade"),5000], // Grenade
[(localize "str_mn_at9_mi24p"),5000], // Ataka-V 9M120
[(localize "str_mn_at6_mi24v"),5000], // Shturm 9K114
["SGMT",5000], // SGMT no localization available
["M68",5000], // M68 no localization available
["GAU-22",5000], // GAU-22 no localization available
["GSh-30",5000], // GSh-30 no localization available
["M60",5000], // M60 no localization available
["GSh-30K",5000] // GSh-30K no localization available
];
};
};
};
// Both
dayz_infectiouswaterholes = true; //Enable infected waterholes
dayz_townGenerator = false; // Spawn vanilla map junk instead of Epoch DynamicDebris. Currently only compatible with Chernarus. Also enables comfrey plant spawner which negatively impacts performance.
dayz_townGeneratorBlackList = []; // If townGenerator is enabled it will not spawn junk within 150m of these positions. Example for Chernarus traders: [[4053,11668,0],[11463,11349,0],[6344,7806,0],[1606,7803,0],[12944,12766,0],[5075,9733,0],[12060,12638,0]]
DZE_HeliLift = true; // Enable Epoch heli lift system
DZE_GodModeBaseExclude = []; //Array of object class names excluded from the god mode bases feature
DZE_NoVehicleExplosions = false; //Disable vehicle explosions to prevent damage to objects by ramming. Doesn't work with amphibious pook which should not be used due to FPS issues.
DZE_SafeZoneZombieLoot = false; // Enable spawning of Zombies and loot in positions listed in DZE_SafeZonePosArray?
dayz_ForcefullmoonNights = false; // Forces night time to be full moon.
infectedWaterHoles = []; //Needed for non-cherno maps.
DZE_GodModeBase = false; // Disables damage handler from base objects so they can't be destroyed.
dayz_spawnselection = 0; //(Chernarus only) Turn on spawn selection 0 = random only spawns, 1 = spawn choice based on limits
dayz_classicBloodBagSystem = false; // disable blood types system and use the single classic ItemBloodbag
dayz_enableFlies = true; // Enable flies on dead bodies (negatively impacts FPS).
// Death Messages
DZE_DeathMsgChat = "none"; //"none","global","side","system" Display death messages in selected chat channel.
DZE_DeathMsgDynamicText = false; // Display death messages as dynamicText in the top left with weapon icons.
DZE_DeathMsgRolling = false; // Display death messages as rolling messages in bottom center of screen.
// ZSC
Z_SingleCurrency = false; // Enable single currency system.
Z_globalBanking = false; // Enable global banking system.
Z_persistentMoney = false; // Enabling this stores currency to player_data instead of character_data. Currency transfers to a new character after death. For PVE servers only. Formerly called "GlobalMoney".
Z_VehicleDistance = 40; // Max distance a vehicle can be sold or accessed from at a trader.
CurrencyName = "Coins"; // If using single currency this is the currency display name.
DZE_MoneyStorageClasses = ["VaultStorage","VaultStorage2","VaultStorageLocked","VaultStorage2Locked","LockboxStorageLocked","LockboxStorage2Locked","LockboxStorage","LockboxStorage2","LockboxStorageWinterLocked","LockboxStorageWinter2Locked","LockboxStorageWinter","LockboxStorageWinter2","TallSafe","TallSafeLocked"]; // If using single currency this is an array of object classes players can store coins in. E.g.: ["GunRack_DZ","WoodCrate_DZ"]
ZSC_VehicleMoneyStorage = true; // Allow players to store money in vehicles. If vehicles are destroyed the money is also destroyed.
// Plot Management and Plot for Life
DZE_permanentPlot = true; // Plot ownership saves after death. Enables Plot for Life by @RimBlock and Plot Management by @DevZupa.
DZE_isRemovable = ["Plastic_Pole_EP1_DZ"]; //Items that can be removed with a crowbar with no ownership or access required. To forbid base take overs remove plot pole from this list and add it to DZE_restrictRemoval. It is not necessary to add wrecks or items that inherit from 'BuiltItems' to this list.
// Door Management
DZE_doorManagement = true; // Enable Door Management by @DevZupa.
// Group System
dayz_groupSystem = false; // Enable group system
// Weather
DZE_Weather = 2; // Options: 1 - Summer Static, 2 - Summer Dynamic, 3 - Winter Static, 4 - Winter Dynamic. If static is selected, the weather settings will be set at server startup and not change. Weather settings can be adjusted with array DZE_WeatherVariables.
// The settings in the array below may be adjusted as desired. The default settings are designed to maximize client and server performance.
// Having several features enabled at once might have adverse effects on client performance. For instance, you could have snowfall, ground fog, and breath fog threads all running at once.
DZE_WeatherVariables = [
15, // Minimum time in minutes for the weather to change. (default value: 15).
30, // Maximum time in minutes for the weather to change. (default value: 30).
0, // Minimum fog intensity (0 = no fog, 1 = maximum fog). (default value: 0).
.2, // Maximum fog intensity (0 = no fog, 1 = maximum fog). (default value: 0.8).
0, // Minimum overcast intensity (0 = clear sky, 1 = completely overcast). (default value: 0). Note: Rain and snow will not occur when overcast is less than 0.70.
.6, // Maximum overcast intensity (0 = clear sky, 1 = completely overcast). (default value: 1).
0, // Minimum rain intensity (0 = no rain, 1 = maximum rain). Overcast needs to be at least 70% for it to rain.
.6, // Maximum rain intensity (0 = no rain, 1 = maximum rain). Overcast needs to be at least 70% for it to rain.
0, // Minimum wind strength (default value: 0).
3, // Maximum wind strength (default value: 5).
.25, // Probability for wind to change when weather changes. (default value: .25).
1, // Minimum snow intensity (0 = no snow, 1 = maximum snow). Overcast needs to be at least 75% for it to snow.
1, // Maximum snow intensity (0 = no snow, 1 = maximum snow). Overcast needs to be at least 75% for it to snow.
.2,// Probability for a blizzard to occur when it is snowing. (0 = no blizzards, 1 = blizzard all the time). (default value: .2).
10, // Blizzard interval in minutes. Set to zero to have the blizzard run for the whole interval, otherwise you can set a custom time interval for the blizzard.
0, // Ground Fog Effects. Options: 0 - no ground fog, 1 - only at evening, night, and early morning, 2 - anytime, 3 - near cities and towns, at late evening, night, and early morning, 4 - near cities and towns, anytime.
400, // Distance in meters from player to scan for buildings to spawn ground fog. By default, only the 15 nearest buildings will spawn ground fog.
false, // Allow ground fog when it's snowing or raining?
2 // Winter Breath Fog Effects. Options: 0 - no breath fog, 1 - anytime, 2 - only when snowing or blizzard. Note: breath fog is only available with winter weather enabled.
];
/*
Developers:
@@ -494,4 +236,4 @@ if (!isDedicated) then {
Variables that are map specific or frequently changed should be included in init.sqf by default
with a corresponding if(isNil)then{}; in variables.sqf.
*/
*/

View File

@@ -692,11 +692,4 @@ class IRStrobe
{
weight = 2;
};
class 200Rnd_40mmHE_FV510
{
weight = 20;
};
class 200Rnd_40mmSABOT_FV510
{
weight = 20;
};

View File

@@ -64,6 +64,11 @@ class deer_stand_kit
weight = 25;
};
class m240_nest_kit
{
weight = 125;
};
class rusty_gate_kit
{
weight = 80;

View File

@@ -1,100 +0,0 @@
class m240_nest_kit
{
weight = 125;
};
class M2_MG_Static_kit
{
weight = 45;
};
class M2_TriPod_MG_Static_kit
{
weight = 35;
};
class DSHKM_MG_Static_kit
{
weight = 45;
};
class DSHKM_TriPod_MG_Static_kit
{
weight = 35;
};
class KORD_TriPod_MG_Static_kit
{
weight = 35;
};
class KORD_MG_Static_kit
{
weight = 65;
};
class L2A1_MG_Static_kit
{
weight = 45;
};
class L2A1_Tripod_MG_Static_kit
{
weight = 30;
};
class GMG_Tripod_MG_Static_kit
{
weight = 30;
};
class AGS30_GrenadeLauncher_Static_kit
{
weight = 35;
};
class MK19_TriPod_GrenadeLauncher_Static_kit
{
weight = 35;
};
class GPMG_TriPod_GrenadeLauncher_Static_kit
{
weight = 35;
};
class M119_Artillery_Static_kit
{
weight = 280;
};
class D30_Artillery_Static_kit
{
weight = 380;
};
class SearchLight_Static_kit
{
weight = 25;
};
class M252_Mortar_Static_kit
{
weight = 30;
};
class 2b14_82mm_Mortar_Static_kit
{
weight = 30;
};
class Metis_Launcher_Static_kit
{
weight = 75;
};
class SPG9_Launcher_Static_kit
{
weight = 75;
};
class Stinger_Tripod_Launcher_Static_kit
{
weight = 30;
};
class TOW_Tripod_Launcher_Static_kit
{
weight = 30;
};
class Rbs70_Launcher_Static_kit
{
weight = 130;
};
class Igla_AntiAir_Launcher_Static_kit
{
weight = 120;
};
class ZU23_AntiAir_Static_kit
{
weight = 370;
};

View File

@@ -140,60 +140,4 @@ class ItemPlasticParts
class ItemCeramicParts
{
weight = 3;
};
class ItemWeaponPartsPistol
{
weight = 4;
};
class ItemWeaponPartsSMG
{
weight = 5;
};
class ItemWeaponPartsShotgun
{
weight = 5;
};
class ItemWeaponPartsRifle
{
weight = 7;
};
class ItemWeaponPartsSniperRilfe
{
weight = 7.5;
};
class ItemWeaponPartsMG
{
weight = 9;
};
class ItemWeaponPartsUnknown
{
weight = 8.5;
};
class ItemWeaponPartsBad
{
weight = 8;
};
class ItemWeaponPartsNormal
{
weight = 9;
};
class ItemWeaponPartsGood
{
weight = 9.5;
};
class ItemWeaponPartsExecellent
{
weight = 10;
};
class ItemGunPowderSmall
{
weight = 2;
};
class ItemGunPowder
{
weight = 8;
};
class ItemGunPowderBig
{
weight = 16;
};

View File

@@ -34,7 +34,6 @@ class CfgWeight
#include "Magazines\Buildings\Tent.hpp"
#include "Magazines\Buildings\Misc.hpp"
#include "Magazines\Buildings\TripWire.hpp"
#include "Magazines\Buildings\StaticWeapons.hpp"
#include "Magazines\Consumables\Fish.hpp"
#include "Magazines\Consumables\Meat.hpp"

View File

@@ -2282,30 +2282,6 @@ class G3_DZ
{
weight = 6.1;
};
class G3A3_DZ
{
weight = 6.1;
};
class G3A3_CCO_DZ
{
weight = 6.2;
};
class G3A3_Holo_DZ
{
weight = 6.2;
};
class G3A3_ACOG_DZ
{
weight = 6.3;
};
class G3_SG1_DZ
{
weight = 6.5;
};
class G3_SG1_Bipod_DZ
{
weight = 6.7;
};
class SCAR_H_AK_DZ
{
weight = 4.5;

View File

@@ -112,12 +112,7 @@ if (!isDedicated) then {
//ui
player_toggleSoundMute = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_toggleSoundMute.sqf";
player_toggleStreamerMode = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_toggleStreamerMode.sqf";
if (!isNil "DZE_CLICK_ACTIONS" && {count DZE_CLICK_ACTIONS > 0}) then {
player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\Rightclicks\ui_selectSlot_addon.sqf";
} else {
player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\Rightclicks\ui_selectSlot_vanilla.sqf";
DZE_CLICK_ACTIONS = nil;
};
player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";
player_selectWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_selectWeapon.sqf";
player_markMap = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_markMap.sqf";
player_gearSet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSet.sqf";
@@ -198,53 +193,6 @@ if (!isDedicated) then {
fnc_radioState = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\radioState.sqf"; // Toggle radio on and off
fnc_localizeMessage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_localizeMessage.sqf";
fnc_remoteMessage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_remoteMessage.sqf";
if (DZE_Remote_Vehicle) then {
remoteVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\remoteVehicle\remoteVehicle.sqf";
rv_vehicleInfo = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\remoteVehicle\vehicleInfo.sqf";
};
if (DZE_LocateVehicle) then {
locateVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\locateVehicle.sqf";
};
if (DZE_VehicleKey_Changer) then {
vkc_vehicleInfo = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\vkc\vehicleInfo.sqf";
};
if (DZE_Virtual_Garage) then {
player_getVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\virtualGarage\player_getVehicle.sqf";
player_removePad = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\virtualGarage\player_removePad.sqf";
player_storeVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\virtualGarage\player_storeVehicle.sqf";
Player_MaintainVG = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\virtualGarage\player_MaintainVG.sqf";
vehicleInfo = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\virtualGarage\vehicleInfo.sqf";
vg_maintainSetText = {
disableSerialization;
waituntil {!isNull (findDisplay 2800)};
_vgDisplCtl = (findDisplay 2800) displayCtrl 2854;
if (vg_maintainCost > 0) then {
_itemText = if (Z_SingleCurrency) then {CurrencyName} else {[vg_maintainCost,true] call z_calcCurrency};
if (Z_SingleCurrency) then {
_vgDisplCtl ctrlSetText format["%1 (%2 %3)",localize "STR_CL_VG_MAINTAIN_GARAGE",vg_maintainCost,_itemText];
} else {
_vgDisplCtl ctrlSetText format["%1 (%2)",localize "STR_CL_VG_MAINTAIN_GARAGE",_itemText];
};
} else {
_vgDisplCtl ctrlSetText format["%1 (%2)",localize "STR_CL_VG_MAINTAIN_GARAGE",localize "strwffree"];
};
};
};
if (DZE_Service_Points) then {
execVM "\z\addons\dayz_code\actions\servicePoints\init.sqf";
};
// Bloodsuckers
if (DZE_Bloodsuckers) then {
player_mutantAttack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_mutantAttack.sqf";
mutant_generate = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\mutant_generate.sqf";
mutant_findTarget = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\mutant_findTarget.sqf";
};
// Weather
if (DZE_Weather in [3,4]) then {

View File

@@ -1,7 +1,7 @@
/**************Variables Compiled on Both Client and Server**************/
Dayz_plants = ["Dayz_Plant1","Dayz_Plant2","Dayz_Plant3"];
DayZ_SafeObjects = ["Base_Fire_DZ","Land_Fire_DZ","TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4","Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","BearTrap_DZ","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare","TentStorageDomed","VaultStorageLocked","VaultStorage2Locked","BagFenceRound_DZ","TrapBear","Fort_RazorWire","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Land_HBarrier5_DZ","Fence_corrugated_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","Wooden_shed2_DZ","WoodShack_DZ","WoodShack2_DZ","StorageShed_DZ","StorageShed2_DZ","Plastic_Pole_EP1_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","WinterCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","WinterLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","LockboxStorageLocked","LockboxStorage2Locked","LockboxStorageWinterLocked","LockboxStorageWinter2Locked","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodStairsRails_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ","GunRack_DZ","GunRack2_DZ","FireBarrel_DZ","WoodCrate_DZ","WoodCrate2_DZ","Scaffolding_DZ","DesertTentStorage","DesertTentStorage0","DesertTentStorage1","DesertTentStorage2","DesertTentStorage3","DesertTentStorage4","WoodenFence_1_foundation_DZ","WoodenFence_1_frame_DZ","WoodenFence_quaterpanel_DZ","WoodenFence_halfpanel_DZ","WoodenFence_thirdpanel_DZ","WoodenFence_1_DZ","WoodenFence_2_DZ","WoodenFence_3_DZ","WoodenFence_4_DZ","WoodenFence_5_DZ","WoodenFence_6_DZ","WoodenFence_7_DZ","MetalFence_1_foundation_DZ","MetalFence_1_frame_DZ","MetalFence_halfpanel_DZ","MetalFence_thirdpanel_DZ","MetalFence_1_DZ","MetalFence_2_DZ","MetalFence_3_DZ","MetalFence_4_DZ","MetalFence_5_DZ","MetalFence_6_DZ","MetalFence_7_DZ","WoodenGate_foundation_DZ","WoodenGate_1_DZ","WoodenGate_2_DZ","WoodenGate_3_DZ","WoodenGate_4_DZ","WoodGateFrame_DZ","Land_DZE_WoodGate","Land_DZE_WoodGateLocked","CinderGateFrame_DZ","CinderGate_DZ","CinderGateLocked_DZ","Metal_Drawbridge_DZ","Metal_DrawbridgeLocked_DZ","WoodTriangleWall_DZ","WoodHandrail_DZ","WoodFloorStairs_DZ","WoodPillar_DZ","Land_DZE_WoodOpenTopGarageDoor","Land_DZE_WoodOpenTopGarageLocked","CinderGarageOpenTopFrame_DZ","CinderGarageOpenTop_DZ","CinderGarageOpenTopLocked_DZ","DoorFrame_DZ","Door_DZ","DoorLocked_DZ","CinderWallWindow_DZ","CinderWallWindowLocked_DZ","CinderDoorHatch_DZ","CinderDoorHatchLocked_DZ","MetalPillar_DZ","MetalFloor_Half_DZ","MetalFloor_Quarter_DZ","GlassFloor_DZ","Concrete_Bunker_DZ","Concrete_Bunker_Locked_DZ","TallSafeLocked","Advanced_WorkBench_DZ","CookTripod_DZ","Stoneoven_DZ","Commode_DZ","Wardrobe_DZ","Fridge_DZ","Washing_Machine_DZ","Server_Rack_DZ","ATM_DZ","Armchair_DZ","Sofa_DZ","Arcade_DZ","Vendmachine1_DZ","Vendmachine2_DZ","Notebook_DZ","Water_Pump_DZ","Greenhouse_DZ","Bed_DZ","Table_DZ","Office_Chair_DZ","MetalFloor4x_DZ","GlassFloor_Half_DZ","GlassFloor_Quarter_DZ","WoodFloor4x_DZ","WoodTriangleFloor_DZ","CinderWallHalf_Gap_DZ","TentStorageWinter","TentStorageWinter0","TentStorageWinter1","TentStorageWinter2","TentStorageWinter3","TentStorageWinter4","WinterDomeTentStorage","WinterDomeTentStorage0","WinterDomeTentStorage1","WinterDomeTentStorage2","WinterDomeTentStorage3","WinterDomeTentStorage4","VaultStorageBroken","VaultStorageBroken2","TallSafeBroken","LockboxStorageBroken","LockboxStorage2Broken","LockboxStorageWinterBroken","LockboxStorageWinter2Broken","StorageCrate_DZ","CamoStorageCrate_DZ","Garage_Green_DZ","Garage_White_DZ","Garage_Brown_DZ","Garage_Grey_DZ","Helipad_Civil_DZ","Helipad_Rescue_DZ","Helipad_Army_DZ","Helipad_Cross_DZ","Helipad_ParkBorder_DZ","CCTV_DZ"];
DayZ_SafeObjects = ["Base_Fire_DZ","Land_Fire_DZ","TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4","Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","BearTrap_DZ","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare","TentStorageDomed","VaultStorageLocked","VaultStorage2Locked","BagFenceRound_DZ","TrapBear","Fort_RazorWire","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Land_HBarrier5_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","Wooden_shed2_DZ","WoodShack_DZ","WoodShack2_DZ","StorageShed_DZ","StorageShed2_DZ","Plastic_Pole_EP1_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","WinterCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","WinterLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","LockboxStorageLocked","LockboxStorage2Locked","LockboxStorageWinterLocked","LockboxStorageWinter2Locked","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodStairsRails_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ","GunRack_DZ","GunRack2_DZ","FireBarrel_DZ","WoodCrate_DZ","WoodCrate2_DZ","Scaffolding_DZ","DesertTentStorage","DesertTentStorage0","DesertTentStorage1","DesertTentStorage2","DesertTentStorage3","DesertTentStorage4","WoodenFence_1_foundation_DZ","WoodenFence_1_frame_DZ","WoodenFence_quaterpanel_DZ","WoodenFence_halfpanel_DZ","WoodenFence_thirdpanel_DZ","WoodenFence_1_DZ","WoodenFence_2_DZ","WoodenFence_3_DZ","WoodenFence_4_DZ","WoodenFence_5_DZ","WoodenFence_6_DZ","WoodenFence_7_DZ","MetalFence_1_foundation_DZ","MetalFence_1_frame_DZ","MetalFence_halfpanel_DZ","MetalFence_thirdpanel_DZ","MetalFence_1_DZ","MetalFence_2_DZ","MetalFence_3_DZ","MetalFence_4_DZ","MetalFence_5_DZ","MetalFence_6_DZ","MetalFence_7_DZ","WoodenGate_foundation_DZ","WoodenGate_1_DZ","WoodenGate_2_DZ","WoodenGate_3_DZ","WoodenGate_4_DZ","WoodGateFrame_DZ","Land_DZE_WoodGate","Land_DZE_WoodGateLocked","CinderGateFrame_DZ","CinderGate_DZ","CinderGateLocked_DZ","Metal_Drawbridge_DZ","Metal_DrawbridgeLocked_DZ","WoodTriangleWall_DZ","WoodHandrail_DZ","WoodFloorStairs_DZ","WoodPillar_DZ","Land_DZE_WoodOpenTopGarageDoor","Land_DZE_WoodOpenTopGarageLocked","CinderGarageOpenTopFrame_DZ","CinderGarageOpenTop_DZ","CinderGarageOpenTopLocked_DZ","DoorFrame_DZ","Door_DZ","DoorLocked_DZ","CinderWallWindow_DZ","CinderWallWindowLocked_DZ","CinderDoorHatch_DZ","CinderDoorHatchLocked_DZ","MetalPillar_DZ","MetalFloor_Half_DZ","MetalFloor_Quarter_DZ","GlassFloor_DZ","Concrete_Bunker_DZ","Concrete_Bunker_Locked_DZ","TallSafeLocked","Advanced_WorkBench_DZ","CookTripod_DZ","Stoneoven_DZ","Commode_DZ","Wardrobe_DZ","Fridge_DZ","Washing_Machine_DZ","Server_Rack_DZ","ATM_DZ","Armchair_DZ","Sofa_DZ","Arcade_DZ","Vendmachine1_DZ","Vendmachine2_DZ","Notebook_DZ","Water_Pump_DZ","Greenhouse_DZ","Bed_DZ","Table_DZ","Office_Chair_DZ","MetalFloor4x_DZ","GlassFloor_Half_DZ","GlassFloor_Quarter_DZ","WoodFloor4x_DZ","WoodTriangleFloor_DZ","CinderWallHalf_Gap_DZ","TentStorageWinter","TentStorageWinter0","TentStorageWinter1","TentStorageWinter2","TentStorageWinter3","TentStorageWinter4","WinterDomeTentStorage","WinterDomeTentStorage0","WinterDomeTentStorage1","WinterDomeTentStorage2","WinterDomeTentStorage3","WinterDomeTentStorage4","VaultStorageBroken","VaultStorageBroken2","TallSafeBroken","LockboxStorageBroken","LockboxStorage2Broken","LockboxStorageWinterBroken","LockboxStorageWinter2Broken","StorageCrate_DZ","CamoStorageCrate_DZ","Garage_Green_DZ","Garage_White_DZ","Garage_Brown_DZ","Garage_Grey_DZ","Helipad_Civil_DZ","Helipad_Rescue_DZ","Helipad_Army_DZ","Helipad_Cross_DZ","Helipad_ParkBorder_DZ","CCTV_DZ"];
DayZ_GearedObjects = ["Car","Helicopter","Motorcycle","Ship","TentStorage_base","StashSmall_base","StashMedium_base","Plane","Tank","VaultStorage","VaultStorage2","TallSafe","LockboxStorage","LockboxStorage2","LockboxStorageWinter","LockboxStorageWinter2","TentStorage","OutHouse_DZ","Wooden_shed_DZ","Wooden_shed2_DZ","WoodShack_DZ","WoodShack2_DZ","StorageShed_DZ","StorageShed2_DZ","GunRack_DZ","GunRack2_DZ","WoodCrate_DZ","WoodCrate2_DZ","Scaffolding_DZ","Generator_DZ","Advanced_WorkBench_DZ","CookTripod_DZ","Stoneoven_DZ","Commode_DZ","Wardrobe_DZ","Fridge_DZ","Washing_Machine_DZ","Server_Rack_DZ","ATM_DZ","Armchair_DZ","Sofa_DZ","Arcade_DZ","Vendmachine1_DZ","Vendmachine2_DZ","VaultStorageBroken","VaultStorageBroken2","TallSafeBroken","LockboxStorageBroken","LockboxStorage2Broken","LockboxStorageWinterBroken","LockboxStorageWinter2Broken","StorageCrate_DZ","CamoStorageCrate_DZ"];
dayz_typedBags = ["bloodTester","bloodBagANEG","bloodBagAPOS","bloodBagBNEG","bloodBagBPOS","bloodBagABNEG","bloodBagABPOS","bloodBagONEG","bloodBagOPOS","wholeBloodBagANEG","wholeBloodBagAPOS","wholeBloodBagBNEG","wholeBloodBagBPOS","wholeBloodBagABNEG","wholeBloodBagABPOS","wholeBloodBagONEG","wholeBloodBagOPOS"];
dayz_plant = ["pumpkin.p3d","p_helianthus.p3d","p_fiberplant_ep1.p3d"];
@@ -24,8 +24,6 @@ DZE_LockedStorage = ["VaultStorageLocked","VaultStorage2Locked","LockboxStorageL
DZE_UnLockedStorage = ["VaultStorage","VaultStorage2","LockboxStorage","LockboxStorage2","LockboxStorageWinter","LockboxStorageWinter2","TallSafe"];
DZE_isNewStorage = ["OutHouse_DZ","Wooden_shed_DZ","Wooden_shed2_DZ","WoodShack_DZ","WoodShack2_DZ","StorageShed_DZ","StorageShed2_DZ","GunRack_DZ","GunRack2_DZ","WoodCrate_DZ","WoodCrate2_DZ","Advanced_WorkBench_DZ","CookTripod_DZ","Stoneoven_DZ","Commode_DZ","Wardrobe_DZ","Fridge_DZ","Washing_Machine_DZ","Server_Rack_DZ","ATM_DZ","Armchair_DZ","Sofa_DZ","Arcade_DZ","Vendmachine1_DZ","Vendmachine2_DZ","StorageCrate_DZ","CamoStorageCrate_DZ"];
DZE_isWreck = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
DZE_StaticWeapons = ["ZU23_AntiAir_Static_DZ","Igla_AntiAir_Launcher_Static_DZ","Rbs70_Launcher_Static_DZ","TOW_Tripod_Launcher_Static_DZ","Stinger_Tripod_Launcher_Static_DZ","SPG9_Launcher_Static_DZ","Metis_Launcher_Static_DZ","2b14_82mm_Mortar_Static_DZ","M252_Mortar_Static_DZ","SearchLight_Static_DZ","D30_Artillery_Static_DZ","M119_Artillery_Static_DZ","GPMG_TriPod_GrenadeLauncher_Static_DZ","MK19_TriPod_GrenadeLauncher_Static_DZ","AGS30_GrenadeLauncher_Static_DZ","GMG_Tripod_MG_Static_DZ","L2A1_Tripod_MG_Static_DZ","L2A1_MG_Static_DZ","KORD_MG_Static_DZ","KORD_Tripod_MG_Static_DZ","DSHKM_TriPod_MG_Static_DZ","DSHKM_MG_Static_DZ","M2_TriPod_MG_Static_DZ","M2_MG_Static_DZ","M240Nest_DZ"];
DayZ_SafeObjects = DayZ_SafeObjects + DZE_StaticWeapons;
respawn_west_original = getMarkerPos "respawn_west"; //Prevent problems caused by cheaters moving respawn_west marker with setMarkerPos or deleteMarker
@@ -43,6 +41,7 @@ if (isServer) then {
dayz_serverPUIDArray = [];
dayz_serverClientKeys = [];
dayz_traps = [];
dead_bodyCleanup = [];
needUpdate_objects = [];
dayz_choppedTrees = [];
dayz_ghostPlayers = [];
@@ -209,14 +208,6 @@ if (!isDedicated) then {
s_bank_dialog2 = -1;
s_bank_dialog3 = -1;
s_player_checkWallet = -1;
s_player_clothes = -1;
s_player_gdoor_opener = [];
s_player_gdoor_opener_ctrl = -1;
s_player_bury_human = -1;
s_player_butcher_human = -1;
s_player_copyToKey = -1;
s_player_claimVehicle = -1;
s_garage_dialog = -1;
};
call dayz_resetSelfActions;
@@ -273,7 +264,7 @@ if (!isDedicated) then {
Dayz_meatraw = ["FoodBeefRaw","FoodMuttonRaw","FoodChickenRaw","FoodRabbitRaw","FoodBaconRaw","FoodGoatRaw","FoodDogRaw","FishRawTrout","FishRawSeaBass","FishRawTuna","FoodPotatoRaw"];
Dayz_meatcooked = ["FoodBeefCooked","FoodMuttonCooked","FoodChickenCooked","FoodRabbitCooked","FoodBaconCooked","FoodGoatCooked","FoodDogCooked","FishCookedTrout","FishCookedSeaBass","FishCookedTuna","FoodPotatoBaked"];
boil_tin_cans = ["TrashTinCan","FoodCanGriffEmpty","FoodCanBadguyEmpty","FoodCanBoneboyEmpty","FoodCanCornEmpty","FoodCanCurgonEmpty","FoodCanDemonEmpty","FoodCanFraggleosEmpty","FoodCanHerpyEmpty","FoodCanDerpyEmpty","FoodCanOrlokEmpty","FoodCanPowellEmpty","FoodCanTylersEmpty","FoodCanUnlabeledEmpty","FoodCanRusUnlabeledEmpty","FoodCanRusStewEmpty","FoodCanRusPorkEmpty","FoodCanRusPeasEmpty","FoodCanRusMilkEmpty","FoodCanRusCornEmpty","ItemSodaEmpty","ItemSodaClaysEmpty","ItemSodaDrwasteEmpty","ItemSodaFrankaEmpty","ItemSodaGrapeDrinkEmpty","ItemSodaLemonadeEmpty","ItemSodaLirikEmpty","ItemSodaLvgEmpty","ItemSodaMtngreenEmpty","ItemSodaMzlyEmpty","ItemSodaPeppsyEmpty","ItemSodaR4z0rEmpty","ItemSodaRabbitEmpty","ItemSodaRocketFuelEmpty","ItemSodaSacriteEmpty","ItemSodaSherbetEmpty","ItemSodaSmashtEmpty","FoodCanPotatoesEmpty","FoodCanBeefEmpty"];
MeleeWeapons = ["MeleeHatchet","MeleeCrowbar","MeleeMachete","MeleeBaseBallBat","MeleeBaseBallBatBarbed","MeleeBaseBallBatNails","MeleeFishingPole","MeleeSledge"];
MeleeWeapons = ["MeleeHatchet","MeleeCrowbar","MeleeMachete","MeleeBaseball","MeleeBaseBallBat","MeleeBaseBallBatBarbed","MeleeBaseBallBatNails","MeleeFishingPole","MeleeSledge"];
MeleeMagazines = ["Hatchet_Swing","Crowbar_Swing","Machete_Swing","Bat_Swing","BatBarbed_Swing","BatNails_Swing","Fishing_Swing","Sledge_Swing"];
MeleeAmmo = ["Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo","Bat_Swing_Ammo","BatBarbed_Swing_Ammo","BatNailed_Swing_Ammo","Fishing_Swing_Ammo","Sledge_Swing_Ammo","Chainsaw_Swing_Ammo"];
Dayz_Gutting = ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnife1","ItemKnifeBlunt"];
@@ -290,7 +281,7 @@ if (!isDedicated) then {
DZE_LockboxesUnlocked = ["LockboxStorage","LockboxStorage2","LockboxStorageWinter","LockboxStorageWinter2"];
DZE_REPLACE_WEAPONS = [["Crossbow","DMR","M14_EP1","SVD","SVD_CAMO","M4SPR","VSS_vintorez"],["Crossbow_DZ","DMR_DZ","M14_CCO_DZ","SVD_PSO1_DZ","SVD_PSO1_Gh_DZ","M4SPR_DZE","VSS_vintorez_DZE"]];
DZE_replaceMagazines = [["vil_20Rnd_762x51_G3"],["vil_20Rnd_762x51_G3"]];
DZE_maintainClasses = ["StaticWeapon","ModularItems","DZE_Housebase","LightPole_DZ","BuiltItems","Generator_DZ","DZ_buildables","Plastic_Pole_EP1_DZ","Fence_corrugated_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","StickFence_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","WinterCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","WinterLargeCamoNet_DZ","DeerStand_DZ","Scaffolding_DZ","FireBarrel_DZ","M240Nest_DZ","Notebook_DZ","Water_Pump_DZ","Greenhouse_DZ","Bed_DZ","Table_DZ","VaultStorageBroken","VaultStorageBroken2","TallSafeBroken","LockboxStorageBroken","LockboxStorage2Broken","LockboxStorageWinterBroken","LockboxStorageWinter2Broken","Garage_Green_DZ","Garage_White_DZ","Garage_Brown_DZ","Garage_Grey_DZ","Helipad_Civil_DZ","Helipad_Rescue_DZ","Helipad_Army_DZ","Helipad_Cross_DZ","Helipad_ParkBorder_DZ","CCTV_DZ"];
DZE_maintainClasses = ["ModularItems","DZE_Housebase","LightPole_DZ","BuiltItems","Generator_DZ","DZ_buildables","Plastic_Pole_EP1_DZ","Fence_corrugated_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","StickFence_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","WinterCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","WinterLargeCamoNet_DZ","DeerStand_DZ","Scaffolding_DZ","FireBarrel_DZ","M240Nest_DZ","Notebook_DZ","Water_Pump_DZ","Greenhouse_DZ","Bed_DZ","Table_DZ","VaultStorageBroken","VaultStorageBroken2","TallSafeBroken","LockboxStorageBroken","LockboxStorage2Broken","LockboxStorageWinterBroken","LockboxStorageWinter2Broken","Garage_Green_DZ","Garage_White_DZ","Garage_Brown_DZ","Garage_Grey_DZ","Helipad_Civil_DZ","Helipad_Rescue_DZ","Helipad_Army_DZ","Helipad_Cross_DZ","Helipad_ParkBorder_DZ","CCTV_DZ"];
DZE_fueltruckarray = ["UralRefuel_TK_EP1_DZ","UralRefuel_TK_EP1_DZE1","UralRefuel_TK_EP1_DZE2","UralRefuel_TK_EP1_DZE3","UralRefuel_TK_EP1_DZE4","MtvrRefuel_DES_EP1_DZ","MtvrRefuel_DES_EP1_DZE1","MtvrRefuel_DES_EP1_DZE2","MtvrRefuel_DES_EP1_DZE3","MtvrRefuel_DES_EP1_DZE4","V3S_Refuel_TK_GUE_EP1_DZ","V3S_Refuel_TK_GUE_EP1_DZE1","V3S_Refuel_TK_GUE_EP1_DZE2","V3S_Refuel_TK_GUE_EP1_DZE3","V3S_Refuel_TK_GUE_EP1_DZE4","MtvrRefuel_DZ","MtvrRefuel_DZE1","MtvrRefuel_DZE2","MtvrRefuel_DZE3","MtvrRefuel_DZE4","KamazRefuel_DZ","KamazRefuel_DZE1","KamazRefuel_DZE2","KamazRefuel_DZE3","KamazRefuel_DZE4","T810A_ACR_REFUEL_DES_DZE","T810A_ACR_REFUEL_DES_DZE1","T810A_ACR_REFUEL_DES_DZE2","T810A_ACR_REFUEL_DES_DZE3","T810A_ACR_REFUEL_DES_DZE4","T810A_ACR_REFUEL_DZE","T810A_ACR_REFUEL_DZE1","T810A_ACR_REFUEL_DZE2","T810A_ACR_REFUEL_DZE3","T810A_ACR_REFUEL_DZE4","UralRefuel_INS_DZE","UralRefuel_INS_DZE1","UralRefuel_INS_DZE2","UralRefuel_INS_DZE3","UralRefuel_INS_DZE4","UralRefuel_CDF_DZE","UralRefuel_CDF_DZE1","UralRefuel_CDF_DZE2","UralRefuel_CDF_DZE3","UralRefuel_CDF_DZE4"];
DZE_HeliAllowToTow = ["hilux1_civil_1_open","HMMWV_Base","Lada_base","Offroad_DSHKM_base","Pickup_PK_base","SkodaBase","tractor","VWGolf","Volha_TK_CIV_Base_EP1","S1203_TK_CIV_EP1","SUV_Base_EP1","ArmoredSUV_Base_PMC","UAZ_Base","LandRover_Base","Ship"];
DZE_isDestroyableStorage = ["OutHouse_DZ","Wooden_shed_DZ","Wooden_shed2_DZ","WoodShack_DZ","WoodShack2_DZ","StorageShed_DZ","StorageShed2_DZ","GunRack_DZ","GunRack2_DZ","WoodCrate_DZ","WoodCrate2_DZ","Advanced_WorkBench_DZ","CookTripod_DZ","Stoneoven_DZ","Commode_DZ","Wardrobe_DZ","Fridge_DZ","Washing_Machine_DZ","Server_Rack_DZ","ATM_DZ","Armchair_DZ","Sofa_DZ","Arcade_DZ","Vendmachine1_DZ","Vendmachine2_DZ","StorageCrate_DZ","CamoStorageCrate_DZ","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4"];

View File

@@ -14281,10 +14281,6 @@
<French>Infecté</French>
<Czech>Infikovaný</Czech>
</Key>
<Key ID="STR_ZNAME_BLOODSUCKER">
<English>Bloodsucker</English>
<Russian>Кровосос</Russian>
</Key>
<Key ID="STR_ZNAME_INFECTEDVIRAL">
<English>Viral Infected</English>
<Spanish>Infectado Viral</Spanish>
@@ -18306,31 +18302,13 @@
<!-- G3 -->
<Key ID="STR_DZ_WPN_G3_NAME">
<English>G3A1</English>
<English>G3</English>
</Key>
<Key ID="STR_DZ_WPN_G3_DESC">
<English>Assault Rifle &lt;br/&gt;Caliber: 7.62x51mm</English>
<German>Sturmgewehr &lt;br/&gt;Kaliber: 7.62x51mm</German>
<Russian>Штурмовая винтовка&lt;br/&gt;Калибр: 7.62x51мм</Russian>
</Key>
<Key ID="STR_DZ_WPN_G3A3_NAME">
<English>G3A3</English>
</Key>
<Key ID="STR_DZ_WPN_G3A3_CCO_NAME">
<English>G3A3 CCO</English>
</Key>
<Key ID="STR_DZ_WPN_G3A3_HOLO_NAME">
<English>G3A3 Holo</English>
</Key>
<Key ID="STR_DZ_WPN_G3A3_ACOG_NAME">
<English>G3A3 ACOG</English>
</Key>
<Key ID="STR_DZ_WPN_G3_SG1_NAME">
<English>G3 SG1</English>
</Key>
<Key ID="STR_DZ_WPN_G3_SG1_BIPOD_NAME">
<English>G3 SG1 Bipod</English>
</Key>
<!-- MAT 49 -->
<Key ID="STR_DZ_WPN_MAT49_NAME">
@@ -22485,11 +22463,6 @@
<French>%1 a été vidé, les pièces de zombies sont maintenant sur la carcasse.</French>
<Czech>%1 byl zničený, zombie díly jsou nyní na kostru.</Czech>
</Key>
<Key ID="str_success_gutted_mutant">
<English>You have carved the heart of the %1 from it's chest.</English>
<German>Du hast das Herz des %1 aus seiner Brust herausgeschnitten.</German>
<Russian>Вы вырезали сердце %1 из его тела.</Russian>
</Key>
<Key ID="str_actions_tamedog">
<English>Tame Dog</English>
<German>Hund zähmen</German>
@@ -25568,11 +25541,6 @@
<French>Dépecer le zombie</French>
<Czech>Vykuchat Zombie</Czech>
</Key>
<Key ID="STR_EPOCH_ACTIONS_GUTBLOOD">
<English>Butcher Bloodsucker</English>
<German>Bloodsucker ausnehmen</German>
<Russian>Разделать Кровососа</Russian>
</Key>
<Key ID="STR_EPOCH_ACTIONS_OPEN">
<English>Open %1</English>
<German>%1 öffnen</German>
@@ -27369,16 +27337,6 @@
<German>Zombiehaut in einem Sack.</German>
<Russian>Кожа зомби в мешке.</Russian>
</Key>
<Key ID="STR_MUTANT_HEART">
<English>Mutant Heart</English>
<German>Mutantenherz</German>
<Russian>Сердце мутанта</Russian>
</Key>
<Key ID="STR_MUTANT_HEART_DESC">
<English>The heart of a mutant. It is probably worth a lot.</English>
<German>Das Herz eines Mutanten. Es ist möglicherweise viel wert.</German>
<Russian>Сердце мутанта. Это, наверное, многого стоит.</Russian>
</Key>
<Key ID="STR_EPOCH_COMBINATIONLOCK">
<English>Combination Lock</English>
<German>Zahlenschloss</German>
@@ -32194,11 +32152,6 @@
<German>Währung</German>
<Russian>Валюта</Russian>
</Key>
<Key ID="STR_EPOCH_TRADER_CATEGORY_HELI_PADS">
<English>Heli Pads</English>
<German>Helipads</German>
<Russian>Вертолётные площадки</Russian>
</Key>
<Key ID="STR_EPOCH_TRADER_CATEGORY_TRADE_ITEMS">
<English>Trade %1 %2 for %3 %4</English>
<German>%1 %2 für %3 %4 handeln</German>
@@ -34321,119 +34274,6 @@
<German>Eine Kiste mit Keramikteile.</German>
<Russian>Ящик с керамическими частями.</Russian>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_PISTOL">
<English>Gun parts (Pistol)</English>
<German>Waffenteile (Pistole)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_PISTOL_DESC">
<English>A pile of pistol gun parts.</English>
<German>Ein Haufen Waffenteile einer Pistole.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_SMG">
<English>Gun parts (SMG)</English>
<German>Waffenteile (SMG)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_SMG_DESC">
<English>A pile of smg gun parts.</English>
<German>Ein Haufen Waffenteile einer Maschinenpistole.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_SHOTGUN">
<English>Gun parts (Shotgun)</English>
<German>Waffenteile (Schrotflinte)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_SHOTGUN_DESC">
<English>A pile of shotgun gun parts.</English>
<German>Ein Haufen Waffenteile einer Schrotflinte.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_RIFLE">
<English>Gun parts (Rifle)</English>
<German>Waffenteile (Gewehr)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_RIFLE_DESC">
<English>A pile of rifle gun parts.</English>
<German>Ein Haufen Waffenteile eines Gewehrs.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_SNIPERRIFLE">
<English>Gun parts (Sniper Rifle)</English>
<German>Waffenteile (Scharfschützengewehr)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_SNIPERRIFLE_DESC">
<English>A pile of sniper rifle gun parts.</English>
<German>Ein Haufen Waffenteile eines Scharfschützengewehrs.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_MG">
<English>Gun parts (MG)</English>
<German>Waffenteile (MG)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_MG_DESC">
<English>A pile of mg gun parts.</English>
<German>Ein Haufen Waffenteile eines Maschinengewehrs.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_UNKNOWN">
<English>Gun parts (Unknown)</English>
<German>Waffenteile (Unbekannt)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_UNKNOWN">
<English>A pile of unknown gun parts in a good condition.</English>
<German>Ein Haufen unbekannter Waffenteile, in einem guten Zustand.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_BAD">
<English>Gun parts (Bad)</English>
<German>Waffenteile (Schlecht)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_BAD_DESC">
<English>A pile of old gun parts in a bad condition.</English>
<German>Ein Haufen alter Waffenteile in einem schlechten Zustand.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_NORMAL">
<English>Gun parts (Average)</English>
<German>Waffenteile (Normal)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_NORMAL_DESC">
<English>A pile of gun parts in an average condition.</English>
<German>Ein Haufen Waffenteile in einem durchschnittlichen Zustand.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_GOOD">
<English>Gun parts (Good)</English>
<German>Waffenteile (Gut)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_GOOD_DESC">
<English>A pile of gun parts in a good condition.</English>
<German>Ein Haufen Waffenteile, in einem guten Zustand.</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_EXCELLENT">
<English>Gun parts (Excellent)</English>
<German>Waffenteile (Exzellent)</German>
</Key>
<Key ID="STR_EPOCH_WEAPON_PARTS_EXCELLENT_DESC">
<English>A pile of gun parts in an excellent condition.</English>
<German>Ein Haufen Waffenteile, in einem exzellenten Zustand.</German>
</Key>
<Key ID="STR_EPOCH_GUN_POWDER_SMALL">
<English>Gun Powder (Small)</English>
<German>Schießpulver (Klein)</German>
</Key>
<Key ID="STR_EPOCH_GUN_POWDER_SMALL_DESC">
<English>A small can with gun powder. Used for crafting ammunation.</English>
<German>Eine kleine Dose mit Schießpulver, welche für die Herstellung von Munition genutzt werden kann.</German>
</Key>
<Key ID="STR_EPOCH_GUN_POWDER">
<English>Gun Powder</English>
<German>Schießpulver</German>
</Key>
<Key ID="STR_EPOCH_GUN_POWDER_DESC">
<English>A can with gun powder. Used for crafting ammunation.</English>
<German>Eine Dose mit Schießpulver, welche für die Herstellung von Munition genutzt werden kann.</German>
</Key>
<Key ID="STR_EPOCH_GUN_POWDER_BIG">
<English>Gun Powder (Big)</English>
<German>Schießpulver (Groß)</German>
</Key>
<Key ID="STR_EPOCH_GUN_POWDER_BIG_DESC">
<English>A big can with gun powder. Used for crafting ammunation.</English>
<German>Eine große Dose mit Schießpulver, welche für die Herstellung von Munition genutzt werden kann.</German>
</Key>
<Key ID="STR_EPOCH_SLUGS_IN_A_CAN">
<English>Slugs in a can</English>
<Russian>Пули в банке</Russian>

View File

@@ -135,8 +135,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -144,8 +142,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -181,8 +181,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -190,8 +188,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -179,8 +179,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -188,8 +186,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -138,8 +138,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -147,8 +145,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -128,8 +128,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -137,8 +135,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -181,8 +181,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -190,8 +188,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -181,8 +181,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -190,8 +188,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -88,8 +88,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -179,8 +179,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -188,8 +186,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -181,8 +181,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -190,8 +188,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -174,8 +174,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -183,8 +181,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -181,8 +181,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -190,8 +188,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -167,8 +167,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -176,8 +174,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -181,8 +181,6 @@ menu_Profiteer2 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer2 select 0) set [count (menu_Profiteer2 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Wholesaler*********/
menu_Profiteer3 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_WHOLESALE",50]],
@@ -190,8 +188,6 @@ menu_Profiteer3 = [
"neutral"
];
if (DZE_Virtual_Garage) then {(menu_Profiteer3 select 0) set [count (menu_Profiteer3 select 0), [localize "STR_EPOCH_TRADER_CATEGORY_HELI_PADS",52]];};
/***************Banker*********/
menu_Functionary1_EP1 = [
[[localize "STR_EPOCH_TRADER_CATEGORY_CURRENCY",51]],

View File

@@ -1,719 +0,0 @@
/*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DZE Bloodsucker Agent">*/
/*%FSM<HEAD>*/
/*
item0[] = {"init",0,250,-400.000000,-250.000000,-300.000000,-200.000000,0.000000,"init"};
item1[] = {"End",1,250,175.000000,-250.000000,275.000000,-200.000000,0.000000,"End"};
item2[] = {"Not_Alive",4,218,25.000000,375.000000,125.000000,425.000000,5.000000,"Not" \n "Alive"};
item3[] = {"Nobody_Near",4,218,25.000000,525.000000,125.000000,575.000000,6.000000,"Nobody" \n "Near"};
item4[] = {"",7,210,-29.000042,396.000000,-20.999958,404.000000,0.000000,""};
item5[] = {"",7,210,-29.000040,470.999939,-20.999960,479.000061,0.000000,""};
item6[] = {"",7,210,-354.000031,121.000000,-346.000000,129.000000,0.000000,""};
item7[] = {"UnitReady",4,218,-275.000000,275.000000,-175.000000,325.000000,5.000000,"UnitReady"};
item8[] = {"Chase",2,250,-150.000000,375.000000,-50.000000,425.000000,0.000000,"Chase"};
item9[] = {"",7,210,-29.000006,121.000000,-20.999994,129.000000,0.000000,""};
item10[] = {"",7,210,-29.000008,221.000000,-20.999992,229.000015,0.000000,""};
item11[] = {"No_Target",4,218,-400.000000,450.000000,-300.000000,500.000000,3.000000,"No" \n "Target"};
item12[] = {"",7,210,-479.000000,471.000000,-471.000000,479.000000,0.000000,""};
item13[] = {"",7,210,-729.000000,346.000000,-721.000000,354.000000,0.000000,""};
item14[] = {"",7,210,221.000000,396.000000,229.000000,404.000000,0.000000,""};
item15[] = {"",7,210,221.000000,471.000000,229.000000,479.000000,0.000000,""};
item16[] = {"Cleanup_",2,250,175.000000,200.000000,275.000000,250.000000,0.000000,"Cleanup?"};
item17[] = {"nobody_around",4,218,175.000000,-25.000000,275.000000,25.000000,0.000000,"nobody" \n "around"};
item18[] = {"",7,210,-104.000023,471.000000,-95.999985,479.000000,0.000000,""};
item19[] = {"cant_see",4,218,-275.000000,575.000000,-175.000000,625.000000,2.000000,"cant" \n "see"};
item20[] = {"Finish_Move",2,250,-275.000000,650.000000,-175.000000,700.000000,0.000000,"Finish" \n "Move"};
item21[] = {"finished",4,218,-425.000000,650.000000,-325.000000,700.000000,1.000000,"finished"};
item22[] = {"",7,210,-479.000000,671.000000,-471.000000,679.000000,0.000000,""};
item23[] = {"",7,210,-29.000002,671.000000,-20.999998,679.000000,0.000000,""};
item24[] = {"Move",2,250,-650.000000,50.000000,-550.000000,100.000000,0.000000,"Move"};
item25[] = {"someone_here",4,218,300.000000,200.000000,400.000000,250.000000,0.000000,"someone" \n "here"};
item26[] = {"wait",2,250,300.000000,125.000000,400.000000,175.000000,0.000000,"wait"};
item27[] = {"time_up",4,218,300.000000,-25.000000,400.000000,25.000000,0.000000,"time" \n "up"};
item28[] = {"",7,210,346.000000,95.999992,354.000000,104.000000,0.000000,""};
item29[] = {"",7,210,221.000000,96.000008,229.000000,103.999977,0.000000,""};
item30[] = {"Time_Check",4,218,425.000000,125.000000,525.000000,175.000000,0.000000,"Time" \n "Check"};
item31[] = {"",7,210,346.000000,-79.000000,354.000000,-71.000000,0.000000,""};
item32[] = {"",7,210,221.000000,-79.000000,229.000000,-71.000000,0.000000,""};
item33[] = {"too_long",4,4314,-425.000000,725.000000,-325.000000,775.000000,0.000000,"too long"};
item34[] = {"",7,210,-229.000000,746.000000,-221.000000,754.000000,0.000000,""};
item35[] = {"",7,210,-479.000000,746.000000,-471.000000,754.000000,0.000000,""};
item36[] = {"Reset_Targeting",2,250,-525.000000,325.000000,-425.000000,375.000000,0.000000,"Reset" \n "Targeting"};
item37[] = {"deleted",4,218,425.000000,-25.000000,525.000000,25.000000,0.000000,"deleted"};
item38[] = {"",7,210,471.000000,-79.000000,479.000000,-71.000000,0.000000,""};
item39[] = {"",7,210,471.000000,95.999977,479.000000,104.000023,0.000000,""};
item40[] = {"",7,210,-104.000000,596.000000,-95.999992,604.000000,0.000000,""};
item41[] = {"Target_Dead",4,218,-275.000000,500.000000,-175.000000,550.000000,3.000000,"Target Dead"};
item42[] = {"",7,210,-479.000000,521.000000,-471.000000,529.000000,0.000000,""};
item43[] = {"TimeCheck",4,218,-150.000000,275.000000,-50.000000,325.000000,2.000000,"TimeCheck"};
item44[] = {"No_Agent",4,218,25.000000,450.000000,125.000000,500.000000,5.000000,"No Agent"};
item45[] = {"",7,210,221.000015,546.000061,229.000000,553.999939,0.000000,""};
item46[] = {"",7,210,-29.000042,545.999939,-20.999958,554.000061,0.000000,""};
item47[] = {"Ready",4,218,-400.000000,-125.000000,-300.000000,-75.000000,0.000000,"Ready"};
item48[] = {"Loiter",2,250,-400.000000,25.000000,-300.000000,75.000000,0.000000,"Loiter"};
item49[] = {"Time_Check",4,218,-275.000000,50.000000,-175.000000,100.000000,0.000000,"Time" \n "Check"};
item50[] = {"MoveCompleted_",4,218,-525.000000,50.000000,-425.000000,100.000000,3.000000,"MoveCompleted "};
item51[] = {"Failed_Move",4,218,-525.000000,100.000000,-425.000000,150.000000,3.000000,"Failed Move"};
item52[] = {"Not_moving",4,218,-525.000000,0.000000,-425.000000,50.000000,1.000000,"Not moving"};
item53[] = {"",7,210,-604.000000,-29.000000,-596.000000,-21.000000,0.000000,""};
item54[] = {"player_check",4,218,-275.000000,0.000000,-175.000000,50.000000,2.000000,"player" \n "check"};
item55[] = {"True",8,218,-525.000000,-50.000000,-425.000000,0.000000,0.000000,"True"};
item56[] = {"",7,210,-729.000000,-129.000000,-721.000000,-121.000008,0.000000,""};
item57[] = {"InRange",4,218,-275.000000,400.000000,-175.000000,450.000000,1.000000,"InRange"};
item58[] = {"Attacking_Wait",2,250,-400.000000,375.000000,-300.000000,425.000000,0.000000,"Attacking Wait"};
item59[] = {"NotInRange",4,218,-275.000000,350.000000,-175.000000,400.000000,1.000000,"NotInRange"};
item60[] = {"TimeCheck",4,218,-400.000000,275.000000,-300.000000,325.000000,0.000000,"TimeCheck"};
item61[] = {"Has_Target",4,218,-150.000000,200.000000,-50.000000,250.000000,0.000000,"Has" \n "Target"};
item62[] = {"Reset_MoveTo",2,250,-275.000000,200.000000,-175.000000,250.000000,0.000000,"Reset MoveTo"};
item63[] = {"",7,210,-479.000000,-129.000000,-471.000000,-121.000000,0.000000,""};
item64[] = {"isDedicated",4,218,-125.000000,-250.000000,-25.000000,-200.000000,0.000000,"isDedicated"};
link0[] = {0,47};
link1[] = {0,64};
link2[] = {2,14};
link3[] = {3,45};
link4[] = {4,2};
link5[] = {4,5};
link6[] = {5,44};
link7[] = {5,46};
link8[] = {6,9};
link9[] = {7,8};
link10[] = {8,4};
link11[] = {8,18};
link12[] = {8,43};
link13[] = {8,57};
link14[] = {9,10};
link15[] = {10,4};
link16[] = {10,61};
link17[] = {11,12};
link18[] = {12,36};
link19[] = {13,56};
link20[] = {14,16};
link21[] = {15,14};
link22[] = {16,25};
link23[] = {16,29};
link24[] = {17,32};
link25[] = {18,11};
link26[] = {18,40};
link27[] = {18,41};
link28[] = {19,20};
link29[] = {20,21};
link30[] = {20,23};
link31[] = {20,34};
link32[] = {21,22};
link33[] = {22,42};
link34[] = {23,46};
link35[] = {24,53};
link36[] = {25,26};
link37[] = {26,28};
link38[] = {26,30};
link39[] = {27,31};
link40[] = {28,27};
link41[] = {28,29};
link42[] = {28,39};
link43[] = {29,17};
link44[] = {30,26};
link45[] = {31,32};
link46[] = {32,1};
link47[] = {33,35};
link48[] = {34,33};
link49[] = {35,22};
link50[] = {36,13};
link51[] = {37,38};
link52[] = {38,31};
link53[] = {39,37};
link54[] = {40,19};
link55[] = {41,42};
link56[] = {42,12};
link57[] = {43,8};
link58[] = {44,15};
link59[] = {45,15};
link60[] = {46,3};
link61[] = {47,48};
link62[] = {48,6};
link63[] = {48,49};
link64[] = {48,50};
link65[] = {48,51};
link66[] = {48,52};
link67[] = {48,54};
link68[] = {49,48};
link69[] = {50,24};
link70[] = {51,24};
link71[] = {52,24};
link72[] = {53,55};
link73[] = {54,48};
link74[] = {55,48};
link75[] = {56,63};
link76[] = {57,58};
link77[] = {58,59};
link78[] = {58,60};
link79[] = {59,8};
link80[] = {60,58};
link81[] = {61,62};
link82[] = {62,7};
link83[] = {63,55};
link84[] = {64,1};
globals[] = {25.000000,1,0,0,0,640,480,1,193,6316128,1,-736.296082,268.705750,907.675354,265.884705,1425,910,1};
window[] = {2,-1,-1,-1,-1,883,182,1390,182,3,1443};
*//*%FSM</HEAD>*/
class FSM
{
fsmName = "DZE Bloodsucker Agent";
class States
{
/*%FSM<STATE "init">*/
class init
{
name = "init";
init = /*%FSM<STATEINIT""">*/"_agent = _this select 0;" \n
"_position = _agent modelToWorld [0,0,0];" \n
"" \n
"_secondHand = false;" \n
"" \n
"if (count _this > 1) then {" \n
" _secondHand = true;" \n
" diag_log (""Second Hand Bloodsucker Initialized: "" + str(_this));" \n
"};"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "isDedicated">*/
class isDedicated
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"isDedicated"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Ready">*/
class Ready
{
priority = 0.000000;
to="Loiter";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(!isNil 'dayz_clientPreload' && {dayz_clientPreload}) && !(isNull _agent)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_myDest = [_agent,_position] call zombie_loiter;" \n
"" \n
"_agent disableAI ""FSM"";" \n
"_agent setBehaviour ""CARELESS"";" \n
"_agent setSpeedMode ""FULL"";" \n
"" \n
"// hint ""Bloodsucker has spawned"";" \n
"" \n
"_isSomeone = true;" \n
"" \n
"_target = objNull;" \n
"_targetPos = [];" \n
"_entityTime = diag_tickTime;" \n
"" \n
"// Select skin" \n
"_skin = [""act_krovosos_new1"",""act_krovosos_3"",""act_krovosos_2""] call BIS_fnc_selectRandom;" \n
"_agent setVariable [""mutantSkin"",_skin, false];" \n
"" \n
"// Announce presence" \n
"[_agent,""bloodgrowl1"",0,false] call dayz_zombieSpeak;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "End">*/
class End
{
name = "End";
init = /*%FSM<STATEINIT""">*/"if (!isDedicated) then {" \n
" if (!isNull _agent) then {" \n
" deleteVehicle _agent;" \n
" };" \n
"} else {" \n
" [_agent] call zombie_findOwner;" \n
"};"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Chase">*/
class Chase
{
name = "Chase";
init = /*%FSM<STATEINIT""">*/"_timeN = diag_tickTime;" \n
"" \n
"_target = _agent call mutant_findTarget;" \n
"_targetPos = getPosATL _target;" \n
"_isAlive = alive _agent;" \n
"_isTargetAlive = alive _target;" \n
"" \n
"//Move to location" \n
"_agent moveTo _targetPos;" \n
"" \n
"//Check if LOS" \n
"if ((_agroCheck % 8) == 0) then {" \n
" _agroCheck = 0;" \n
" _cantSee = [_target,_agent] call dayz_losCheck;" \n
"};"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "Nobody_Near">*/
class Nobody_Near
{
priority = 6.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Not_Alive">*/
class Not_Alive
{
priority = 5.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isAlive"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "No_Agent">*/
class No_Agent
{
priority = 5.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(isNull _agent)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "No_Target">*/
class No_Target
{
priority = 3.000000;
to="Reset_Targeting";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(isNull _target) && ((diag_tickTime - _timeN) > 5)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Target_Dead">*/
class Target_Dead
{
priority = 3.000000;
to="Reset_Targeting";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isTargetAlive"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_timeN = diag_tickTime;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "cant_see">*/
class cant_see
{
priority = 2.000000;
to="Finish_Move";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_cantSee"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"// diag_log (""Mutant Cant See Target"");"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "TimeCheck">*/
class TimeCheck
{
priority = 2.000000;
to="Chase";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _timeN) > 2" \n
""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_agroCheck= _agroCheck + 1;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "InRange">*/
class InRange
{
priority = 1.000000;
to="Attacking_Wait";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_agent distance _targetPos < 3.1"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_agent stop true;" \n
"" \n
"_myDest = [ _agent modelToWorld [0,0,0]];" \n
"" \n
"_agent setVariable [""myDest"",(_agent modelToWorld [0,0,0])];" \n
"" \n
"_agroCheck= 0;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Cleanup_">*/
class Cleanup_
{
name = "Cleanup_";
init = /*%FSM<STATEINIT""">*/"_waitStart = diag_tickTime;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "nobody_around">*/
class nobody_around
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "someone_here">*/
class someone_here
{
priority = 0.000000;
to="wait";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Finish_Move">*/
class Finish_Move
{
name = "Finish_Move";
init = /*%FSM<STATEINIT""">*/"_timeN = diag_tickTime;" \n
"" \n
"_isSomeone = false;" \n
"{" \n
" if (isPlayer _x && {_x distance _agent < 300}) exitWith {_isSomeone = true;};" \n
"} count playableUnits;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "Nobody_Near">*/
class Nobody_Near
{
priority = 6.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "finished">*/
class finished
{
priority = 1.000000;
to="Reset_Targeting";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_agent distance _targetPos < 3"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"//diag_log (""Finished"");"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "too_long">*/
class too_long
{
priority = 0.000000;
to="Reset_Targeting";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _timeN) > 20"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"//diag_log (""Mutant Cant See Timeout"");"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Move">*/
class Move
{
name = "Move";
init = /*%FSM<STATEINIT""">*/"_myDest = [_agent,_position] call zombie_loiter;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "True">*/
class True
{
priority = 0.000000;
to="Loiter";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "wait">*/
class wait
{
name = "wait";
init = /*%FSM<STATEINIT""">*/"_isSomeone = false;" \n
"{" \n
" if (isPlayer _x && {_x distance _agent < 300}) exitWith {_isSomeone = true;};" \n
"} count playableUnits;" \n
"" \n
"_timeN = diag_tickTime;" \n
"" \n
"//diag_log (""Waiting until players are not near to delete bloodsucker, or timeout"");"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "time_up">*/
class time_up
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _waitStart) > 300"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "nobody_around">*/
class nobody_around
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "deleted">*/
class deleted
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"isNull _agent;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Time_Check">*/
class Time_Check
{
priority = 0.000000;
to="wait";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _timeN) > 30"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Reset_Targeting">*/
class Reset_Targeting
{
name = "Reset_Targeting";
init = /*%FSM<STATEINIT""">*/"//Lets move" \n
"_myDest = [_agent,_position] call zombie_loiter;" \n
"" \n
"// Reset Targets" \n
"_agent setVariable [""localtargets"", [], false];" \n
"_agent setVariable [""remotetargets"", [], true];" \n
"_target = objNull;" \n
"" \n
"// diag_log (""Mutant Targets Reset"");" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "True">*/
class True
{
priority = 0.000000;
to="Loiter";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Loiter">*/
class Loiter
{
name = "Loiter";
init = /*%FSM<STATEINIT""">*/"_isAlive = alive _agent;" \n
"_timeN = diag_tickTime;" \n
"" \n
"//Look for target" \n
"_target = _agent call mutant_findTarget;" \n
"" \n
"if (_myDest distance (getposATL _agent) > 3) then {" \n
" _agent moveTo _myDest;" \n
"};"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "Nobody_Near">*/
class Nobody_Near
{
priority = 6.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "No_Agent">*/
class No_Agent
{
priority = 5.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(isNull _agent)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Not_Alive">*/
class Not_Alive
{
priority = 5.000000;
to="Cleanup_";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isAlive"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Failed_Move">*/
class Failed_Move
{
priority = 3.000000;
to="Move";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"moveToFailed _agent;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "MoveCompleted_">*/
class MoveCompleted_
{
priority = 3.000000;
to="Move";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"moveToCompleted _agent;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "player_check">*/
class player_check
{
priority = 2.000000;
to="Loiter";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _entityTime) > 30"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_entityTime = diag_tickTime;" \n
"" \n
"_isSomeone = false;" \n
"{" \n
" if (isPlayer _x && {_x distance _agent < 300}) exitWith {_isSomeone = true;};" \n
"} count playableUnits;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Not_moving">*/
class Not_moving
{
priority = 1.000000;
to="Move";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(Speed _agent == 0)" \n
""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Time_Check">*/
class Time_Check
{
priority = 0.000000;
to="Loiter";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _timeN) > 1"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Has_Target">*/
class Has_Target
{
priority = 0.000000;
to="Reset_MoveTo";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!(isNull _target)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"// diag_log ""Bloodsucker found target"";"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Attacking_Wait">*/
class Attacking_Wait
{
name = "Attacking_Wait";
init = /*%FSM<STATEINIT""">*/"_targetPos = _target modelToWorld [0,-1,0];" \n
"" \n
"_timeN = diag_tickTime;" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "NotInRange">*/
class NotInRange
{
priority = 1.000000;
to="Chase";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_agent distance _targetPos > 3.1"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_agent stop false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "TimeCheck">*/
class TimeCheck
{
priority = 0.000000;
to="Attacking_Wait";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _timeN) > 1)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Reset_MoveTo">*/
class Reset_MoveTo
{
name = "Reset_MoveTo";
init = /*%FSM<STATEINIT""">*/"_agent moveTo (_agent modelToWorld [0,0,0]);"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "UnitReady">*/
class UnitReady
{
priority = 5.000000;
to="Chase";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"unitReady _agent"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_myDest = [ _agent modelToWorld [0,0,0]];" \n
"_agent setVariable [""myDest"",(_agent modelToWorld [0,0,0])];" \n
"" \n
"//Lets see if we can get the AI to stop running away before heading to the player" \n
"_agent moveTo (_agent modelToWorld [0,0,0]);" \n
"" \n
"_agroCheck = 0;" \n
"_cantSee = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
};
initState="init";
finalStates[] =
{
"End",
};
};
/*%FSM</COMPILE>*/

View File

@@ -1,54 +0,0 @@
server_queryVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\garage\server_queryVehicle.sqf";
server_spawnVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\garage\server_spawnVehicle.sqf";
server_storeVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\garage\server_storeVehicle.sqf";
server_maintainGarage = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\garage\server_maintainVehicles.sqf";
"PVDZE_queryVehicle" addPublicVariableEventHandler {(_this select 1) spawn server_queryVehicle};
"PVDZE_spawnVehicle" addPublicVariableEventHandler {(_this select 1) spawn server_spawnVehicle};
"PVDZE_storeVehicle" addPublicVariableEventHandler {(_this select 1) spawn server_storeVehicle};
"PVDZE_maintainGarage" addPublicVariableEventHandler {(_this select 1) spawn server_maintainGarage};
// Thanks to icomrade/DayZ Epoch for this code: https://github.com/EpochModTeam/DayZ-Epoch/commit/8035df0ba0cd928b84085e288c5cb88260870a3e#diff-ad0636fc2328a27bd80bad9f46126307
VG_RandomizeMyKey = {
_randomInput = toArray "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
_return = [];
for "_i" from 0 to (_this) do {
_return set [count _return, (_randomInput call BIS_fnc_selectRandom)];
};
_return;
};
vg_serverKey = toString (8 call VG_RandomizeMyKey);
vg_alreadySpawned = [];
VG_ClearTurrets = {
//By denvdmj (probably, I found it on the biki)
private ["_weaponArray","_findRecurse","_class","_obj","_turret","_mags"];
_obj = _this;
_weaponArray = [];
_weaponArray set [count _weaponArray,[-1]];
_findRecurse = {
private ["_root", "_class", "_path", "_currentPath", "_thisThis"];
_root = (_this select 0);
_path = +(_this select 1);
_thisThis = _this select 2;
for "_i" from 0 to count _root -1 do {
_class = _root select _i;
if (isClass _class) then {
_currentPath = _path + [_i];
{_weaponArray set [count _weaponArray, _currentPath];} count getArray (_class >> "weapons");
_class = _class >> "turrets";
if (isClass _class) then {[_class, _currentPath, _thisThis] call _findRecurse;};
};
};
};
[configFile >> "CfgVehicles" >> typeOf (_obj) >> "turrets", [], _this] call _findRecurse;
{
_turret = _x;
_mags = _obj magazinesTurret _turret;
{_obj removeMagazinesTurret[_x,_turret];} count _mags;
} forEach _weaponArray;
};

View File

@@ -1,9 +0,0 @@
private ["_player","_playerUID","_key","_message"];
_player = _this select 0;
_playerUID = if (count _this > 1) then {_this select 1} else {getPlayerUID _player};
_key = format["CHILD:803:%1:",_playerUID];
_key call server_hiveWrite;
_message = format["GARAGE: %1 (%2) maintained vehicles linked to UID: %3 @%4 %5",if (alive _player) then {name _player} else {"DeadPlayer"},getPlayerUID _player,_playerUID,mapGridPosition _player,getPosATL _player];
diag_log _message;

View File

@@ -1,12 +0,0 @@
private ["_player","_query","_result","_clientID","_playerUID"];
_player = _this select 0;
_clientID = owner _player;
_playerUID = if (count _this > 1) then {_this select 1} else {getPlayerUID _player};
_key = format["CHILD:800:%1:%2:",_playerUID,vg_sortColumn];
_result = _key call server_hiveReadWrite;
PVDZE_queryVehicleResult = _result;
if (!isNull _player) then {_clientID publicVariableClient "PVDZE_queryVehicleResult";};

View File

@@ -1,112 +0,0 @@
private ["_isAir","_VG_ObjID","_characterID","_class","_clientID","_clrinit","_clrinit2","_colour","_colour2","_dam","_damage","_dir","_fuel","_hitpoints","_id","_inventory","_key","_location","_message","_object","_oid","_outcome","_player","_result","_selection","_serverKey","_uid","_worldSpace"];
_worldSpace = _this select 0;
_player = _this select 1;
_id = _this select 2;
_dir = _worldSpace select 0;
_location = _worldSpace select 1;
_worldSpace = [_dir,_location];
_uid = _worldSpace call dayz_objectUID2;
_key = str formatText["CHILD:801:%1:%2:%3:",_id,_worldSpace,_uid];
_result = _key call server_hiveReadWrite;
_outcome = _result select 0;
if (_outcome != "PASS") exitWith {diag_log("HIVE VIRTUAL GARAGE SPAWN VEHICLE FAILED TO EXECUTE: " + _key);};
_class = _result select 1;
_characterID = _result select 2;
_inventory = _result select 3;
_hitpoints = _result select 4;
_fuel = _result select 5;
_damage = _result select 6;
_colour = _result select 7;
_colour2 = _result select 8;
_serverKey = _result select 9;
_VG_ObjID = _result select 10;
_clientID = owner _player;
if (_VG_ObjID in vg_alreadySpawned) exitWith {
diag_log format["VG ERROR: Vehicle with VGObjID = %1 has already been spawned and will not be spawned again. PlayerUID: %2", _VG_ObjID, (getPlayerUID _player)];
};
_key = format["CHILD:388:%1:",_uid];
#ifdef OBJECT_DEBUG
diag_log ("HIVE: WRITE: "+ str(_key));
#endif
_result = _key call server_hiveReadWrite;
_outcome = _result select 0;
if (_outcome != "PASS") then {
diag_log("CUSTOM: failed to get id for : " + str(_uid));
} else {
_VG_ObjID = (toString (18 call VG_RandomizeMyKey)); //new ID
vg_alreadySpawned set [(count vg_alreadySpawned), _VG_ObjID];
_oid = _result select 1;
#ifdef OBJECT_DEBUG
diag_log("CUSTOM: Selected " + str(_oid));
#endif
_object = _class createVehicle _location;
if (surfaceIsWater _location && {({_x != _object} count (_location nearEntities ["Ship",8])) == 0}) then {
_object setPos _location;
};
_object addEventHandler ["HandleDamage",{false}];
clearWeaponCargoGlobal _object;
clearMagazineCargoGlobal _object;
if (vg_clearAmmo && {vg_serverKey == _serverKey}) then {_object call VG_ClearTurrets;};
_object setFuel _fuel;
_object setDamage _damage;
[_inventory select 0,_inventory select 1,_inventory select 2,_object] call fn_addCargo;
_object setVariable ["ObjectID", _oid, true];
_object setVariable ["lastUpdate",diag_tickTime];
_object setVariable ["VGObjectID",_VG_ObjID, false];
if (_colour != "0") then {
_object setVariable ["Colour",_colour,true];
_clrinit = format ["#(argb,8,8,3)color(%1)",_colour];
_object setVehicleInit "this setObjectTexture [0,"+str _clrinit+"];";
};
if (_colour2 != "0") then {
_object setVariable ["Colour2",_colour2,true];
_clrinit2 = format ["#(argb,8,8,3)color(%1)",_colour2];
_object setVehicleInit "this setObjectTexture [1,"+str _clrinit2+"];";
};
processInitCommands;
_characterID = str(_characterID);
_object setVariable ["CharacterID", _characterID, true];
if (_characterID != "0" && !(_object isKindOf "Bicycle")) then {_object setVehicleLock "LOCKED";};
_isAir = _object isKindOf "Air";
{
_selection = _x select 0;
_dam = _x select 1;
_dam = [_x select 1,(_x select 1) min 0.8] select (!_isAir && {_selection in dayZ_explosiveParts});
[_object,_selection,_dam] call fnc_veh_setFixServer;
} forEach _hitpoints;
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
_object call fnc_veh_ResetEH;
{if (_object isKindOf _x) exitWith {_object disableTIEquipment true;}} count vg_disableThermal;
PVDZE_veh_Init = _object;
publicVariable "PVDZE_veh_Init";
PVDZE_spawnVehicleResult = _characterID;
if (!isNull _player) then {_clientID publicVariableClient "PVDZE_spawnVehicleResult";};
_message = format["%1 (%2) retrieved %3 @%4 %5",if (alive _player) then {name _player} else {"DeadPlayer"},getPlayerUID _player,_class,mapGridPosition _player,getPosATL _player];
diag_log _message;
};

View File

@@ -1,92 +0,0 @@
private ["_damageVeh","_VGobjID","_array","_backPack","_backPackCount","_charID","_class","_clientID","_colour","_colour2","_damage","_displayName","_fnc_sanitizeInput","_fuel","_gearCount","_hit","_hitpoints","_index","_inventory","_inventoryCount","_key","_magazine","_magazineCount","_message","_name","_objectID","_objectUID","_player","_playerUID","_selection","_vehicle","_weapons","_weaponsCount","_woGear"];
_vehicle = _this select 0;
_player = _this select 1;
_woGear = _this select 2;
_clientID = owner _player;
_playerUID = if (count _this > 3) then {_this select 3} else {getPlayerUID _player};
_gearCount = {
private ["_counter"];
_counter = 0;
{_counter = _counter + _x;} count _this;
_counter;
};
_fnc_sanitizeInput = {
private ["_input","_badChars"];
_input = _this;
_input = toArray (_input);
_badChars = [60,62,38,123,125,91,93,59,58,39,96,126,44,46,47,63,124,92,34];
{
_input = _input - [_x];
} forEach _badChars;
_input = toString (_input);
_input
};
_class = typeOf _vehicle;
_displayName = (getText(configFile >> "cfgVehicles" >> _class >> "displayName")) call _fnc_sanitizeInput;
_name = if (alive _player) then {(name _player) call _fnc_sanitizeInput;} else {"unknown player";};
_charID = _vehicle getVariable ["CharacterID","0"];
_objectID = _vehicle getVariable ["ObjectID","0"];
_objectUID = _vehicle getVariable ["ObjectUID","0"];
_VGobjID = _vehicle getVariable ["VGObjectID","0"];
if (_VGobjID == "0") then {
_VGobjID = (toString (18 call VG_RandomizeMyKey)); //normally spawned vehicle
} else {
_index = vg_alreadySpawned find _VGobjID;
if (_index >= 0) then {
vg_alreadySpawned = vg_alreadySpawned - [_VGobjID];
} else {
diag_log format["VG Error: Could not find vehicle with VGobjUID = %1 in vg_alreadySpawned array (server_storeVehicle.sqf) - possible duplicate vehicle being stored. PlayerUID: %2", _VGobjID, (getPlayerUID _player)];
};
};
_damageVeh = damage _vehicle;
_fuel = fuel _vehicle;
_colour = _vehicle getVariable ["Colour","0"];
_colour2 = _vehicle getVariable ["Colour2","0"];
_array = [];
_inventory = [[[],[]],[[],[]],[[],[]]];
_inventoryCount = [0,0,0];
if (isNil "_colour") then {_colour = "0";};
if (isNil "_colour2") then {_colour2 = "0";};
_hitpoints = _vehicle call vehicle_getHitpoints;
{
_hit = [_vehicle,_x] call object_getHit;
_damage = _hit select 0;
_selection = getText (configFile >> "CfgVehicles" >> _class >> "HitPoints" >> _x >> "name");
if (_damage > 0) then {_array set [count _array,[_selection,_damage]]};
} count _hitpoints;
if (!_woGear) then {
_weapons = getWeaponCargo _vehicle;
_magazine = getMagazineCargo _vehicle;
_backPack = getBackpackCargo _vehicle;
_weaponsCount = (_weapons select 1) call _gearCount;
_magazineCount = (_magazine select 1) call _gearCount;
_backPackCount = (_backPack select 1) call _gearCount;
_inventory = [_weapons, _magazine, _backPack];
_inventoryCount = [_weaponsCount, _magazineCount, _backPackCount];
};
_key = str formatText["CHILD:802:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:",_playerUID,_name,_displayName,_class,_charID,_inventory,_array,_fuel,_damageVeh,_colour,_colour2,vg_serverKey,_VGobjID,_inventoryCount];
_key call server_hiveWrite;
PVDZE_storeVehicleResult = true;
[_objectID,_objectUID,_vehicle] call server_deleteObjDirect;
deleteVehicle _vehicle;
if (!isNull _player) then {_clientID publicVariableClient "PVDZE_storeVehicleResult";};
_message = format["GARAGE: %1 (%2) stored %3 @%4 %5",_name,_playerUID,_class,mapGridPosition _player,getPosATL _player];
diag_log _message;

View File

@@ -85,4 +85,5 @@ if (_playerName != "unknown" || {_sourceName != "unknown"}) then {
};
_newObject setDamage 1;
_newObject setOwner 0;
_newObject setOwner 0;
//dead_bodyCleanup set [count dead_bodyCleanup,_newObject];

Some files were not shown because too many files have changed in this diff Show More