502 Commits

Author SHA1 Message Date
[VB]AWOL
07ddbe93b5 scalar fixes 2014-01-27 18:38:49 -06:00
vbawol
192bf91d76 Update CHANGE LOG 1.0.4.txt 2014-01-27 18:38:28 -06:00
vbawol
9e35f97dfe Update CHANGE LOG 1.0.4.txt 2014-01-27 18:38:13 -06:00
[VB]AWOL
fdecea8154 https://github.com/vbawol/DayZ-Epoch/issues/1027#issuecomment-33435759 2014-01-27 17:39:52 -06:00
vbawol
6e2386d3ae Update CHANGE LOG 1.0.4.txt 2014-01-27 17:29:32 -06:00
[VB]AWOL
1a605b430a Allowed now for MAAWS 2014-01-27 16:47:35 -06:00
[VB]AWOL
b4dfed3546 finalized trader changes 2014-01-27 16:47:34 -06:00
vbawol
efc00c5abe Update CHANGE LOG 1.0.4.txt 2014-01-27 16:39:47 -06:00
vbawol
bee0b54c87 Update CHANGE LOG 1.0.4.txt 2014-01-27 16:39:13 -06:00
[VB]AWOL
f36a6e1874 object not array 2014-01-27 11:14:09 -06:00
Skaronator
3adf0bf1e3 Typo 2014-01-27 17:37:50 +01:00
Skaronator
d4497bbb93 Not sure about the maintain classes, please check this 2014-01-27 17:18:35 +01:00
Skaronator
8189dbdb22 2nd Classname for that (custom SKN) 2014-01-27 17:18:35 +01:00
vbawol
1a27ac8fde Update CHANGE LOG 1.0.4.txt 2014-01-27 00:34:57 -06:00
[VB]AWOL
e496e4d755 fix add to toolbelt in vehicle 2014-01-26 23:47:46 -06:00
[VB]AWOL
1fe9b76e98 fix floating loot piles... 2014-01-26 23:44:02 -06:00
[VB]AWOL
26239d31cd for madhatter 2014-01-26 23:44:01 -06:00
Axles
b6b3dd4d28 Double Names
Fix
2014-01-26 21:00:47 -08:00
[VB]AWOL
fbc4d2ff94 price rebalance 2014-01-26 20:22:26 -06:00
[VB]AWOL
0a2d61e585 next test build 2014-01-26 20:15:14 -06:00
[VB]AWOL
6f77cce286 Merge branch 'master' of https://github.com/vbawol/DayZ-Epoch 2014-01-26 20:14:53 -06:00
[VB]AWOL
65a82136e8 stringtable craft instead of stack 2014-01-26 20:14:50 -06:00
[VB]AWOL
5ec3caac17 multi use water bottle for smelting ore 2014-01-26 20:14:23 -06:00
[VB]AWOL
1af2cc7396 use highest available here 2014-01-26 20:13:19 -06:00
[VB]AWOL
3c08c40e2e fixed abort 2014-01-26 20:12:06 -06:00
[VB]AWOL
8dcc979c21 add worth 2014-01-26 20:11:45 -06:00
Axles
9676b925d4 Sauerland doctor fix1
Final fix, I feel stupid today.....
2014-01-26 17:28:07 -08:00
Axles
59358e5a06 Sauerland Doctor fix
Still missed name at top. Fixing after sync
2014-01-26 17:27:05 -08:00
Skaronator
09a3b3361c Don't need here - setVariable is just local 2014-01-27 01:47:43 +01:00
Axles
29310075d2 Sauerland Friendly Medic
Was missing from the config, all's well now.
2014-01-26 12:15:54 -08:00
Axles
324f0ade01 Sauerland Trader fix
Extra traders removed, one was causing issues.
2014-01-26 12:12:51 -08:00
[VB]AWOL
474e96e9ac add new trade system for items
will auto convert to highest bar count

also line 289 fixes Error ==: Type Array when tagging friendly
2014-01-26 13:04:56 -06:00
[VB]AWOL
36888be75c Merge branch 'master' of https://github.com/vbawol/DayZ-Epoch 2014-01-26 12:16:16 -06:00
[VB]AWOL
b508bde202 added PVDZE_ to player%1 variable to filter better 2014-01-26 12:16:13 -06:00
Skaronator
4bf297fb0a Update Readme 2014-01-26 18:56:31 +01:00
[VB]AWOL
b551a6f343 should allow crafting weapons only 2014-01-26 11:49:03 -06:00
[VB]AWOL
633fba22cc latest sql dump from dev server 2014-01-26 11:18:02 -06:00
[VB]AWOL
a39a0e05fe longer disable button 2014-01-26 11:17:34 -06:00
[VB]AWOL
2f7dbc87b5 tin an al no longer needed here and switch to base 10 2014-01-26 11:17:13 -06:00
[VB]AWOL
dee2e511bd fixes and add worth 2014-01-26 11:15:41 -06:00
Skaronator
26dcb3a34a Update Changelog 2014-01-26 16:52:57 +01:00
Skaronator
60ec596bd3 Maybe fix disappear from the Vault while unlocking 2014-01-25 23:19:35 +01:00
Skaronator
23e509053e Set Buildup Combination to cache variable 2014-01-25 23:16:02 +01:00
Skaronator
b18bde1a67 Fix #1014 2014-01-25 19:45:51 +01:00
Skaronator
23ece34fb8 Also use DZE_PlayerZed in player death 2014-01-25 19:38:18 +01:00
Skaronator
2e046824bd Add Autodisconnect if Hacker modify "true" 2014-01-25 19:30:28 +01:00
Skaronator
8f92222602 Fix Log System2 and Remove Freefall direction (isnt used in Epoch) 2014-01-25 19:03:47 +01:00
[VB]AWOL
f8cffef0a4 incremental bars 2014-01-25 11:13:45 -06:00
Skaronator
b6eeb71f76 Update Variables.sqf 2014-01-25 17:24:49 +01:00
Skaronator
53284c59d9 Changelog... 2014-01-25 16:57:07 +01:00
Skaronator
85783b00f7 Delay cleanup init bit more 2014-01-25 16:53:07 +01:00
Skaronator
0a8cb12353 Update Changelog (Wondering, M107 and Rocket launcher?) 2014-01-25 16:52:54 +01:00
Sequisha
04062f0bfb Update CfgBuildingLoot.hpp
Removed "MilitaryAmmo", vehicle ammo from MilitarySpecial Table.
2014-01-25 01:10:40 -05:00
[VB]AWOL
9089a4e6ac loot changes and sauerland
unstack instead of smelt
2014-01-24 19:15:58 -06:00
Axles
2f5b55fd09 Pathera Black market and Cave fix
Missing black market vendor. Cave had conflicting vehicle numbers.
2014-01-24 13:00:37 -08:00
Axles
dc8bb70dba Sauerland Fix
mission.sqf was not properly configured.
2014-01-24 12:28:19 -08:00
Skaronator
482a1ddcdf Update diag_log 2014-01-24 20:56:28 +01:00
Skaronator
faaa645922 Include SpawnSelecter Config by Default 2014-01-24 20:52:33 +01:00
Skaronator
e391778bf6 ~Changelog 2014-01-24 20:42:59 +01:00
Skaronator
ea7e1b9a77 Fix Antihack PVS Log System 2014-01-24 20:41:53 +01:00
Skaronator
7190991b46 Remove isSinglePlayer Mode 2014-01-24 20:27:20 +01:00
Skaronator
0f0d2e7479 Alot of better Performance 2014-01-24 20:21:15 +01:00
Axles
4d40348f15 Sauerland Trader Cities/Marker
Mission.sqf, mission.sqm Server_Traders.sqf
2014-01-24 11:17:26 -08:00
[VB]AWOL
7634fd38b6 drastically increased armor levels
trying to find a balance between build times and destruction time
2014-01-24 12:39:57 -06:00
[VB]AWOL
0c0d48d447 should fix issue with car changing angle on upgrade 2014-01-24 11:15:04 -06:00
vbawol
e52b8c9b3b Merge pull request #1011 from Fank/Weapon/LMG/M249_EP1
Added M249_EP1_DZ
2014-01-24 09:14:14 -08:00
vbawol
207b07b9c2 Merge pull request #1012 from Fank/patch-6
Added missing HandGrenade_east to trader
2014-01-24 09:11:40 -08:00
vbawol
6abfcf7002 Merge pull request #1016 from SGanthony/patch-7
Fixed BetaCMag and RPK Buy Price
2014-01-24 09:09:21 -08:00
SGanthony
bb8530d120 Update 1_0_4_updates.sql 2014-01-24 11:04:37 -06:00
SGanthony
3a857932dc Merge pull request #1 from SGanthony/patch-8
Fixed BetaCMag and RPK Buy Price
2014-01-24 08:59:37 -08:00
SGanthony
4cd50a574d Fixed BetaCMag and RPK Buy Price
Fixed BetaCMag and RPK buy price from 30 silver to 1 gold.
2014-01-24 10:42:42 -06:00
SGanthony
8c27690f45 Fixed BetaCMag and RPK Buy Price
Fixed BetaCMag and RPK buy price from 30 silver to 1 gold.
2014-01-24 10:42:13 -06:00
Florian Kinder
92ee0f90d3 Added SQL Inventory/Backpack replace 2014-01-24 13:36:34 +01:00
Florian Kinder
e836f68729 Added missing HandGrenade_east to trader 2014-01-24 10:09:59 +01:00
Florian Kinder
9bda183fd8 Added to trader & added sql update 2014-01-24 09:52:39 +01:00
Florian Kinder
af16c83065 Updated loot table 2014-01-24 09:52:16 +01:00
Florian Kinder
8a008c4d90 Added M249_EP1_DZ 2014-01-24 09:52:04 +01:00
vbawol
f1438f99c3 Merge pull request #1009 from Geodar/patch-2
Czech for "Added buildable scaffolding"
2014-01-23 17:38:30 -08:00
David Klepáček
024ddd683d Czech for "Added buildable scaffolding"
Czech for f7e880dc29
2014-01-23 23:50:23 +01:00
[VB]AWOL
5966ca1aa7 another build 2014-01-23 13:09:20 -06:00
[VB]AWOL
973bc0c05f missing comma 2014-01-23 13:09:09 -06:00
[VB]AWOL
1eee19bb37 revised to support heli lifting boats
We should whitelist all allowed vehicles and kick for anything else.

5 "" !"SUV_" etc.
2014-01-23 12:02:44 -06:00
[VB]AWOL
130d12b8ea land_ind_pec_03 and changed to new IndustrialMilitary
};
2014-01-23 02:41:56 -06:00
vbawol
ede16ca10f Merge pull request #1006 from Fank/patch-5
Fixed M107_DZ
2014-01-23 00:40:33 -08:00
Sequisha
4c08762da0 Update CfgBuildingLoot.hpp
New class for Industrial-Military, (heavier weight on industrial parts).
2014-01-23 03:37:54 -05:00
Florian Kinder
fbc37da085 Fixed M107_DZ 2014-01-23 09:29:05 +01:00
vbawol
a1d93eb3d2 Merge pull request #1005 from Fank/patch-4
Fixed Typo
2014-01-23 00:10:42 -08:00
Sequisha
14dc4c1f23 Update cfgLoot.hpp
Shifted weights for weapons and ammo to coincide with balance for barracks/crashes.
2014-01-23 03:02:08 -05:00
Florian Kinder
b03a2ed41d Fixed Typo 2014-01-23 09:01:42 +01:00
Sequisha
148f587045 Update CfgBuildingLoot.hpp
Balanced distribution of military rarity, removed vehicle ammo from Barracks.  Added Launcher to crash sites, and rarity of corresponding ammo in Barracks single piles.
2014-01-23 02:42:36 -05:00
Axles
2464fa954a Namalsk trader source.
I'm not 100% this is the live version.
2014-01-22 19:09:22 -08:00
[VB]AWOL
63ee278e82 lifting fixes 2014-01-22 18:07:26 -06:00
vbawol
44c1b62bde Merge pull request #989 from Fank/Vehicle/Air/MH60S
Added MH-60S DZ & MH-60S AL
2014-01-22 16:01:51 -08:00
vbawol
3aefa64146 Merge pull request #999 from Fank/Object/Base/Scaffolding
Added buildable scaffolding building
2014-01-22 16:00:28 -08:00
Axles
fbc0e3c641 NAPF Woops
Missed 3 H barriers.
2014-01-22 15:44:00 -08:00
Axles
83d510ccc8 NAPF Final
Better protection for friendly trader, replaced Short Hbarrier3 with
proper non DZE varriant. Helicopter pads added to boat vendors.
2014-01-22 15:33:32 -08:00
[VB]AWOL
8422057ff4 fixes was using incorrect variables here 2014-01-22 15:22:52 -06:00
[VB]AWOL
0fd1dc0028 force eject if vehicle is being towed/lifted 2014-01-22 15:22:37 -06:00
[VB]AWOL
3e8346dec4 private array 2014-01-22 15:22:11 -06:00
vbawol
7f78d1121d Update CHANGE LOG 1.0.4.txt 2014-01-22 14:55:27 -06:00
vbawol
0981a2e266 Update CHANGE LOG 1.0.4.txt 2014-01-22 14:53:43 -06:00
[VB]AWOL
d4edea2be4 revised heli lift
disallow if crew != 0 or detach if crew > 0
DZE_HeliLift = false; disables heli lift
2014-01-22 14:48:57 -06:00
[VB]AWOL
4549a5189f incorrect description here 2014-01-22 12:18:25 -06:00
[VB]AWOL
aacfc2b6ff server pbo 2014-01-22 11:55:17 -06:00
[VB]AWOL
fa2ded3c27 setpos to get better placement of preview poles 2014-01-22 11:54:52 -06:00
[VB]AWOL
3b3ee0d905 removed build timer 2014-01-22 11:53:14 -06:00
[VB]AWOL
2e299958be 1 item always 2014-01-22 11:26:56 -06:00
[VB]AWOL
8a8e0ce8d2 corrected description 2014-01-22 11:26:41 -06:00
Skaronator
149b808b05 remove DZEMaintainCache var 2014-01-22 16:46:01 +01:00
[VB]AWOL
2aee8c7b9f server pbo 2014-01-22 09:35:33 -06:00
[VB]AWOL
1485569af3 only setdamage 0 if building has UID or ID 2014-01-22 09:34:47 -06:00
[VB]AWOL
ea43bbd0fc made use of GV and removed retry 2014-01-22 09:33:18 -06:00
[VB]AWOL
ba9af58532 removed retry hopefully it will not be needed now 2014-01-22 09:32:33 -06:00
[VB]AWOL
3e5790dbb5 optimized to no longer send classes
Also added support for UID or ID maintain as well as a damage >= 10%
check
2014-01-22 09:32:07 -06:00
[VB]AWOL
054ab1ef45 move for server use and added DZE_maintainRange 2014-01-22 09:30:25 -06:00
[VB]AWOL
cd224ddce2 silver and gold 10 x 1oz bar stack models 2014-01-22 08:39:14 -06:00
Skaronator
f50f264801 Delay cleanDead a bit more + remove outcommit debug 2014-01-22 15:21:26 +01:00
Skaronator
ddea0d632d Merge pull request #1004 from Fank/patch-3
Fixed wrong string, in Crafting 6x -> 12x Tanktrap
2014-01-22 04:38:39 -08:00
Florian Kinder
c64ade63d8 Fixed wrong string, in Crafting 6x -> 12x Tanktrap 2014-01-22 13:35:28 +01:00
vbawol
9841350e7b Merge pull request #1002 from SGanthony/patch-5
Convert G36 and G36SD Ammo To STANAG Variant
2014-01-21 20:17:12 -08:00
vbawol
aa574e6b6f Merge pull request #1001 from SGanthony/patch-4
Fixed Upgraded Black SUV Glass Armor
2014-01-21 19:22:06 -08:00
vbawol
b23c1c8f05 Update CHANGE LOG 1.0.4.txt 2014-01-21 18:00:36 -06:00
[VB]AWOL
bc8083b4ed 40% chance to payout gem on removal of mine ruins 2014-01-21 17:58:38 -06:00
[VB]AWOL
1a069565a6 cleanup and kick for any non whitelisted PV
This is just for vanilla epoch additional PV's need to be added for
custom code since we do no know what is used.
2014-01-21 17:22:26 -06:00
[VB]AWOL
5b4c7a116e Merge branch 'master' of https://github.com/vbawol/DayZ-Epoch 2014-01-21 17:13:30 -06:00
[VB]AWOL
088248d079 use PVS here instead 2014-01-21 17:13:26 -06:00
Skaronator
04745cd0e9 Delay cleanup exec - fix restart issue on +50 Slots server 2014-01-21 23:06:07 +01:00
[VB]AWOL
8ecf61184a readme 2014-01-21 14:13:05 -06:00
[VB]AWOL
84db9dc980 fixes to napf serverTraders array 2014-01-21 12:24:21 -06:00
SGanthony
8b7e41792f Convert G36 and G36SD Ammo To STANAG Variant
By converting the G36 magazines to the STANAG variant it may reduce the character count for inventory database entries, thus decreasing the chances of the inventory field exceeding the allowed character count, deleting items, players losing items, and then leaving players/admins wondering what happened; waste of time. Further, since G36 magazines are not an item which the traders buy/sell, players can at least buy/sell the STANAG ammo they do find with the the G36 weapon.
2014-01-21 11:03:39 -06:00
SGanthony
3ea416a9d7 Fixed Upgraded Black SUV Glass Armor
Armor of the upgraded black SUV (SUV_TK_CIV_EP1_DZE1) was less than when not upgraded, and did not match the the other  upgraded SUVs.
2014-01-21 08:29:23 -06:00
Skaronator
c97c82f812 ~Custom Thing 2014-01-20 21:01:17 +01:00
Florian Kinder
f310125122 Some fixes 2014-01-20 20:16:15 +01:00
vbawol
f4a8f1cf82 Update CHANGE LOG 1.0.4.txt 2014-01-20 10:36:04 -06:00
vbawol
fcda4738ba Update CHANGE LOG 1.0.4.txt 2014-01-20 10:35:48 -06:00
[VB]AWOL
ac37605493 little less area and no boats 2014-01-20 10:28:46 -06:00
[VB]AWOL
3e26c96ccc no shoremode and correct maparea 2014-01-20 10:23:07 -06:00
[VB]AWOL
752c663027 DayZ_Epoch_25.sauerland fixes 2014-01-20 09:32:47 -06:00
[VB]AWOL
4089982e51 instance 25 for Sauerland 2014-01-20 09:30:51 -06:00
[VB]AWOL
6eaa4f8bab TEST double agro range on all weapons 2014-01-20 09:03:52 -06:00
[VB]AWOL
90e862183d loot positions for new building 2014-01-20 09:03:32 -06:00
[VB]AWOL
afa1036ca9 Sauerland mission file part 1 2014-01-20 09:03:17 -06:00
Florian Kinder
65123250a5 Added scaffolding building 2014-01-20 10:29:43 +01:00
Florian Kinder
dfe88c6c51 Added scaffolding to removeable buildings 2014-01-20 10:22:58 +01:00
Florian Kinder
9a13f4c98b Fixed Copy & Paste mistake 2014-01-20 09:40:25 +01:00
vbawol
9b5f92c9de Update CHANGE LOG 1.0.4.txt 2014-01-19 23:16:53 -06:00
vbawol
502c3769a3 Update CHANGE LOG 1.0.4.txt 2014-01-19 23:15:01 -06:00
vbawol
e0b4a81de2 Update CHANGE LOG 1.0.4.txt 2014-01-19 23:11:44 -06:00
[VB]AWOL
e96a473f44 changelog 2014-01-19 21:53:51 -06:00
[VB]AWOL
d9698c48a0 fixed constant blur effect after halo jump 2014-01-19 19:10:38 -06:00
Florian Kinder
f7e880dc29 Added buildable scaffolding 2014-01-20 00:00:10 +01:00
[VB]AWOL
9062ac5f95 fixed #996
we now limit the speed factor to (18 max run speed) for thirst and
hunger, this will fix issue with getting hungry while too fast while
driving or flying.
2014-01-19 14:38:51 -06:00
Skaronator
0a614fdaff Remove unneded Cfg 2014-01-19 21:06:52 +01:00
[VB]AWOL
2567311ada cleanup extra classes 2014-01-19 12:50:56 -06:00
Skaronator
3f081ea56b Update CHANGE LOG 1.0.4.txt 2014-01-19 19:48:16 +01:00
Skaronator
dc64a90841 #997 Optional Disable PZed 2014-01-19 19:45:55 +01:00
[VB]AWOL
97311b4928 added back gutting vars to BE since it was reverted 2014-01-19 12:38:48 -06:00
Skaronator
ed42f7f0f6 Merge pull request #990 from Fank/patch-2
Added some german translations
2014-01-19 09:44:01 -08:00
Skaronator
c71eded416 Typo 2014-01-19 17:36:12 +01:00
Skaronator
707f9a52dc Some Loot Improvments 2014-01-19 17:34:08 +01:00
Axles
21b36c3950 createGroup removal
NAPF fixes n stuffies.
2014-01-18 20:51:45 -08:00
Axles
aa049e4257 Changes
Changes about to be changed on NAPF
2014-01-18 20:49:36 -08:00
Axles
e9a0b9625f Emmen Repair Trader Fix
Class name incorrect.
2014-01-18 15:11:43 -08:00
Skaronator
68f5b2a081 Disable Respawn if player dead 2014-01-18 22:35:09 +01:00
vbawol
9927690fdc Update CHANGE LOG 1.0.4.txt 2014-01-18 10:57:54 -06:00
vbawol
1af3d16c7f Merge pull request #995 from SGanthony/patch-3
Varible For Timer Between Loot Spawning
2014-01-18 08:55:42 -08:00
vbawol
9bb88ad2f9 Merge pull request #994 from SGanthony/patch-2
Allow Admins To Customize Loot Spawn Timer
2014-01-18 08:55:30 -08:00
SGanthony
733385cb2f Varible For Timer Between Loot Spawning
Needed for change to SQF/dayz_code/compile/player_spawnCheck.sqf.
2014-01-18 10:51:00 -06:00
SGanthony
732e4c407c Allow Admins To Customize Loot Spawn Timer
This will make it easier for admins to customize the timer between loot spawning. Variable default of 10 moved to variables.sqf.
2014-01-18 10:49:46 -06:00
[VB]AWOL
c95303bc9b added //new to all scripts and cleaned up some commented lines
to
2014-01-18 09:16:10 -06:00
Skaronator
326e758d29 Fix #991 (DayZ Mod 1.8 Way) 2014-01-18 16:02:05 +01:00
[VB]AWOL
7ef18f0183 mpeventhandler.txt updated for new BE 2014-01-18 09:00:22 -06:00
Skaronator
556093c1ce Revert "Fix #991"
This reverts commit 89a5a3b459.
2014-01-18 14:49:53 +01:00
Skaronator
a3fd8bd1ca Revert "More Fixes #991"
This reverts commit 7d15cfb1bf.
2014-01-18 14:49:53 +01:00
[VB]AWOL
91c7ddf829 napf traders finalized 2014-01-18 00:31:37 -06:00
[VB]AWOL
e52ec823d7 napf traders 2014-01-17 21:31:56 -06:00
Skaronator
e187eabc55 Move cutText above the Loop 2014-01-17 23:48:28 +01:00
[VB]AWOL
454b7f592c forgot to save a few files 2014-01-17 16:46:49 -06:00
Skaronator
03b2408ae3 Update maintain to new CHILD function 2014-01-17 23:05:42 +01:00
[VB]AWOL
cab5d03ab7 updated for latest BE
regex metacharacters ({}[]()^$.|*+? and \) now have to be escaped using
'\' if they should be used as literals.
2014-01-17 14:56:27 -06:00
Skaronator
cf47a5d1c8 Update Changelog 2014-01-17 20:12:20 +01:00
Skaronator
2264e4aa9c Update Changelog 2014-01-17 20:07:51 +01:00
Skaronator
d0bcf22ba2 Push my own Stuff (I hope thats fine) 2014-01-17 20:04:40 +01:00
Skaronator
678590c7ce Publish new Maintain Area (New HiveDLL is required) 2014-01-17 19:09:37 +01:00
Skaronator
7d15cfb1bf More Fixes #991 2014-01-17 18:28:36 +01:00
Skaronator
89a5a3b459 Fix #991 2014-01-17 18:10:59 +01:00
Skaronator
4715a23233 Update README.md 2014-01-17 07:02:18 +01:00
[VB]AWOL
0a178f2ecc Included Custom Islands 2014-01-16 23:02:29 -06:00
[VB]AWOL
bbf22db3f2 format 2014-01-16 23:01:01 -06:00
[VB]AWOL
dda9f9d532 Napf credits 2014-01-16 22:57:38 -06:00
vbawol
6f4c49f587 Update CHANGE LOG 1.0.4.txt 2014-01-16 20:03:01 -06:00
[VB]AWOL
91836d6145 removed all traces of CfgTownGenerator 2014-01-16 19:30:34 -06:00
[VB]AWOL
16901c122c not used 2014-01-16 19:30:12 -06:00
[VB]AWOL
5ffe563baa removed old database.dll 2014-01-16 19:22:00 -06:00
vbawol
e95521c7bb Update CHANGE LOG 1.0.4.txt 2014-01-16 19:03:08 -06:00
vbawol
4cbc63461d Update CHANGE LOG 1.0.4.txt 2014-01-16 18:11:36 -06:00
vbawol
3a3cae0a53 Update CHANGE LOG 1.0.4.txt 2014-01-16 18:08:30 -06:00
vbawol
c7b19b4703 Update CHANGE LOG 1.0.4.txt 2014-01-16 18:06:51 -06:00
[VB]AWOL
ec2fb5709c tweaks to minpos and maparea for napf 2014-01-16 18:01:09 -06:00
[VB]AWOL
ef779ba2e0 lower animal counts and removed unused variable MaxHeliCrashes 2014-01-16 16:35:31 -06:00
Florian Kinder
4977ab0770 Revert "fix reached max character length in action menu"
This reverts commit 0d048bdd8d.
2014-01-16 23:03:22 +01:00
[VB]AWOL
8c24f2a1a4 Napf missing jetskiaddon line 2014-01-16 15:48:37 -06:00
Florian Kinder
0d048bdd8d fix reached max character length in action menu 2014-01-16 20:06:26 +01:00
Florian Kinder
4de90cc3b9 More german translations 2014-01-16 19:37:02 +01:00
Florian Kinder
9933ea07de fixes 2014-01-16 19:32:18 +01:00
Florian Kinder
3699045c0a Added some german translations 2014-01-16 19:29:17 +01:00
Skaronator
d16f90b9d3 Merge pull request #986 from Fank/patch-1
Add german translation for "Craft Wood Crate"
2014-01-16 10:13:45 -08:00
Florian Kinder
39b0035bfb Added MH-60S DZ & MH-60S AL 2014-01-16 19:00:26 +01:00
Florian Kinder
250a48f11e Add german translation for "Craft Wood Crate" 2014-01-16 18:55:54 +01:00
vbawol
00f90ae9ee Merge pull request #985 from Geodar/patch-1
Czech for Wooden Crate string
2014-01-16 09:09:00 -08:00
Skaronator
40e4239d42 More PVS/PVC Stuff 2014-01-16 14:39:53 +01:00
vbawol
a363400d64 Update CHANGE LOG 1.0.4.txt 2014-01-15 20:09:06 -06:00
[VB]AWOL
3d7ba8ca39 remove documents (changed mind) 2014-01-15 19:43:41 -06:00
[VB]AWOL
2c4a677840 SFuel here instead of SetFuel since it is also a command 2014-01-15 19:30:16 -06:00
[VB]AWOL
c4333e2b7d fixes to format and localize 2014-01-15 19:21:13 -06:00
David Klepáček
5c7ca4b975 Czech for 9562c319c1
Czech for 9562c319c1
2014-01-16 00:00:23 +01:00
Skaronator
13b7a77c71 Move the freshSpawn, update layout a bit 2014-01-15 14:18:59 +01:00
Skaronator
2b876e0967 Little Typo 2014-01-15 13:44:43 +01:00
vbawol
6bd5343018 Merge pull request #978 from vbawol/PVS/PVC
Complete #941 - Need Testing
2014-01-14 17:00:03 -08:00
[VB]AWOL
a5addbda5b fixed #984 2014-01-14 12:01:48 -06:00
[VB]AWOL
20dab78c27 spawn calls need dummy input or error out 2014-01-13 09:48:29 -06:00
[VB]AWOL
aa8975e36c wrong variable used here
@zabn let me know if this is not correct.
2014-01-13 09:35:58 -06:00
[VB]AWOL
63db8aa252 incorrect createVehicleLocal format
removed setdir since its a round pole and should not be needed
2014-01-13 09:30:59 -06:00
[VB]AWOL
35d1dea5b2 fixed typo in player build 2014-01-13 09:26:51 -06:00
vbawol
81f98e2d97 Update CHANGE LOG 1.0.4.txt 2014-01-13 08:38:06 -06:00
[VB]AWOL
70546d693e fixed #980 2014-01-13 08:32:45 -06:00
vbawol
90bb201643 Merge pull request #981 from Mochnant/storable_wood_crate
Looks good, thanks! Added Buildable Wood Crate Storage
2014-01-13 06:27:10 -08:00
[VB]AWOL
9e694a2b4f readme's 2014-01-12 21:33:42 -06:00
[VB]AWOL
f08d554d7e keys cleanup pt2 2014-01-12 18:54:35 -06:00
Mochnant
9562c319c1 Added Buildable Wood Crate Storage
Construct a wooden crate (5/50/1) for item storage from 6 lumber.
2014-01-12 15:55:03 -05:00
Skaronator
f233cfce84 Finalized #941² 2014-01-12 16:08:06 +01:00
Skaronator
3634a196ee Missing Line for #941 2014-01-12 16:05:06 +01:00
Skaronator
a7d27c0829 Complete #941 - Not Tested 2014-01-12 16:04:03 +01:00
Skaronator
b157e3bc7f Sort Keyfiles (Please Recheck @vbawol) 2014-01-12 01:15:23 +01:00
vbawol
910d4fbbc3 Update CHANGE LOG 1.0.4.txt 2014-01-11 14:51:59 -06:00
vbawol
9d143c00dc Update CHANGE LOG 1.0.4.txt 2014-01-11 14:48:23 -06:00
vbawol
2fefccfa60 Update CHANGE LOG 1.0.4.txt 2014-01-11 14:44:44 -06:00
[VB]AWOL
78ae60aff0 Removed old bikey and added new versioned one.
Also moved external keys to sub folder.
Thanks to @Tansien for the suggestion.
2014-01-11 14:32:24 -06:00
Skaronator
8e87599f26 Typo 2014-01-11 21:11:18 +01:00
Skaronator
fd0412dec6 Push #941 - tagFriendly 2014-01-11 20:55:43 +01:00
Skaronator
5677dbe627 Remove ItemFuelcan include 2014-01-11 20:47:49 +01:00
Skaronator
97e3723f8e Finish #941 2014-01-11 20:45:54 +01:00
Skaronator
0be75dd913 Push #941 - Bandage 2014-01-11 20:40:06 +01:00
Skaronator
3f63f1ab2a Push #941 - Epinephrine 2014-01-11 20:32:51 +01:00
Skaronator
e422df8fc0 Push #941 - Morphine 2014-01-11 20:27:27 +01:00
Skaronator
bec3f71fc9 Push #941 - Painkiller 2014-01-11 20:23:50 +01:00
Skaronator
c5ce2f70a4 Push #941 - Transfuse 2014-01-11 20:19:26 +01:00
Skaronator
2a37818e47 Push #941 - Humanity 2014-01-11 20:11:00 +01:00
Skaronator
4f2ab53a1f Push #941 - HideBody 2014-01-11 19:58:23 +01:00
Skaronator
538f56c07b Push #941 - vehicleDamage 2014-01-11 19:49:00 +01:00
Skaronator
cdc98d2bcb Push #941 - SetFuel 2014-01-11 19:40:24 +01:00
Skaronator
31b0226b94 Push PVS/PVC files (Outcommit currently) 2014-01-11 18:58:49 +01:00
vbawol
2127e189de Update CHANGE LOG 1.0.4.txt 2014-01-11 09:33:45 -06:00
[VB]AWOL
de5eb05caf Napf support part 1 2014-01-11 09:28:46 -06:00
[VB]AWOL
75fd7d31a4 overon support and bikey 2014-01-11 09:23:23 -06:00
Skaronator
f7486d5fd9 You will no longer get a 3 by 3H - barrier cube if you remove a 5H - barrier cube 2014-01-11 00:34:18 +01:00
Skaronator
c63b0604b3 Change Var (Easier to Spot Hackers)
4e7e2c4ed2
2014-01-11 00:26:33 +01:00
Skaronator
6004143858 Fix duplicating Bug 2014-01-11 00:19:26 +01:00
Skaronator
4448546734 Fix Typooo 2014-01-10 13:43:05 +01:00
Skaronator
ebed1a24fd Update CHANGE LOG 1.0.4.txt 2014-01-09 14:53:31 +01:00
Skaronator
c0f1db52d0 Update Inventory on BAF_Merlin_DZE 2014-01-09 14:49:29 +01:00
vbawol
03c5e9522f Update CHANGE LOG 1.0.4.txt 2014-01-09 00:08:24 -06:00
vbawol
891b9dce48 Merge pull request #972 from icomrade/master
Fix medical actions in vehicles
2014-01-08 22:07:40 -08:00
icomrade
84ebc488ab Fix medical actions in vehicles 2014-01-09 01:05:54 -05:00
Skaronator
37fe2e26ca Fix Display name 2014-01-08 21:46:00 +01:00
Skaronator
8bc7a3a52b Add BAF_Merlin_DZE w/o radar 2014-01-08 18:42:37 +01:00
vbawol
0c4f3d3224 Update CHANGE LOG 1.0.4.txt 2014-01-08 10:07:22 -06:00
[VB]AWOL
505952d562 1.0.4 latest server pbo 2014-01-08 09:40:40 -06:00
[VB]AWOL
2fab76a530 typo 2014-01-08 08:55:31 -06:00
[VB]AWOL
0acc23a796 Lower weapon count on safes to 25 2014-01-08 08:55:03 -06:00
vbawol
cc4cfa4409 Merge pull request #970 from CasualTheoryCrafters/master
Extended Tradelogging + fix for Sold Itemname
2014-01-07 07:56:23 -08:00
ctc.Sebi
481369154a Update server_tradeObject.sqf 2014-01-07 16:39:53 +01:00
ctc.Sebi
4e1960f46c Update server_tradeObject.sqf
Extended trade-logging (incl. price)
2014-01-07 16:38:19 +01:00
ctc.Sebi
a190397618 Update trade_weapons.sqf 2014-01-07 16:35:46 +01:00
ctc.Sebi
152054da94 Update trade_items.sqf 2014-01-07 16:35:28 +01:00
ctc.Sebi
9a88a4ad6c Update trade_backpacks.sqf 2014-01-07 16:34:53 +01:00
ctc.Sebi
f521a241c8 Update trade_any_vehicle.sqf 2014-01-07 16:34:31 +01:00
ctc.Sebi
ce1624438d Update trade_any_boat.sqf 2014-01-07 16:34:03 +01:00
ctc.Sebi
e5f8314831 Update trade_any_bicycle.sqf
Extended logging of trades
2014-01-07 16:33:37 +01:00
Skaronator
95c5c6c25b Fix #965 via MGT 2014-01-05 14:16:53 +01:00
[VB]AWOL
c7e2ed41bd parent class 2014-01-01 20:29:35 -06:00
[VB]AWOL
551384c935 as50 DZ config 2014-01-01 20:28:42 -06:00
[VB]AWOL
293c5cb6b5 version bump, prep for 1.0.4 2014-01-01 20:05:16 -06:00
eltexonline
90fa38c7bc Merge pull request #962 from SGanthony/patch-1
SUV RBWheel Armor
2014-01-01 13:03:03 -08:00
SGanthony
0801da9a87 RBWheel Armor
The armor value for the RBWheel for several of the upgraded vehicles was at 0.15 rather than 0.3.
2013-12-30 15:11:49 -06:00
eltexonline
062d3d8734 Merge pull request #961 from Geodar/master
Another Czech strings
2013-12-30 11:47:49 -08:00
Geodar
8c01db42e5 Czech Localization P.3 2013-12-30 20:41:35 +01:00
Geodar
39be93e118 Czech Translation P.2 2013-12-30 20:17:10 +01:00
Geodar
5b8fc6b65f Czech Localization P.1 2013-12-30 19:50:26 +01:00
Skaronator
2883bfd2a3 Fix issue with freshSpawn - is allways 0 on Fresh Server Restart 2013-12-30 19:42:40 +01:00
Skaronator
8707ff7c97 Don't merge the array (Not sure if this is correctly) 2013-12-29 23:20:21 +01:00
Skaronator
01c579799f Fix Issue on Slow Server with big HiveDB 2013-12-29 23:19:34 +01:00
Skaronator
fe18c9091c Large Loot Cleanup Improvements 2013-12-29 23:17:42 +01:00
[VB]AWOL
172a4b9ad0 incorrect format KISS 2013-12-27 10:10:04 -06:00
[VB]AWOL
8971621d26 fixed incorrect code here 2013-12-27 10:04:45 -06:00
Skaronator
a99827d317 Update CHANGE LOG 1.0.4.txt 2013-12-25 04:30:19 +01:00
Skaronator
24ae26e5bf Fix minus Number in Serverside debug 2013-12-24 22:49:37 +01:00
vbawol
ba096c0426 Merge pull request #958 from vbawol/heli-towing
Add Heli Towing
2013-12-23 20:32:41 -08:00
Zac Surplice
c980b95e18 Add Heli Towing 2013-12-24 15:29:08 +11:00
HARLAN
0665ed36c9 Merge pull request #956 from dayz10k/master
#852 localization is worse than being waterboarded
2013-12-23 09:37:09 -08:00
HARLAN
caec75424a localize 2013-12-23 12:35:39 -05:00
HARLAN
6a50616e98 localize 2013-12-23 12:35:00 -05:00
HARLAN
686aa7a84b STR_EPOCH_ACTIONS_19 dupe removed. 2013-12-23 12:32:13 -05:00
HARLAN
d5eedc1908 localize 2013-12-23 12:31:05 -05:00
HARLAN
93ae496a78 localize 2013-12-23 12:30:10 -05:00
HARLAN
6fe6ea1fca localize 2013-12-23 12:29:10 -05:00
HARLAN
ce408df7cd localize 2013-12-23 12:28:13 -05:00
HARLAN
0a003fc3bb localize 2013-12-23 12:27:14 -05:00
HARLAN
d2aaff8113 localize 2013-12-23 12:26:31 -05:00
HARLAN
a052f42759 localize 2013-12-23 12:25:13 -05:00
HARLAN
91fddad252 localize 2013-12-23 12:24:38 -05:00
HARLAN
6216e93c4a localize 2013-12-23 12:23:34 -05:00
HARLAN
1a961e475a localize 2013-12-23 12:22:52 -05:00
HARLAN
4d8592fefa localize 2013-12-23 12:21:48 -05:00
HARLAN
9bc5aaddde localize 2013-12-23 12:19:36 -05:00
HARLAN
4300b6a949 localize 2013-12-23 12:19:26 -05:00
HARLAN
e65d1cc9d3 localization 2013-12-23 12:17:56 -05:00
HARLAN
927a69a9ce localize 2013-12-23 12:11:49 -05:00
HARLAN
825c603026 localize fixes 2013-12-23 11:52:29 -05:00
HARLAN
7f3b45e8cb more updates 2013-12-23 11:51:11 -05:00
Skaronator
504da4d2b9 Update CHANGE LOG 1.0.4.txt 2013-12-23 15:02:41 +01:00
Skaronator
092c437c63 Fix Now the new Object Streaming way + much better performance 2013-12-23 14:46:39 +01:00
Skaronator
57688bf8c1 Fix Streaming (Untested but currently way was absolutly wrong) 2013-12-23 13:38:41 +01:00
Zac Surplice
1309758166 remove copper 2013-12-23 17:43:47 +11:00
vbawol
c900e4060b Merge pull request #953 from vbawol/zabn-buildings-before-cars
Zabn buildings before cars
2013-12-22 19:07:21 -08:00
Zac Surplice
30c7af8d04 derp 2013-12-23 13:21:46 +11:00
Zac Surplice
d5a0ec41b1 some optimisations (thanks skaro for advice) 2013-12-23 13:18:03 +11:00
Skaronator
0b61b3cb8e Update Debug in CrashSide Monitor 2013-12-23 03:14:52 +01:00
Zac Surplice
23d555a529 buildings before cars 2013-12-23 11:30:25 +11:00
Skaronator
4637298b70 Merge pull request #949 from Torndeco/patch-1
Update mission.sqm
2013-12-21 15:15:39 -08:00
Torndeco
b664ab7f48 Update mission.sqm
Just unique names for map markers..

For code like DZAI that get the positions of said map markers from thier name.
To stop it spawning AI @ trader towns etc
2013-12-21 22:52:15 +00:00
Skaronator
22c5c9c61d Merge pull request #948 from VeryBigBro/patch-1
Update stringtable.xml
2013-12-21 07:55:27 -08:00
Anton
69fff899cf Update stringtable.xml
some work
2013-12-21 15:38:19 +03:00
HARLAN
f8adb8202a Merge pull request #945 from dayz10k/master
#852 Major stringtable and localization overhaul (fnSelfActions)
2013-12-20 10:54:15 -08:00
HARLAN
a264228b9e #852 major stringtable overhaul 2013-12-20 13:51:48 -05:00
HARLAN
0b5b8a801c #851 localization fixes 2013-12-20 13:16:48 -05:00
HARLAN
f22d3120dc #852 localize the actions 2013-12-20 12:52:27 -05:00
HARLAN
adaf0a9c9e #852 localize 2013-12-20 12:49:43 -05:00
Skaronator
76e85d3411 Merge pull request #944 from Geodar/patch-1
Czech localization for #930
2013-12-20 08:53:19 -08:00
David Klepáček
b6e48666ee Czech localization for #930 2013-12-20 17:44:18 +01:00
HARLAN
ab26d9f52b #852 buy for/sell for dialog.hpp 2013-12-20 11:34:47 -05:00
HARLAN
413c0e2a37 Merge pull request #943 from dayz10k/master
#930 smelt->stack localization
2013-12-20 08:28:21 -08:00
HARLAN
1f0a4afa8f #930 smelt->stack localization 2013-12-20 11:27:23 -05:00
HARLAN
60a03ca75c Merge pull request #942 from dayz10k/master
#939 duplicate trader class lingor
2013-12-20 08:08:46 -08:00
HARLAN
eb35159ac3 #939 duplicate trader class lingor 2013-12-20 11:08:25 -05:00
HARLAN
ae7d992061 Merge pull request #940 from vos/master
added player helper functions
2013-12-20 08:02:08 -08:00
HARLAN
f6e9db4892 Update CHANGE LOG 1.0.4.txt 2013-12-20 08:44:23 -05:00
Skaronator
d1a15870b1 Add Notice for PV improvements (Also a performance plus would be PVC instead of PV) 2013-12-20 13:40:35 +01:00
Skaronator
74568146e5 Cleanup tagFriendly 2013-12-19 22:29:34 +01:00
infiSTAR
0726311df5 prevent morphing in the same skin (some do that to refill their magazines) 2013-12-19 21:11:07 +01:00
Alexander Vos
b184d535a5 added player helper functions 2013-12-19 19:32:49 +01:00
[VB]AWOL
70c5195b99 readme 2013-12-19 12:04:45 -06:00
[VB]AWOL
ec1bebb2c9 Fixes issue with missing weapons on graves
http://epochmod.com/forum/index.php?/topic/5092-player-grave/?p=33281
2013-12-19 12:03:20 -06:00
[VB]AWOL
a3525b4ed6 fixed #916 2013-12-18 10:58:31 -06:00
[VB]AWOL
aaac7cf447 added pook bell copters to addons for other maps 2013-12-18 10:22:11 -06:00
vbawol
5f29b9fcd8 Merge pull request #934 from zzzTNTzzz/patch-1
Update mission.sqm
2013-12-18 08:09:51 -08:00
zzzTNTzzz
91c8ba2389 Update mission.sqm
fixes can not play edit error related to the pook_ helicopters
2013-12-18 01:55:14 -08:00
eltexonline
fc5e3e6b47 Merge pull request #931 from VeryBigBro/patch-6
Update stringtable.xml
2013-12-17 14:05:15 -08:00
[VB]AWOL
a84768c603 manual merge of #931 2013-12-17 16:04:34 -06:00
HARLAN
8e6239b4d5 Update CHANGE LOG 1.0.4.txt 2013-12-17 13:48:31 -05:00
HARLAN
cb48b95c13 Update CHANGE LOG 1.0.4.txt 2013-12-17 13:42:12 -05:00
HARLAN
7f4af75b34 Merge pull request #932 from dayz10k/master
#906 vehicle maintenance manuals for sale
2013-12-17 10:32:46 -08:00
HARLAN
d90eea8c98 quick SQL fix for insert igore 2013-12-17 13:32:14 -05:00
HARLAN
695f72e10a #906 Vehicle upgrade parts to inventory 2013-12-17 13:30:05 -05:00
HARLAN
3aa294d881 Merge pull request #929 from BlackLA/patch-1
Update stringtable.xml
2013-12-17 10:19:00 -08:00
Anton
77b626cbcd Update stringtable.xml
Fixed spaces, missing "<" ">", a better way of #929
2013-12-17 20:33:55 +03:00
BlackLA
afa5874685 Update stringtable.xml 2013-12-17 08:32:29 -08:00
HARLAN
1d9a03f088 Merge pull request #928 from dayz10k/master
#927 Lingor Trader updates
2013-12-17 08:22:03 -08:00
HARLAN
51239e380d #927 lingor trader update 2013-12-17 11:20:35 -05:00
HARLAN
a0ae7109f4 #927 lingor trader update 2013-12-17 11:16:08 -05:00
HARLAN
77f1bbfc94 #927 lingor trader update 2013-12-17 11:15:04 -05:00
HARLAN
964a8dc40c Merge pull request #926 from Torndeco/master
DZE_PlotPole Typo
2013-12-16 13:05:24 -08:00
Torndeco
a9f23c6dc5 Typo 2013-12-16 20:34:58 +00:00
Torndeco
65037d5a87 Typo 2013-12-16 20:34:03 +00:00
Torndeco
423390381a Typo 2013-12-16 20:32:51 +00:00
HARLAN
d2712a9235 Merge pull request #925 from dayz10k/master
#924 tweak remove tanktrap/camonet
2013-12-16 11:28:47 -08:00
HARLAN
77e7fd982a #924 missing array around classname 2013-12-16 14:28:18 -05:00
HARLAN
004719fa56 #924 lower range on remove net 2013-12-16 14:26:27 -05:00
HARLAN
3c3f62bf34 Merge pull request #923 from dayz10k/master
#905 price review and #919 plot global var array
2013-12-16 10:07:18 -08:00
HARLAN
ad17aa07af #919 modify global var into array 2013-12-16 13:06:32 -05:00
HARLAN
40f8a0c9a0 #919 modify global var into array 2013-12-16 13:05:34 -05:00
HARLAN
4aea9f9e3c #919 modify global var into array 2013-12-16 13:03:00 -05:00
HARLAN
ed3266d124 #919 modify global var into array 2013-12-16 13:02:39 -05:00
HARLAN
cacc600703 #919 modify global var into array 2013-12-16 13:01:17 -05:00
HARLAN
77ae969a74 Update 1_0_4_updates.sql 2013-12-16 12:58:53 -05:00
HARLAN
4c1b870606 #905 price review 2013-12-16 11:38:28 -05:00
HARLAN
315cc497da Merge pull request #922 from dayz10k/master
#852 more localization
2013-12-16 08:06:20 -08:00
HARLAN
9137224b88 #852 localize 2013-12-16 11:05:58 -05:00
HARLAN
4ffb453e23 #852 localize 2013-12-16 11:05:34 -05:00
HARLAN
062ab84138 Update stringtable.xml 2013-12-16 11:04:24 -05:00
HARLAN
a753c97f5b Update stringtable.xml 2013-12-16 11:04:04 -05:00
HARLAN
6682f67288 Merge pull request #921 from dayz10k/master
fix wrong stringtable call
2013-12-16 07:57:16 -08:00
HARLAN
ca3f31e1c3 fix wrong stringtable call 2013-12-16 10:56:48 -05:00
HARLAN
70393db217 Merge pull request #920 from dayz10k/master
#919 override plotpole variables
2013-12-16 07:52:16 -08:00
HARLAN
b76362cfac #919 override plotpole variables 2013-12-16 10:49:56 -05:00
HARLAN
d25b0fbcb9 #919 override plotpole variables 2013-12-16 10:48:52 -05:00
HARLAN
2a003beecf Merge pull request #917 from dayz10k/master
#894 tweaks after (remove hedgehog from allowed on roads)
2013-12-15 16:59:44 -08:00
HARLAN
58f89d8d61 remove allowing tanktraps on roads 2013-12-15 19:58:59 -05:00
HARLAN
dbdcad75eb restore hedgehog requiring plot 2013-12-15 19:58:13 -05:00
Skaronator
ed3cd2219c Thats now a correctly Fix for the exitWith thing 2013-12-15 18:22:34 +01:00
Skaronator
b20ce595dc Merge pull request #911 from UK431-Soul/patch-2
lol
2013-12-14 07:14:44 -08:00
UK431-Soul
e007becbec Update mission.biedi
stripped all sqf syntax to make it load in the editor.
why is there sqf syntax in the biedi file to begin with?
2013-12-14 16:09:38 +01:00
Skaronator
ee5d0b1fa6 Update CHANGE LOG 1.0.4.txt 2013-12-14 15:26:08 +01:00
vbawol
64e5f0eecc Update CHANGE LOG 1.0.4.txt 2013-12-14 08:01:19 -06:00
Skaronator
321110c52e Merge pull request #908 from krazey/patch-1
added german strings
2013-12-14 03:48:55 -08:00
Skaronator
c313f211cf Merge pull request #909 from Torndeco/patch-4
Typo missing ;
2013-12-14 03:48:39 -08:00
Torndeco
7a20bc7170 Typo missing ; 2013-12-14 11:15:39 +00:00
krazey
c119703983 added german strings 2013-12-14 08:33:11 +01:00
Skaronator
f7e6f82ce6 Fix exitWith 2013-12-14 00:21:34 +01:00
Skaronator
c548d8c5ce Just Empty Spacer 2013-12-13 21:37:04 +01:00
HARLAN
55a9c68435 Update CHANGE LOG 1.0.4.txt 2013-12-13 15:36:23 -05:00
HARLAN
87489fc18a Merge pull request #904 from dayz10k/master
Ovaron Support Mission Template #733
2013-12-13 12:32:58 -08:00
HARLAN
a4b6e652eb this needs a huge review for ovaron spawns and addons #733 2013-12-13 15:32:19 -05:00
HARLAN
b94073aac8 Support for Ovaron #733 2013-12-13 15:30:30 -05:00
HARLAN
138f1f9fa5 Support for Ovaron #733 2013-12-13 15:30:10 -05:00
HARLAN
8b6b2b40cc Support for Ovaron #733 2013-12-13 15:29:36 -05:00
HARLAN
24c91d69b8 Support for Ovaron #733 2013-12-13 15:28:52 -05:00
HARLAN
47edbfa835 Merge pull request #903 from dayz10k/stringtable_overhaul
Stringtable overhaul & Localization #852
2013-12-13 12:18:28 -08:00
HARLAN
fdaf93a26c localization 2013-12-13 15:17:19 -05:00
HARLAN
3b27c45f64 localization 2013-12-13 15:15:22 -05:00
HARLAN
5fde59c7e4 localization 2013-12-13 15:14:39 -05:00
HARLAN
95de9ef8f3 localization 2013-12-13 15:14:19 -05:00
HARLAN
18a9b5b902 localization 2013-12-13 15:13:18 -05:00
HARLAN
c52b8f20e1 localization 2013-12-13 15:12:53 -05:00
HARLAN
8c16d76bb1 Round 1 of #852
bags.hpp,deathboards.hpp,CfgWeapons (missing french)
2013-12-13 15:11:45 -05:00
HARLAN
697728e6ee Merge pull request #902 from dayz10k/master
Remove copper from mission file vendors #897
2013-12-13 11:46:45 -08:00
HARLAN
d7d8e9347f Remove copper 2013-12-13 14:45:56 -05:00
HARLAN
ae73a2267b Remove copper 2013-12-13 14:44:36 -05:00
HARLAN
efd8ef0cee Remove copper 2013-12-13 14:43:31 -05:00
HARLAN
2ab9a981a0 Remove copper 2013-12-13 14:43:05 -05:00
HARLAN
a0bb1f96d4 Remove copper 2013-12-13 14:42:44 -05:00
HARLAN
01e542b4c0 Remove copper 2013-12-13 14:42:14 -05:00
HARLAN
a99f94bf8b Remove copper 2013-12-13 14:41:37 -05:00
HARLAN
542eb67e05 Remove copper 2013-12-13 14:41:03 -05:00
HARLAN
5c28b05e7e Remove copper 2013-12-13 14:40:27 -05:00
HARLAN
e4df4bd950 Remove copper 2013-12-13 14:39:55 -05:00
HARLAN
7654f18e68 Remove copper 2013-12-13 14:39:25 -05:00
HARLAN
58a3f1698c Remove copper 2013-12-13 14:38:54 -05:00
HARLAN
f3efb8e266 Remove copper 2013-12-13 14:38:07 -05:00
HARLAN
02b2132101 Remove copper 2013-12-13 14:37:34 -05:00
HARLAN
40ef8c2e01 Remove copper 2013-12-13 14:36:53 -05:00
HARLAN
3d131b68a1 Remove copper 2013-12-13 14:36:12 -05:00
HARLAN
82c805d027 Remove copper #897 2013-12-13 14:33:36 -05:00
HARLAN
e2beac6fe9 Remove copper #897 2013-12-13 14:27:25 -05:00
HARLAN
75bb72dfaa Merge pull request #901 from dayz10k/master
#894 Allow tanktraps on road, global toggle for road building
2013-12-13 11:23:49 -08:00
HARLAN
cee93f8284 Global variable for DZE_BuildOnRoads 2013-12-13 14:23:00 -05:00
HARLAN
3190b34a8f Global variable for DZE_BuildOnRoads 2013-12-13 14:22:43 -05:00
HARLAN
ccf7b2dc4d Global variable for DZE_BuildOnRoads 2013-12-13 14:22:31 -05:00
HARLAN
74db937a2c Global variable for DZE_BuildOnRoads 2013-12-13 14:22:17 -05:00
HARLAN
cacf2118d3 Global variable for DZE_BuildOnRoads 2013-12-13 14:22:04 -05:00
HARLAN
f07e3f7c28 Global variable for DZE_BuildOnRoads 2013-12-13 14:21:50 -05:00
HARLAN
0bb08f3beb Global variable for DZE_BuildOnRoads 2013-12-13 14:21:36 -05:00
HARLAN
a57e2ab20a Update init.sqf 2013-12-13 14:21:13 -05:00
HARLAN
18f259d9f8 Global variable for DZE_BuildOnRoads 2013-12-13 14:20:57 -05:00
HARLAN
be2c27673b Global variable for DZE_BuildOnRoads 2013-12-13 14:20:43 -05:00
HARLAN
a440ea8610 Global variable for DZE_BuildOnRoads 2013-12-13 14:20:28 -05:00
HARLAN
744147264d Global variable for DZE_BuildOnRoads 2013-12-13 14:20:11 -05:00
HARLAN
d153dc34a6 Global variable for DZE_BuildOnRoads 2013-12-13 14:19:55 -05:00
HARLAN
62b34800a4 Global variable for DZE_BuildOnRoads 2013-12-13 14:19:36 -05:00
HARLAN
4817201b88 Global variable for DZE_BuildOnRoads 2013-12-13 14:19:19 -05:00
HARLAN
bf4f2cbe66 Global variable for DZE_BuildOnRoads 2013-12-13 14:19:05 -05:00
HARLAN
487b76536e Global variable for DZE_BuildOnRoads 2013-12-13 14:18:49 -05:00
HARLAN
4e34b1ad57 Update init.sqf 2013-12-13 14:18:12 -05:00
HARLAN
f90773e720 Update init.sqf 2013-12-13 14:17:52 -05:00
HARLAN
7839acde7f Update init.sqf 2013-12-13 14:17:38 -05:00
HARLAN
4dc5b079e3 Update init.sqf 2013-12-13 14:17:22 -05:00
HARLAN
009023a7b3 Update init.sqf 2013-12-13 14:17:09 -05:00
HARLAN
5400ea5537 #894 allow tanktraps on road, global toggle on road building 2013-12-13 14:16:18 -05:00
HARLAN
c96eb55d20 #894 allow tanktraps on road, global toggle on road building 2013-12-13 14:13:26 -05:00
HARLAN
7f80557c6b #894 allow tanktraps on road, global toggle on road building
DZE_BuildOnRoads toggle (default False)
2013-12-13 14:12:36 -05:00
HARLAN
df236c4ce4 Update CHANGE LOG 1.0.4.txt 2013-12-13 14:04:35 -05:00
HARLAN
26473f4742 Create CHANGE LOG 1.0.4.txt 2013-12-13 14:00:42 -05:00
HARLAN
acb33e2f00 Merge pull request #899 from dayz10k/plotpreview
#846 Plotpreview
2013-12-13 10:59:01 -08:00
HARLAN
920cdfba78 plot preview #846 only after plot placed 2013-12-13 13:58:07 -05:00
HARLAN
b27836d2ee plot preview #846 2013-12-13 13:44:17 -05:00
HARLAN
7bed8cce6c Merge pull request #898 from dayz10k/master
Remove copper SQL #897
2013-12-13 10:39:07 -08:00
HARLAN
fd94c2bf4b Remove copper SQL #897 2013-12-13 13:38:39 -05:00
Skaronator
49a2f11e24 Update CHANGE LOG 1.0.3.1.txt 2013-12-13 14:24:23 +01:00
[VB]AWOL
f13affcb80 incorrect chainsaw name 2013-12-12 22:17:38 -06:00
[VB]AWOL
aae68de9ee 1.0.3.1 released 2013-12-12 16:31:13 -06:00
vbawol
738c702c89 Update ROLLING CHANGE LOG 1.0.3.1.txt 2013-12-12 16:30:25 -06:00
[VB]AWOL
c43caf7ab6 SMD sara example configs 2013-12-12 14:24:38 -06:00
[VB]AWOL
1fd0d5e90d 1.0.3.1 final server pbo 2013-12-12 12:14:46 -06:00
[VB]AWOL
4692a5625f updated sara markers 2013-12-12 12:13:15 -06:00
Axles
5cd7e71904 Sahrani SQM updates
Moved wholesaler and hero vendor markers. Moved Center.
2013-12-12 10:11:43 -08:00
vbawol
1f620eef55 Update ROLLING CHANGE LOG 1.0.3.1.txt 2013-12-12 12:01:56 -06:00
[VB]AWOL
66a2b92d04 added new loot positions for SMD sara 2013-12-12 11:59:28 -06:00
[VB]AWOL
ac397a073b updated for sara mission files 2013-12-12 10:10:34 -06:00
[VB]AWOL
03ec419c29 Added missing tree type for SMD sara 2013-12-12 10:10:14 -06:00
[VB]AWOL
de5cab5130 cleanup sara 2013-12-12 09:54:43 -06:00
Axles
2ee6e7fb57 Sahrani updates
Much needed buildings and traders on the small islands have been moved
to the main island.
2013-12-11 21:43:44 -08:00
Axles
90ba54c559 Merge branch 'master' of https://github.com/vbawol/DayZ-Epoch 2013-12-11 21:41:32 -08:00
Axles
1b83385f9b Sahrani support updates
Added much needed buildings and moved the traders that were on islands
back to the main island.
2013-12-11 21:41:10 -08:00
vbawol
25f88d3f5a Update ROLLING CHANGE LOG 1.0.3.1.txt 2013-12-11 18:13:46 -06:00
infiSTAR
d1c99deac3 setdamage.txt fixes for hatched/chainsaw - scriprts.txt to block newer hacks and publicVariable.txt to get everything working 2013-12-11 22:13:41 +01:00
[VB]AWOL
975835bb40 added spawn BIS_Effects_Burn to battleye restriction 2013-12-11 13:59:54 -06:00
HARLAN
93568034ac changed plot preview to Plastic_Pole_EP1, removed it as an addaction #846 2013-12-11 13:36:05 -05:00
HARLAN
1556dce15a changed plot preview to Plastic_Pole_EP1, removed it as an addaction #846 2013-12-11 13:35:45 -05:00
HARLAN
82f475c7a5 changed plot preview to Plastic_Pole_EP1, removed it as an addaction #846 2013-12-11 13:34:25 -05:00
HARLAN
339e77e8d9 plot pole radius preview 2013-12-09 11:41:12 -05:00
HARLAN
f3130d2e37 plot pole radius preview 2013-12-09 11:38:38 -05:00
HARLAN
d940614669 plot pole radius preview 2013-12-09 11:37:53 -05:00
300 changed files with 24018 additions and 38491 deletions

61
CHANGE LOG 1.0.4.txt Normal file
View File

@@ -0,0 +1,61 @@
[NEW] Napf Island v0.99 with permission from #momo# now included by default. http://forums.bistudio.com/showthread.php?136469-Napf-Island-beta\
[NEW-WIP] Sauerland Map v1.7.00.2 with permission from falconsan now included by default. https://github.com/falconsan/DayZ_Sauerland/blob/master/changelog.txt - http://www.s6computer.de/
[NEW] Optimized Server/Client Communication with PVS+PVC methods from DayZ Mod 1.8. @Skaronator
[NEW] Modular building spawning now ahead on server start, vehicles spawning after it. @Skaronator @zabn
[NEW] Maintain Area should work now much better. The Server update the Object itself and doesnt remove and rebuild it anymore. @Skaronator
[NEW] Updated Hive Dll to latest from rajkosto and added custom child 396 and 397 call to update the datestamp of base objects. *See notes below! @Tansien @vbawol
[NEW] Trading now makes change and auto combines into the highest denomination. @vbawol
[ADDED] Cars, small Trucks, and Boats now able to be lifting with Chinooks only. Lifted vehicle must be unlocked and unmanned. Enabled by default use DZE_HeliLift = false; in init.sqf to disable. @Zabn @vbawol
[ADDED] 40% chance to payout a single gem on removal of mine ruins. @vbawol
[ADDED] M107_DZ to Military, MilitarySpecial, IndustrialMilitary and Helicrash loottable. @Sequisha
[ADDED] MAAWS (rocket launcher) to Helicrash loottable. @Sequisha
[ADDED] New enterable building added for Chernarus and other maps. @Sequisha
[ADDED] Allow Admins To Customize Loot Spawn Timer using DZE_LootSpawnTimer via init.sqf. Default: 10 @SGanthony
[ADDED] Provide option to have loot tables loaded from mission file. DZE_MissionLootTable = true; will look for loot configs via missionConfigFile. @vbawol
[ADDED] Added Craftable/Buildable Wood Crate Storage. Recipe 6 x PartWoodLumber = ItemWoodCrateKit. @Mochnant
[ADDED] BAF_Merlin_DZE - transportMaxWeapons 15, transportMaxMagazines 150, transportmaxbackpacks 5. @Skaronator
[ADDED] Added back BAF_AS50_scoped_DZ configs, still not on traders or loot tables. @vbawol
[ADDED] Placing a plot pole now creates a preview of the "safe" build area protected by the plot pole. This is only viewable
by the plot owner, will disappear upon logout, and is only re-creatable by re-placing the plot pole. @dayz10k @vos
[ADDED] Global variable to allow building on roads with DZE_BuildOnRoads = true; (Default: DZE_BuildOnRoads = false;) @dayz10k
[ADDED] Global variable to set plot pole radius and exclusion zone, enabled via mission file. DZE_PlotPole = [x,y] in the mission file controls the [Radius, Exclusion zone].
Default: DZE_PlotPole = [30,45]. @dayz10k @Skaronator
[ADDED] Global variable to disable Player Zombies with DZE_PlayerZed = false; (Default: DZE_PlayerZed = true;) @Skaronator
[FIXED] Anti-Teleport Log System. @Skaronator
[FIXED] Wrong German translations. @Fank
[FIXED] Fix medical actions in vehicles. @icomrade
[FIXED] Wrong KSVK class spawning on mass graves. @Skaronator via MGT
[FIXED] Armor value for RBWheel on SUV was lower than it should have been. @SGanthony
[FIXED] Fixed issues with losing weapons when on graves @vbawol - http://epochmod.com/forum/index.php?/topic/5092-player-grave/?p=33281
[FIXED] More Localization (translations). @dayz10k, @VeryBigBro (Russian), @JoSchaap (Dutch), @Geodar (Czech), @krazey (German)
[FIXED] Fixed incorrect spelling of chainsaw name was horlite needed to be hermlite. @vbawol
[FIXED] Remove nearest tranktrap via toolbox not working properly. @dayz10k
[FIXED] Lingor trader spawn. @dayz10k @sekra
[FIXED] Disappearing of Vault while unlocking. (Need Feedback!) @Skaronator
[FIXED] Wrong include in the CfgMagazine file. @Skaronator
[FIXED] Crafting a wooden garage door no longer says "Build Fire". @dayz10k
[FIXED] You will no longer get a 3 by 3H - barrier cube if you remove a 5H - barrier cube @Skaronator
[FIXED] BattlEye kicks for some players on death. @Skaronator
[CHANGED] Changed currency conversion rates to multiples of 10. @vbawol
[CHANGED] Drastically increased base building armor levels. Doors now have much higher armor than walls. @vbawol
[CHANGED] Extended Trader logging and fix for sold itemnames @ctc.Sebi
[CHANGED] Balance Loot table. @Sequisha
[CHANGED] Lowered Safe weapon storage count to 25, to address reports of more safe inventory issues after it was raised to 50. @vbawol
[CHANGED] Prices were reviewed and modified for many of the higher tiered weapons/ammo/vehicles/food. @dayz10k
[CHANGED] All copper prices have been changed to 2 silver to buy, 1 silver to sell. @dayz10k
[CHANGED] Radius check for Remove Nearest Camo Net (from 10m to 3m). @dayz10k
[CHANGED] Loot Improvements (Based on the Feedback of the Skaronator.com Server) @Skaronator
[REMOVED] Copper is no longer a usable currency. Existing copper will remain in game, but has no current use. @dayz10k
[SERVER INFO] Updated Hive dll requires DatabaseMySql.dll in arma 2 oa root and visual studio 2013 redistributable x86 installed: http://www.microsoft.com/en-us/download/details.aspx?id=40784
[SERVER INFO] Removed dayz_vb.bikey and dayz.bikey keys and added new version ed dayz_epoch104.bikey key. Thanks to @Tansien for the suggestion. @vbawol
[SERVER INFO] Also moved external bikeys to sub folder, for best security use only the bikeys for the map your running.
[SERVER INFO] pook_H13_amphib, GNT_C185F and GNT_C185E causes Server FPS issues and should not be used. https://github.com/vbawol/DayZ-Epoch/issues/969
[INFO] Models/textures by Paul Tomany. @Sequisha.
[INFO] Special thanks to http://bmrf.me/ for hosting our development server.

View File

@@ -1,5 +1,6 @@
== ROLLING CHANGE LOG 1.0.3.1 ==
== CHANGE LOG 1.0.3.1 ==
[ADDED] Proper mission file support and bikeys for SMD Sara A2 http://forums.bistudio.com/showthread.php?162282-SMD_Sara_A2-Full-Sahrani-Map-Port-Initial-Release
[ADDED] Added new loot postions for some custom buildings in SMD Sara A2.
[ADDED] In game clarification on modular removal: you cannot delete locked doors, you must remove the lock first. @dayz10k
[ADDED] Added updated setDamage exception to battleye scripts.txt. @vbawol
[ADDED] Built in antihack enabled by default via mission init.sqf. @facoptre
@@ -13,12 +14,13 @@
[FIXED] dayz_minpos was incorrectly set to 0 for chernarus and should have been -1 or less. @vbawol
[FIXED] Fixed some typos in Sahrani mission files. @vbawol
[FIXED] Removed radar from GAZ Vodnik. @dayz10k
[FIXED] Incorrect call compile paths for tavi traders.
[FIXED] Incorrect call compile paths for tavi traders. @vbawol
[FIXED] Armored SUV DZ had incorrect max weapon count. @vbawol
[FIXED] Fixed two createvehicle calls for weapon spawn_loot. @Torndeco
[FIXED] Building count limiter was using wrong position command now uses correct one. @vbawol
[FIXED] Fire requirement for crafting can now be used off the ground without issues. @vbawol
[CHANGED] setdamage.txt fixes for hatched/chainsaw - scripts.txt and publicVariable.txt updated. @infiSTAR
[CHANGED] Increased chances for silver and gold mine veins.@vbawol
[CHANGED] Lower plank pack spawn chance raise sledge handle and fishing pole chances in farm spawns. @vbawol
[CHANGED] Must drop backpack or filled chainsaw before you can change clothes. @vbawol

View File

@@ -25,6 +25,16 @@ Included Custom Addons
* gdtmod_grass 1.00 by HeinBloed - http://www.gdt-server.net/
* Bell 47/H-13 Helicopter by hcpookie - http://www.armaholic.com/page.php?id=22143
--------------------------
Included Custom Islands
--------------------------
* | Sauerland by Falconsan - http://www.s6computer.de/
* | Napf Island by #momo# - http://forums.bistudio.com/showthread.php?136469-Napf-Island-beta
* | 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
--------------------------
Developers
--------------------------
@@ -49,6 +59,7 @@ Contributors
* th4z - French Localization - https://github.com/th4z
* JoSchaap - Dutch Localization and some typo's - https://github.com/JoSchaap
* Maca134 - Improved Trader Menus, Death Message menu, Experimental hive 999 support - maca134@gmail.com
* Tansien - Hive Update to visual studio 2013, added 396 and 397 CHILD for Maintain - https://github.com/Tansien
* aeinstein - Crafting now supports all can types. - https://github.com/aeinstein
* vos / Axe Cop - Area Maintenance and ideas - https://github.com/vos
* GeodarCZ - Czech Localization, correction - https://github.com/Geodar

File diff suppressed because one or more lines are too long

View File

@@ -448,6 +448,7 @@ class CfgBuildingLoot {
{ "machineguns","cfglootweapon" },
{ "","military" },
{ "","medical" },
{ "MAAWS", "weapon" },
{ "MedBox0","object" },
{ "NVGoggles","weapon" },
{ "AmmoBoxSmall_556","object" },
@@ -456,12 +457,13 @@ class CfgBuildingLoot {
{ "militaryammo","single" }
};
itemChance[] = {
0.11,
0.10,
0.04,
0.07,
0.06,
0.3,
0.19,
0.18,
0.02,
0.05,
0.01,
0.03,
@@ -483,6 +485,7 @@ class CfgBuildingLoot {
{ "machineguns","cfglootweapon" },
{ "","military" },
{ "","medical" },
{ "MAAWS", "weapon" },
{ "MedBox0","object" },
{ "NVGoggles","weapon" },
{ "AmmoBoxSmall_556","object" },
@@ -491,12 +494,13 @@ class CfgBuildingLoot {
{ "militaryammo","single" }
};
itemChance[] = {
0.1,
0.09,
0.03,
0.05,
0.05,
0.35,
0.19,
0.18,
0.02,
0.05,
0.01,
0.03,
@@ -681,6 +685,91 @@ class CfgBuildingLoot {
0.03
};
};
class IndustrialMilitary: Default {
zombieChance = 0.4;
maxRoaming = 6;
zombieClass[] = {"z_soldier","z_soldier_heavy","z_policeman","z_soldier","z_soldier_heavy","z_policeman","z_worker1","z_worker2","z_worker3"};
lootChance = 0.5;
lootPos[] = {};
itemType[] = {
{ "pistols","cfglootweapon" },
{ "assaultrifles","cfglootweapon" },
{ "PartGeneric","magazine" },
{ "sniperrifles","cfglootweapon" },
{ "shotgunsingleshot","cfglootweapon" },
{ "ItemGenerator","magazine" },
{ "submachinegun","cfglootweapon" },
{ "PartWheel","magazine" },
{ "Binocular","weapon" },
{ "ItemFlashlightRed","military" },
{ "ItemKnife","military" },
{ "ItemGPS","weapon" },
{ "PartVRotor","magazine" },
{ "PartFueltank","magazine" },
{ "PartEngine","magazine" },
{ "PartGlass","magazine" },
{ "militarybackpacks","backpack" },
{ "","medical" },
{ "","generic" },
{ "","military" },
{ "ItemEtool","weapon" },
{ "ItemSandbag","magazine" },
{ "ItemFuelBarrelEmpty","magazine" },
{ "ItemFuelPump","magazine" },
{ "machineguns","cfglootweapon" }
};
itemChance[] = {
0.02,
0.05,
0.03,
0.01,
0.05,
0.01,
0.05,
0.02,
0.01,
0.03,
0.04,
0.01,
0.01,
0.03,
0.04,
0.05,
0.03,
0.05,
0.25,
0.07,
0.03,
0.02,
0.03,
0.01,
0.01
};
itemTypeSmall[] = {
{ "pistols","cfglootweapon" },
{ "Binocular","weapon" },
{ "ItemFlashlightRed","weapon" },
{ "ItemKnife","weapon" },
{ "ItemGPS","weapon" },
{ "","medical" },
{ "","generic" },
{ "","military" },
{ "submachinegun","cfglootweapon" },
{ "ItemEtool","weapon" }
};
itemChanceSmall[] = {
0.12,
0.05,
0.03,
0.04,
0.02,
0.02,
0.09,
0.34,
0.26,
0.03
};
};
class MilitarySpecial: Default {
zombieChance = 0.4;
minRoaming = 2;
@@ -709,14 +798,13 @@ class CfgBuildingLoot {
{ "","military" },
{ "machinegunammo","single" },
{ "militaryclothes","single" },
{ "NVGoggles","weapon" },
{ "militaryammo","single" }
{ "NVGoggles","weapon" }
};
itemChance[] = {
0.1,
0.04,
0.08,
0.02,
0.03,
0.05,
0.06,
0.01,
@@ -726,15 +814,14 @@ class CfgBuildingLoot {
0.01,
0.01,
0.01,
0.05,
0.01,
0.04,
0.08,
0.3,
0.01,
0.01,
0.01,
0.01,
0.05
0.05,
0.05,
0.01
};
itemTypeSmall[] = {
@@ -750,36 +837,34 @@ class CfgBuildingLoot {
{ "","medical" },
{ "","generic" },
{ "","military" },
{ "machinegunammo","single" },
{ "5Rnd_86x70_L115A1","magazine"},
{ "10Rnd_127x99_m107","magazine"},
{ "machinegunammoexpl","single" },
{ "militaryclothes","single" },
{ "NVGoggles","weapon" },
{ "29Rnd_30mm_AGS30","magazine" },
{ "50Rnd_127x107_DSHKM","magazine" },
{ "48Rnd_40mm_MK19","magazine" },
{ "100Rnd_127x99_M2","magazine" },
{ "machinegunammo","single" }
{ "100Rnd_762x54_PK","magazine" }
};
itemChanceSmall[] = {
0.08,
0.10,
0.02,
0.02,
0.02,
0.01,
0.02,
0.01,
0.03,
0.04,
0.03,
0.03,
0.01,
0.06,
0.13,
0.3,
0.15,
0.33,
0.02,
0.02,
0.05,
0.03,
0.03,
0.04,
0.02,
0.03,
0.03,
0.02,
0.02
0.05,
0.01,
0.01
};
};
class Hunting: Default {
@@ -1710,7 +1795,7 @@ class CfgBuildingLoot {
itemType[] = {
{ "M16A2","weapon" },
{ "M16A2GL","weapon" },
{ "M249_DZ","weapon" },
{ "M249_EP1_DZ","weapon" },
{ "M9SD","weapon" },
{ "Pecheneg_DZ","weapon"},
{ "AK_74","weapon" },
@@ -1767,7 +1852,7 @@ class CfgBuildingLoot {
{"WeaponHolder_ItemMachete", "object"},
{ "SCAR_H_LNG_Sniper_SD","weapon" },
{"2000Rnd_762x51_M134","magazine"},
{"KSVK","weapon" },
{"KSVK_DZE","weapon" },
{"m240_scoped_EP1_DZE","weapon" }
};
itemChance[] = {
@@ -2141,6 +2226,8 @@ class CfgBuildingLoot {
{ 1.67627,3,-4.62603 },
{ -1.47363,4.92285,-1.28517 },
{ 6.43848,1.93555,2.08801 }};
lootPosZombie[] = {{-1.77148,2.59961,-0.410172},{4.46387,1.85254,-3.75103}};
lootPosSmall[] = {{7.02344,5.71191,2.08801},{0.856445,-1.72266,-1.28517},{-2.51758,1.2002,-1.28517},{5.18945,2.93848,-4.62604}};
};
class Land_budova4_in: Military
{
@@ -2183,6 +2270,18 @@ class CfgBuildingLoot {
{ -8.06152,-11.4065,-3.58192 },
{ 8.68555,-5.30371,-3.57942 }};
};
class land_ind_pec_03: IndustrialMilitary
{
lootPos[] = {{6.07275,11.8623,2.59973},{7.82275,-2.04883,-1.9376},{13.1899,16.0693,-5.15128},{14.0396,8.12549,-5.15128},{13.8237,12.5366,-4.69128},{4.63086,16.6553,-2.04201},{3.07275,-5.11963,-5.15128},{4.79541,-2.07031,-1.9387},{3.67627,14.5518,2.60131},{-2.08447,-13.6855,1.11455},{3.21484,8.37207,-5.15128},{4.78662,18.0498,-5.15128},{-3.98193,-24.5332,-5.15128},{12.9028,-1.58447,3.05404},{-0.259766,22.2715,4.05607},{1.96094,25.4209,4.05607}};
lootPosZombie[] = {{1.979,15.7012,3.48646},{5.93604,16.2686,3.48582},{6.50586,13.8198,-4.22628},{12.314,9.64258,-4.22628},{6.15381,9.78711,-4.22628},{6.34424,-2.52051,-0.953124},{-5.04004,-4.30566,-4.22628},{-5.77588,-21.0293,-4.22628}};
lootPosSmall[] = {{2.1709,11.5796,2.75019},{1.17725,11.8911,3.87051},{6.62451,13.2251,4.24952},{3.21777,-11.7026,-1.85671},{8.35938,-3.10693,-1.93559},{14.1851,-5.31348,-1.08754},{13.0874,16.7339,-4.27128},{7.37207,16.6235,-4.99128},{11.6133,16.7075,-5.04128},{12.248,13.2998,-3.56128},{-15.2876,-18.2754,-5.06128},{3.3833,14.4814,3.36135},{10.6797,7.66943,-4.43128},{-4.56982,14.9658,-4.94128},{4.23242,-26.7783,-1.97225},{2.2749,21.8086,4.05607}};
};
class land_ind_pec_03a: IndustrialMilitary
{
lootPos[] = {{6.07275,11.8623,2.59973},{7.82275,-2.04883,-1.9376},{13.1899,16.0693,-5.15128},{14.0396,8.12549,-5.15128},{13.8237,12.5366,-4.69128},{4.63086,16.6553,-2.04201},{3.07275,-5.11963,-5.15128},{4.79541,-2.07031,-1.9387},{3.67627,14.5518,2.60131},{-2.08447,-13.6855,1.11455},{3.21484,8.37207,-5.15128},{4.78662,18.0498,-5.15128},{-3.98193,-24.5332,-5.15128},{12.9028,-1.58447,3.05404},{-0.259766,22.2715,4.05607},{1.96094,25.4209,4.05607}};
lootPosZombie[] = {{1.979,15.7012,3.48646},{5.93604,16.2686,3.48582},{6.50586,13.8198,-4.22628},{12.314,9.64258,-4.22628},{6.15381,9.78711,-4.22628},{6.34424,-2.52051,-0.953124},{-5.04004,-4.30566,-4.22628},{-5.77588,-21.0293,-4.22628}};
lootPosSmall[] = {{2.1709,11.5796,2.75019},{1.17725,11.8911,3.87051},{6.62451,13.2251,4.24952},{3.21777,-11.7026,-1.85671},{8.35938,-3.10693,-1.93559},{14.1851,-5.31348,-1.08754},{13.0874,16.7339,-4.27128},{7.37207,16.6235,-4.99128},{11.6133,16.7075,-5.04128},{12.248,13.2998,-3.56128},{-15.2876,-18.2754,-5.06128},{3.3833,14.4814,3.36135},{10.6797,7.66943,-4.43128},{-4.56982,14.9658,-4.94128},{4.23242,-26.7783,-1.97225},{2.2749,21.8086,4.05607}};
};
class Land_MBG_Police_Station: Office
{
lootPos[] = {
@@ -2375,15 +2474,25 @@ class CfgBuildingLoot {
};
class Land_dum_olez_istan2: HouseRoaming{};
class Land_dum_olez_istan2_maly2: HouseRoaming{};
class land_dum_mesto3_istan: HouseRoaming{};
class land_dum_istan2_03a: HouseRoaming{};
class land_ind_pec_03a: HouseRoaming{
lootPosZombie[] = {{-16.4072,-12.3384,-4.473},{-16.4097,-14.7412,-4.47244},{0.900879,28.8267,-4.48695}};
class Land_dum_olez_istan2_maly2: HouseRoaming{
lootPosZombie[] = {{-2.71582,-4.86133,-1.62356},{-2.76074,4.94531,-1.62356}};
};
class land_smd_dum02: HouseRoaming{
lootPosZombie[] = {{4.37305,1.68701,-2.7265},{-4.50977,1.54443,-3.41202}};
};
class land_dum_mesto: HouseRoaming{
lootPosZombie[] = {{-5.11328,-6.34717,-3.93972}};
};
class land_deutshe: HouseRoaming{
lootPosZombie[] = {{1.72949,4.62207,-3.0957},{1.69336,-4.75,-3.78851}};
};
class land_stanice: HouseRoaming{
lootPosZombie[] = {{-1.18945,4.63867,-1.83241}};
};
class land_dum_mesto3_istan: HouseRoaming{};
class land_dum_istan2_03a: HouseRoaming{};
class land_nasypka: Residential
{
lootPos[] = {{-1.46045,-0.168945,6.56824}};
@@ -3003,4 +3112,78 @@ class CfgBuildingLoot {
lootPos[] = {{-0.0117188,0.0441895,-1.81473},{-1.76758,2.24805,-1.8147},{-2.88965,-1.64795,-1.8147},{1.84277,-2.07983,-1.81471},{1.58691,-1.3374,-5.27588},{1.22852,2.57324,-5.27588}};
};
// SMD Sara a2
class land_sara_hasic_zbroj: Industrial {
lootPos[] = {{5.92285,1.35645,-2.66287},{0.00878906,-1.37549,-2.66287},{-1.82715,1.93066,-2.66287}};
lootPosZombie[] = {{3.08594,-1.72363,-1.77787},{6.19629,-0.181641,-1.77787}};
lootPosSmall[] = {{6.81348,-2.16846,-2.66287},{-3.30176,-2.49121,-2.67287}};
};
class land_smd_hlaska: Military {
lootPos[] = {{-0.724609,0.822266,3.77092}};
lootPosZombie[] = {{-0.18457,-3.13574,-2.25991}};
lootPosSmall[] = {{1.06201,-0.864258,3.77092},{-1.04688,-0.759766,3.77092}};
};
class land_smd_cihlovej_dum_mini: Residential {
lootPos[] = {{0.623047,2.39746,-2.58942},{0.0996094,0.995117,-2.86942},{-4.05957,-1.01953,-2.86942},{-8.86328,2.89453,-2.86942}};
lootPosZombie[] = {{1.81738,0.794922,-1.99442},{-1.7959,1.10742,-1.99442},{-6.54102,1.04688,-1.99442}};
lootPosSmall[] = {{2.89453,-1.72852,-1.91942},{2.92773,-2.3418,-2.86942},{-6.09668,3.10938,-2.86942},{-2.19629,2.9375,-2.86942}};
};
class land_smd_dum_istan4: Residential {
lootPos[] = {{2.60742,-2.42188,-4.35237}};
lootPosZombie[] = {{0.323242,5.66113,-6.38088}};
lootPosSmall[] = {};
};
class land_smd_dum_olez_istan2_open2: Residential {
lootPos[] = {{-0.162109,4.91846,-0.431501},{3.25391,2.52246,-0.421501},{-3.51953,-3.80176,0.128499},{-1.56934,0.389648,-0.411501}};
lootPosZombie[] = {{5.4502,-3.21729,0.207455}};
lootPosSmall[] = {{-6.44629,0.00488281,0.198499},{-4.30762,5.7207,0.568499},{0.628906,4.8291,0.338499},{-3.94824,-3.03906,0.128499},{1.19629,-5.44629,-0.0115013}};
};
class land_smd_dum_olez_istan2_open: Residential {
lootPos[] = {{0.0185547,4.61133,0.0584984},{0.412598,-4.66211,0.338498},{-5.71582,5.63477,-0.431501},{-4.5127,-4.87695,-0.431501}};
lootPosZombie[] = {{4.92383,-3.12109,0.0317497}};
lootPosSmall[] = {{-1.46338,6.05078,0.718499},{-4.68652,-3.71973,0.528499},{-0.162109,-4.69238,0.0184984},{-6.41113,5.08398,0.798498}};
};
class land_smd_dum_olez_istan1_open: Residential {
lootPos[] = {{-5.4375,-4.38379,1.35497},{5.75781,-3.31934,1.35497},{1.53516,-2.0625,1.35497},{-2.14941,-4.56445,-1.85398},{-6.79688,2.14453,-1.84398},{3.61523,-0.371094,-1.824}};
lootPosZombie[] = {{1.33691,-5.02441,-1.5178},{-4.22168,4.75391,-1.66303}};
lootPosSmall[] = {{-6.11914,-4.14453,2.16497},{2.4707,3.67773,1.96497},{6.42773,-0.5,1.34497},{7.48047,2.37109,-1.434},{-1.98047,-4.16504,-1.07398},{-7.60254,-4.06348,-0.883982},{-7.74902,2.51074,-1.16398},{5.85352,2.37695,-1.854}};
};
class land_smd_dum_istan3_hromada: Residential {
lootPos[] = {{0.293945,-1.60156,-3.328},{-1.91406,-1.65332,-3.328}};
lootPosZombie[] = {{-0.154297,5.01172,-2.46689},{-9.95117,1.99902,-2.46689},{10.2998,1.82227,-2.68886}};
lootPosSmall[] = {{0.551758,-4.12695,-3.328},{0.626953,-0.547852,-3.328}};
};
class land_smd_army_hut2: Military {
lootPos[] = {{0.447266,-4.6543,-1.33328}};
lootPosZombie[] = {{0.552734,6.06836,-0.515976},{-3.86816,-5.6875,-1.13228}};
lootPosSmall[] = {{-0.257813,-5.02539,-0.623276},{3.02832,-6.1582,-1.33328}};
};
class land_smd_ss_hangard_withdoor: MilitaryIndustrial {
lootPos[] = {{0.236328,3.4209,-5.87254},{-14.0732,22.499,-5.87254},{13.1895,22.2031,-5.87254},{-13.8877,-10.5459,-5.87254},{2.10742,-19.8496,-5.87254}};
lootPosZombie[] = {{0.128906,-25.0273,-5.42465},{-16.7891,1.98145,-5.42465},{0.0742188,26.5654,-5.42465},{16.6631,-7.1084,-5.42465}};
lootPosSmall[] = {{14.3984,12.2852,-5.87254},{0.289063,-0.197266,-5.87254},{-14.8389,-20.6475,-5.87254},{14.8574,-20.5088,-5.87254}};
};
class land_budova5: Military {
lootPos[] = {{-2.04004,2.89844,-1.98059}};
lootPosZombie[] = {{-3.04492,2.0332,-1.40211}};
lootPosSmall[] = {{-1.96191,-0.314453,-1.98059}};
};
class land_smd_army_hut2_int: Military {
lootPos[] = {{-0.848633,-1.24316,-0.948334},{-1.92383,-0.00390625,-0.948334},{2.7959,-0.0146484,-0.948334}};
lootPosZombie[] = {{-3.35352,-2.65332,-0.407364},{0.475586,3.37402,-0.350555}};
lootPosSmall[] = {{0.15918,-1.26465,-0.498337},{3.0791,1.96387,-0.948334}};
};
class land_smd_strazni_vez: Military {
lootPos[] = {{-1.68066,-1.30273,2.00299}};
lootPosZombie[] = {{-1.14844,0.125977,2.28799},{1.04102,2.45898,-1.76974}};
lootPosSmall[] = {{-0.902344,-1.29395,1.41299},{-1.92578,1.28613,1.41299}};
};
class land_smd_army_hut3_long_int: Military {
lootPos[] = {{0.643555,5.24219,-0.0739136},{-2.78809,3.13672,-1.27391},{-2.80957,5.27441,-0.863907},{-3.13086,-3.3584,-1.27391},{-0.875977,-0.6875,-1.27391}};
lootPosZombie[] = {{3.37598,0.145508,-0.938461},{-4.52734,0.833984,-1.2229}};
lootPosSmall[] = {{1.6875,5.27539,-0.863907},{-0.604492,-3.36816,-0.563904},{1.91699,1.27832,-1.27391}};
};
class land_smd_dum_mesto3_istan: HouseRoaming {
lootPosZombie[] = {{5.8457,-0.0634766,-2.34898},{-6.13281,0.0458984,-2.34898}};
};
};

View File

@@ -538,4 +538,26 @@ class CfgLootSmall {
0.04
}
};
machinegunammoexpl[] = {
{
"100Rnd_556x45_BetaCMag",
"75Rnd_545x39_RPK",
"100Rnd_556x45",
"100Rnd_762x51_M240",
"100Rnd_762x54_PK",
"200Rnd_556x45_M249",
"MAAWS_HEAT",
"PipeBomb"
},
{
0.20,
0.20,
0.15,
0.15,
0.14,
0.14,
0.01,
0.01,
}
};
};

View File

@@ -41,7 +41,7 @@ class CfgLoot {
{
0.07,
0.08,
0.09,
0.08,
0.09,
0.09,
0.05,
@@ -56,7 +56,7 @@ class CfgLoot {
0.06,
0.01,
0.01,
0.02
0.03
}
};
office2[] = {
@@ -433,7 +433,7 @@ class CfgLoot {
"ItemHotwireKit"
},
{
0.07,
0.06,
0.04,
0.01,
0.01,
@@ -474,7 +474,7 @@ class CfgLoot {
0.01,
0.04,
0.01,
0.02
0.03
}
};
policeman[] = {
@@ -497,13 +497,13 @@ class CfgLoot {
0.08,
0.08,
0.14,
0.17,
0.08,
0.16,
0.07,
0.01,
0.05,
0.04,
0.04,
0.01,
0.03,
0.02
}
};
@@ -629,7 +629,7 @@ class CfgLoot {
0.09,
0.08,
0.05,
0.1,
0.5,
0.07,
0.07,
0.05,
@@ -639,8 +639,8 @@ class CfgLoot {
0.09,
0.04,
0.09,
0.02,
0.02
0.05,
0.04
}
};
specialclothes[] = {
@@ -831,6 +831,7 @@ class CfgLoot {
"M24_des_EP1",
"M24",
"BAF_LRR_scoped",
"M107_DZ",
"KSVK_DZE",
"VSS_vintorez",
"SCAR_H_LNG_Sniper_SD",
@@ -841,13 +842,14 @@ class CfgLoot {
0.1,
0.09,
0.09,
0.09,
0.09,
0.09,
0.07,
0.07,
0.07,
0.09,
0.08,
0.07,
0.06,
0.07,
0.05,
0.05,
0.04,
0.03,
@@ -860,6 +862,7 @@ class CfgLoot {
"30Rnd_545x39_AKSD",
"5Rnd_127x108_KSVK",
"5Rnd_86x70_L115A1",
"10Rnd_127x99_m107",
"10Rnd_762x54_SVD",
"20Rnd_762x51_DMR",
"5Rnd_762x51_M24",
@@ -868,10 +871,11 @@ class CfgLoot {
"20Rnd_9x39_SP5_VSS"
},
{
0.25,
0.18,
0.15,
0.20,
0.20,
0.13,
0.15,
0.10,
0.10,
0.07,
0.05
@@ -999,7 +1003,7 @@ class CfgLoot {
"M249_m145_EP1_DZE",
"m240_scoped_EP1_DZE",
"M240_DZ",
"M249_DZ",
"M249_EP1_DZ",
"Mk_48_DZ"
},
{
@@ -1031,7 +1035,29 @@ class CfgLoot {
0.15,
0.15,
0.15,
0.15
}
};
machinegunammoexpl[] = {
{
"100Rnd_556x45_BetaCMag",
"75Rnd_545x39_RPK",
"100Rnd_556x45",
"100Rnd_762x51_M240",
"100Rnd_762x54_PK",
"200Rnd_556x45_M249",
"MAAWS_HEAT",
"PipeBomb"
},
{
0.20,
0.20,
0.15,
0.15,
0.14,
0.14,
0.01,
0.01,
}
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
class UH60_Base: Helicopter
class UH60_Base: Helicopter
{
scope = 0;
side = 1;
@@ -13,6 +13,303 @@ class UH60_Base: Helicopter
lockDetectionSystem = "8 + 4";
incommingMisslieDetectionSystem = 0;
};
class MH60S_DZ : UH60_Base
{
crew = "";
typicalCargo[] = {};
class TransportMagazines{};
class TransportWeapons{};
commanderCanSee = 2+16+32;
gunnerCanSee = 2+16+32;
driverCanSee = 2+16+32;
transportMaxWeapons = 10;
transportMaxMagazines = 100;
transportMaxBackpacks = 5;
scope = 2;
accuracy = 1.5; // accuracy needed to recognize type of this target
displayName = "MH-60S DZ";
class Turrets : Turrets
{
class MainTurret : MainTurret
{
body = "mainTurret";
gun = "mainGun";
minElev = -80;
maxElev = 25;
initElev = -80;
minTurn = 30;
maxTurn = 150;
initTurn = 90;
soundServo[] = {"",0.01,1};
stabilizedInAxes = "StabilizedInAxesNone";
gunBeg = "muzzle_1"; // endpoint of the gun
gunEnd = "chamber_1"; // chamber of the gun
weapons[] = {"M240_veh"};
magazines[] = {"100Rnd_762x51_M240", "100Rnd_762x51_M240", "100Rnd_762x51_M240"};
gunnerName = $STR_POSITION_CREWCHIEF;
gunnerOpticsModel = "\ca\weapons\optika_empty";
gunnerOutOpticsShowCursor = 1;
gunnerOpticsShowCursor = 1;
gunnerAction = "MH60_Gunner";
gunnerInAction = "MH60_Gunner";
primaryGunner = 1;
class ViewOptics
{
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.7;
minFov = 0.25;
maxFov = 1.1;
};
gunnerCompartments = "Compartment2";
};
class RightDoorGun : MainTurret {
body = "Turret_2";
gun = "Gun_2";
animationSourceBody = "Turret_2";
animationSourceGun = "Gun_2";
weapons[] = {"M240_veh_2"};
animationSourceHatch = "";
selectionFireAnim = "zasleh_1";
proxyIndex = 2;
gunnerName = $STR_POSITION_DOORGUNNER;
commanding = -2;
minTurn = -150;
maxTurn = -30;
initTurn = -90;
stabilizedInAxes = "StabilizedInAxesNone";
gunBeg = "muzzle_2"; // endpoint of the gun
gunEnd = "chamber_2"; // chamber of the gun
primaryGunner = 0;
gunnerCompartments = "Compartment2";
memoryPointGun = "machinegun_2";
memoryPointGunnerOptics = "gunnerview_2";
};
};
class AnimationSources : AnimationSources
{
class ReloadAnim {
source = "reload";
weapon = "M240_veh";
};
class ReloadMagazine {
source = "reloadmagazine";
weapon = "M240_veh";
};
class Revolving {
source = "revolving";
weapon = "M240_veh";
};
class ReloadAnim_2 {
source = "reload";
weapon = "M240_veh_2";
};
class ReloadMagazine_2 {
source = "reloadmagazine";
weapon = "M240_veh_2";
};
class Revolving_2 {
source = "revolving";
weapon = "M240_veh_2";
};
};
destrType = "DestructWreck";
vehicleClass = "Air";
model = "\ca\air\Mh_60mg";
mapSize = 17;
picture = "\ca\air\data\ico\MH_60mg_CA.paa";
Icon = "\ca\air\data\map_ico\icomap_MH60mg_CA.paa";
side = TWest;
faction = USMC;
attendant = true;
maxSpeed = 270; // max speed on level road, km/h
armor = 35;
damageResistance = 0.00242;
cost = 10000000;
mainRotorSpeed = -1;
soundGetIn[] = {"\ca\Sounds\Air\Noises\heli_door_01", db-10, 1};
soundGetOut[] = {"\ca\Sounds\Air\Noises\heli_door_01", db-10, 1, 30};
soundEnviron[] = {"", db-30, 1.0};
soundDammage[] = {"\ca\Air\Data\Sound\alarm_loop1", 0.001, 1};
soundEngineOnInt[] = {"ca\sounds\Air\UH1Y\int\int-start-final", 0.1, 1.0};
soundEngineOnExt[] = {"ca\sounds\Air\UH1Y\ext\ext-motor-start", 1.0, 1.0, 800};
soundEngineOffInt[] = {"ca\sounds\Air\UH1Y\int\int-stop-final", 0.1, 1.0};
soundEngineOffExt[] = {"ca\sounds\Air\UH1Y\ext\ext-motor-stop", 1.0, 1.0, 800};
class Sounds {
class Engine {
sound[] = {"ca\sounds\air\uh1y\ext\ext-fly-mode2", 2.51189, 1.0, 900};
frequency = "rotorSpeed";
volume = "camPos*((rotorSpeed-0.72)*4)";
};
class RotorLowOut {
sound[] = {"ca\sounds\air\uh1y\int\int-rotor-single5b", 2.51189, 1.0, 1400};
frequency = "rotorSpeed";
volume = "camPos*(0 max (rotorSpeed-0.1))";
cone[] = {1.6, 3.14, 2.0, 0.5};
};
class RotorHighOut {
sound[] = {"ca\sounds\air\uh1y\int\int-rotor-single5a", 2.51189, 1.0, 1600};
frequency = "rotorSpeed";
volume = "camPos*10*(0 max (rotorThrust-0.9))";
cone[] = {1.6, 3.14, 2.0, 0.5};
};
class EngineIn {
sound[] = {"ca\sounds\air\uh1y\int\int-fly-mode7", db10, 1.0};
frequency = "rotorSpeed";
volume = "(1-camPos)*((rotorSpeed-0.75)*4)";
};
class RotorLowIn {
sound[] = {"ca\sounds\air\uh1y\int\int-rotor-single5b", db10, 1.0};
frequency = "rotorSpeed";
volume = "2*(1-camPos)*((rotorSpeed factor[0.3, 1.1]) min (rotorSpeed factor[1.1, 0.3]))";
};
class RotorHighIn {
sound[] = {"ca\sounds\air\uh1y\int\int-rotor-single5a", db10, 1.0};
frequency = "rotorSpeed";
volume = "(1-camPos)*3*(rotorThrust-0.9)";
};
};
driverInAction = "UH60_Pilot";
driverAction = "UH60_Pilot";
cargoAction[] = {"UH60_Cargo01", "UH1Y_Cargo02", "UH1Y_Cargo01", "UH1Y_Cargo01", "UH1Y_Cargo01", "UH60_Cargo02"};
transportSoldier = 13;
driverCompartments = "Compartment1";
cargoCompartments[] = {"Compartment2"};
enableSweep = false;
transportAmmo = 0;
supplyRadius = 2.5;
initCargoAngleY = 10;
minCargoAngleY = -60;
maxCargoAngleY = 120;
type = VAir;
// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
threat[] = {0.3, 1, 0.4};
cargoIsCoDriver[] = {1, 0, 0};
weapons[] = {};
magazines[] = {};
forceHideDriver = true;
castDriverShadow = true;
castCargoShadow = true;
class Library {
libTextDesc = $STR_LIB_MH60S;
};
class Damage {
tex[] = {};
mat[] = {"ca\air\Data\uh60_skla.rvmat", "ca\air\Data\uh60_skla_damage.rvmat", "ca\air\Data\uh60_skla_damage.rvmat", "ca\air\Data\uh60_skla_in.rvmat", "ca\air\Data\uh60_skla_in_damage.rvmat", "ca\air\Data\uh60_skla_in_damage.rvmat", "ca\air\Data\materialy\uh60_01.rvmat", "ca\air\Data\materialy\uh60_01_damage.rvmat", "ca\air\Data\materialy\uh60_01_destruct.rvmat"};
};
enableManualFire = 0;
class Reflectors {
class Left {
color[] = {0.8, 0.8, 1.0, 1.0};
ambient[] = {0.07, 0.07, 0.07, 1.0};
position = "L svetlo";
direction = "konec L svetla";
hitpoint = "L svetlo";
selection = "L svetlo";
size = 1;
brightness = 1.0;
};
class Right {
color[] = {0.8, 0.8, 1.0, 1.0};
ambient[] = {0.07, 0.07, 0.07, 1.0};
position = "P svetlo";
direction = "konec P svetla";
hitpoint = "P svetlo";
selection = "P svetlo";
size = 1;
brightness = 1.0;
};
};
};
class MH60S_DZE : UH60_Base
{
displayName = "MH-60S AL";
class Turrets : Turrets
{
class MainTurret : MainTurret
{
body = "mainTurret";
gun = "mainGun";
minElev = -80;
maxElev = 25;
initElev = -80;
minTurn = 30;
maxTurn = 150;
initTurn = 90;
soundServo[] = {"",0.01,1};
stabilizedInAxes = "StabilizedInAxesNone";
gunBeg = "muzzle_1"; // endpoint of the gun
gunEnd = "chamber_1"; // chamber of the gun
weapons[] = {"M240_veh"};
magazines[] = {};
gunnerName = $STR_POSITION_CREWCHIEF;
gunnerOpticsModel = "\ca\weapons\optika_empty";
gunnerOutOpticsShowCursor = 1;
gunnerOpticsShowCursor = 1;
gunnerAction = "MH60_Gunner";
gunnerInAction = "MH60_Gunner";
primaryGunner = 1;
class ViewOptics
{
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.7;
minFov = 0.25;
maxFov = 1.1;
};
gunnerCompartments = "Compartment2";
};
class RightDoorGun : MainTurret {
body = "Turret_2";
gun = "Gun_2";
animationSourceBody = "Turret_2";
animationSourceGun = "Gun_2";
weapons[] = {"M240_veh_2"};
animationSourceHatch = "";
selectionFireAnim = "zasleh_1";
proxyIndex = 2;
gunnerName = $STR_POSITION_DOORGUNNER;
commanding = -2;
minTurn = -150;
maxTurn = -30;
initTurn = -90;
stabilizedInAxes = "StabilizedInAxesNone";
gunBeg = "muzzle_2"; // endpoint of the gun
gunEnd = "chamber_2"; // chamber of the gun
primaryGunner = 0;
gunnerCompartments = "Compartment2";
memoryPointGun = "machinegun_2";
memoryPointGunnerOptics = "gunnerview_2";
};
};
}
class UH60M_base_EP1: UH60_Base
{
expansion = 1;
@@ -164,7 +461,7 @@ class UH60M_US_base_EP1: UH60M_base_EP1
};
class UH60M_EP1_DZ: UH60M_US_base_EP1
{
crew = "";
crew = "";
typicalCargo[] = {};
class TransportMagazines{};
class TransportWeapons{};
@@ -261,7 +558,7 @@ class UH60M_EP1_DZ: UH60M_US_base_EP1
// AMMO LESS
class UH60M_EP1_DZE: UH60M_US_base_EP1
{
crew = "";
crew = "";
typicalCargo[] = {};
class TransportMagazines{};
class TransportWeapons{};

View File

@@ -21,7 +21,7 @@ class Bag_Base_EP1 : ReammoBox_EP1 {
class DZ_Patrol_Pack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Patrol Pack (coyote)";
displayName = $STR_EPOCH_PACK_PATROL;
picture = "\ca\weapons_e\data\icons\backpack_US_ASSAULT_COYOTE_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
@@ -37,7 +37,7 @@ class DZ_Patrol_Pack_EP1: Bag_Base_EP1
class DZ_Assault_Pack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Assault Pack (ACU)";
displayName = $STR_EPOCH_PACK_ASSAULT;
picture = "\ca\weapons_e\data\icons\backpack_US_ASSAULT_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapSize = 2;
@@ -52,7 +52,7 @@ class DZ_Assault_Pack_EP1: Bag_Base_EP1
class DZ_Czech_Vest_Puch: Bag_Base_EP1
{
displayname = "Czech Vest Pouch";
displayname = $STR_EPOCH_PACK_POUCH;
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_acr_small.p3d";
@@ -69,7 +69,7 @@ class DZ_Czech_Vest_Puch: Bag_Base_EP1
class DZ_ALICE_Pack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "ALICE Pack";
displayName = $STR_EPOCH_PACK_ALICE;
picture = "\ca\weapons_e\data\icons\backpack_TK_ALICE_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
@@ -85,7 +85,7 @@ class DZ_ALICE_Pack_EP1: Bag_Base_EP1
class DZ_TK_Assault_Pack_EP1 : Bag_Base_EP1
{
scope = 2;
displayName = "Survival ACU";
displayName = $STR_EPOCH_PACK_ACU;
mapSize = 2;
picture = "\ca\weapons_e\data\icons\backpack_CIVIL_ASSAULT_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
@@ -101,7 +101,7 @@ class DZ_TK_Assault_Pack_EP1 : Bag_Base_EP1
class DZ_British_ACU : Bag_Base_EP1
{
scope = 2;
displayName = "British Assault Pack";
displayName = $STR_EPOCH_PACK_BAP;
mapSize = 2;
model = "\ca\weapons_baf\Backpack_Small_BAF";\
picture = "\ca\weapons_baf\data\UI\backpack_BAF_CA.paa";
@@ -117,7 +117,7 @@ class DZ_British_ACU : Bag_Base_EP1
class DZ_CivilBackpack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Czech Backpack";
displayName = $STR_EPOCH_PACK_CZECH;
picture = "\ca\weapons_e\data\icons\backpack_ACR_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
@@ -133,7 +133,7 @@ class DZ_CivilBackpack_EP1: Bag_Base_EP1
class DZ_Backpack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Backpack (coyote)";
displayName = $STR_EPOCH_PACK_COYOTE;
picture = "\ca\weapons_e\data\icons\backpack_US_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
@@ -149,7 +149,7 @@ class DZ_Backpack_EP1: Bag_Base_EP1
class DZ_LargeGunBag_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Large Gunbag";
displayName = $STR_EPOCH_PACK_LGB;
model = "\ca\weapons_e\AmmoBoxes\StaticX.p3d";
picture = "\ca\weapons_e\data\icons\staticX_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
@@ -164,7 +164,7 @@ class DZ_LargeGunBag_EP1: Bag_Base_EP1
class DZ_GunBag_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Gunbag";
displayName = $STR_EPOCH_PACK_GB;
model = "\ca\weapons_e\AmmoBoxes\StaticY.p3d";
picture = "\ca\weapons_e\data\icons\staticY_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
@@ -179,7 +179,7 @@ class DZ_GunBag_EP1: Bag_Base_EP1
class DZ_CompactPack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Compact Pack";
displayName = $STR_EPOCH_PACK_COMPACT;
picture = "\ca\weapons_e\data\icons\backpack_RPG_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
@@ -194,7 +194,7 @@ class DZ_CompactPack_EP1: Bag_Base_EP1
class DZ_TerminalPack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Terminal Pack";
displayName = $STR_EPOCH_PACK_TERMINAL;
picture = "\ca\weapons_e\data\icons\backpack_US_ASSAULT_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapSize = 2;

View File

@@ -14,7 +14,7 @@ class DZE_Base_Object : All {
displayName = "";
mapSize = 7.5;
animated = true;
armor = 600;
armor = 2200;
destrType = "DestructBuilding";
damageResistance = 0.004;
// static
@@ -82,7 +82,7 @@ class DZE_Housebase : DZE_Base_Object {
transportFuel = 0;
mapSize = 11;
cost = 0;
armor = 800;
armor = 2200;
reversed = 0;
/*extern*/ class DestructionEffects;
};
@@ -94,7 +94,7 @@ class Land_DZE_WoodDoor_Base: DZE_Housebase {
mapSize = 8; /* Size of the icon */
icon = "\ca\data\data\Unknown_object.paa"; /* Path to the picture shown in the editor. */
accuracy = 1000;
armor = 600; /* "Lifepoints", if you like to call it that way.*/
armor = 2200; /* "Lifepoints", if you like to call it that way.*/
destrType = "DestructBuilding"; /* type of destruction, when armor = 0 */
scope = 2; /* Display it in the editor? 1 = No, 2 = Yes */
offset[] = {0,1.5,0};
@@ -124,7 +124,7 @@ class Land_DZE_WoodDoorLocked_Base: DZE_Housebase {
mapSize = 8; /* Size of the icon */
icon = "\ca\data\data\Unknown_object.paa"; /* Path to the picture shown in the editor. */
accuracy = 1000;
armor = 600; /* "Lifepoints", if you like to call it that way.*/
armor = 2500; /* "Lifepoints", if you like to call it that way.*/
destrType = "DestructBuilding"; /* type of destruction, when armor = 0 */
scope = 2; /* Display it in the editor? 1 = No, 2 = Yes */
offset[] = {0,1.5,0};
@@ -152,7 +152,7 @@ class CinderWallDoor_DZ_Base: DZE_Housebase {
mapSize = 8; /* Size of the icon */
icon = "\ca\data\data\Unknown_object.paa"; /* Path to the picture shown in the editor. */
accuracy = 1000;
armor = 1000; /* "Lifepoints", if you like to call it that way.*/
armor = 4000; /* "Lifepoints", if you like to call it that way.*/
destrType = "DestructBuilding"; /* type of destruction, when armor = 0 */
scope = 2; /* Display it in the editor? 1 = No, 2 = Yes */
offset[] = {0,1.5,0};
@@ -179,7 +179,7 @@ class CinderWallDoorLocked_DZ_Base: DZE_Housebase {
mapSize = 8; /* Size of the icon */
icon = "\ca\data\data\Unknown_object.paa"; /* Path to the picture shown in the editor. */
accuracy = 1000;
armor = 1000; /* "Lifepoints", if you like to call it that way.*/
armor = 4000; /* "Lifepoints", if you like to call it that way.*/
destrType = "DestructBuilding"; /* type of destruction, when armor = 0 */
scope = 2; /* Display it in the editor? 1 = No, 2 = Yes */
offset[] = {0,1.5,0};

View File

@@ -457,19 +457,19 @@ class SUV_TK_CIV_EP1_DZE2: SUV_TK_CIV_EP1_DZE1
};
class HitGlass1: HitGlass1
{
armor = 0.1;
armor = 2;
};
class HitGlass2: HitGlass2
{
armor = 0.1;
armor = 2;
};
class HitGlass3: HitGlass3
{
armor = 0.1;
armor = 2;
};
class HitGlass4: HitGlass4
{
armor = 0.1;
armor = 2;
};
};
};
@@ -493,7 +493,7 @@ class SUV_Camo_DZE2: SUV_Camo_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -549,7 +549,7 @@ class SUV_Blue_DZE2: SUV_Blue_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -605,7 +605,7 @@ class SUV_Green_DZE2: SUV_Green_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -661,7 +661,7 @@ class SUV_Yellow_DZE2: SUV_Yellow_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -717,7 +717,7 @@ class SUV_Red_DZE2: SUV_Red_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -773,7 +773,7 @@ class SUV_White_DZE2: SUV_White_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -829,7 +829,7 @@ class SUV_Pink_DZE2: SUV_Pink_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -885,7 +885,7 @@ class SUV_Charcoal_DZE2: SUV_Charcoal_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -941,7 +941,7 @@ class SUV_Orange_DZE2: SUV_Orange_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -997,7 +997,7 @@ class SUV_Silver_DZE2: SUV_Silver_DZE1
};
class HitRBWheel: HitRBWheel
{
armor = 0.15;
armor = 0.3;
};
class HitFuel
{
@@ -1159,4 +1159,4 @@ class SUV_Orange_DZE4: SUV_Orange_DZE3
class SUV_Silver_DZE4: SUV_Silver_DZE3
{
fuelCapacity = 250; // suv base 130
};
};

View File

@@ -1,43 +1,43 @@
//Prevent SVI hack using BattleFieldClearance & al.
class Logic;
class BattleFieldClearance: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, b4ttlefieldclearance attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class HighCommandSubordinate: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, HighCommand5ubordinate attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class FirstAidSystem: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, First4idSystem attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class AlternativeInjurySimulation: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, 4lternativeInjurySimulation attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class FunctionsManager : Logic {
vehicleClass = "Modules";
class Eventhandlers
{
init = "diag_log format ['PRELOAD_ Functions\init %1', [_this, BIS_functions_mainscope]];if (isnil 'BIS_functions_mainscope') then { BIS_functions_mainscope = _this select 0; if (isServer) then {_this execVM 'ca\modules\functions\main.sqf'};} else {_this spawn { diag_log format ['PRELOAD_ Functions\init ERROR: deleting redundant FM! %1', [_this, (_this select 0), BIS_functions_mainscope]]; _mygrp = group (_this select 0); deleteVehicle (_this select 0); deleteGroup _mygrp;};};if (isnil 'RE') then {diag_log 'MPframework inited';[] execVM '\ca\Modules\MP\data\scripts\MPframework.sqf'};";
};
};
//Prevent SVI hack using BattleFieldClearance & al.
class Logic;
class BattleFieldClearance: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, b4ttlefieldclearance attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class HighCommandSubordinate: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, HighCommand5ubordinate attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class FirstAidSystem: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, First4idSystem attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class AlternativeInjurySimulation: Logic
{
vehicleClass = "Modules";
class Eventhandlers
{
init = "if (isServer) then { diag_log(""WARNING, 4lternativeInjurySimulation attack from player PID#""+str(owner this)); deleteVehicle this;};";
};
};
class FunctionsManager : Logic {
vehicleClass = "Modules";
class Eventhandlers
{
init = "diag_log format ['DayZ Epoch: PRELOAD Functions\init %1', [_this, BIS_functions_mainscope]];if (isnil 'BIS_functions_mainscope') then { BIS_functions_mainscope = _this select 0; if (isServer) then {_this execVM 'ca\modules\functions\main.sqf'};} else {_this spawn { diag_log format ['DayZ Epoch: PRELOAD Functions\init ERROR: deleting redundant FM! %1', [_this, (_this select 0), BIS_functions_mainscope]]; _mygrp = group (_this select 0); deleteVehicle (_this select 0); deleteGroup _mygrp;};};if (isnil 'RE') then {diag_log 'DayZ Epoch: MPframework inited';[] execVM '\ca\Modules\MP\data\scripts\MPframework.sqf'};";
};
};

View File

@@ -171,29 +171,29 @@ class CfgWeapons {
magazines[] = {"CSGAS"};
class Library
{
libTextDesc = "Horlite Chainsaw";
libTextDesc = "Hermlite Chainsaw";
};
descriptionShort = "Horlite Chainsaw";
descriptionShort = "Hermlite Chainsaw";
};
class ChainSawB : ChainSaw {
model = "\z\addons\dayz_epoch\models\chainsaw_B.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_chainsawB_CA.paa";
descriptionShort = "Horlite Chainsaw (Blue)";
descriptionShort = "Hermlite Chainsaw (Blue)";
};
class ChainSawG : ChainSaw {
model = "\z\addons\dayz_epoch\models\chainsaw_G.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_chainsawG_CA.paa";
descriptionShort = "Horlite Chainsaw (Green)";
descriptionShort = "Hermlite Chainsaw (Green)";
};
class ChainSawP : ChainSaw {
model = "\z\addons\dayz_epoch\models\chainsaw_P.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_chainsawP_CA.paa";
descriptionShort = "Horlite Chainsaw (Pink)";
descriptionShort = "Hermlite Chainsaw (Pink)";
};
class ChainSawR : ChainSaw {
model = "\z\addons\dayz_epoch\models\chainsaw_R.p3d";
picture = "\z\addons\dayz_epoch\pictures\equip_chainsawR_CA.paa";
descriptionShort = "Horlite Chainsaw (Red)";
descriptionShort = "Hermlite Chainsaw (Red)";
};
@@ -265,16 +265,15 @@ class CfgWeapons {
#include "CfgWeapons\Item\ItemKeys.hpp"
#include "CfgWeapons\Item\ItemToolbox.hpp"
//Sniper Rifel
//#include "CfgWeapons\Weapon\Sniper\AS50.hpp"
//Sniper Rifles
#include "CfgWeapons\Weapon\Sniper\AS50.hpp"
#include "CfgWeapons\Weapon\Sniper\M107.hpp"
#include "CfgWeapons\Weapon\Sniper\KSVK.hpp"
#include "CfgWeapons\Weapon\Sniper\DMR_DZ.hpp"
// #include "CfgWeapons\Weapon\Sniper\DMR_DZ2.hpp"
// #include "CfgWeapons\Weapon\Sniper\DMR_DZ3.hpp"
#include "CfgWeapons\Weapon\Pistol\MakerovSD.hpp"
#include "CfgWeapons\Weapon\LMG\m240_scoped.hpp"
#include "CfgWeapons\Weapon\LMG\M249_EP1.hpp"
#include "CfgWeapons\Weapon\LMG\M249_m145_EP1.hpp"
#include "CfgWeapons\Weapon\LMG\M60A4.hpp"
// #include "CfgWeapons\Weapon\Rifle\FN_FAL_ANPVS4_DZE.hpp"

View File

@@ -6,7 +6,7 @@ class Loot: Default
displayName = "Use";
canDrop = 0;
muzzles[] = {"this"};
magazines[] = {"FoodBioMeat","ItemZombieParts","ItemBandage","ItemHeatPack","PartWoodPile","PartFueltank","PartWheel","PartGeneric","PartEngine","PartVRotor","PartGlass","ItemWaterbottle","ItemWaterbottleUnfilled","ItemEpinephrine","ItemGoldBar","ItemSilverBar","ItemCopperBar","ItemMorphine","ItemBloodbag","ItemAntibiotic","ItemPainkiller","ItemJerrycan","ItemOilBarrel","ItemGenerator","ItemTent","ItemSandbag","ItemTankTrap","ItemWire","FoodSteakRaw","TrashTinCan","ItemSodaCoke","ItemSodaPepsi","ItemSodaMdew","FoodEdible","FoodSteakCooked","FoodCanBakedBeans","FoodCanSardines","FoodCanFrankBeans","FoodCanPasta"};
magazines[] = {"FoodBioMeat","ItemZombieParts","ItemBandage","ItemHeatPack","PartWoodPile","PartFueltank","PartWheel","PartGeneric","PartEngine","PartVRotor","PartGlass","ItemWaterbottle","ItemWaterbottleUnfilled","ItemEpinephrine","ItemGoldBar","ItemSilverBar","ItemMorphine","ItemBloodbag","ItemAntibiotic","ItemPainkiller","ItemJerrycan","ItemOilBarrel","ItemGenerator","ItemTent","ItemSandbag","ItemTankTrap","ItemWire","FoodSteakRaw","TrashTinCan","ItemSodaCoke","ItemSodaPepsi","ItemSodaMdew","FoodEdible","FoodSteakCooked","FoodCanBakedBeans","FoodCanSardines","FoodCanFrankBeans","FoodCanPasta"};
modes[] = {"this"};
useAction = 0;
useActionTitle = "";

View File

@@ -1,6 +1,7 @@
class Crossbow_DZ : Crossbow {
displayName = $STR_EQUIP_CROSSBOW;
magazines[] =
{
"WoodenArrow"
};
};
};

View File

@@ -1,10 +1,10 @@
class ItemMachete: ItemCore
{
scope=2;
displayName="Machete";
displayName=$STR_EQUIP_MACHETE;
model="\z\addons\dayz_communityassets\models\machete.p3d";
picture="\z\addons\dayz_communityassets\pictures\equip_machete_CA.paa";
descriptionShort="An agricultural tool turned into a weapon, the Machete may be less versatile than the common hatchet, but it packs a punch.";
descriptionShort=$STR_EQUIP_MACHETE_DESC;
class ItemActions
{
class Toolbelt

View File

@@ -6,7 +6,7 @@ class MeleeMachete: MeleeWeapon
magazineReloadTime=0;
model="\z\addons\dayz_communityassets\models\machete_weaponized.p3d";
picture="\z\addons\dayz_communityassets\pictures\equip_machete_CA.paa";
displayName="Machete";
displayName=$STR_EQUIP_MACHETE;
droppeditem= "MeleeMachete";
magazines[]=
{
@@ -37,5 +37,5 @@ class MeleeMachete: MeleeWeapon
{
libTextDesc="";
};
descriptionShort="An agricultural tool turned into a weapon, the Machete may be less versatile than the common hatchet, but it packs a punch.";
descriptionShort=$STR_EQUIP_MACHETE_DESC;
};

View File

@@ -0,0 +1,4 @@
class M249_EP1;
class M249_EP1_DZ:M249_EP1 {
type = "1";
};

View File

@@ -1,9 +1,8 @@
/*
class BAF_AS50_scoped : BAF_AS50_scoped {
displayname = "AS50_DZ";
type = "1";
canlock = 0;
//cursor = "RifleCursor";
//cursoraim = "Foresight";
};
*/
class BAF_AS50_scoped;
class BAF_AS50_scoped_DZ : BAF_AS50_scoped {
displayname = "AS50_DZ";
type = "1";
canlock = 0;
//cursor = "RifleCursor";
//cursoraim = "Foresight";
};

View File

@@ -1,19 +1,20 @@
class DMR_DZ : DMR {
model = "\ca\weapons\DMR\us_dmr";
picture = "\ca\weapons\data\equip\W_US_DMR_CA.paa";
UiPicture = "\CA\weapons\data\Ico\i_sniper_CA.paa";
modelOptics = "\ca\Weapons\2Dscope_MilDot_10";
opticsFlare = 1;
opticsDisablePeripherialVision = 1;
opticsZoomInit = 0.0711;
opticsZoomMin = 0.0249;
distanceZoomMin = 400;
opticsZoomMax = 0.0711;
distanceZoomMax = 120;
dexterity = 1.55;
magazines[] = {"20Rnd_762x51_DMR"};
reloadTime = 2;
backgroundReload = 1;
handAnim[] = {"OFP2_ManSkeleton", "\Ca\weapons\data\Anim\M24.rtm"};
modes[] = {"Single"};
};
class DMR_DZ : DMR {
model = "\ca\weapons\DMR\us_dmr";
picture = "\ca\weapons\data\equip\W_US_DMR_CA.paa";
UiPicture = "\CA\weapons\data\Ico\i_sniper_CA.paa";
modelOptics = "\ca\Weapons\2Dscope_MilDot_10";
opticsFlare = 1;
opticsDisablePeripherialVision = 1;
opticsZoomInit = 0.0711;
opticsZoomMin = 0.0249;
distanceZoomMin = 400;
opticsZoomMax = 0.0711;
distanceZoomMax = 120;
dexterity = 1.55;
magazines[] = {"20Rnd_762x51_DMR"};
reloadTime = 2;
backgroundReload = 1;
handAnim[] = {"OFP2_ManSkeleton", "\Ca\weapons\data\Anim\M24.rtm"};
modes[] = {"Single"};
};
class DMR_SKN : DMR_DZ {};

View File

@@ -1,5 +0,0 @@
class DMR_DZ2 : DMR_DZ {
model = "\z\addons\dayz_communityassets\weapons\Sniper\DMR_DZ2\us_dmr";
//picture = "\ca\weapons\data\equip\W_US_DMR_CA.paa"; TODO
//UiPicture = "\CA\weapons\data\Ico\i_sniper_CA.paa"; TODO
};

View File

@@ -1,5 +0,0 @@
class DMR_DZ3 : DMR_DZ {
model = "\z\addons\dayz_communityassets\weapons\Sniper\DMR_DZ3\us_dmr";
//picture = "\ca\weapons\data\equip\W_US_DMR_CA.paa"; TODO
//UiPicture = "\CA\weapons\data\Ico\i_sniper_CA.paa"; TODO
};

View File

@@ -9,7 +9,7 @@ class m107: Rifle
class m107_DZ: m107
{
displayname = "M107_DZ";
displayname = "M107";
type = "1";
canlock = 0;
cursor = "";
@@ -46,4 +46,5 @@ class m107_DZ: m107
visionmode[] = {"Normal"};
};
};
};
};
class m107_SKN : m107_DZ {};

File diff suppressed because it is too large Load Diff

View File

@@ -2,8 +2,8 @@ class RscDisplaySpawnSelecter {
idd = 6903;
enableDisplay = 1;
onLoad = "dayz_DisplaySpawnSelecter = true;";
//onUnload = "dayz_DisplaySpawnSelecter = false;";
onLoad = "DZE_DisplaySpawnSelector = true;";
//onUnload = "DZE_DisplaySpawnSelector = false;";
class controlsBackground {
class Mainback : RscPicture {
@@ -28,7 +28,7 @@ class RscDisplaySpawnSelecter {
h = 0.3044 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 1;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 1;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};
class RscSelectedRegion2: RscActiveText
@@ -42,7 +42,7 @@ class RscDisplaySpawnSelecter {
h = 0.270356 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 0;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 0;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};
class RscSelectedRegion3: RscActiveText
@@ -56,7 +56,7 @@ class RscDisplaySpawnSelecter {
h = 0.275 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 2;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 2;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};
class RscSelectedRegion4: RscActiveText
@@ -70,7 +70,7 @@ class RscDisplaySpawnSelecter {
h = 0.274546 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 3;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 3;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};
class RscSelectedRegion5: RscActiveText
@@ -84,7 +84,7 @@ class RscDisplaySpawnSelecter {
h = 0.275001 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 4;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 4;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};
class RscSelectedRegion6: RscActiveText
@@ -98,7 +98,7 @@ class RscDisplaySpawnSelecter {
h = 0.275 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 5;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 5;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};
class RscSelectedRegionRandom: RscActiveText
@@ -112,7 +112,7 @@ class RscDisplaySpawnSelecter {
h = 0.331135035 * safezoneH;
color[] = { 0.5, 0.5, 0.5, 1 };
colorActive[] = { 1, 1, 1, 1 };
action = "closeDialog 0;dayz_DisplaySpawnSelecter = false;dayz_selectRegion = 9;";
action = "closeDialog 0;DZE_DisplaySpawnSelector = false;dayz_selectRegion = 9;";
onMouseEnter = "ctrlSetFocus (_this select 0)";
};

View File

@@ -487,7 +487,18 @@ class CfgVehicles {
// SEA
// #include "CfgVehicles\SEA\RHIB.hpp"
class BAF_Merlin_HC3_D;
class BAF_Merlin_DZE : BAF_Merlin_HC3_D {
scope = 2;
crew = "";
typicalCargo[] = {};
commanderCanSee = 2+16+32;
gunnerCanSee = 2+16+32;
driverCanSee = 2+16+32;
transportMaxWeapons = 15;
transportMaxMagazines = 150;
transportmaxbackpacks = 5;
};
class MV22;
class MV22_DZ : MV22 {
accuracy = 1000;
@@ -500,7 +511,7 @@ class CfgVehicles {
driverCanSee = 2+16+32;
transportMaxWeapons = 20;
transportMaxMagazines = 400;
transportmaxbackpacks = 10;
transportmaxbackpacks = 10;
};
class RubberBoat;
class PBX: RubberBoat {
@@ -1159,7 +1170,7 @@ class CfgVehicles {
icon = "\Ca\buildings\Icons\i_fuel_CA.paa";
scope = 0;
animated = 0;
armor = 20;
armor = 2000;
displayName = "Fuel station";
accuracy = 0.5;
transportFuel = 0;
@@ -1518,7 +1529,7 @@ class CfgVehicles {
model = "\ca\structures\wall\wall_indcnc2_3.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 1200;
armor = 4000;
displayName = "Metal Panel";
vehicleClass = "Fortifications";
constructioncount = 6;
@@ -1685,7 +1696,7 @@ class CfgVehicles {
picture = "\CA\ui\data\icon_wf_barriers_ca.paa";
offset[] = {0,2.5,0};
constructioncount = 8;
removeoutput[] = {{"ItemSandbagExLarge",3}};
removeoutput[] = {{"ItemSandbagExLarge5x",1}};
nounderground = 0;
};
@@ -1862,6 +1873,21 @@ class CfgVehicles {
removeoutput[] = {{"ItemGunRackKit",1}};
nounderground = 0;
};
class Fort_Crate_wood;
class WoodCrate_DZ: Fort_Crate_wood
{
scope = 2;
destrType = "DestructBuilding";
offset[] = {0,2.5,0.5};
armor = 200;
displayName = "Wood Crate";
vehicleClass = "Fortifications";
transportMaxMagazines = 50;
transportMaxWeapons = 5;
transportMaxBackpacks = 1;
removeoutput[] = {{"ItemWoodCrateKit",1}};
nounderground = 0;
};
// modular
class MetalFloor_DZ: ModularItems
{
@@ -1872,7 +1898,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\metal_floor.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 1200;
armor = 3000;
displayName = "Metal Floor";
vehicleClass = "Fortifications";
GhostPreview = "MetalFloor_Preview_DZ";
@@ -1898,7 +1924,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\Wood_Ramp.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2000;
displayName = "Wood Ramp";
vehicleClass = "Fortifications";
GhostPreview = "WoodRamp_Preview_DZ";
@@ -1912,7 +1938,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\cinder_wall_half.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 1200;
armor = 2200;
displayName = "Half Cinder Block Wall";
vehicleClass = "Fortifications";
upgradeBuilding[] = {"CinderWall_DZ",{{"CinderBlocks",4},{"MortarBucket",1}}};
@@ -1941,7 +1967,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\cinder_wall_full.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 1200;
armor = 3400;
displayName = "Cinder Block Wall";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"MortarBucket",1}};
@@ -1970,7 +1996,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\steel_garage_frame.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 1200;
armor = 3400;
displayName = "Block Garage Doorway";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"MortarBucket",1}};
@@ -2000,7 +2026,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\Steel_door_frame.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 1200;
armor = 3400;
displayName = "Block Doorway";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"MortarBucket",1}};
@@ -2030,7 +2056,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\Wood_Floor.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2000;
displayName = "Wood Floor";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodLumber",4}};
@@ -2058,7 +2084,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\half_floor.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 1000;
displayName = "Wood Floor 1/2";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodLumber",2}};
@@ -2117,7 +2143,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\large_wall.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2200;
displayName = "Large Wall";
vehicleClass = "Fortifications";
upgradeBuilding[] = {"WoodLargeWallWin_DZ",{{"PartGlass",1}}};
@@ -2146,7 +2172,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\large_wall_door.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2200;
displayName = "Large Wall Doorway";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodPlywood",1},{"PartWoodLumber",1}};
@@ -2174,7 +2200,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\large_wall_win.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2200;
displayName = "Large Wall Window";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodPlywood",1},{"PartWoodLumber",1}};
@@ -2202,7 +2228,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\small_wall.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2000;
displayName = "Small Wall";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodPlywood",1},{"PartWoodLumber",1}};
@@ -2258,7 +2284,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\small_wall_win.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2000;
displayName = "Small Wall Window";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodPlywood",1},{"PartWoodLumber",1}};
@@ -2285,7 +2311,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\small_wall_door.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 600;
armor = 2000;
displayName = "Small Wall Door";
vehicleClass = "Fortifications";
upgradeBuilding[] = {"Land_DZE_WoodDoor",{{"PartWoodPlywood",1},{"PartWoodLumber",1}}};
@@ -2314,7 +2340,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\wood_stairs.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 300;
armor = 600;
displayName = "Wood Stairs";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodLumber",1}};
@@ -2329,7 +2355,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\wood_ladder.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 100;
armor = 300;
displayName = "Wood Ladder";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodLumber",1}};
@@ -2346,7 +2372,7 @@ class CfgVehicles {
model="\z\addons\dayz_epoch\models\wood_stairs_sans.p3d";
icon = "\ca\data\data\Unknown_object.paa";
mapSize = 2;
armor = 200;
armor = 500;
displayName = "Wood Stairs Sans";
vehicleClass = "Fortifications";
maintainBuilding[] = {{"PartWoodLumber",1}};
@@ -2653,7 +2679,7 @@ class CfgVehicles {
class Plastic_Pole_EP1_DZ: Sign_1L_Noentry_EP1
{
destrType = "DestructTree";
armor = 1000;
armor = 2000;
// static
hasDriver = 0;
@@ -2799,7 +2825,7 @@ class CfgVehicles {
class Land_Shed_M01;
class StorageShed_DZ: Land_Shed_M01
{
armor = 800;
armor = 1600;
scope = 2;
offset[] = {0,2.5,1};
displayName = "Storage Shed";
@@ -2812,7 +2838,7 @@ class CfgVehicles {
class Fence_corrugated_plate;
class Fence_corrugated_DZ: Fence_corrugated_plate
{
armor = 300;
armor = 600;
scope = 2;
offset[] = {0,2.5,1};
removeoutput[] = {{"ItemCorrugated",1}};
@@ -2827,7 +2853,7 @@ class CfgVehicles {
scope = 2;
destrType = "DestructBuilding";
offset[] = {0,2.5,1.3};
armor = 400;
armor = 800;
displayName = "Wooden Shack";
vehicleClass = "Fortifications";
transportMaxMagazines = 100;
@@ -2843,7 +2869,7 @@ class CfgVehicles {
destrType = "DestructBuilding";
//cost = 100;
offset[] = {0,2.5,1};
armor = 400;
armor = 800;
displayName = "Wooden Shed";
vehicleClass = "Fortifications";
transportMaxMagazines = 200;
@@ -2872,6 +2898,25 @@ class CfgVehicles {
vehicleClass = "Fortifications";
maintainBuilding[] = {{"ItemLightBulb",1}};
};
class Land_Misc_Scaffolding;
class Scaffolding_DZ: Land_Misc_Scaffolding
{
armor = 100;
destrType = "DestructBuilding";
scope = 2;
displayName = "Scaffolding";
vehicleClass = "Fortifications";
constructioncount = 6;
animated = 0;
irTarget = 0;
accuracy = 0.3;
transportAmmo = 0;
transportRepair = 0;
transportFuel = 0;
typicalCargo[] = {};
offset[] = {0,8,3};
cost = 0;
};
class WoodGate_DZ: BuiltItems
{
scope = 2;
@@ -3098,7 +3143,7 @@ class CfgVehicles {
destrType = "DestructNo";
armor = 800;
transportMaxMagazines = 200;
transportMaxWeapons = 50;
transportMaxWeapons = 25;
transportMaxBackpacks = 10;
lockedClass = "VaultStorageLocked";
packedClass = "WeaponHolder_ItemVault";
@@ -3157,7 +3202,7 @@ class CfgVehicles {
destrType = "DestructNo";
model = "\z\addons\dayz_epoch\models\skeleton.p3d";
transportMaxMagazines = 80;
transportMaxWeapons = 15;
transportMaxWeapons = 20;
transportMaxBackpacks = 1;
};
};

View File

@@ -15,7 +15,7 @@ class EpochDeathBoardDialog
class RscText_1001: RscText
{
idc = -1;
text = "Kill Board";
text = $STR_EPOCH_PLAYER_302;
x = 0.283659 * safezoneW + safezoneX;
y = 0.224978 * safezoneH + safezoneY;
w = 0.432681 * safezoneW;
@@ -34,7 +34,7 @@ class EpochDeathBoardDialog
class RscText_1002: RscText
{
idc = -1;
text = "Murders";
text = $STR_EPOCH_PLAYER_303;
x = 0.29042 * safezoneW + safezoneX;
y = 0.293733 * safezoneH + safezoneY;
w = 0.0540852 * safezoneW;
@@ -62,4 +62,4 @@ class EpochDeathBoardDialog
colorBackground[] = {0,0,0,0};
};
};
};
};

View File

@@ -207,7 +207,7 @@ class TraderDialog
class RscTextTraderDialog_1003: RscTextTraderDialog
{
idc = -1;
text = "Buy For";
text = $STR_EPOCH_PLAYER_293;
x = 0.290407 * safezoneW + safezoneX;
y = 0.555016 * safezoneH + safezoneY;
w = 0.0743718 * safezoneW;
@@ -216,7 +216,7 @@ class TraderDialog
class RscTextTraderDialog_1004: RscTextTraderDialog
{
idc = -1;
text = "Sell For";
text = $STR_EPOCH_PLAYER_294;
x = 0.290407 * safezoneW + safezoneX;
y = 0.623786 * safezoneH + safezoneY;
w = 0.0743718 * safezoneW;

View File

@@ -166,7 +166,7 @@ class RscDisplayMain : RscStandardDisplay
class DAYZ_Version : CA_Version
{
idc = -1;
text = "DayZ Epoch 1.0.3.1";
text = "DayZ Epoch 1.0.4";
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
};
delete CA_TitleMainMenu;
@@ -212,321 +212,7 @@ class RscDisplayMain : RscStandardDisplay
};
};
};
/*
class RscDisplayMainMap {
saveParams = 1;
class controlsBackground {
class Map {};
class CA_Black : CA_Black_Back {};
class CA_Map : RscMapControl {
x = "SafeZoneXAbs";
y = "SafeZoneY";
w = "SafeZoneWAbs";
h = "SafeZoneH";
};
};
class controls {
class DiaryIndex {};
class DiaryAdd {};
class DiarySort {};
class DiaryFilter {};
class Diary {};
class CA_MainBackground : IGUIBack {
idc = 1020;
x = "SafeZoneX + 0.010 * SafeZoneW";
y = "SafeZoneY + 0.031";
w = "0.98*SafeZoneW";
h = 0.082;
colorbackground[] = {0.1961, 0.1451, 0.0941, 0.85};
};
class CA_TopicsBackground : IGUIBack {
idc = 1021;
x = "0.010*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.117";
w = "0.146*SafeZoneW";
h = 0.53;
colorbackground[] = {0.1961, 0.1451, 0.0941, 0.85};
};
class CA_SubTopicsBackground : IGUIBack {
idc = 1022;
x = "0.16*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.117";
w = "0.283*SafeZoneW";
h = 0.53;
colorbackground[] = {0.1961, 0.1451, 0.0941, 0.85};
};
class CA_ContentBackground : IGUIBack {
idc = 1023;
x = "0.446*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.117";
w = "SafeZoneW * 0.544";
h = 0.832;
colorbackground[] = {0.1961, 0.1451, 0.0941, 0.85};
};
delete CA_PlayerName;
delete CA_PlayerRank;
class CA_MissionName : RscText {
idc = 112;
style = 1;
x = "0.02*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.033";
w = "0.96 * SafeZoneW";
h = 0.041;
sizeEx = 0.034;
colorText[] = {0.95, 0.95, 0.95, 1};
text = $STR_DIARY_MISSION_NAME;
};
delete CA_CurrentTaskLabel;
delete CA_CurrentTask;
class DiaryList : RscIGUIListBox {
idc = 1001;
onLBSelChanged = "[_this select 0, _this select 1, 'List'] call compile preprocessFileLineNumbers 'ca\Warfare2\Scripts\Client\GUI\GUI_logEH.sqf'; private ['_dummy']; _dummy = [_this,'onLBSelChanged'] call compile preprocessfile '\ca\ui\scripts\server_interface.sqf';";
default = 1;
x = "0.010*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.137";
w = "0.146*SafeZoneW";
h = 0.6;
};
class CA_DiaryIndex : RscIGUIListBox {
idc = 1002;
onLBSelChanged = "[_this select 0, _this select 1, 'Index'] call compile preprocessFileLineNumbers 'ca\Warfare2\Scripts\Client\GUI\GUI_logEH.sqf';";
default = 0;
x = "0.16*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.137";
w = "0.283*SafeZoneW";
h = 0.6;
sizeEx = 0.034;
};
class CA_DiaryGroup : RscControlsGroup {
idc = 1013;
x = "0.446*SafeZoneW + SafeZoneX";
y = "SafeZoneY + 0.137";
w = "0.534*SafeZoneW";
h = 0.718;
class VScrollbar {
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
color[] = {1, 1, 1, 1};
width = 0.01;
};
class HScrollbar {
color[] = {1, 1, 1, 0};
height = 0.001;
};
class Controls {
class CA_Diary : RscHTML {
idc = 1003;
cycleLinks = 0;
cycleAllLinks = 0;
default = 0;
x = "0.01*SafeZoneW";
y = 0.0;
w = "0.514*SafeZoneW";
h = 1.807;
colorText[] = {0.95, 0.95, 0.95, 1};
class H1 {
font = "Zeppelin32";
fontBold = "Zeppelin32";
sizeEx = 0.034;
};
class P {
font = "Zeppelin32";
fontBold = "Zeppelin32";
sizeEx = 0.034;
};
};
};
};
class HC_tooltip_back : IGUIBack {
idc = 1124;
x = 0.0;
y = 0.0;
w = 0.0;
h = 0.0;
colorBackground[] = {0.2, 0.15, 0.1, 0.8};
};
class HC_tooltip_text : RscStructuredText {
idc = 1125;
x = 0.0;
y = 0.0;
w = 0.0;
h = 0.0;
size = 0.035;
class Attributes {
font = "Zeppelin32";
color = "#B6F862";
align = "left";
shadow = true;
};
};
};
class objects {
class Watch : RscObject {
model = "\ca\ui\Watch.p3d";
x = 0.08;
xBack = 0.4;
y = 0.925;
yBack = 0.5;
z = 0.21;
zBack = 0.11;
enableZoom = 1;
direction[] = {0, 1, 7.2};
up[] = {0, 0, -1};
scale = 0.4;
};
class Compass : RscObject {
model = "\ca\ui\Compass.p3d";
selectionArrow = "";
x = 0.16;
xBack = 0.6;
y = 0.925;
yBack = 0.5;
z = 0.2;
zBack = 0.1;
enableZoom = 1;
direction[] = {1, 0, 0};
up[] = {0, 1, 0};
scale = 0.35;
};
class GPS : RscObject {
model = "\ca\ui\gps.p3d";
x = 0.36;
xBack = 0.7;
y = 0.925;
yBack = 0.5;
z = 0.22;
zBack = 0.12;
scale = 0.3;
class Areas {
class Display {
class controls {
class GPSSquare : RscText {
idc = 75;
x = 0;
y = 0.56;
w = 1;
h = 0.5;
colorText[] = {0.2314, 0.2588, 0.1373, 1.0};
sizeEx = 0.4;
};
class GPS_ALT : RscText {
idc = 77;
x = 0.25;
y = 0.31;
w = 1;
h = 0.3;
colorText[] = {0.2314, 0.2588, 0.1373, 1.0};
sizeEx = 0.23;
};
class GPS_Heading : RscText {
idc = 78;
x = 0.25;
y = 0.073;
w = 1;
h = 0.3;
colorText[] = {0.2314, 0.2588, 0.1373, 1.0};
sizeEx = 0.23;
};
};
};
};
};
class WalkieTalkie : RscObject {
model = "\ca\ui\radio.p3d";
x = 0.56;
xBack = 0.8;
y = 0.925;
yBack = 0.5;
z = 0.22;
zBack = 0.12;
scale = 0.15;
class Areas {
class Papir {
class controls {
class RscRadioText : RscActiveText {
sizeEx = 0.17;
x = 0.005;
y = 0.02;
h = 0.1;
};
class RadioAlpha : RscRadioText {
y = 0.05;
};
class RadioBravo : RscRadioText {
y = 0.17;
};
class RadioCharlie : RscRadioText {
y = 0.29;
};
class RadioDelta : RscRadioText {
y = 0.41;
};
class RadioEcho : RscRadioText {
y = 0.53;
};
class RadioFoxtrot : RscRadioText {
y = 0.65;
};
class RadioGolf : RscRadioText {
y = 0.77;
};
class RadioHotel : RscRadioText {
y = 0.89;
};
class RadioIndia : RscRadioText {
y = 1.01;
};
class RadioJuliet : RscRadioText {
y = 1.13;
};
};
};
};
};
};
};
*/
class RscDisplayClientGetReady : RscDisplayGetReady {
onload = "private ['_dummy']; _dummy = [_this,'onload'] call compile preprocessfile '\ca\ui\scripts\server_interface.sqf'; _this spawn { while { !isNull (findDisplay 53) } do { ctrlActivate ((_this select 0) displayCtrl 1); sleep 0.1; }; };";
color0[] = {0.4, 0.4, 0.4, 1};
@@ -1648,14 +1334,11 @@ class DZ_ItemInteraction {
};
};
#ifdef NewPlayerUI
#include "RscDisplay\RscNewPlayerUI.hpp"
#else
#include "RscDisplay\RscOldPlayerUI.hpp"
#endif
#ifdef SpawnSelecter
#include "RscDisplay\RscDisplaySpawnSelecter.hpp"
#endif
#include "RscDisplay\RscMap.hpp"
#ifdef NewPlayerUI
#include "RscDisplay\RscNewPlayerUI.hpp"
#else
#include "RscDisplay\RscOldPlayerUI.hpp"
#endif

View File

@@ -20,4 +20,4 @@ sleep 3;
// allow menu again
s_player_callzombies = -1;
// cutText ["Calling Zombies...", "PLAIN DOWN"];
// cutText [(localize "STR_EPOCH_ACTIONS_1"), "PLAIN DOWN"];

View File

@@ -100,9 +100,14 @@ if(_IsNearVehicle >= 1) then {
// calculate new fuel
_newFuelSrc = (_newFuelSrc / _capacitySrc);
if (_newFuelSrc > 0) then {
PVDZE_veh_SFuel = [_vehicleSrc,_newFuelSrc];
PVDZE_veh_SFuel spawn local_setFuel;
publicVariable "PVDZE_veh_SFuel";
/* PVS/PVC - Skaronator */
if (local _vehicle) then {
[_vehicleSrc,_newFuelSrc] call local_setFuel;
} else {
/* PVS/PVC - Skaronator */
PVDZE_send = [_vehicle,"SFuel",[_vehicleSrc,_newFuelSrc]];
publicVariableServer "PVDZE_send";
};
} else {
_isFillok = false;
_abort = true;
@@ -118,10 +123,15 @@ if(_IsNearVehicle >= 1) then {
// calculate minimum needed fuel
_newFuel = (_newFuel / _capacity);
PVDZE_veh_SFuel = [_vehicle,_newFuel];
PVDZE_veh_SFuel spawn local_setFuel;
publicVariable "PVDZE_veh_SFuel";
/* PVS/PVC - Skaronator */
if (local _vehicle) then {
[_vehicle,_newFuel] call local_setFuel;
} else {
/* PVS/PVC - Skaronator */
PVDZE_send = [_vehicle,"SFuel",[_vehicle,_newFuel]];
publicVariableServer "PVDZE_send";
};
// Play sound
[player,"refuel",0,false] call dayz_zombieSpeak;

View File

@@ -74,9 +74,13 @@ if ((_hasKnife or _hasKnifeBlunt) and !_hasHarvested) then {
if (_hasKnifeBlunt) then { _qty = round(_qty / 2); };
PVDZE_plr_GutBody = [_item,_qty];
PVDZE_plr_GutBody spawn local_gutObject;
publicVariable "PVDZE_plr_GutBody";
if (local _item) then {
[_item,_qty] spawn local_gutObject;
} else {
//Leave this as PV instead of PVS/PVC - Skaronator
PVDZE_plr_GutBody =[_item,_qty];
publicVariable "PVDZE_plr_GutBody";
};
_string = format[localize "str_success_gutted_animal",_text,_qty];
cutText [_string, "PLAIN DOWN"];

View File

@@ -69,10 +69,14 @@ if ((_hasKnife or _hasKnifeBlunt) and !_hasHarvested) then {
[player,"gut",0,false,10] call dayz_zombieSpeak;
_qty = 1;
PVDZE_plr_GutBody = [_item,_qty];
PVDZE_plr_GutBody spawn local_gutObjectZ;
publicVariable "PVDZE_plr_GutBodyZ";
if (local _item) then {
[_item,_qty] spawn local_gutObjectZ;
} else {
//Leave this as PV instead of PVS/PVC - Skaronator
//Also not sure if we need this
PVDZE_plr_GutBodyZ = [_item,_qty];
publicVariable "PVDZE_plr_GutBodyZ";
};
// Reduce humanity for gutting zeds
_humanity = player getVariable["humanity",0];

View File

@@ -1,7 +1,7 @@
//Code developed by Axe Cop for use in DayZ Epoch Mod.
private ["_missing","_missingQty","_proceed","_itemIn","_countIn","_qty","_num_removed","_removed","_removed_total","_tobe_removed_total","_obj","_objectID","_objectUID","_classname","_location","_dir","_objectCharacterID","_object","_temp_removed_array","_textMissing","_target","_objectClasses","_range","_objects","_requirements","_count","_cost","_itemText","_option"];
//Code developed by Axe Cop - Massiv improvments and performance tunes by Skaronator
private ["_missing","_missingQty","_proceed","_itemIn","_countIn","_qty","_num_removed","_uniqueID","_removed","_removed_total","_tobe_removed_total","_obj","_objectID","_objectUID","_classname","_location","_dir","_objectCharacterID","_object","_temp_removed_array","_textMissing","_target","_objectClasses","_range","_objects","_requirements","_count","_cost","_itemText","_option"];
if (DZE_ActionInProgress) exitWith { cutText ["Maintenance already in progress." , "PLAIN DOWN"]; };
if (DZE_ActionInProgress) exitWith { cutText [(localize "STR_EPOCH_ACTIONS_2") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
player removeAction s_player_maintain_area;
@@ -10,8 +10,9 @@ player removeAction s_player_maintain_area_preview;
s_player_maintain_area_preview = 1;
_target = cursorTarget; // Plastic_Pole_EP1_DZ
_objectClasses = ["ModularItems", "DZE_Housebase"] + DZE_ExtraMaintain;
_range = 50; // set the max range for the maintain area
_objectClasses = DZE_maintainClasses;
_range = DZE_maintainRange; // set the max range for the maintain area
_objects = nearestObjects [_target, _objectClasses, _range];
//filter to only those that have 10% damage
@@ -33,7 +34,9 @@ switch true do {
case (_count <= 200): {_requirements = [["ItemBriefcase100oz",2]]};
case (_count <= 300): {_requirements = [["ItemBriefcase100oz",3]]};
case (_count <= 400): {_requirements = [["ItemBriefcase100oz",4]]};
case (_count > 400): {_requirements = [["ItemBriefcase100oz",5]]};
case (_count <= 500): {_requirements = [["ItemBriefcase100oz",5]]};
case (_count <= 600): {_requirements = [["ItemBriefcase100oz",6]]};
case (_count > 700): {_requirements = [["ItemBriefcase100oz",7]]};
};
_option = _this select 3;
@@ -77,55 +80,16 @@ switch _option do {
// all required items removed from player gear
if (_tobe_removed_total == _removed_total) then {
{
_obj = _x;
// Find objectID
_objectID = _obj getVariable ["ObjectID","0"];
// Find objectUID
_objectUID = _obj getVariable ["ObjectUID","0"];
if (_objectID == "0" && _objectUID == "0") exitWith { cutText ["At least one building part is not setup yet.", "PLAIN DOWN"];};
// Get classname
_classname = typeOf _obj;
// Get position
_location = _obj getVariable["OEMPos",(getposATL _obj)];
// Get direction
_dir = getDir _obj;
// Find CharacterID
_objectCharacterID = _obj getVariable ["CharacterID","0"];
// Create new object
_object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];
// Set direction
_object setDir _dir;
// Set location
_object setPosATL _location;
PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,player];
publicVariableServer "PVDZE_obj_Swap";
player reveal _object;
} forEach _objects;
cutText [format["You have maintained %1 building parts.", _count], "PLAIN DOWN", 5];
// uncomment the next 2 lines if you want logging of area maintenance to the server report file (Arma2OAserver.RPT)
//maintainArea_log = [player, _target, _count];
//publicVariableServer "maintainArea_log";
cutText [format[(localize "STR_EPOCH_ACTIONS_4"), _count], "PLAIN DOWN", 5];
PVDZE_maintainArea = [player,1,_target];
publicVariableServer "PVDZE_maintainArea";
} else {
{player addMagazine _x;} forEach _temp_removed_array;
cutText [format["Missing Parts after first check Item: %1 / %2",_removed_total,_tobe_removed_total], "PLAIN DOWN"];
cutText [format[(localize "STR_EPOCH_ACTIONS_5"),_removed_total,_tobe_removed_total], "PLAIN DOWN"];
};
} else {
_textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName");
cutText [format["Missing %1 more of %2", _missingQty, _textMissing], "PLAIN DOWN"];
cutText [format[(localize "STR_EPOCH_ACTIONS_6"), _missingQty, _textMissing], "PLAIN DOWN"];
};
};
case "preview": {
@@ -139,7 +103,7 @@ switch _option do {
};
_cost = _cost + (str(_countIn) + " of " + _itemText);
} forEach _requirements;
cutText [format["%1 building parts in range, maintenance would cost %2.", _count, _cost], "PLAIN DOWN"];
cutText [format[(localize "STR_EPOCH_ACTIONS_7"), _count, _cost], "PLAIN DOWN"];
};
};

View File

@@ -44,6 +44,11 @@ _isOk = [player,_config2] call BIS_fnc_invAdd;
if (_isOk) then {
//Remove item
player removeWeapon _item;
if (vehicle player != player) then {
_display = findDisplay 106;
_display closeDisplay 0;
};
//Add magazines if needed
if (_create in ["MeleeHatchet_DZE","MeleeCrowbar","MeleeMachete","MeleeFishingPole","MeleeSledge"]) then {
@@ -72,6 +77,7 @@ if (_isOk) then {
};
};
};
} else {
cutText [localize "STR_DAYZ_CODE_2", "PLAIN DOWN"];

View File

@@ -2,7 +2,7 @@
DayZ Base Building
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_objHupDiff","_needNear","_vehicle","_inVehicle","_previewCounter","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap"];
private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_objHupDiff","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
@@ -52,9 +52,7 @@ _reason = "";
_needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "neednearby");
{
_need = _x select 0;
_distance = _x select 1;
switch(_need) do{
switch(_x) do{
case "fire":
{
_isNear = {inflamed _x} count (getPosATL player nearObjects _distance);
@@ -77,6 +75,7 @@ _needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >>
if(_isNear == 0) then {
_abort = true;
_reason = "fuel tank";
_distance = 30;
};
};
};
@@ -117,11 +116,11 @@ if((count _offset) <= 0) then {
_isPole = (_classname == "Plastic_Pole_EP1_DZ");
_isLandFireDZ = (_classname == "Land_Fire_DZ");
_distance = 30;
_distance = DZE_PlotPole select 0;
_needText = localize "str_epoch_player_246";
if(_isPole) then {
_distance = 60;
_distance = DZE_PlotPole select 1;
};
// check for near plot
@@ -212,7 +211,6 @@ if (_hasrequireditem) then {
cutText [(localize "str_epoch_player_45"), "PLAIN DOWN"];
_previewCounter = 60;
_objHDiff = 0;
while {_isOk} do {
@@ -335,18 +333,6 @@ if (_hasrequireditem) then {
deleteVehicle _object;
};
[format["<t size='0.6'>Time left to build: %1</t>",(ceil(_previewCounter))],0,0.8,0.5,0,0,8] spawn BIS_fnc_dynamicText;
if(_previewCounter <= 0) exitWith {
_isOk = false;
_cancel = true;
_reason = "Ran out of time to find position";
detach _object;
deleteVehicle _object;
};
_previewCounter = _previewCounter - 0.5;
if(abs(_objHDiff) > 5) exitWith {
_isOk = false;
_cancel = true;
@@ -372,8 +358,10 @@ if (_hasrequireditem) then {
};
};
// No building on roads
if (isOnRoad _position) then { _cancel = true; _reason = "Cannot build on a road."; };
//No building on roads unless toggled
if (!DZE_BuildOnRoads) then {
if (isOnRoad _position) then { _cancel = true; _reason = "Cannot build on a road."; };
};
// No building in trader zones
if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; };
@@ -471,6 +459,10 @@ if (_hasrequireditem) then {
if(_num_removed == 1) then {
cutText [format[localize "str_build_01",_text], "PLAIN DOWN"];
if (_isPole) then {
[] spawn player_plotPreview;
};
_tmpbuilt setVariable ["OEMPos",_location,true];
@@ -485,7 +477,7 @@ if (_hasrequireditem) then {
_combination_2 = floor(random 10);
_combination_3 = floor(random 10);
_combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
dayz_combination = _combination;
if (_combination_1 == 100) then {
_combination_1_Display = "Red";
};
@@ -503,6 +495,7 @@ if (_hasrequireditem) then {
_combination_2 = floor(random 10);
_combination_3 = floor(random 10);
_combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
dayz_combination = _combination;
_combinationDisplay = _combination;
};
@@ -512,6 +505,7 @@ if (_hasrequireditem) then {
_combination_3 = floor(random 10);
_combination_4 = floor(random 10);
_combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4];
dayz_combination = _combination;
_combinationDisplay = _combination;
};
};
@@ -536,8 +530,6 @@ if (_hasrequireditem) then {
publicVariableServer "PVDZE_obj_Publish";
};
};
} else {
deleteVehicle _tmpbuilt;
cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];

View File

@@ -79,32 +79,11 @@ if (_proceed) then {
// all parts removed proceed
if (_tobe_removed_total == _removed_total) then {
// Get position
_location = _obj getVariable["OEMPos",(getposATL _obj)];
// Get direction
_dir = getDir _obj;
cutText [format[(localize "STR_EPOCH_ACTIONS_4"), 1], "PLAIN DOWN", 5];
PVDZE_maintainArea = [player,2,_obj];
publicVariableServer "PVDZE_maintainArea";
// Find CharacterID
_objectCharacterID = _obj getVariable ["CharacterID","0"];
// Create new object
_object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];
// Set direction
_object setDir _dir;
// Set location
_object setPosATL _location;
PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,player];
publicVariableServer "PVDZE_obj_Swap";
cutText [format[(localize "str_epoch_player_144"),_text], "PLAIN DOWN", 5];
player reveal _object;
} else {
{player addMagazine _x;} forEach _temp_removed_array;

View File

@@ -1,4 +1,4 @@
private ["_item","_config","_onLadder","_create","_started","_finished","_animState","_isMedic","_qty","_box","_num_removed","_text","_haskey","_hastoolweapon","_isNear","_hasTinBar"];
private ["_item","_config","_onLadder","_create","_started","_finished","_animState","_isMedic","_qty","_b0x1337","_num_removed","_text","_haskey","_hastoolweapon","_isNear","_hasTinBar"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_56") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
@@ -61,8 +61,8 @@ if(_finished) then {
// output key to backpack if space
_create = _item;
_qty = 1;
_box = unitBackpack player;
_box addWeaponCargoGlobal [_create,_qty];
_b0x1337 = unitBackpack player;
_b0x1337 addWeaponCargoGlobal [_create,_qty];
cutText [(localize "str_epoch_player_60") , "PLAIN DOWN"];
} else {
cutText [(localize "str_epoch_player_61") , "PLAIN DOWN"];

View File

@@ -35,6 +35,7 @@ _item = _this select 2;
_abort = false;
_distance = 3;
_reason = "";
_waterLevel = 0;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
@@ -99,15 +100,17 @@ if (_canDo) then {
// Dry run to see if all parts are available.
_proceed = true;
{
_itemIn = _x select 0;
_countIn = _x select 1;
if (count _selectedRecipeInput > 0) then {
{
_itemIn = _x select 0;
_countIn = _x select 1;
_qty = { (_x == _itemIn) || (configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count magazines player;
_qty = { (_x == _itemIn) || (configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count magazines player;
if(_qty < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _qty); _proceed = false; };
if(_qty < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _qty); _proceed = false; };
} forEach _selectedRecipeInput;
} forEach _selectedRecipeInput;
};
// If all parts proceed
if (_proceed) then {
@@ -156,11 +159,16 @@ if (_canDo) then {
_tobe_removed_total = _tobe_removed_total + _countIn;
{
if( (_removed < _countIn) && ((_x == _itemIn) || configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn)) then {
_configParent = configName(inheritsFrom(configFile >> "cfgMagazines" >> _x));
if( (_removed < _countIn) && ((_x == _itemIn) || _configParent == _itemIn)) then {
_num_removed = ([player,_x] call BIS_fnc_invRemove);
_removed = _removed + _num_removed;
_removed_total = _removed_total + _num_removed;
if(_num_removed >= 1) then {
//diag_log format["debug remove: %1 of: %2", _configParent, _x];
if (_x == "ItemWaterbottle" || _configParent == "ItemWaterbottle") then {
_waterLevel = floor((getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz")) - 1);
};
_temp_removed_array set [count _temp_removed_array,_x];
};
};
@@ -194,6 +202,16 @@ if (_canDo) then {
_itemOut = _x select 0;
_countOut = _x select 1;
if (_itemOut == "ItemWaterbottleUnfilled") then {
if (_waterLevel > 0) then {
_itemOut = format["ItemWaterbottle%1oz",_waterLevel];
};
};
diag_log format["Checking for water level: %1", _waterLevel];
for "_x" from 1 to _countOut do {
player addMagazine _itemOut;
};

View File

@@ -58,6 +58,7 @@ if (_hasoutput and !_invehicle) then {
_iPos = getPosATL player;
_radius = 0.0;
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_item setposATL _iPos;
} else {
_item = _nearByPile select 0;
};

View File

@@ -58,6 +58,7 @@ if (_hasoutput and !_invehicle) then {
_iPos = getPosATL player;
_radius = 0.0;
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_item setposATL _iPos;
} else {
_item = _nearByPile select 0;
};

View File

@@ -0,0 +1,12 @@
private["_action","_liftHeli","_vehicle","_onLadder","_liftUseTime","_dis","_sfx","_liftUsageTime","_animState","_started","_finished","_moved","_attached","_hasAttached","_animState","_isMedic","_posL","_posC","_height"];
_action = _this select 3;
_liftHeli = _action select 0;
_vehicle = _action select 1;
dayz_myLiftVehicle removeAction s_player_heli_detach;
s_player_heli_detach = -1;
detach _vehicle;
_vehicle setVariable["attached",false,true];
_liftHeli setVariable["hasAttached",false,true];

View File

@@ -0,0 +1,104 @@
private ["_action","_liftHeli","_vehicle","_onLadder","_liftUseTime","_dis","_sfx","_liftUsageTime","_animState","_started","_finished","_moved","_attached","_hasAttached","_isMedic","_posL","_posC","_height"];
_action = _this select 3;
_liftHeli = _action select 0;
_vehicle = _action select 1;
player removeAction s_player_heli_lift;
s_player_heli_lift = -1;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
if (_onLadder) exitWith {cutText ["You can't perform this action while on a ladder!" , "PLAIN DOWN"]};
if (vehicle player != player) exitWith {cutText ["You can't perform this action while in a vehicle", "PLAIN DOWN"]};
_liftUseTime = 6;
_dis=10;
_sfx = "repair";
r_interrupt = false;
r_doLoop = true;
_liftUsageTime = time;
_animState = animationState player;
_started = false;
_finished = false;
[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
_moved = false;
while {r_doLoop} do {
_attached = _vehicle getVariable["attached",false];
_hasAttached = _liftHeli getVariable["hasAttached",false];
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
_posL = getPos _liftHeli;
_posC = getPos _vehicle;
_height = (_posL select 2) - (_posC select 2);
/*
if(_height < 20) then {
if(((abs((_posL select 0) - (_posC select 0))) < 10) and ((abs((_posL select 1) - (_posC select 1))) < 10)) then {
_moved = true;
};
} else {
_moved = true;
};
*/
if (_isMedic) then {
_started = true;
};
if(!_isMedic && !r_interrupt && (time - _liftUsageTime) < _liftUseTime) then {
player playActionNow "Medic";
_isMedic = true;
};
if (_started && !_isMedic && (time - _liftUsageTime) > _liftUseTime) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt or _moved or (typeName _attached == "OBJECT") or (typeName _hasAttached == "OBJECT")) then {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if(_finished) then {
_vehicle attachTo [_liftHeli,[0,0,-7]];
_vehicle setVariable["attached",_liftHeli,true];
_liftHeli setVariable["hasAttached",_vehicle,true];
r_doLoop = true;
while {r_doLoop} do {
_attached = _vehicle getVariable["attached",false];
if(((getPos _liftHeli) select 2) < 5) then {
r_doLoop = false;
};
if(typeName _attached == typeName false) then {
r_doLoop = false;
};
};
r_doLoop = false;
detach _vehicle;
_vehicle setVariable["attached",false,true];
_liftHeli setVariable["hasAttached",false,true];
} else {
if(_moved) then {
player switchMove "";
player playActionNow "stop";
cutText [format["the lift heli moved to much from the vehicle that was being lifted!"], "PLAIN DOWN"]; //display text at bottom center of screen on interrupt
} else {
if((typeName _attached == "OBJECT") or (typeName _hasAttached == "OBJECT")) then {
player switchMove "";
player playActionNow "stop";
cutText [format["Another vehicle was attached or the vehicle was attached to another heli!"], "PLAIN DOWN"]; //display text at bottom center of screen on interrupt
} else {
r_interrupt = false;
player switchMove "";
player playActionNow "stop";
cutText [format["You have interrupted lifting a vehicle!"], "PLAIN DOWN"]; //display text at bottom center of screen on interrupt
};
};
};

View File

@@ -54,6 +54,8 @@ if(_type == "backpack") then {
_b0x1337 addBackpackCargoGlobal [_create,_qty];
};
_b0x1337 setPosATL _location;
player reveal _b0x1337;
player action ["Gear", _b0x1337];

View File

@@ -1,7 +1,6 @@
private["_target", "_caller", "_action", "_callerID", "_targetID", "_friendlies", "_rfriendlies"];
private["_target", "_caller", "_callerID", "_targetID", "_friendlies", "_rfriendlies"];
_target = _this select 0;
_caller = _this select 1;
_action = _this select 2;
call fnc_usec_medic_removeActions;
r_action = false;
@@ -15,10 +14,9 @@ _caller setVariable ["friendlies", _friendlies, true];
_rfriendlies = _target getVariable ["friendlies", []];
if (!(_callerID in _rfriendlies)) then {
// caller
titleText ["You have tagged a player as friendly. Waiting for other player to accept.", "PLAIN DOWN"]; // TODO: localize
// target
PVDZE_plr_FriendRQ = _target;
publicVariable "PVDZE_plr_FriendRQ";
};
if !(_callerID in _rfriendlies) then {
titleText [(localize "STR_EPOCH_ACTIONS_8"), "PLAIN DOWN"]; //To Caller
/* PVS/PVC - Skaronator */
PVDZE_send = [_target,"tagFriendly",[_target]]; //To Target
publicVariableServer "PVDZE_send";
};

View File

@@ -21,9 +21,9 @@ if (!_hasclothesitem) exitWith { DZE_ActionInProgress = false; cutText [format[(
if (vehicle player != player) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_85"), "PLAIN DOWN"]};
if (!isNull (unitBackpack player)) exitWith { DZE_ActionInProgress = false; cutText ["\n\nUnable to change clothes while wearing backpack.", "PLAIN DOWN"] };
if (!isNull (unitBackpack player)) exitWith { DZE_ActionInProgress = false; cutText [(localize "STR_EPOCH_ACTIONS_9"), "PLAIN DOWN"] };
if ("CSGAS" in (magazines player)) exitWith { DZE_ActionInProgress = false; cutText ["\n\nUnable to change clothes while carrying a filled chainsaw.", "PLAIN DOWN"] };
if ("CSGAS" in (magazines player)) exitWith { DZE_ActionInProgress = false; cutText [(localize "STR_EPOCH_ACTIONS_10"), "PLAIN DOWN"] };
_myModel = (typeOf player);
_itemNew = "Skin_" + _myModel;
@@ -54,4 +54,4 @@ if ( (isClass(_config >> _itemNew)) ) then {
};
};
};
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -13,9 +13,9 @@ if (!isNull cursorTarget) then {
if (_ent isKindOf "Animal" or _isZombie) then {
_ent setDamage 1;
} else {
//["usecBreakLegs",[_target,player]] call broadcastRpcCallAll;
usecBreakLegs = [_ent,player];
publicVariable "usecBreakLegs";
/* PVS/PVC - Skaronator */
PVDZE_send = [_ent,"PZ_BreakLegs",[_ent,player]];
publicVariableServer "PVDZE_send";
};
[player,"hit",0,false] call dayz_zombieSpeak;

View File

@@ -105,10 +105,14 @@ _availableCans = ["ItemJerrycan","ItemFuelBarrel"];
_newFuel = (_newFuel / _capacity);
if(([player,_canName] call BIS_fnc_invRemove) == 1) then {
PVDZE_veh_SFuel = [_vehicle,_newFuel];
PVDZE_veh_SFuel spawn local_setFuel;
publicVariable "PVDZE_veh_SFuel";
/* PVS/PVC - Skaronator */
if (local _vehicle) then {
[_vehicle,_newFuel] call local_setFuel;
} else {
PVDZE_send = [_vehicle,"SFuel",[_vehicle,_newFuel]];
publicVariableServer "PVDZE_send";
};
// Play sound
[player,"refuel",0,false] call dayz_zombieSpeak;

View File

@@ -17,6 +17,7 @@ _activatingPlayer = player;
_objOwnerID = _obj getVariable["CharacterID","0"];
_isOwnerOfObj = (_objOwnerID == dayz_characterID);
if (_obj in DZE_DoorsLocked) exitWith { DZE_ActionInProgress = false; cutText [(localize "STR_EPOCH_ACTIONS_20"), "PLAIN DOWN"];};
if(_obj getVariable ["GeneratorRunning", false]) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_89"), "PLAIN DOWN"];};
_objectID = _obj getVariable ["ObjectID","0"];
@@ -31,6 +32,7 @@ _isDestructable = _obj isKindOf "BuiltItems";
_isWreck = _objType in DZE_isWreck;
_isRemovable = _objType in DZE_isRemovable;
_isWreckBuilding = _objType in DZE_isWreckBuilding;
_isMine = _objType in ["Land_iron_vein_wreck","Land_silver_vein_wreck","Land_gold_vein_wreck"];
_isModular = _obj isKindOf "ModularItems";
_limit = 3;
@@ -68,7 +70,7 @@ cutText [format[(localize "str_epoch_player_162"),_nameVehicle], "PLAIN DOWN"];
if (_isModular) then {
//allow previous cutText to show, then show this if modular.
cutText ["Deconstructing modular buildables will not refund any components.", "PLAIN"];
cutText [(localize "STR_EPOCH_ACTIONS_21"), "PLAIN DOWN"];
};
// Alert zombies once.
@@ -201,6 +203,14 @@ if (_proceed) then {
_radius = 1;
if (_isMine) then {
if((random 10) <= 4) then {
_gems = ["ItemTopaz","ItemObsidian","ItemSapphire","ItemAmethyst","ItemEmerald","ItemCitrine","ItemRuby"];
_gem = _gems select (floor(random (count _gems)));
_selectedRemoveOutput set [(count _selectedRemoveOutput),[_gem,1]];
};
};
// give refund items
if((count _selectedRemoveOutput) > 0 and !_preventRefund) then {
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];

View File

@@ -112,11 +112,13 @@ _availableCansEmpty = ["ItemJerrycanEmpty","ItemFuelBarrelEmpty"];
if(([player,_canNameEmpty] call BIS_fnc_invRemove) == 1) then {
PVDZE_veh_SFuel = [_vehicle,_newFuel];
/* PVS/PVC - Skaronator */
if (local _vehicle) then {
PVDZE_veh_SFuel spawn local_setFuel;
[_vehicle,_newFuel] call local_setFuel;
} else {
PVDZE_send = [_vehicle,"SFuel",[_vehicle,_newFuel]];
publicVariableServer "PVDZE_send";
};
publicVariable "PVDZE_veh_SFuel";
// Play sound
[player,"refuel",0,false] call dayz_zombieSpeak;
@@ -153,4 +155,4 @@ _availableCansEmpty = ["ItemJerrycanEmpty","ItemFuelBarrelEmpty"];
} forEach magazines player;
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -1,4 +1,4 @@
private ["_veh","_location","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
@@ -21,73 +21,96 @@ _textPartOut = (_this select 3) select 6;
_traderID = (_this select 3) select 7;
_bos = 0;
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
} else {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
_qty = count _obj;
if(_buy_o_sell == "sell") then {
_bos = 1;
};
if (_qty >= _qty_in) then {
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
r_interrupt = false;
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
r_doLoop = false;
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
if (_finished) then {
_canAfford = false;
if(_bos == 1) then {
_distance = dayz_sellDistance_vehicle;
if (_part_in isKindOf "Air") then {
_distance = dayz_sellDistance_air;
};
if (_part_in isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_count = {(typeOf _x) == _part_in} count (nearestObjects [(getPosATL player), [_part_in], _distance]);
if (_count >= _qty_in) then {
_canAfford = true;
};
diag_log format["DEBUG vehicle sell count: %1", _count];
} else {
//buy
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
_total_currency = call epoch_totalCurrency;
_return_change = _total_currency - _trade_total;
if (_return_change >= 0) then {
_canAfford = true;
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
};
if (_finished) then {
// Double check for items
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
if (_canAfford) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
// if (isNil "_obj") then { _obj = "Unknown Vehicle" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
if(_bos == 1) then {
// Selling
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
} else {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
_qty = count _obj;
// Buying
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
};
if (_qty >= _qty_in) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_obj") then { _obj = "Unknown Vehicle" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_obj,inTraderCity];
publicVariableServer "PVDZE_obj_Trade";
publicVariableServer "PVDZE_obj_Trade";
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
if(_buy_o_sell == "buy") then {
waitUntil {!isNil "dayzTradeResult"};
@@ -95,107 +118,123 @@ if (_qty >= _qty_in) then {
if(dayzTradeResult == "PASS") then {
if(_buy_o_sell == "buy") then {
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
if (_done) then {
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
if(_removed == _qty_in) then {
_dir = round(random 360);
// spawn vehicle
_dir = round(random 360);
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
if(count _helipad > 0) then {
_location = (getPosATL (_helipad select 0));
} else {
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
};
//place vehicle spawn marker (local)
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
_location = (getPosATL _veh);
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,true,dayz_characterID,_activatingPlayer];
publicVariableServer "PVDZE_veh_Publish2";
player reveal _veh;
cutText [format[(localize "str_epoch_player_180"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
};
} else {
_obj = _obj select 0;
//check to make sure vehicle has no more than 75% average tire damage
_hitpoints = _obj call vehicle_getHitpoints;
_okToSell = true;
// count parts
_tires = 0;
// total damage
_tireDmg = 0;
_damage = 0;
{
if(["Wheel",_x,false] call fnc_inString) then {
_damage = [_obj,_x] call object_getHit;
_tireDmg = _tireDmg + _damage;
_tires = _tires + 1;
};
} forEach _hitpoints;
// find average tire damage
if(_tireDmg > 0 and _tires > 0) then {
if((_tireDmg / _tires) > 0.75) then {
_okToSell = false;
};
};
if(local _obj) then {
if(_okToSell) then {
if(!isNull _obj and alive _obj) then {
for "_x" from 1 to _qty_out do {
player addMagazine _part_out;
};
_objectID = _obj getVariable ["ObjectID","0"];
_objectUID = _obj getVariable ["ObjectUID","0"];
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZE_obj_Delete";
deleteVehicle _obj;
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
} else {
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
};
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
if(count _helipad > 0) then {
_location = (getPosATL (_helipad select 0));
} else {
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
};
//place vehicle spawn marker (local)
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
_location = (getPosATL _veh);
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,true,dayz_characterID,_activatingPlayer];
publicVariableServer "PVDZE_veh_Publish2";
cutText [format[(localize "STR_EPOCH_PLAYER_180"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
};
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
s_player_parts_crtl = -1;
} else {
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
};
dayzTradeResult = nil;
} else {
//sell
_distance = dayz_sellDistance_vehicle;
if (_part_in isKindOf "Air") then {
_distance = dayz_sellDistance_air;
};
if (_part_in isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_objects = nearestObjects [(getPosATL player), [_part_in], _distance];
diag_log format["DEBUG vehicle sell objects: %1", _objects];
_qty = ({(typeOf _x) == _part_in} count _objects);
if (_qty >= _qty_in) then {
_obj = (_objects select 0);
//check to make sure vehicle has no more than 75% average tire damage
_hitpoints = _obj call vehicle_getHitpoints;
_okToSell = true;
// count parts
_tires = 0;
// total damage
_tireDmg = 0;
_damage = 0;
{
if(["Wheel",_x,false] call fnc_inString) then {
_damage = [_obj,_x] call object_getHit;
_tireDmg = _tireDmg + _damage;
_tires = _tires + 1;
};
} forEach _hitpoints;
// find average tire damage
if(_tireDmg > 0 and _tires > 0) then {
if((_tireDmg / _tires) > 0.75) then {
_okToSell = false;
};
};
_objectID = _obj getVariable ["ObjectID","0"];
_objectUID = _obj getVariable ["ObjectUID","0"];
_notSetup = (_objectID == "0" && _objectUID == "0");
if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {
if(_okToSell) then {
//if(_objectID != "0" && _objectUID != "0") then {
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZE_obj_Delete";
deleteVehicle _obj;
// payout
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
};
} else {
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
};
};
};
};
} else {
_needed = _qty_in - _qty;
if(_buy_o_sell == "buy") then {
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
dayzTradeResult = nil;
} else {
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
};
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
};
};
};
DZE_ActionInProgress = false;

View File

@@ -1,4 +1,4 @@
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_okToSell","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
@@ -21,74 +21,96 @@ _textPartOut = (_this select 3) select 6;
_traderID = (_this select 3) select 7;
_bos = 0;
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
} else {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_boat];
_qty = count _obj;
if(_buy_o_sell == "sell") then {
_bos = 1;
};
if (_qty >= _qty_in) then {
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
r_interrupt = false;
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
r_doLoop = false;
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
if (_finished) then {
_canAfford = false;
if(_bos == 1) then {
_distance = dayz_sellDistance_vehicle;
if (_part_in isKindOf "Air") then {
_distance = dayz_sellDistance_air;
};
if (_part_in isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_count = {(typeOf _x) == _part_in} count (nearestObjects [(getPosATL player), [_part_in], _distance]);
if (_count >= _qty_in) then {
_canAfford = true;
};
diag_log format["DEBUG vehicle sell count: %1", _count];
} else {
//buy
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
_total_currency = call epoch_totalCurrency;
_return_change = _total_currency - _trade_total;
if (_return_change >= 0) then {
_canAfford = true;
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
};
if (_finished) then {
// Double check for items
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
if (_canAfford) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
// if (isNil "_obj") then { _obj = "Unknown Vehicle" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
if(_bos == 1) then {
// Selling
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
} else {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_boat];
_qty = count _obj;
// Buying
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
};
if (_qty >= _qty_in) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_obj") then { _obj = "Unknown Vehicle" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_obj,inTraderCity];
publicVariableServer "PVDZE_obj_Trade";
publicVariableServer "PVDZE_obj_Trade";
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
if(_buy_o_sell == "buy") then {
waitUntil {!isNil "dayzTradeResult"};
@@ -96,99 +118,108 @@ if (_qty >= _qty_in) then {
if(dayzTradeResult == "PASS") then {
if(_buy_o_sell == "buy") then {
// First select key color
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
// First select key color
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
// then select number from 1 - 2500
_keyNumber = (floor(random 2500)) + 1;
// then select number from 1 - 2500
_keyNumber = (floor(random 2500)) + 1;
// Combine to key (eg.ItemKeyYellow2494) classname
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
// Combine to key (eg.ItemKeyYellow2494) classname
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
_config = _keySelected;
_isOk = [player,_config] call BIS_fnc_invAdd;
waitUntil {!isNil "_isOk"};
if (_isOk and _isKeyOK) then {
_config = _keySelected;
_isOk = [player,_config] call BIS_fnc_invAdd;
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
if(_removed == _qty_in) then {
_dir = round(random 360);
waitUntil {!isNil "_isOk"};
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
if(count _helipad > 0) then {
_location = (getPosATL (_helipad select 0));
} else {
_location = [(position player),0,20,1,2,2000,0] call BIS_fnc_findSafePos;
};
//place vehicle spawn marker (local)
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
if (_isOk and _isKeyOK) then {
_location = (getPosATL _veh);
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
publicVariableServer "PVDZE_veh_Publish2";
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
if (_done) then {
player reveal _veh;
// spawn vehicle
_dir = round(random 360);
cutText [format[("Bought %3 for %1 %2, key added to toolbelt."),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
if(count _helipad > 0) then {
_location = (getPosATL (_helipad select 0));
} else {
player removeMagazine _keySelected;
_location = [(position player),0,20,1,2,2000,0] call BIS_fnc_findSafePos;
};
} else {
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
//place vehicle spawn marker (local)
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
_location = (getPosATL _veh);
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
publicVariableServer "PVDZE_veh_Publish2";
cutText [format[(localize "STR_EPOCH_ACTIONS_11"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
};
} else {
_obj = _obj select 0;
_okToSell = true;
if(!local _obj) then {
_okToSell = false;
};
if(_okToSell and !isNull _obj and alive _obj) then {
for "_x" from 1 to _qty_out do {
player addMagazine _part_out;
};
_objectID = _obj getVariable ["ObjectID","0"];
_objectUID = _obj getVariable ["ObjectUID","0"];
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZE_obj_Delete";
deleteVehicle _obj;
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
};
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
};
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
s_player_parts_crtl = -1;
} else {
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
};
dayzTradeResult = nil;
};
};
} else {
//sell
_distance = dayz_sellDistance_vehicle;
if (_part_in isKindOf "Air") then {
_distance = dayz_sellDistance_air;
};
if (_part_in isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_objects = nearestObjects [(getPosATL player), [_part_in], _distance];
} else {
_needed = _qty_in - _qty;
if(_buy_o_sell == "buy") then {
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
diag_log format["DEBUG vehicle sell objects: %1", _objects];
_qty = ({(typeOf _x) == _part_in} count _objects);
if (_qty >= _qty_in) then {
_obj = (_objects select 0);
_objectID = _obj getVariable ["ObjectID","0"];
_objectUID = _obj getVariable ["ObjectUID","0"];
_notSetup = (_objectID == "0" && _objectUID == "0");
if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZE_obj_Delete";
deleteVehicle _obj;
// payout
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
};
};
};
dayzTradeResult = nil;
} else {
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
};
};
};
DZE_ActionInProgress = false;

View File

@@ -1,4 +1,4 @@
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
@@ -21,82 +21,96 @@ _textPartOut = (_this select 3) select 6;
_traderID = (_this select 3) select 7;
_bos = 0;
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
} else {
if (_part_in isKindOf "Air") then {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_air];
} else {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
};
_qty = count _obj;
if(_buy_o_sell == "sell") then {
_bos = 1;
};
if (_qty >= _qty_in) then {
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
r_interrupt = false;
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
r_doLoop = false;
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
if (_finished) then {
_canAfford = false;
if(_bos == 1) then {
_distance = dayz_sellDistance_vehicle;
if (_part_in isKindOf "Air") then {
_distance = dayz_sellDistance_air;
};
if (_part_in isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_count = {(typeOf _x) == _part_in} count (nearestObjects [(getPosATL player), [_part_in], _distance]);
if (_count >= _qty_in) then {
_canAfford = true;
};
diag_log format["DEBUG vehicle sell count: %1", _count];
} else {
//buy
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
_total_currency = call epoch_totalCurrency;
_return_change = _total_currency - _trade_total;
if (_return_change >= 0) then {
_canAfford = true;
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
};
if (_finished) then {
// Double check for items
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
if (_canAfford) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
// if (isNil "_obj") then { _obj = "Unknown Vehicle" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
if(_bos == 1) then {
// Selling
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
} else {
if (_part_in isKindOf "AIR") then {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_air];
} else {
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
};
_qty = count _obj;
// Buying
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
};
if (_qty >= _qty_in) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_obj") then { _obj = "Unknown Vehicle" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_obj,inTraderCity];
publicVariableServer "PVDZE_obj_Trade";
publicVariableServer "PVDZE_obj_Trade";
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
if(_buy_o_sell == "buy") then {
waitUntil {!isNil "dayzTradeResult"};
@@ -104,125 +118,143 @@ if (_qty >= _qty_in) then {
if(dayzTradeResult == "PASS") then {
if(_buy_o_sell == "buy") then {
// First select key color
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
// First select key color
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
// then select number from 1 - 2500
_keyNumber = (floor(random 2500)) + 1;
// then select number from 1 - 2500
_keyNumber = (floor(random 2500)) + 1;
// Combine to key (eg.ItemKeyYellow2494) classname
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
// Combine to key (eg.ItemKeyYellow2494) classname
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
_config = _keySelected;
_isOk = [player,_config] call BIS_fnc_invAdd;
waitUntil {!isNil "_isOk"};
if (_isOk and _isKeyOK) then {
_config = _keySelected;
_isOk = [player,_config] call BIS_fnc_invAdd;
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
if(_removed == _qty_in) then {
_dir = round(random 360);
waitUntil {!isNil "_isOk"};
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
if(count _helipad > 0) then {
_location = (getPosATL (_helipad select 0));
} else {
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
};
//place vehicle spawn marker (local)
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
if (_isOk and _isKeyOK) then {
_location = (getPosATL _veh);
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
if (_done) then {
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
publicVariableServer "PVDZE_veh_Publish2";
cutText [format[("Bought %3 for %1 %2, key added to toolbelt."),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
// spawn vehicle
_dir = round(random 360);
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
if(count _helipad > 0) then {
_location = (getPosATL (_helipad select 0));
} else {
player removeMagazine _keySelected;
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
};
} else {
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
//place vehicle spawn marker (local)
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
_location = (getPosATL _veh);
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
publicVariableServer "PVDZE_veh_Publish2";
cutText [format[(localize "STR_EPOCH_ACTIONS_11"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
};
} else {
_obj = _obj select 0;
//check to make sure vehicle has no more than 75% average tire damage
_hitpoints = _obj call vehicle_getHitpoints;
_okToSell = true;
// count parts
_tires = 0;
// total damage
_tireDmg = 0;
_damage = 0;
{
if(["Wheel",_x,false] call fnc_inString) then {
_damage = [_obj,_x] call object_getHit;
_tireDmg = _tireDmg + _damage;
_tires = _tires + 1;
};
} forEach _hitpoints;
// find average tire damage
if(_tireDmg > 0 and _tires > 0) then {
if((_tireDmg / _tires) > 0.75) then {
_okToSell = false;
};
};
if(local _obj and !isNull _obj and alive _obj) then {
if(_okToSell) then {
for "_x" from 1 to _qty_out do {
player addMagazine _part_out;
};
_objectID = _obj getVariable ["ObjectID","0"];
_objectUID = _obj getVariable ["ObjectUID","0"];
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZE_obj_Delete";
deleteVehicle _obj;
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
};
} else {
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
};
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
};
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
s_player_parts_crtl = -1;
} else {
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
};
dayzTradeResult = nil;
} else {
//sell
_distance = dayz_sellDistance_vehicle;
if (_part_in isKindOf "Air") then {
_distance = dayz_sellDistance_air;
};
if (_part_in isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_objects = nearestObjects [(getPosATL player), [_part_in], _distance];
diag_log format["DEBUG vehicle sell objects: %1", _objects];
_qty = ({(typeOf _x) == _part_in} count _objects);
if (_qty >= _qty_in) then {
_obj = (_objects select 0);
//check to make sure vehicle has no more than 75% average tire damage
_hitpoints = _obj call vehicle_getHitpoints;
_okToSell = true;
// count parts
_tires = 0;
// total damage
_tireDmg = 0;
_damage = 0;
{
if(["Wheel",_x,false] call fnc_inString) then {
_damage = [_obj,_x] call object_getHit;
_tireDmg = _tireDmg + _damage;
_tires = _tires + 1;
};
} forEach _hitpoints;
// find average tire damage
if(_tireDmg > 0 and _tires > 0) then {
if((_tireDmg / _tires) > 0.75) then {
_okToSell = false;
};
};
_objectID = _obj getVariable ["ObjectID","0"];
_objectUID = _obj getVariable ["ObjectUID","0"];
_notSetup = (_objectID == "0" && _objectUID == "0");
if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {
if(_okToSell) then {
//if(_objectID != "0" && _objectUID != "0") then {
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZE_obj_Delete";
deleteVehicle _obj;
// payout
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
};
} else {
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
};
};
};
};
} else {
_needed = _qty_in - _qty;
if(_buy_o_sell == "buy") then {
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
dayzTradeResult = nil;
} else {
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
};
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
};
};
};
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -6,6 +6,8 @@ DZE_ActionInProgress = true;
_activatingPlayer = player;
diag_log format["DEBUG BACKPACK: %1", _this];
_part_out = (_this select 3) select 0;
_part_in = (_this select 3) select 1;
_qty_out = (_this select 3) select 2;
@@ -14,83 +16,96 @@ _buy_o_sell = (_this select 3) select 4;
_textPartIn = (_this select 3) select 5;
_textPartOut = (_this select 3) select 6;
_traderID = (_this select 3) select 7;
_bos = 0;
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
} else {
_bos = 0;
if(_buy_o_sell == "sell") then {
_bos = 1;
_qty = 0;
_bag = unitBackpack player;
_class = typeOf _bag;
if(_class == _part_in) then {
_qty = 1;
};
};
if (_qty >= _qty_in) then {
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
// force animation
player playActionNow "Medic";
[1,1] call dayz_HungerThirst;
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
r_interrupt = false;
while {r_doLoop} do {
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
r_doLoop = false;
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if (_finished) then {
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
DZE_ActionInProgress = false;
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
};
// Double check we still have parts
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
} else {
_qty = 0;
_bag = unitBackpack player;
_class = typeOf _bag;
if(_class == _part_in) then {
_qty = 1;
if (_finished) then {
_canAfford = false;
if(_bos == 1) then {
//sell
_qty = 0;
_bag = unitBackpack player;
_class = typeOf _bag;
if(_class == _part_in) then {
_qty = 1;
};
if (_qty >= _qty_in) then {
if((typeOf (unitBackpack player)) == _part_in) then {
removeBackpack player;
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
};
};
if (_qty >= _qty_in) then {
} else {
//buy
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
_total_currency = call epoch_totalCurrency;
_return_change = _total_currency - _trade_total;
if (_return_change >= 0) then {
_canAfford = true;
};
};
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_bag") then { _bag = "Unknown Backpack" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_bag,inTraderCity];
publicVariableServer "PVDZE_obj_Trade";
if (_canAfford) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_bag") then { _bag = "Unknown Backpack" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
if(_bos == 1) then {
// Selling
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
} else {
// Buying
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
};
publicVariableServer "PVDZE_obj_Trade";
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
if(_bos == 0) then {
waitUntil {!isNil "dayzTradeResult"};
@@ -98,38 +113,25 @@ if (_qty >= _qty_in) then {
if(dayzTradeResult == "PASS") then {
if(_buy_o_sell == "buy") then {
_num_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
if(_num_removed == _qty_in) then {
removeBackpack player;
player addBackpack _part_out;
};
} else {
// Sell
if((typeOf (unitBackpack player)) == _part_in) then {
removeBackpack player;
for "_x" from 1 to _qty_out do {
player addMagazine _part_out;
};
};
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
if (_done) then {
removeBackpack player;
player addBackpack _part_out;
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
s_player_parts_crtl = -1;
} else {
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
};
dayzTradeResult = nil;
} else {
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
dayzTradeResult = nil;
} else {
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
};
} else {
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
};
DZE_ActionInProgress = false;

View File

@@ -1,11 +1,9 @@
private ["_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_textPartIn","_textPartOut","_bos","_needed","_started","_finished","_animState","_isMedic","_total_parts_out","_abort","_removed","_tradeCounter","_next_highest_bar","_third_highest_bar","_next_highest_conv","_third_highest_conv","_third_parts_out_raw","_third_parts_out","_remainder","_next_parts_out_raw","_next_parts_out","_activatingPlayer","_traderID","_total_trades"];
private ["_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_textPartIn","_textPartOut","_bos","_needed","_started","_finished","_animState","_isMedic","_total_parts_out","_abort","_removed","_activatingPlayer","_traderID","_done"];
// [part_out,part_in, qty_out, qty_in,];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"] };
DZE_ActionInProgress = true;
_total_parts_out = 0;
_activatingPlayer = player;
_part_out = (_this select 3) select 0;
@@ -17,40 +15,20 @@ _textPartIn = (_this select 3) select 5;
_textPartOut = (_this select 3) select 6;
_traderID = (_this select 3) select 7;
_removed = 0;
_tradeCounter = 0;
_bos = 0;
if(_buy_o_sell == "sell") then {
_bos = 1;
};
// Get total parts in
_qty = {_x == _part_in} count magazines player;
// Find number of possible trades
_total_trades = floor(_qty / _qty_in);
_abort = false;
if(_total_trades < 1) exitWith {
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
// perform number of total trades
for "_x" from 1 to _total_trades do {
r_autoTrade = true;
while {r_autoTrade} do {
_removed = 0;
_tradeCounter = _tradeCounter + 1;
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
// cutText ["Starting trade, stand still to complete.", "PLAIN DOWN"];
if(_total_trades == 1) then {
cutText [format[(localize "str_epoch_player_105"),_tradeCounter,_total_trades] , "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_187"),_tradeCounter,_total_trades] , "PLAIN DOWN"];
};
[1,1] call dayz_HungerThirst;
player playActionNow "Medic";
@@ -92,182 +70,74 @@ for "_x" from 1 to _total_trades do {
};
if (_finished) then {
_qty = {_x == _part_in} count magazines player;
if (_qty >= _qty_in) then {
_part_inClass = configFile >> "CfgMagazines" >> _part_in;
_removed = _removed + ([player,_part_inClass,_qty_in] call BIS_fnc_invRemove);
if (_removed == _qty_in) then {
_canAfford = false;
if(_bos == 1) then {
// Continue with trade.
if (isNil "_part_in") then { _part_in = "Unknown Item" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity];
publicVariableServer "PVDZE_obj_Trade";
waitUntil {!isNil "dayzTradeResult"};
if(dayzTradeResult == "PASS") then {
// total of all parts
_total_parts_out = _total_parts_out + _qty_out;
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
_abort = true;
// Return items taken
for "_x" from 1 to _removed do {
player addMagazine _part_in;
};
//sell
_qty = {_x == _part_in} count magazines player;
if (_qty >= _qty_in) then {
_part_inClass = configFile >> "CfgMagazines" >> _part_in;
_removed = _removed + ([player,_part_inClass,_qty_in] call BIS_fnc_invRemove);
if (_removed == _qty_in) then {
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
};
dayzTradeResult = nil;
} else {
// Return items from botched trade.
for "_x" from 1 to _removed do {
player addMagazine _part_in;
};
_abort = true;
};
} else {
//buy
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
_total_currency = call epoch_totalCurrency;
_return_change = _total_currency - _trade_total;
if (_return_change >= 0) then {
_canAfford = true;
};
};
diag_log format["DEBUG TRADER DONE?: %1", _canAfford];
if (_canAfford) then {
// Continue with trade.
if (isNil "_part_in") then { _part_in = "Unknown Item" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
if(_bos == 1) then {
// Selling
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
} else {
// Buying
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
};
publicVariableServer "PVDZE_obj_Trade";
if(_bos == 0) then {
// only wait for result when buying
waitUntil {!isNil "dayzTradeResult"};
if(dayzTradeResult == "PASS") then {
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
if (_done) then {
for "_x" from 1 to _qty_out do {
player addMagazine _part_out;
};
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
};
} else {
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
dayzTradeResult = nil;
} else {
_qty = {_x == _part_in} count magazines player;
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
_abort = true;
};
};
if(_abort) exitWith {r_autoTrade = false};
sleep 1;
if(_abort) exitWith {};
};
// pay out
if(_total_parts_out >= 1) then {
//diag_log format["DEBUG TRADE #: %1", _total_parts_out];
if(_bos == 1) then {
//convert currency trades into next bar
// 10 ItemCopperBar > ItemCopperBar10oz
// 3 ItemCopperBar10oz > ItemSilverBar
// 10 ItemSilverBar > ItemSilverBar10oz
// 3 ItemSilverBar10oz > ItemGoldBar
// 10 ItemGoldBar > ItemGoldBar10oz
_next_highest_bar = "NA";
_third_highest_bar = "NA";
_next_highest_conv = 10000;
_third_highest_conv = 10000;
switch(true)do{
case (_part_out == "ItemCopperBar"): {
_next_highest_bar = "ItemCopperBar10oz";
_third_highest_bar = "ItemSilverBar";
_next_highest_conv = 10;
_third_highest_conv = 3;
};
case (_part_out == "ItemCopperBar10oz"): {
_next_highest_bar = "ItemSilverBar";
_third_highest_bar = "ItemSilverBar10oz";
_next_highest_conv = 3;
_third_highest_conv = 10;
};
case (_part_out == "ItemSilverBar"): {
_next_highest_bar = "ItemSilverBar10oz";
_third_highest_bar = "ItemGoldBar";
_next_highest_conv = 10;
_third_highest_conv = 3;
};
case (_part_out == "ItemSilverBar10oz"): {
_next_highest_bar = "ItemGoldBar";
_third_highest_bar = "ItemGoldBar10oz";
_next_highest_conv = 3;
_third_highest_conv = 10;
};
case (_part_out == "ItemGoldBar"): {
_next_highest_bar = "ItemGoldBar10oz";
_third_highest_bar = "NA";
_next_highest_conv = 10;
_third_highest_conv = 10000;
};
};
//diag_log format["DEBUG TRADE part: %1 next: %2", _part_out,_next_highest_bar];
if(_total_parts_out >= _next_highest_conv) then {
_next_parts_out_raw = _total_parts_out / _next_highest_conv;
// whole parts
_next_parts_out = floor(_next_parts_out_raw);
//diag_log format["DEBUG TRADE next whole parts: %1 part: %2", _next_parts_out,_next_highest_bar];
// find any whole remains
_remainder = floor((_next_parts_out_raw - _next_parts_out) * _next_highest_conv);
//diag_log format["DEBUG TRADE remainder parts: %1 part: %2", _remainder,_part_out];
for "_x" from 1 to _remainder do {
player addMagazine _part_out;
};
// Find if needs further conversion
if (_next_parts_out >= _third_highest_conv) then {
_third_parts_out_raw = _next_parts_out / _third_highest_conv;
// whole parts
_third_parts_out = floor(_third_parts_out_raw);
//diag_log format["DEBUG TRADE third whole parts: %1 part: %2", _third_parts_out,_third_highest_bar];
for "_x" from 1 to _third_parts_out do {
player addMagazine _third_highest_bar;
};
// find any whole remains
_remainder = floor((_third_parts_out_raw - _third_parts_out) * _third_highest_conv);
//diag_log format["DEBUG TRADE remainder parts: %1 part: %2", _remainder,_next_highest_bar];
for "_x" from 1 to _remainder do {
player addMagazine _next_highest_bar;
};
} else {
//diag_log format["DEBUG TRADE next parts: %1 part: %2", _next_parts_out,_next_highest_bar];
for "_x" from 1 to _next_parts_out do {
player addMagazine _next_highest_bar;
};
};
} else {
//diag_log "DEBUG TRADE SELLING NORMALLY";
for "_x" from 1 to _total_parts_out do {
player addMagazine _part_out;
};
};
} else {
//diag_log "DEBUG TRADE BUYING";
for "_x" from 1 to _total_parts_out do {
player addMagazine _part_out;
};
};
};
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -7,21 +7,9 @@ DZE_ActionInProgress = true;
s_player_parts_crtl = 1;
_metals_conversion = [
["ItemTinBar","ItemAluminumBar",1,2,"buy","Aluminum","Tin",108],
["ItemAluminumBar","ItemTinBar",2,1,"buy","Tin","Aluminum",107],
["ItemCopperBar","ItemTinBar",1,2,"buy","Tin","Copper",106],
["ItemTinBar","ItemCopperBar",2,1,"buy","Copper","Tin",105],
["ItemSilverBar","ItemCopperBar10oz",1,3,"buy","10oz Copper","Silver",104],
["ItemCopperBar10oz","ItemSilverBar",3,1,"buy","Silver","10oz Copper",103],
["ItemGoldBar","ItemSilverBar10oz",1,3,"buy","10oz Silver","Gold",102],
["ItemSilverBar10oz","ItemGoldBar",3,1,"buy","Gold","10oz Silver",101],
["ItemGoldBar","ItemSilverBar10oz",1,10,"buy","10oz Silver","Gold",102],
["ItemSilverBar10oz","ItemGoldBar",10,1,"buy","Gold","10oz Silver",101],
["ItemBriefcase100oz","ItemGoldBar10oz",1,12,"buy","10oz Gold","Full Briefcase",99]
];
// Static Menu
@@ -35,4 +23,4 @@ _metals_conversion = [
_cancel = player addAction ["Cancel", "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""];
s_player_parts set [count s_player_parts,_cancel];
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -6,6 +6,8 @@ DZE_ActionInProgress = true;
_activatingPlayer = player;
diag_log format["DEBUG WEAPONS: %1", _this];
_part_out = (_this select 3) select 0;
_part_in = (_this select 3) select 1;
_qty_out = (_this select 3) select 2;
@@ -14,112 +16,170 @@ _buy_o_sell = (_this select 3) select 4;
_textPartIn = (_this select 3) select 5;
_textPartOut = (_this select 3) select 6;
_traderID = (_this select 3) select 7;
_bos = 0;
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
_bos = 0;
_abort = false;
_msg = "";
if(_buy_o_sell == "sell") then {
_bos = 1;
_msg = "Need the weapon in your hands before you can sell it.";
_config = (configFile >> "CfgWeapons" >> _part_in);
_configName = configName(_config);
_abort = (!(_configName in (weapons player)));
if(_isToolBelt or _isBinocs) then {
_msg = "Need the item on your toolbelt before you can sell it.";
};
} else {
_qty = {_x == _part_in} count weapons player;
_bos = 1;
// buying item type must NOT exist if rifle or pistol
_msg = "Drop or sell your current weapon before you can buy a new one.";
_config = (configFile >> "CfgWeapons" >> _part_out);
_configName = configName(_config);
_wepType = getNumber(_config >> "Type");
_isPistol = (_wepType == 2);
_isRifle = (_wepType == 1);
_isToolBelt = (_wepType == 131072);
_isBinocs = (_wepType == 4096);
if (_isRifle) then {
_abort = ((primaryWeapon player) != "");
};
if (_isPistol) then {
_secondaryWeapon = "";
{
if ((getNumber (configFile >> "CfgWeapons" >> _x >> "Type")) == 2) exitWith {
_secondaryWeapon = _x;
};
} forEach (weapons player);
_abort = (_secondaryWeapon != "");
};
if(_isToolBelt or _isBinocs) then {
_abort = (_configName in (weapons player));
_msg = "Drop or sell your current toolbelt item before you can buy a new one.";
};
};
if (_qty >= _qty_in) then {
if (_abort) exitWith {
cutText [_msg, "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
[1,1] call dayz_HungerThirst;
// force animation
player playActionNow "Medic";
// force animation
player playActionNow "Medic";
[1,1] call dayz_HungerThirst;
//_dis=20;
//_sfx = "repair";
//[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
//[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
r_interrupt = false;
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
r_doLoop = false;
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if (_finished) then {
if (!_finished) exitWith {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
DZE_ActionInProgress = false;
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
};
// double check for all parts
if(_buy_o_sell == "buy") then {
_qty = {_x == _part_in} count magazines player;
} else {
_qty = {_x == _part_in} count weapons player;
};
if (_finished) then {
_canAfford = false;
if(_bos == 1) then {
//sell
_qty = {_x == _part_in} count weapons player;
if (_qty >= _qty_in) then {
_part_inClass = configFile >> "CfgWeapons" >> _part_in;
_removed = ([player,_part_inClass,_qty_in] call BIS_fnc_invRemove);
if (_removed == _qty_in) then {
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
};
};
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_part_out") then { _part_out = "Unknown Weapon/Magazine" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity];
publicVariableServer "PVDZE_obj_Trade";
} else {
//buy
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
_total_currency = call epoch_totalCurrency;
_return_change = _total_currency - _trade_total;
if (_return_change >= 0) then {
_canAfford = true;
};
};
if (_canAfford) then {
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
if (isNil "_part_out") then { _part_out = "Unknown Weapon/Magazine" };
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
if(_bos == 1) then {
// Selling
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
} else {
// Buying
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
};
publicVariableServer "PVDZE_obj_Trade";
if(_bos == 0) then {
waitUntil {!isNil "dayzTradeResult"};
//diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
if(dayzTradeResult == "PASS") then {
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
if(_removed == _qty_in) then {
for "_x" from 1 to _qty_out do {
if(_buy_o_sell == "buy") then {
player addWeapon _part_out;
} else {
player addMagazine _part_out;
};
};
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
if (_done) then {
player addWeapon _part_out;
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
s_player_parts_crtl = -1;
} else {
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
};
dayzTradeResult = nil;
} else {
// selling
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
};
};
} else {
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
dayzTradeResult = nil;
} else {
if(_bos == 0) then {
_qty = {_x == _part_in} count magazines player;
} else {
_qty = {_x == _part_in} count weapons player;
};
_needed = _qty_in - _qty;
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
};
};
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -170,7 +170,7 @@ if (typename _this == typename objnull) then {
//--- End
player removeaction bis_fnc_halo_action;
(finddisplay 46) displayremoveeventhandler ["keydown",bis_fnc_halo_keydown_eh];
// ppeffectdestroy bis_fnc_halo_ppRadialBlur;
ppeffectdestroy bis_fnc_halo_ppRadialBlur;
deletevehicle bis_fnc_halo_clouds;
bis_fnc_halo_clouds = nil;

View File

@@ -25,7 +25,7 @@ _lootChance = getNumber (_config >> "lootChance");
_index = _weights select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _itemType select 1 , _iPos, 0.0] call spawn_loot;
_obj setVariable ["created",(DateToNumber date),true];
//_obj setVariable ["created",(DateToNumber date),true];
};
};
} forEach _positions;
@@ -45,8 +45,8 @@ _positionsSmall = [] + getArray (_config >> "lootPosSmall");
_index = _weights select _index;
_itemType = _itemTypesSmall select _index;
[_itemType select 0, _itemType select 1 , _iPos, 0.0] call spawn_loot_small;
_obj setVariable ["created",(DateToNumber date),true];
//_obj setVariable ["created",(DateToNumber date),true];
};
};
} forEach _positionsSmall;
//["building_spawnLoot.sqf",(diag_tickTime - _t1)] call fnc_dump;
//["building_spawnLoot.sqf",(diag_tickTime - _t1)] call fnc_dump;

View File

@@ -0,0 +1,127 @@
// Made for DayZ Epoch by vbawol
private ["_trade_total","_part_inWorth","_part_in_configClass","_total_currency","_part","_worth","_return_change","_total","_briefcase_100oz","_gold_10oz_a","_gold_10oz_b","_gold_10oz","_gold_1oz_a","_gold_1oz_b","_gold_1oz","_silver_10oz_a","_silver_10oz_b","_silver_10oz","_silver_1oz_a","_silver_1oz_b","_silver_1oz","_successful","_buyOrSell","_total_items"];
_successful = false;
_canAfford = false;
_buyOrSell = (_this select 1);
diag_log format["DEBUG TRADER INPUT: %1", (_this select 0)];
// buying in currency
_trade_total = (_this select 0) call epoch_itemCost;
diag_log format["DEBUG TRADER INPUT TOTAL: %1", _trade_total];
_total_currency_dry = call epoch_totalCurrency;
_return_change_dry = 0;
if (_buyOrSell == 0) then {
//buy
_return_change_dry = _total_currency_dry - _trade_total;
} else {
//sell
_return_change_dry = _total_currency_dry + _trade_total;
};
diag_log format["DEBUG TRADER DRY: %1", _return_change_dry];
if (_return_change_dry >= 0) then {
_canAfford = true;
};
if (_canAfford) then {
// total currency
_total_currency = 0;
{
_part = (configFile >> "CfgMagazines" >> _x);
_worth = (_part >> "worth");
if isNumber (_worth) then {
if (([player,_part,1] call BIS_fnc_invRemove) == 1) then {
_total_currency = _total_currency + getNumber(_worth);
};
};
} forEach (magazines player);
diag_log format["DEBUG TRADER INPUT CURRENCY TOTAL: %1", _total_currency];
_return_change = 0;
if (_buyOrSell == 0) then {
//buy
_return_change = _total_currency - _trade_total;
} else {
//sell
_return_change = _total_currency + _trade_total;
};
diag_log format["DEBUG TRADER CHANGE: %1", _return_change];
if (_return_change >= 0) then {
// total currency
_total = _return_change;
_briefcase_100oz = floor(_total / 10000);
_gold_10oz_a = floor(_total / 1000);
_gold_10oz_b = _briefcase_100oz * 10;
_gold_10oz = (_gold_10oz_a - _gold_10oz_b);
_gold_1oz_a = floor(_total / 100);
_gold_1oz_b = _gold_10oz_a * 10;
_gold_1oz = (_gold_1oz_a - _gold_1oz_b);
_silver_10oz_a = floor(_total / 10);
_silver_10oz_b = _gold_1oz_a * 10;
_silver_10oz = (_silver_10oz_a - _silver_10oz_b);
_silver_1oz_a = floor(_total);
_silver_1oz_b = _silver_10oz_a * 10;
_silver_1oz = (_silver_1oz_a - _silver_1oz_b);
if (_briefcase_100oz > 0) then {
for "_x" from 1 to _briefcase_100oz do {
player addMagazine "ItemBriefcase100oz";
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _briefcase_100oz, "ItemBriefcase100oz"];
};
};
if (_gold_10oz > 0) then {
if (_gold_10oz == 1) then {
player addMagazine "ItemGoldBar10oz";
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _gold_10oz, "ItemGoldBar10z"];
} else {
player addMagazine format["ItemBriefcase%1oz",floor(_gold_10oz*10)];
diag_log format["DEBUG TRADER CHANG MADE: ItemBriefcase%1oz", floor(_gold_10oz*10)];
};
};
if (_gold_1oz > 0) then {
if (_gold_1oz == 1) then {
player addMagazine "ItemGoldBar";
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _gold_1oz, "ItemGoldBar"];
} else {
player addMagazine format["ItemGoldBar%1oz",_gold_1oz];
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _gold_1oz, "ItemGoldBar"];
};
};
if (_silver_10oz > 0) then {
for "_x" from 1 to _silver_10oz do {
player addMagazine "ItemSilverBar10oz";
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _silver_10oz, "ItemSilverBar10z"];
};
};
if (_silver_1oz > 0) then {
if (_silver_1oz == 1) then {
player addMagazine "ItemSilverBar";
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _silver_1oz, "ItemSilverBar"];
} else {
player addMagazine format["ItemSilverBar%1oz",_silver_1oz];
diag_log format["DEBUG TRADER CHANG MADE: %1 x %2", _silver_1oz, "ItemSilverBar"];
};
};
_successful = true;
};
};
_successful

View File

@@ -0,0 +1,45 @@
/*
Description:
Checks whether the player has the required items (magazines) or not
and displays a message if an item is missing.
Parameter(s):
_this: <array> list of item names the player is required to have (can also be an sub-array with item name and quantity)
Returns:
Boolean (true if the player has all required items)
How to use:
_hasItems = [["PartGeneric",4], "PartEngine", ["ItemGenerator"]] call player_checkItems;
*/
private ["_items","_inventory","_hasItems","_itemIn","_countIn","_qty","_missing","_missingQty","_textMissing"];
_items = _this;
_inventory = magazines player;
_hasItems = true;
{
_itemIn = "";
_countIn = 1;
if (typeName _x == "ARRAY") then {
if (count _x > 0) then {
_itemIn = _x select 0;
if (count _x > 1) then {
_countIn = _x select 1;
};
};
} else {
_itemIn = _x;
};
if (_itemIn != "") then {
_qty = { (_x == _itemIn) || (configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count _inventory;
} else {
_qty = _countIn;
};
if (_qty < _countIn) exitWith {
_missing = _itemIn;
_missingQty = (_countIn - _qty);
_hasItems = false;
_textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName");
cutText [format[(localize "STR_EPOCH_ACTIONS_12"), _missingQty, _textMissing], "PLAIN DOWN"];
};
} forEach _items;
_hasItems

View File

@@ -24,29 +24,6 @@ _humanityHit = 0;
_myKills = 0;
_unitIsPlayer = _unit == player;
//Publish Damage
//player sidechat format["Processed damage for %1",_unit];
//USEC_SystemMessage = format["CLIENT: %1 damaged for %2 (in vehicle: %5)",_unit,_damage,_isMinor,_isHeadHit,_inVehicle];
//PublicVariable "USEC_SystemMessage";
/*
if (_isPlayer) then {
if (_damage > 0.1) then {
dayz_canDisconnect = false;
//["PVDZE_plr_DiscAdd",getPlayerUID player] call callRpcProcedure;
PVDZE_plr_DiscAdd = getPlayerUID player;
publicVariableServer "PVDZE_plr_DiscAdd";
dayz_damageCounter = time;
//Ensure Control is visible
_display = uiNamespace getVariable 'DAYZ_GUI_display';
_control = _display displayCtrl 1204;
_control ctrlShow true;
};
};
*/
if (_unitIsPlayer) then {
if (_hit == "") then {
if ((_source != player) and _isPlayer) then {
@@ -62,11 +39,16 @@ if (_unitIsPlayer) then {
//Process Morality Hit
_myKills = 0 max (1 - (player getVariable ["humanKills",0]) / 5);
_humanityHit = -100 * _myKills * _damage;
//["PVDZE_plr_HumanityChange",[_source,_humanityHit,30]] call broadcastRpcCallAll;
/* PVS/PVC - Skaronator */
if (_humanityHit != 0) then {
PVDZE_plr_HumanityChange = [_source,_humanityHit,30];
publicVariable "PVDZE_plr_HumanityChange";
[_source,_humanityHit] spawn {
private ["_source","_humanityHit"];
_source = _this select 0;
_humanityHit = _this select 1;
PVDZE_send = [_source,"Humanity",[_source,_humanityHit,30]];
publicVariableServer "PVDZE_send";
};
};
};
};
@@ -177,9 +159,15 @@ if (_damage > 0.4) then { //0.25
if(!_isPZombie) then {
//Create Wound
_unit setVariable[_wound,true,true];
[_unit,_wound,_hit] spawn fnc_usec_damageBleed;
usecBleed = [_unit,_wound,_hit];
publicVariable "usecBleed";
/* PVS/PVC - Skaronator */
_pos = getPosATL _unit;
_inRange = _pos nearEntities ["CAManBase",1000];
{
PVDZE_send = [_x,"PlayerBleed",[_unit,_wound,_hit]];
publicVariableServer "PVDZE_send";
} forEach _inRange;
//Set Injured if not already
_isInjured = _unit getVariable["USEC_injured",false];

View File

@@ -0,0 +1,26 @@
/*
Description:
Checks whether the player has the required tools equipped or not
and displays a message if a tool is missing from the tool belt.
Parameter(s):
_this: <array> list of tool names the player is required to have
Returns:
Boolean (true if the player has all required tools)
How to use:
_hasTools = ["ItemToolbox", "ItemCrowbar"] call player_hasTools;
*/
private ["_tools","_items","_hasTools","_missing"];
_tools = _this;
_items = items player; // weapons player
_hasTools = true;
{
if (!(_x in _items)) exitWith {
_hasTools = false;
_missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName");
cutText [format[(localize "STR_EPOCH_ACTIONS_13"), _missing] , "PLAIN DOWN"];
};
} forEach _tools;
_hasTools

View File

@@ -0,0 +1,54 @@
/*
Description:
Removes the items (magazines) from the player's inventory
and performs a double check for the required items.
Parameter(s):
_this: <array> list of item names to be removed (can also be an sub-array with item name and quantity)
Returns:
Boolean (true if all items have been removed from the player's inventory)
How to use:
_removed = [["PartGeneric",4], "PartEngine", ["ItemGenerator"]] call player_removeItems;
*/
private ["_items","_inventory","_temp_removed_array","_removed_total","_tobe_removed_total","_removed","_itemIn","_countIn","_num_removed"];
_items = _this;
_inventory = magazines player;
_temp_removed_array = [];
_removed_total = 0;
_tobe_removed_total = 0;
{
_removed = 0;
_itemIn = "";
_countIn = 1;
if (typeName _x == "ARRAY") then {
if (count _x > 0) then {
_itemIn = _x select 0;
if (count _x > 1) then {
_countIn = _x select 1;
};
};
} else {
_itemIn = _x;
};
if (_itemIn != "") then {
_tobe_removed_total = _tobe_removed_total + _countIn;
{
if ((_removed < _countIn) && ((_x == _itemIn) || configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn)) then {
_num_removed = ([player,_x] call BIS_fnc_invRemove);
_removed = _removed + _num_removed;
_removed_total = _removed_total + _num_removed;
if (_num_removed >= 1) then {
_temp_removed_array set [count _temp_removed_array, _x];
};
};
} forEach _inventory;
};
} forEach _items;
// all parts removed
if (_tobe_removed_total == _removed_total) exitWith { true };
// missing parts
{ player addMagazine _x; } forEach _temp_removed_array;
cutText [format[(localize "STR_EPOCH_ACTIONS_5"), _removed_total, _tobe_removed_total], "PLAIN DOWN"];
false

View File

@@ -1,10 +1,11 @@
scriptName "Functions\misc\fn_selfActions.sqf";
/***********************************************************
ADD ACTIONS FOR SELF
- Function
- [] call fnc_usec_selfActions;
************************************************************/
private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_ownerKeyName","_temp_keys_names"];
private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_ownerKeyName","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached"];
if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running.
@@ -37,11 +38,24 @@ if (_canPickLight and !dayz_hasLight and !_isPZombie) then {
s_player_removeflare = -1;
};
if (DZE_HeliLift) then {
_hasAttached = _vehicle getVariable["hasAttached",false];
if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) < 30) and (speed _vehicle < 5) and (typeName _hasAttached == "OBJECT")) then {
if (s_player_heli_detach < 0) then {
dayz_myLiftVehicle = _vehicle;
s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true,"",""];
};
} else {
dayz_myLiftVehicle removeAction s_player_heli_detach;
s_player_heli_detach = -1;
};
};
if(DZE_HaloJump) then {
if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) > 400)) then {
if (s_halo_action < 0) then {
DZE_myHaloVehicle = _vehicle;
s_halo_action = DZE_myHaloVehicle addAction ["HALO Jump","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""];
s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""];
};
} else {
DZE_myHaloVehicle removeAction s_halo_action;
@@ -55,22 +69,22 @@ if (!DZE_ForceNameTagsOff) then {
s_player_showname = 1;
player setVariable["DZE_display_name",true,true];
} else {
s_player_showname = player addAction ["Display Name (Yes)", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""];
s_player_showname1 = player addAction ["Display Name (No)", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""];
s_player_showname = player addAction [localize "STR_EPOCH_ACTIONS_NAMEYES", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""];
s_player_showname1 = player addAction [localize "STR_EPOCH_ACTIONS_NAMENO", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""];
};
};
};
if(_isPZombie) then {
if (s_player_callzombies < 0) then {
s_player_callzombies = player addAction ["Raise Horde", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""];
s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""];
};
if (DZE_PZATTACK) then {
call pz_attack;
DZE_PZATTACK = false;
};
if (s_player_pzombiesvision < 0) then {
s_player_pzombiesvision = player addAction ["Night Vision", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];
s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];
};
if (!isNull cursorTarget and (player distance cursorTarget < 3)) then { //Has some kind of target
_isAnimal = cursorTarget isKindOf "Animal";
@@ -80,7 +94,7 @@ if(_isPZombie) then {
// Pzombie Gut human corpse or animal
if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested) then {
if (s_player_pzombiesfeed < 0) then {
s_player_pzombiesfeed = player addAction ["Feed", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""];
s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""];
};
} else {
player removeAction s_player_pzombiesfeed;
@@ -97,7 +111,7 @@ _allowedDistance = 4;
_isAir = cursorTarget isKindOf "Air";
_isShip = cursorTarget isKindOf "Ship";
if(_isAir or _isShip) then {
_allowedDistance = 6;
_allowedDistance = 8;
};
if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target
@@ -191,8 +205,8 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then {
if (s_player_maintain_area < 0) then {
s_player_maintain_area = player addAction ["<t color=""#ffffff"">Maintain Area</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false];
s_player_maintain_area_preview = player addAction ["<t color=""#ccffffff"">Maintain Area Preview</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false];
s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false];
s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false];
};
} else {
player removeAction s_player_maintain_area;
@@ -214,7 +228,6 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
//Allow owners to delete modulars
if(_isModular and (dayz_characterID == _ownerID)) then {
if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then {
if(_cursorTarget in DZE_DoorsLocked) exitwith {cutText ["You must remove the lock to delete this item!", "PLAIN DOWN"]; };
_player_deleteBuild = true;
};
};
@@ -247,7 +260,52 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
player removeAction s_player_deleteBuild;
s_player_deleteBuild = -1;
};
if (DZE_HeliLift) then {
_liftHeli = objNull;
_found = false;
_allowTow = false;
if ((count (crew _cursorTarget)) == 0) then {
{
if(!_allowTow) then {
_allowTow = _cursorTarget isKindOf _x;
};
} forEach DZE_HeliAllowToTow;
};
//diag_log format["CREW: %1 ALLOW: %2",(count (crew _cursorTarget)),_allowTow];
if (_allowTow) then {
_liftHelis = nearestObjects [player, DZE_HeliAllowTowFrom, 15];
{
if(!_found) then {
_posL = getPos _x;
_posC = getPos _cursorTarget;
_height = (_posL select 2) - (_posC select 2);
_hasAttached = _x getVariable["hasAttached",false];
if(_height < 15 and _height > 5 and (typeName _hasAttached != "OBJECT")) then {
if(((abs((_posL select 0) - (_posC select 0))) < 10) and ((abs((_posL select 1) - (_posC select 1))) < 10)) then {
_liftHeli = _x;
_found = true;
};
};
};
} forEach _liftHelis;
};
//diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget];
_attached = _cursorTarget getVariable["attached",false];
if(_found and _allowTow and _canDo and !locked _cursorTarget and !_isPZombie and (typeName _attached != "OBJECT")) then {
if (s_player_heli_lift < 0) then {
s_player_heli_lift = player addAction ["Attach to Heli", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true, "",""];
};
} else {
player removeAction s_player_heli_lift;
s_player_heli_lift = -1;
};
};
// Allow Owner to lock and unlock vehicle
if(_player_lockUnlock_crtl) then {
@@ -256,21 +314,21 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
_oldOwner = (_ownerID == dayz_playerUID);
if(locked _cursorTarget) then {
if(_hasKey or _oldOwner) then {
_Unlock = player addAction [format["Unlock %1",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true, "", ""];
_Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true, "", ""];
s_player_lockunlock set [count s_player_lockunlock,_Unlock];
s_player_lockUnlock_crtl = 1;
} else {
if(_hasHotwireKit) then {
_Unlock = player addAction [format["Hotwire %1",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true, "", ""];
_Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true, "", ""];
} else {
_Unlock = player addAction ["<t color='#ff0000'>Vehicle Locked</t>", "",_cursorTarget, 2, true, true, "", ""];
_Unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, true, true, "", ""];
};
s_player_lockunlock set [count s_player_lockunlock,_Unlock];
s_player_lockUnlock_crtl = 1;
};
} else {
if(_hasKey or _oldOwner) then {
_lock = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""];
_lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""];
s_player_lockunlock set [count s_player_lockunlock,_lock];
s_player_lockUnlock_crtl = 1;
};
@@ -365,7 +423,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (_player_butcher) then {
if (s_player_butcher < 0) then {
if(_isZombie) then {
s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""];
s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""];
} else {
s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""];
};
@@ -405,7 +463,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (_player_SurrenderedGear) then {
if (s_player_SurrenderedGear < 0) then {
s_player_SurrenderedGear = player addAction ["Gear", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true, "", ""];
s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTION_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true, "", ""];
};
} else {
player removeAction s_player_SurrenderedGear;
@@ -450,7 +508,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
} else {
if(("ItemJerrycan" in _magazinesPlayer) and ("ItemMatchbox_DZE" in weapons player)) then {
if (s_player_packtent < 0) then {
s_player_packtent = player addAction ["Destroy Tent", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""];
s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""];
};
};
};
@@ -464,16 +522,16 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (s_player_unlockvault < 0) then {
if(_typeOfCursorTarget in DZE_LockedStorage) then {
if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then {
_combi = player addAction [format["Open %1",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
s_player_combi set [count s_player_combi,_combi];
} else {
_combi = player addAction [format["Unlock %1",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
s_player_combi set [count s_player_combi,_combi];
};
s_player_unlockvault = 1;
} else {
if(_ownerID != dayz_combination and _ownerID != dayz_playerUID) then {
_combi = player addAction ["Re-Enter Combination", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
_combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
s_player_combi set [count s_player_combi,_combi];
s_player_unlockvault = 1;
};
@@ -489,11 +547,11 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (s_player_lockvault < 0) then {
if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then {
s_player_lockvault = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""];
s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""];
};
};
if (s_player_packvault < 0 and (_ownerID == dayz_combination or _ownerID == dayz_playerUID)) then {
s_player_packvault = player addAction [format["<t color='#ff0000'>Pack %1</t>",_text], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "",""];
s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_packvault;
@@ -507,7 +565,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
//Player Deaths
if(_typeOfCursorTarget == "Info_Board_EP1") then {
if (s_player_information < 0) then {
s_player_information = player addAction ["Recent Murders", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""];
s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""];
};
} else {
player removeAction s_player_information;
@@ -530,9 +588,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
// show that pump needs power if no generator nearby.
if(_IsNearRunningGen > 0) then {
s_player_fuelauto = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""];
s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""];
} else {
s_player_fuelauto = player addAction ["<t color='#ff0000'>Needs Power</t>", "",[], 0, false, true, "",""];
s_player_fuelauto = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true, "",""];
};
};
} else {
@@ -545,9 +603,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (s_player_fuelauto2 < 0) then {
// show that fuel truck pump needs power.
if(isEngineOn _cursorTarget) then {
s_player_fuelauto2 = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""];
s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""];
} else {
s_player_fuelauto2 = player addAction ["<t color='#ff0000'>Needs Power</t>", "",[], 0, false, true, "",""];
s_player_fuelauto2 = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true, "",""];
};
};
} else {
@@ -566,7 +624,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (s_player_upgrade_build < 0) then {
// s_player_lastTarget = _cursorTarget;
s_player_lastTarget set [0,_cursorTarget];
s_player_upgrade_build = player addAction [format["Upgrade %1",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];
s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];
};
} else {
player removeAction s_player_upgrade_build;
@@ -584,7 +642,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (s_player_downgrade_build < 0) then {
s_player_lastTarget set [1,_cursorTarget];
s_player_downgrade_build = player addAction [format["Remove Lock from %1",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];
s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];
};
} else {
player removeAction s_player_downgrade_build;
@@ -602,7 +660,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if (s_player_maint_build < 0) then {
s_player_lastTarget set [2,_cursorTarget];
s_player_maint_build = player addAction [format["Maintain %1",_text], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true, "",""];
s_player_maint_build = player addAction [format[localize "STR_EPOCH_ACTIONS_MAINTAIN",_text], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true, "",""];
};
} else {
player removeAction s_player_maint_build;
@@ -616,14 +674,14 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
// check if not running
if((_cursorTarget getVariable ["GeneratorRunning", false])) then {
s_player_fillgen = player addAction ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""];
s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""];
} else {
// check if not filled and player has jerry.
if((_cursorTarget getVariable ["GeneratorFilled", false])) then {
s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
} else {
if("ItemJerrycan" in _magazinesPlayer) then {
s_player_fillgen = player addAction ["Fill and Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
};
};
};
@@ -638,9 +696,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
if(_typeOfCursorTarget == "TOW_DZE") then {
if (s_player_towing < 0) then {
if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
s_player_towing = player addAction ["Attach Straps", "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""];
s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""];
} else {
s_player_towing = player addAction ["Detach Straps", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true, "",""];
s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true, "",""];
};
};
} else {
@@ -699,7 +757,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
_humanity_logic = (_humanity < 5000);
};
if(_humanity_logic) then {
_cancel = player addAction [format["Your humanity is too %1 this trader refuses to talk to you.",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""];
_cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""];
s_player_parts set [count s_player_parts,_cancel];
} else {

View File

@@ -66,11 +66,25 @@ if ((!r_player_handler1) and (r_handlerCount == 0)) then {
//Give Blood
r_player_blood = r_player_bloodTotal;
player setVariable["USEC_lowBlood",false,true];
//Self Healing
_id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf";
player setVariable ["hit_legs",0,false];
player setVariable ["hit_hands",0,false];
player setVariable["medForceUpdate",true];
_id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
player setVariable["medForceUpdate",true];
/* REMOVED USE THAT ABOVE
usecMorphine = [player,player];
publicVariable "usecMorphine";
player setVariable ["USEC_inPain", false, true];
usecBandage = [player,player];
publicVariable "usecBandage";
*/
player setVariable ["USEC_inPain", false, true];
player setdamage 0;
{player setVariable[_x,false,true];} forEach USEC_woundHit;
player setVariable ["USEC_injured",false,true];

View File

@@ -11,15 +11,20 @@ if (local _animalbody) then {
[time, _animalbody] spawn {
private ["_timer", "_body"];
_timer = _this select 0;
_body = _this select 1;
_timer = _this select 0;
_body = _this select 1;
_pos = getPosATL _body;
while {(count magazines _body >0) and (time - _timer < 300) } do {
sleep 5;
};
//["PVDZE_plr_HideBody",_body] call broadcastRpcCallAll;
PVDZE_plr_HideBody = _body;
hideBody _body; // local player
publicVariable "PVDZE_plr_HideBody"; // remote player
/* PVS/PVC - Skaronator */
_inRange = _pos nearEntities ["CAManBase",100];
{
PVDZE_send = [_x,"HideBody",[_body]];
publicVariableServer "PVDZE_send";
} forEach _inRange;
sleep 5;
deleteVehicle _body;
true;

View File

@@ -7,15 +7,20 @@ if (local _zombiebody) then {
[time, _zombiebody] spawn {
private ["_timer", "_body"];
_timer = _this select 0;
_body = _this select 1;
_timer = _this select 0;
_body = _this select 1;
_pos = getPosATL _body;
while {(count magazines _body >0) and (time - _timer < 300) } do {
sleep 5;
};
//["PVDZE_plr_HideBody",_body] call broadcastRpcCallAll;
PVDZE_plr_HideBody = _body;
hideBody _body; // local player
publicVariable "PVDZE_plr_HideBody"; // remote player
/* PVS/PVC - Skaronator */
_inRange = _pos nearEntities ["CAManBase",100];
{
PVDZE_send = [_x,"HideBody",[_body]];
publicVariableServer "PVDZE_send";
} forEach _inRange;
sleep 5;
deleteVehicle _body;
true;

View File

@@ -1,13 +1,13 @@
private ["_nearNets","_nearNet"];
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
_nearNets = nearestObjects [player, ["DesertLargeCamoNet", "ForestCamoNet_DZ","DesertLargeCamoNet_DZ", "ForestLargeCamoNet_DZ"], 10];
_nearNets = nearestObjects [player, ["DesertLargeCamoNet","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ"], 3];
_nearNet = _nearNets select 0;
if (!isNull _nearNet and _canDo) then {
[0,1,2,_nearNet] spawn player_removeObject;
} else {
if (!isNull _nearNet and _canDo) then {
[0,1,2,_nearNet] spawn player_removeObject;
} else {
cutText [(localize "str_epoch_player_8"), "PLAIN DOWN"];
};
};

View File

@@ -3,11 +3,11 @@ private ["_nearTankTraps","_nearTankTrap"];
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
_nearTankTraps = nearestObjects [player, "Hedgehog_DZ", 1];
_nearTankTraps = nearestObjects [player, ["Hedgehog_DZ"], 1];
_nearTankTrap = _nearTankTraps select 0;
if (!isNull _nearTankTrap and _canDo) then {
[0,1,2,_nearTankTrap] spawn player_removeObject;
} else {
cutText ["No Tank Traps found nearby.", "PLAIN DOWN"];
cutText [(localize "STR_EPOCH_ACTIONS_14"), "PLAIN DOWN"];
};

View File

@@ -0,0 +1,19 @@
//Build preview adopted from Axe Cop (@vos) Base Destruction Script
private ["_location","_object","_objects","_i","_dir","_nearPlotPole"];
// global vars
_nearPlotPole = nearestObject [player, "Plastic_Pole_EP1_DZ"];
//"privatized" center variable
_BD_radius = DZE_PlotPole select 0;
_BD_center = getPos _nearPlotPole;
_objects = [];
// circle
for "_i" from 0 to 360 step (270 / _BD_radius) do {
_location = [(_BD_center select 0) + ((cos _i) * _BD_radius), (_BD_center select 1) + ((sin _i) * _BD_radius), _BD_center select 2];
_object = "Plastic_Pole_EP1" createVehicleLocal _location;
_object setpos _location;
};

View File

@@ -43,22 +43,22 @@ if(_activated) then {
_id = [player,"crushed"] spawn player_death;
};
if ((_vehicle emptyPositions "driver") > 0) exitWith {
cutText ["Another object is blocking the vehicle exit.", "PLAIN DOWN"];
cutText [(localize "STR_EPOCH_ACTIONS_15"), "PLAIN DOWN"];
player action ["getInDriver", _vehicle];
DZE_AntiWallCounter = DZE_AntiWallCounter + 1;
};
if ((_vehicle emptyPositions "gunner") > 0) exitWith {
cutText ["Another object is blocking the vehicle exit.", "PLAIN DOWN"];
cutText [(localize "STR_EPOCH_ACTIONS_15"), "PLAIN DOWN"];
player action ["GetInGunner", _vehicle];
DZE_AntiWallCounter = DZE_AntiWallCounter + 1;
};
if ((_vehicle emptyPositions "commander") > 0) exitWith {
cutText ["Another object is blocking the vehicle exit.", "PLAIN DOWN"];
cutText [(localize "STR_EPOCH_ACTIONS_15"), "PLAIN DOWN"];
player action ["getInCommander", _vehicle];
DZE_AntiWallCounter = DZE_AntiWallCounter + 1;
};
if ((_vehicle emptyPositions "cargo") > 0) exitWith {
cutText ["Another object is blocking the vehicle exit.", "PLAIN DOWN"];
cutText [(localize "STR_EPOCH_ACTIONS_15"), "PLAIN DOWN"];
player action ["getInCargo", _vehicle];
DZE_AntiWallCounter = DZE_AntiWallCounter + 1;
};
@@ -69,4 +69,4 @@ if(_activated) then {
} else {
DZE_AntiWallCounter = 0;
};
};

View File

@@ -8,13 +8,13 @@ _body = player;
_playerID = getPlayerUID player;
_infected = 0;
if (r_player_infected) then {
if (r_player_infected && DZE_PlayerZed) then {
_infected = 1;
};
//Send Death Notice
//["PVDZE_plr_Died",[dayz_characterID,0,_body,_playerID,dayz_playerName,_infected]] call callRpcProcedure;
PVDZE_plr_Died = [dayz_characterID,0,_body,_playerID,dayz_playerName,_infected];
PVDZE_plr_Died = [dayz_characterID,0,_body,_playerID,_infected];
publicVariableServer "PVDZE_plr_Died";
_id = [player,20,true,getPosATL player] spawn player_alertZombies;
@@ -77,8 +77,9 @@ if (count _array > 0) then {
_wait = 0;
};
if (_isBandit and !_isPZombie and (_humanity != 0)) then {
PVDZE_plr_HumanityChange = [_source,_humanity,_wait];
publicVariable "PVDZE_plr_HumanityChange";
/* PVS/PVC - Skaronator */
PVDZE_send = [_source,"Humanity",[_source,_humanity,_wait]];
publicVariableServer "PVDZE_send";
};
};
@@ -86,8 +87,9 @@ if (count _array > 0) then {
_wait = 0;
};
if (!_canHitFree and !_isBandit and !_isPZombie and (_humanity != 0)) then {
PVDZE_plr_HumanityChange = [_source,_humanity,_wait];
publicVariable "PVDZE_plr_HumanityChange";
/* PVS/PVC - Skaronator */
PVDZE_send = [_source,"Humanity",[_source,_humanity,_wait]];
publicVariableServer "PVDZE_send";
};
if (_isPZombie) then {
@@ -95,8 +97,9 @@ if (count _array > 0) then {
_killsZ = _source getVariable ["zombieKills",0];
_source setVariable ["zombieKills",(_killsZ + 1),true];
_wait = 0;
PVDZE_plr_HumanityChange = [_source,_humanity,_wait];
publicVariable "PVDZE_plr_HumanityChange";
/* PVS/PVC - Skaronator */
PVDZE_send = [_source,"Humanity",[_source,_humanity,_wait]];
publicVariableServer "PVDZE_send";
};
if (_canHitFree) then {
//_humanity = 100; //50
@@ -159,7 +162,6 @@ if (count _array > 0) then {
_body setVariable["combattimeout", 0, true];
//["dayzFlies",player] call broadcastRpcCallAll;
sleep 2;
1 cutRsc ["DeathScreen","BLACK OUT",3];

View File

@@ -6,8 +6,12 @@ if (!(isNull _backpack) and local _backpack) then {
_weaponscnt = count (_weapons select 0);
_magazinescnt = count (_magazines select 0);
if((_magazinescnt > 0) or (_weaponscnt > 0)) then {
// hide backpack from everyone else
PVDZE_obj_Hide = _backpack;
publicVariable "PVDZE_obj_Hide";
/* PVS/PVC - Skaronator */
_pos = getPosATL player;
_inRange = _pos nearEntities ["CAManBase",300];
{
PVDZE_send = [_x,"HideObj",[_backpack]];
publicVariableServer "PVDZE_send";
} forEach _inRange;
};
};

View File

@@ -8,7 +8,7 @@ _projectile = _this select 6;
//Alert Nearby
_audible = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFire");
_caliber = getNumber (configFile >> "CfgAmmo" >> _ammo >> "caliber");
_distance = round(_audible * 10 * _caliber);
_distance = round(_audible * 20 * _caliber);
dayz_disAudial = _distance;
dayz_firedCooldown = time;
@@ -60,15 +60,29 @@ if (_ammo isKindOf "SmokeShell") then {
//hint str(_ammo);
_projectile = nearestObject [_unit, "RoadFlare"];
_id = [_projectile,0] spawn object_roadFlare;
PVDZE_obj_RoadFlare = [_projectile,0];
publicVariable "PVDZE_obj_RoadFlare";
/* PVS/PVC - Skaronator */
_pos = getPosATL player;
_inRange = _pos nearEntities ["CAManBase",1250];
{
PVDZE_send = [_x,"RoadFlare",[_projectile,0]];
publicVariableServer "PVDZE_send";
} forEach _inRange;
_id = _this spawn player_throwObject;
};
if (_ammo isKindOf "ChemLight") then {
_projectile = nearestObject [_unit, "ChemLight"];
_id = [_projectile,1] spawn object_roadFlare;
PVDZE_obj_RoadFlare = [_projectile,1];
publicVariable "PVDZE_obj_RoadFlare";
/* PVS/PVC - Skaronator */
_pos = getPosATL player;
_inRange = _pos nearEntities ["CAManBase",1250];
{
PVDZE_send = [_x,"RoadFlare",[_projectile,1]];
publicVariableServer "PVDZE_send";
} forEach _inRange;
_id = _this spawn player_throwObject;
};
};

View File

@@ -3,6 +3,8 @@ _playerUID = _this select 0;
_charID = _this select 1;
_model = _this select 2;
if (typeOF player == _model) exitWith {cutText ['You already wear this Skin!', 'PLAIN'];};
_old = player;
player allowDamage false;

View File

@@ -14,7 +14,7 @@ _timeMax = diag_tickTime+10;
dayz_lastCheckBit = time;
// if(r_player_dead) exitWith {_btnAbort ctrlEnable true;};
if(r_fracture_legs) then {_btnRespawn ctrlEnable true;};
if(r_fracture_legs && !r_player_dead) then {_btnRespawn ctrlEnable true;};
//force gear save
if (!r_player_dead and time - dayz_lastCheckBit > 10) then {
@@ -57,4 +57,4 @@ while {!isNull _display} do {
sleep _sleep;
_timeOut = diag_tickTime;
};
cutText ["", "PLAIN DOWN"];
cutText ["", "PLAIN DOWN"];

View File

@@ -109,13 +109,13 @@ if (_nearbyCount < 1) exitwith
_dateNow = (DateToNumber date);
_age = (_dateNow - _looted) * 525948;
//diag_log ("SPAWN LOOT: " + _type + " Building is " + str(_age) + " old" );
if ((_age > 10) and (!_cleared)) then {
if ((_age > DZE_LootSpawnTimer) and (!_cleared)) then {
_nearByObj = nearestObjects [(getPosATL _x), ["WeaponHolder","WeaponHolderBase"],((sizeOf _type)+5)];
{deleteVehicle _x} forEach _nearByObj;
_x setVariable ["cleared",true,true];
_x setVariable ["looted",_dateNow,true];
};
if ((_age > 10) and (_cleared)) then {
if ((_age > DZE_LootSpawnTimer) and (_cleared)) then {
//Register
_x setVariable ["looted",_dateNow,true];
//cleanup
@@ -148,4 +148,4 @@ if (_nearbyCount < 1) exitwith
};
};
} forEach _nearby;
// ["player_spawnCheck.sqf",(diag_tickTime - _t1)] call fnc_dump;
// ["player_spawnCheck.sqf",(diag_tickTime - _t1)] call fnc_dump;

View File

@@ -4,24 +4,13 @@ _class = _this;
_position = getPosATL player;
_dir = getDir player;
_currentAnim = animationState player;
//_currentCamera = cameraView;
_tagSetting = player getVariable["DZE_display_name",false];
//Get PlayerID
_playerUID = "";
if (count playableUnits == 0 and isServer) then {
//In Single Player
isSinglePlayer = true;
player sidechat "Single player Mode detected!";
//_id = [42,"SinglePlayer"] spawn server_onPlayerConnect;
_playerUID = "42";
} else {
_playerUID = getPlayerUID player;
};
_playerUID = getPlayerUID player;
//BackUp Weapons and Mags
_weapons = weapons player;
_magazines = call player_countmagazines; //magazines player;
@@ -46,24 +35,15 @@ if (count _muzzles > 1) then {
_currentWpn = currentMuzzle player;
};
//Debug Message
/*
diag_log "Attempting to switch model";
diag_log str(_weapons);
diag_log str(_magazines);
diag_log (str(_backpackWpn));
diag_log (str(_backpackMag));
*/
//Secure Player for Transformation
player setPosATL dayz_spawnPos;
//BackUp Player Object
_oldUnit = player;
/***********************************/
//DONT USE player AFTER THIS POINT
/***********************************/
/**********************************/
//DONT USE player AFTER THIS POINT//
/**********************************/
//Create New Character
//[player] joinSilent grpNull;
@@ -123,14 +103,6 @@ if(_secweapon != (secondaryWeapon _newUnit) && _secweapon != "") then {
_newUnit addWeapon _secweapon;
};
//Debug Message
/*
diag_log "Swichtable Unit Created. Equipment:";
diag_log str(weapons _newUnit);
diag_log str(magazines _newUnit);
diag_log str(getWeaponCargo unitBackpack _newUnit);
diag_log str(getMagazineCargo unitBackpack _newUnit);
*/
//Make New Unit Playable
addSwitchableUnit _newUnit;
setPlayable _newUnit;
@@ -144,22 +116,21 @@ deleteVehicle _oldUnit;
//Move player inside
// player switchCamera = _currentCamera;
if(_currentWpn != "") then {_newUnit selectWeapon _currentWpn;};
[objNull, player, rSwitchMove,_currentAnim] call RE;
//dayz_originalPlayer attachTo [_newUnit];
player disableConversation true;
player setVariable ["bodyName",dayz_playerName,true];
//player setVariable ["bodyName",dayz_playerName,true]; //Outcommit (Issue #991) - Also removed in DayZ Mod 1.8
if (_tagSetting) then {
DZE_ForceNameTags = true;
};
_playerUID=getPlayerUID player;
_playerObjName = format["player%1",_playerUID];
_playerUID = getPlayerUID player;
_playerObjName = format["PVDZE_player%1",_playerUID];
call compile format["%1 = player;",_playerObjName];
publicVariable _playerObjName;
publicVariableServer _playerObjName; //Outcommit in DayZ 1.8 No clue for what this is - Skaronator
//melee check
_wpnType = primaryWeapon player;

View File

@@ -123,7 +123,7 @@ TraderDialogLoadItemList = {
if (_name isKindOf "Ship") then {
_distance = dayz_sellDistance_boat;
};
_count = {(typeOf _x) == _name} count (nearestObjects [player, [_name], _distance]);
_count = {(typeOf _x) == _name} count (nearestObjects [(getPosATL player), [_name], _distance]);
};
};
};
@@ -172,11 +172,13 @@ TraderDialogShowPrices = {
ctrlSetText [TraderDialogBuyPrice, format["%1 %2", _item select 2, _item select 4]];
/*
if(_qty == 0) then {
ctrlEnable [TraderDialogBuyBtn, false];
} else {
ctrlEnable [TraderDialogBuyBtn, true];
};
*/
ctrlSetText [TraderDialogSellPrice, format["%1 %2", _item select 5, _item select 7]];
};

View File

@@ -27,7 +27,7 @@ if(!isNull dayz_selectedDoor) then {
// close display since another player is closer
_display = findDisplay 41144;
_display closeDisplay 3000;
cutText ["Failed, another player is closer than you are.", "PLAIN DOWN"];
cutText [(localize "STR_EPOCH_ACTIONS_16"), "PLAIN DOWN"];
} else {
// get object combination
@@ -82,4 +82,4 @@ if(!isNull dayz_selectedDoor) then {
_display = findDisplay 41144;
_display closeDisplay 3000;
};
DZE_DYN_UnlockDoorInprogress = nil;
DZE_DYN_UnlockDoorInprogress = nil;

View File

@@ -70,6 +70,9 @@ if ((_ownerID == dayz_combination) or (_ownerID == dayz_playerUID)) then {
_backpacks = _obj getVariable["BackpackCargo",[]];
_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
if ((isNull _holder) or (isNil "_holder")) then {
_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
};
// Remove locked vault
deleteVehicle _obj;
_holder setdir _dir;

View File

@@ -166,7 +166,7 @@ if (!isNull _humanityTarget and isPlayer _humanityTarget and alive _humanityTarg
_rfriendlyTo set [count _rfriendlyTo, _charID];
_humanityTarget setVariable ["friendlyTo", _rfriendlyTo, true];
// titleText [format["You and %1 are now tagged as friendlies.", (name _humanityTarget)], "PLAIN DOWN"];
// titleText [format[(localize "STR_EPOCH_ACTIONS_17"), (name _humanityTarget)], "PLAIN DOWN"];
};
@@ -202,4 +202,4 @@ if (dayz_humanitytarget != _string) then {
};
_array = [_foodVal,_thirstVal];
_array
_array

View File

@@ -7,7 +7,7 @@ private ["_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_remov
if(DZE_ActionInProgress) exitWith { cutText [(localize "STR_EPOCH_PLAYER_52") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
if (vehicle player != player) exitWith {DZE_ActionInProgress = false; cutText ["\n\nYou cannot perform an upgrade while still inside a vehicle.", "PLAIN DOWN"]};
if (vehicle player != player) exitWith {DZE_ActionInProgress = false; cutText [(localize "STR_EPOCH_ACTIONS_18"), "PLAIN DOWN"]};
// look for nearest empty vehicle
_findNearestVehicles = nearestObjects [player, ["LandVehicle"], 10];
@@ -125,4 +125,4 @@ if (_IsNearVehicle >= 1) then {
cutText [(localize "STR_EPOCH_PLAYER_27"), "PLAIN DOWN"];
};
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -12,8 +12,12 @@ switch (_iClass) do
{
//Item is food, add random quantity of cans along with an item (if exists)
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0);
_itemTypes = [];
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "cfgLoot" >> _iClass)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0);
};
_index = dayz_CLBase find _iClass;
_weights = dayz_CLChances select _index;
_cntWeights = count _weights;
@@ -37,8 +41,12 @@ switch (_iClass) do
{
//Item is sigle, add 1 item from cfgloot
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
_itemTypes = [];
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "cfgLoot" >> _iItem)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
};
_index = dayz_CLBase find _iItem;
_weights = dayz_CLChances select _index;
_cntWeights = count _weights;
@@ -51,7 +59,11 @@ switch (_iClass) do
case "backpack":
{
//Item is single backpack
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "cfgLoot" >> _iItem)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
};
_index = dayz_CLBase find _iItem;
_weights = dayz_CLChances select _index;
_cntWeights = count _weights;
@@ -63,7 +75,11 @@ switch (_iClass) do
};
case "cfglootweapon":
{
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "cfgLoot" >> _iItem)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
};
_index = dayz_CLBase find _iItem;
_weights = dayz_CLChances select _index;
_cntWeights = count _weights;
@@ -84,6 +100,8 @@ switch (_iClass) do
{
if (_mags select 0 == "Quiver") then { _mags set [0, "WoodenArrow"] }; // Prevent spawning a Quiver
if (_mags select 0 == "20Rnd_556x45_Stanag") then { _mags set [0, "30Rnd_556x45_Stanag"] };
if (_mags select 0 == "30Rnd_556x45_G36") then { _mags set [0, "30Rnd_556x45_Stanag"] };
if (_mags select 0 == "30Rnd_556x45_G36SD") then { _mags set [0, "30Rnd_556x45_StanagSD"] };
_item addMagazineCargoGlobal [(_mags select 0), (round(random 2))];
};
@@ -98,6 +116,8 @@ switch (_iClass) do
{
if (_mags select 0 == "Quiver") then { _mags set [0, "WoodenArrow"] }; // Prevent spawning a Quiver
if (_mags select 0 == "20Rnd_556x45_Stanag") then { _mags set [0, "30Rnd_556x45_Stanag"] };
if (_mags select 0 == "30Rnd_556x45_G36") then { _mags set [0, "30Rnd_556x45_Stanag"] };
if (_mags select 0 == "30Rnd_556x45_G36SD") then { _mags set [0, "30Rnd_556x45_StanagSD"] };
_item addMagazineCargoGlobal [(_mags select 0), (round(random 2))];
};
};

View File

@@ -13,8 +13,12 @@ switch (_iClass) do
{
//Item is sigle, add 1 item from CfgLootSmall
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_itemTypes = [] + ((getArray (configFile >> "CfgLootSmall" >> _iClass)) select 0);
_itemTypes = [];
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "CfgLootSmall" >> _iClass)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "CfgLootSmall" >> _iClass)) select 0);
};
_index = dayzE_CLSBase find _iClass;
_weights = dayzE_CLSChances select _index;
@@ -30,7 +34,12 @@ switch (_iClass) do
//Item is sigle, add 1 item from CfgLootSmall
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_itemTypes = [] + ((getArray (configFile >> "CfgLootSmall" >> _iItem)) select 0);
_itemTypes = [];
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "CfgLootSmall" >> _iItem)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "CfgLootSmall" >> _iItem)) select 0);
};
_index = dayzE_CLSBase find _iItem;
_weights = dayzE_CLSChances select _index;
_cntWeights = count _weights;
@@ -45,7 +54,12 @@ switch (_iClass) do
//Item is sigle, add 1 item from cfgloot
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
_itemTypes = [];
if (DZE_MissionLootTable) then {
_itemTypes = ((getArray (missionConfigFile >> "CfgLootSmall" >> _iItem)) select 0);
} else {
_itemTypes = ((getArray (configFile >> "CfgLootSmall" >> _iItem)) select 0);
};
_index = dayz_CLBase find _iItem;
_weights = dayz_CLChances select _index;
_cntWeights = count _weights;

View File

@@ -1,29 +0,0 @@
//diag_log "running location check...";
private ["_config","_locHdr","_position","_location","_distCfg","_configClass","_distAct"];
{
_location = _x select 0;
_distCfg = (_x select 2) + 200;
_configClass = _x select 1;
_distAct = player distance position _location;
if ((_distAct < _distCfg) and !(_location in dayz_locationsActive)) then {
//Record Active Location
//diag_log "Load!";
dayz_locationsActive set [count dayz_locationsActive,_location];
//Get Town Details
_config = configFile >> "CfgTownGenerator" >> _configClass;
_locHdr = configName _config;
_position = []+ getArray (_config >> "position");
_config call stream_locationFill;
//player sidechat (_locHdr + " " + str(count _config));
} else {
if ((_distAct > _distCfg) and (_location in dayz_locationsActive)) then {
//Delete Town Objects
_config = configFile >> "CfgTownGenerator" >> _configClass;
_config call stream_locationDel;
dayz_locationsActive = dayz_locationsActive - [_location];
};
};
} forEach dayz_Locations;

View File

@@ -1,12 +0,0 @@
for "_i" from 0 to ((count _this) - 1) do
{
private ["_config","_type","_position","_dir","_onFire","_object"];
_config = (_this select _i);
if (isClass(_config)) then {
_type = getText (_config >> "ctype");
_position = getArray (_config >> "position");
_object = nearestObject [_position,_type];
deleteVehicle _object;
};
};
//diag_log ("CLEAR: " + str(_this));

View File

@@ -1,24 +0,0 @@
for "_i" from 0 to ((count _this) - 1) do
{
private ["_config","_type","_position","_dir","_onFire","_object"];
_config = (_this select _i);
if (isClass(_config)) then {
_type = getText (_config >> "type");
_position = [] + getArray (_config >> "position");
_dir = getNumber (_config >> "direction");
_onFire = getNumber (_config >> "onFire");
_object = _type createVehicleLocal _position;
_object setPos _position;
_object setDir _dir;
_object allowDamage false;
//diag_log format["CreateObj: %1 / %2",_type,_position];
/*
if (_onFire > 0) then {
nul=[_object,_onFire,time,false,false] spawn BIS_Effects_Burn;
};
*/
};
};
//diag_log ("FILL: " + str(_this));

View File

@@ -3,34 +3,41 @@ ASSIGN DAMAGE TO A UNIT
- Function Vehicle_HandleDamage
- [unit, selectionName, damage, source, projectile] call Vehicle_HandleDamage;
************************************************************/
private ["_unit","_selection","_strH","_dam","_total","_needUpdate"];
private["_unit","_selection","_strH","_total","_damage","_needUpdate"];
_unit = _this select 0;
_selection = _this select 1;
_total = _this select 2;
_dam = _unit getVariable["totalDmg",0];
_needUpdate = _unit getVariable["needUpdate",false];
if (_dam < 1 ) then {
if ( (_selection != "") ) then {
_strH = "hit_" + (_selection);
} else {
_strH = "totalDmg";
};
if (_total > 0.98) then {
_total = 1;
};
if ( _total>0 ) then {
_unit setVariable [_strH,_total,true];
if ( !_needUpdate ) then {
_unit setVariable ["needUpdate",true,true];
//["PVDZE_veh_Update",[_unit,"damage"]] call callRpcProcedure;
if (isServer) then {
[_unit, "damage"] call server_updateObject;
} else {
PVDZE_veh_Update = [_unit,"damage"];
publicVariableServer "PVDZE_veh_Update";
};
if (_selection != "") then {
_strH = "hit_" + _selection;
} else {
_strH = "totalDmg";
};
if (_total >= 0.98) then {
_total = 1.0;
};
if (local _unit) then {
if (_total > 0) then {
_unit setVariable [_strH, _total, true];
_unit setHit [_selection, _total];
if (isServer) then {
[_unit, "damage"] call server_updateObject;
} else {
PVDZE_veh_Update = [_unit,"damage"];
publicVariableServer "PVDZE_veh_Update";
};
};
} else {
// vehicle is not local to this client, ask the client which vehicle is local to set damage
/* PVS/PVC - Skaronator */
PVDZE_send = [_unit,"VehHandleDam",_this];
publicVariableServer "PVDZE_send";
};
// all "HandleDamage event" functions should return the effective damage that the engine will record for that part
_total

View File

@@ -46,7 +46,14 @@ _rnd = random 1;
if (_rnd > 0.3) then {
_lootType = configFile >> "CfgVehicles" >> _type >> "zombieLoot";
if (isText _lootType) then {
_array = []+ getArray (configFile >> "cfgLoot" >> getText(_lootType));
_array = [];
if (DZE_MissionLootTable) then {
_array = getArray (missionConfigFile >> "cfgLoot" >> getText(_lootType));
} else {
_array = getArray (configFile >> "cfgLoot" >> getText(_lootType));
};
if (count _array > 0) then {
_loot = _array call BIS_fnc_selectRandomWeighted;
if(!isNil "_array") then {

View File

@@ -95,7 +95,13 @@ _rnd = random 1;
if (_rnd > 0.3) then {
_lootType = configFile >> "CfgVehicles" >> _type >> "zombieLoot";
if (isText _lootType) then {
_array = []+ getArray (configFile >> "cfgLoot" >> getText(_lootType));
_array = [];
if (DZE_MissionLootTable) then {
_array = getArray (missionConfigFile >> "cfgLoot" >> getText(_lootType));
} else {
_array = getArray (configFile >> "cfgLoot" >> getText(_lootType));
};
if (count _array > 0) then {
_loot = _array call BIS_fnc_selectRandomWeighted;
if(!isNil "_array") then {

View File

@@ -41,7 +41,7 @@ class CfgMods
hidePicture = 0;
hideName = 0;
action = "http://www.dayzepoch.com";
version = "1.0.3.1";
version = "1.0.4";
hiveVersion = 0.96; //0.93
};
};

View File

@@ -375,6 +375,10 @@ class CfgWeight
{
weight = 6.5;
};
class M249_EP1_DZ
{
weight = 6.5;
};
class Mk_48
{
weight = 8.2;

Binary file not shown.

Binary file not shown.

View File

@@ -110,6 +110,7 @@ if (!isDedicated) then {
player_antiWall = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_antiWall.sqf";
player_deathBoard = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\list_playerDeathsAlt.sqf";
player_plotPreview = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_showPlotRadius.sqf";
player_upgradeVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_upgradeVehicle.sqf";
//ui
@@ -126,8 +127,56 @@ if (!isDedicated) then {
onPreloadStarted "dayz_preloadFinished = false;";
onPreloadFinished "dayz_preloadFinished = true;";
// helper functions
player_hasTools = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_hasTools.sqf";
player_checkItems = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_checkItems.sqf";
player_removeItems = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_removeItems.sqf";
// combination of check and remove items
player_checkAndRemoveItems = {
private ["_items","_b"];
_items = _this;
_b = _items call player_checkItems;
if (_b) then {
_b = _items call player_removeItems;
};
_b
};
epoch_totalCurrency = {
// total currency
_total_currency = 0;
{
_part = (configFile >> "CfgMagazines" >> _x);
_worth = (_part >> "worth");
if isNumber (_worth) then {
_total_currency = _total_currency + getNumber(_worth);
};
} forEach (magazines player);
_total_currency
};
epoch_itemCost = {
_trade_total = 0;
{
_part_in_configClass = configFile >> "CfgMagazines" >> (_x select 0);
if (isClass (_part_in_configClass)) then {
_part_inWorth = (_part_in_configClass >> "worth");
if isNumber (_part_inWorth) then {
_trade_total = _trade_total + (getNumber(_part_inWorth) * (_x select 1));
};
};
} forEach _this;
diag_log format["DEBUG TRADER ITEMCOST: %1", _this];
_trade_total
};
epoch_returnChange = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\epoch_returnChange.sqf";
// usage [["partinclassname",4]] call epoch_returnChange;
//
RunTime = 0;
@@ -237,7 +286,7 @@ if (!isDedicated) then {
};
player_tagFriendlyMsg = {
if(player == _this) then {
if(player == (_this select 0)) then {
cutText[(localize "str_epoch_player_2"),"PLAIN DOWN"];
};
};
@@ -501,6 +550,28 @@ if (!isDedicated) then {
dayz_hunger = dayz_hunger + (_this select 0);
dayz_thirst = dayz_thirst + (_this select 1);
};
// better item counting by maca134 - https://github.com/vbawol/DayZ-Epoch/issues/916
MC_item_spaces = {
private ["_unit", "_item", "_slotsEmpty", "_slotsItem", "_slotsAfterAdd", "_c", "_space"];
_unit = _this select 0;
_item = _this select 1;
_slotsEmpty = [_unit] call BIS_fnc_invSlotsEmpty;
_slotsItem = [_item] call BIS_fnc_invSlotType;
if ((typeName _unit) != "OBJECT") exitWith {textLogFormat ["INV_ Error: BIS_FNC_invAdd - 1st parameter must be unit! %1", _this];false};
if (((typeName _item) != "CONFIG") && ((typeName _item) != "STRING")) exitWith {textLogFormat ["INV_ Error: BIS_FNC_invAdd - 2nd parameter must be config|string|array of (config|string)! %1", _this];false};
if (isNil {_item}) exitWith {textLogFormat ["INV_ Error: BIS_FNC_invAdd - 2nd parameter - _item is undefined! %1", _this];false};
_c = 0;
_space = 0;
{
if (_x > 0) exitWith {
_space = floor((_slotsEmpty select _c) / _x);
};
_c = _c + 1;
} forEach _slotsItem;
_space
};
dayz_EjectPlayer = {
// check if player in vehicle

View File

@@ -5,7 +5,13 @@ dayz_CBLBase = [];
dayzE_CBLSChances = [];
dayzE_CBLSBase = [];
_config = configFile >> "CfgBuildingLoot";
_config = [];
if (DZE_MissionLootTable) then {
_config = missionConfigFile >> "CfgBuildingLoot";
} else {
_config = configFile >> "CfgBuildingLoot";
};
for "_i" from 0 to ((count _config) - 1) do {
_classname = toLower(configName (_config select _i));
_itemChances = [] + getArray (_config >> _classname >> "ItemChance");
@@ -53,7 +59,14 @@ for "_i" from 0 to ((count _config) - 1) do {
dayz_CLChances = [];
dayz_CLBase = [];
_config = configFile >> "cfgLoot";
_config = [];
if (DZE_MissionLootTable) then {
_config = missionConfigFile >> "cfgLoot";
} else {
_config = configFile >> "cfgLoot";
};
for "_i" from 0 to ((count (_config)) - 1) do {
_itemChances = (getArray (_config select _i)) select 1;
_weighted = [];
@@ -71,7 +84,14 @@ for "_i" from 0 to ((count (_config)) - 1) do {
dayzE_CLSChances = [];
dayzE_CLSBase = [];
_config = configFile >> "cfgLootSmall";
_config = [];
if (DZE_MissionLootTable) then {
_config = missionConfigFile >> "cfgLootSmall";
} else {
_config = configFile >> "cfgLootSmall";
};
for "_i" from 0 to ((count (_config)) - 1) do {
_itemChances = (getArray (_config select _i)) select 1;
_weighted = [];

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