mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 11:42:38 +03:00
Compare commits
502 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07ddbe93b5 | ||
|
|
192bf91d76 | ||
|
|
9e35f97dfe | ||
|
|
fdecea8154 | ||
|
|
6e2386d3ae | ||
|
|
1a605b430a | ||
|
|
b4dfed3546 | ||
|
|
efc00c5abe | ||
|
|
bee0b54c87 | ||
|
|
f36a6e1874 | ||
|
|
3adf0bf1e3 | ||
|
|
d4497bbb93 | ||
|
|
8189dbdb22 | ||
|
|
1a27ac8fde | ||
|
|
e496e4d755 | ||
|
|
1fe9b76e98 | ||
|
|
26239d31cd | ||
|
|
b6b3dd4d28 | ||
|
|
fbc4d2ff94 | ||
|
|
0a2d61e585 | ||
|
|
6f77cce286 | ||
|
|
65a82136e8 | ||
|
|
5ec3caac17 | ||
|
|
1af2cc7396 | ||
|
|
3c08c40e2e | ||
|
|
8dcc979c21 | ||
|
|
9676b925d4 | ||
|
|
59358e5a06 | ||
|
|
09a3b3361c | ||
|
|
29310075d2 | ||
|
|
324f0ade01 | ||
|
|
474e96e9ac | ||
|
|
36888be75c | ||
|
|
b508bde202 | ||
|
|
4bf297fb0a | ||
|
|
b551a6f343 | ||
|
|
633fba22cc | ||
|
|
a39a0e05fe | ||
|
|
2f7dbc87b5 | ||
|
|
dee2e511bd | ||
|
|
26dcb3a34a | ||
|
|
60ec596bd3 | ||
|
|
23e509053e | ||
|
|
b18bde1a67 | ||
|
|
23ece34fb8 | ||
|
|
2e046824bd | ||
|
|
8f92222602 | ||
|
|
f8cffef0a4 | ||
|
|
b6eeb71f76 | ||
|
|
53284c59d9 | ||
|
|
85783b00f7 | ||
|
|
0a8cb12353 | ||
|
|
04062f0bfb | ||
|
|
9089a4e6ac | ||
|
|
2f5b55fd09 | ||
|
|
dc8bb70dba | ||
|
|
482a1ddcdf | ||
|
|
faaa645922 | ||
|
|
e391778bf6 | ||
|
|
ea7e1b9a77 | ||
|
|
7190991b46 | ||
|
|
0f0d2e7479 | ||
|
|
4d40348f15 | ||
|
|
7634fd38b6 | ||
|
|
0c0d48d447 | ||
|
|
e52b8c9b3b | ||
|
|
207b07b9c2 | ||
|
|
6abfcf7002 | ||
|
|
bb8530d120 | ||
|
|
3a857932dc | ||
|
|
4cd50a574d | ||
|
|
8c27690f45 | ||
|
|
92ee0f90d3 | ||
|
|
e836f68729 | ||
|
|
9bda183fd8 | ||
|
|
af16c83065 | ||
|
|
8a008c4d90 | ||
|
|
f1438f99c3 | ||
|
|
024ddd683d | ||
|
|
5966ca1aa7 | ||
|
|
973bc0c05f | ||
|
|
1eee19bb37 | ||
|
|
130d12b8ea | ||
|
|
ede16ca10f | ||
|
|
4c08762da0 | ||
|
|
fbc37da085 | ||
|
|
a1d93eb3d2 | ||
|
|
14dc4c1f23 | ||
|
|
b03a2ed41d | ||
|
|
148f587045 | ||
|
|
2464fa954a | ||
|
|
63ee278e82 | ||
|
|
44c1b62bde | ||
|
|
3aefa64146 | ||
|
|
fbc0e3c641 | ||
|
|
83d510ccc8 | ||
|
|
8422057ff4 | ||
|
|
0fd1dc0028 | ||
|
|
3e8346dec4 | ||
|
|
7f78d1121d | ||
|
|
0981a2e266 | ||
|
|
d4edea2be4 | ||
|
|
4549a5189f | ||
|
|
aacfc2b6ff | ||
|
|
fa2ded3c27 | ||
|
|
3b3ee0d905 | ||
|
|
2e299958be | ||
|
|
8a8e0ce8d2 | ||
|
|
149b808b05 | ||
|
|
2aee8c7b9f | ||
|
|
1485569af3 | ||
|
|
ea43bbd0fc | ||
|
|
ba9af58532 | ||
|
|
3e5790dbb5 | ||
|
|
054ab1ef45 | ||
|
|
cd224ddce2 | ||
|
|
f50f264801 | ||
|
|
ddea0d632d | ||
|
|
c64ade63d8 | ||
|
|
9841350e7b | ||
|
|
aa574e6b6f | ||
|
|
b23c1c8f05 | ||
|
|
bc8083b4ed | ||
|
|
1a069565a6 | ||
|
|
5b4c7a116e | ||
|
|
088248d079 | ||
|
|
04745cd0e9 | ||
|
|
8ecf61184a | ||
|
|
84db9dc980 | ||
|
|
8b7e41792f | ||
|
|
3ea416a9d7 | ||
|
|
c97c82f812 | ||
|
|
f310125122 | ||
|
|
f4a8f1cf82 | ||
|
|
fcda4738ba | ||
|
|
ac37605493 | ||
|
|
3e26c96ccc | ||
|
|
752c663027 | ||
|
|
4089982e51 | ||
|
|
6eaa4f8bab | ||
|
|
90e862183d | ||
|
|
afa1036ca9 | ||
|
|
65123250a5 | ||
|
|
dfe88c6c51 | ||
|
|
9a13f4c98b | ||
|
|
9b5f92c9de | ||
|
|
502c3769a3 | ||
|
|
e0b4a81de2 | ||
|
|
e96a473f44 | ||
|
|
d9698c48a0 | ||
|
|
f7e880dc29 | ||
|
|
9062ac5f95 | ||
|
|
0a614fdaff | ||
|
|
2567311ada | ||
|
|
3f081ea56b | ||
|
|
dc64a90841 | ||
|
|
97311b4928 | ||
|
|
ed42f7f0f6 | ||
|
|
c71eded416 | ||
|
|
707f9a52dc | ||
|
|
21b36c3950 | ||
|
|
aa049e4257 | ||
|
|
e9a0b9625f | ||
|
|
68f5b2a081 | ||
|
|
9927690fdc | ||
|
|
1af3d16c7f | ||
|
|
9bb88ad2f9 | ||
|
|
733385cb2f | ||
|
|
732e4c407c | ||
|
|
c95303bc9b | ||
|
|
326e758d29 | ||
|
|
7ef18f0183 | ||
|
|
556093c1ce | ||
|
|
a3fd8bd1ca | ||
|
|
91c7ddf829 | ||
|
|
e52ec823d7 | ||
|
|
e187eabc55 | ||
|
|
454b7f592c | ||
|
|
03b2408ae3 | ||
|
|
cab5d03ab7 | ||
|
|
cf47a5d1c8 | ||
|
|
2264e4aa9c | ||
|
|
d0bcf22ba2 | ||
|
|
678590c7ce | ||
|
|
7d15cfb1bf | ||
|
|
89a5a3b459 | ||
|
|
4715a23233 | ||
|
|
0a178f2ecc | ||
|
|
bbf22db3f2 | ||
|
|
dda9f9d532 | ||
|
|
6f4c49f587 | ||
|
|
91836d6145 | ||
|
|
16901c122c | ||
|
|
5ffe563baa | ||
|
|
e95521c7bb | ||
|
|
4cbc63461d | ||
|
|
3a3cae0a53 | ||
|
|
c7b19b4703 | ||
|
|
ec2fb5709c | ||
|
|
ef779ba2e0 | ||
|
|
4977ab0770 | ||
|
|
8c24f2a1a4 | ||
|
|
0d048bdd8d | ||
|
|
4de90cc3b9 | ||
|
|
9933ea07de | ||
|
|
3699045c0a | ||
|
|
d16f90b9d3 | ||
|
|
39b0035bfb | ||
|
|
250a48f11e | ||
|
|
00f90ae9ee | ||
|
|
40e4239d42 | ||
|
|
a363400d64 | ||
|
|
3d7ba8ca39 | ||
|
|
2c4a677840 | ||
|
|
c4333e2b7d | ||
|
|
5c7ca4b975 | ||
|
|
13b7a77c71 | ||
|
|
2b876e0967 | ||
|
|
6bd5343018 | ||
|
|
a5addbda5b | ||
|
|
20dab78c27 | ||
|
|
aa8975e36c | ||
|
|
63db8aa252 | ||
|
|
35d1dea5b2 | ||
|
|
81f98e2d97 | ||
|
|
70546d693e | ||
|
|
90bb201643 | ||
|
|
9e694a2b4f | ||
|
|
f08d554d7e | ||
|
|
9562c319c1 | ||
|
|
f233cfce84 | ||
|
|
3634a196ee | ||
|
|
a7d27c0829 | ||
|
|
b157e3bc7f | ||
|
|
910d4fbbc3 | ||
|
|
9d143c00dc | ||
|
|
2fefccfa60 | ||
|
|
78ae60aff0 | ||
|
|
8e87599f26 | ||
|
|
fd0412dec6 | ||
|
|
5677dbe627 | ||
|
|
97e3723f8e | ||
|
|
0be75dd913 | ||
|
|
3f63f1ab2a | ||
|
|
e422df8fc0 | ||
|
|
bec3f71fc9 | ||
|
|
c5ce2f70a4 | ||
|
|
2a37818e47 | ||
|
|
4f2ab53a1f | ||
|
|
538f56c07b | ||
|
|
cdc98d2bcb | ||
|
|
31b0226b94 | ||
|
|
2127e189de | ||
|
|
de5eb05caf | ||
|
|
75fd7d31a4 | ||
|
|
f7486d5fd9 | ||
|
|
c63b0604b3 | ||
|
|
6004143858 | ||
|
|
4448546734 | ||
|
|
ebed1a24fd | ||
|
|
c0f1db52d0 | ||
|
|
03c5e9522f | ||
|
|
891b9dce48 | ||
|
|
84ebc488ab | ||
|
|
37fe2e26ca | ||
|
|
8bc7a3a52b | ||
|
|
0c4f3d3224 | ||
|
|
505952d562 | ||
|
|
2fab76a530 | ||
|
|
0acc23a796 | ||
|
|
cc4cfa4409 | ||
|
|
481369154a | ||
|
|
4e1960f46c | ||
|
|
a190397618 | ||
|
|
152054da94 | ||
|
|
9a88a4ad6c | ||
|
|
f521a241c8 | ||
|
|
ce1624438d | ||
|
|
e5f8314831 | ||
|
|
95c5c6c25b | ||
|
|
c7e2ed41bd | ||
|
|
551384c935 | ||
|
|
293c5cb6b5 | ||
|
|
90fa38c7bc | ||
|
|
0801da9a87 | ||
|
|
062d3d8734 | ||
|
|
8c01db42e5 | ||
|
|
39be93e118 | ||
|
|
5b8fc6b65f | ||
|
|
2883bfd2a3 | ||
|
|
8707ff7c97 | ||
|
|
01c579799f | ||
|
|
fe18c9091c | ||
|
|
172a4b9ad0 | ||
|
|
8971621d26 | ||
|
|
a99827d317 | ||
|
|
24ae26e5bf | ||
|
|
ba096c0426 | ||
|
|
c980b95e18 | ||
|
|
0665ed36c9 | ||
|
|
caec75424a | ||
|
|
6a50616e98 | ||
|
|
686aa7a84b | ||
|
|
d5eedc1908 | ||
|
|
93ae496a78 | ||
|
|
6fe6ea1fca | ||
|
|
ce408df7cd | ||
|
|
0a003fc3bb | ||
|
|
d2aaff8113 | ||
|
|
a052f42759 | ||
|
|
91fddad252 | ||
|
|
6216e93c4a | ||
|
|
1a961e475a | ||
|
|
4d8592fefa | ||
|
|
9bc5aaddde | ||
|
|
4300b6a949 | ||
|
|
e65d1cc9d3 | ||
|
|
927a69a9ce | ||
|
|
825c603026 | ||
|
|
7f3b45e8cb | ||
|
|
504da4d2b9 | ||
|
|
092c437c63 | ||
|
|
57688bf8c1 | ||
|
|
1309758166 | ||
|
|
c900e4060b | ||
|
|
30c7af8d04 | ||
|
|
d5a0ec41b1 | ||
|
|
0b61b3cb8e | ||
|
|
23d555a529 | ||
|
|
4637298b70 | ||
|
|
b664ab7f48 | ||
|
|
22c5c9c61d | ||
|
|
69fff899cf | ||
|
|
f8adb8202a | ||
|
|
a264228b9e | ||
|
|
0b5b8a801c | ||
|
|
f22d3120dc | ||
|
|
adaf0a9c9e | ||
|
|
76e85d3411 | ||
|
|
b6e48666ee | ||
|
|
ab26d9f52b | ||
|
|
413c0e2a37 | ||
|
|
1f0a4afa8f | ||
|
|
60a03ca75c | ||
|
|
eb35159ac3 | ||
|
|
ae7d992061 | ||
|
|
f6e9db4892 | ||
|
|
d1a15870b1 | ||
|
|
74568146e5 | ||
|
|
0726311df5 | ||
|
|
b184d535a5 | ||
|
|
70c5195b99 | ||
|
|
ec1bebb2c9 | ||
|
|
a3525b4ed6 | ||
|
|
aaac7cf447 | ||
|
|
5f29b9fcd8 | ||
|
|
91c8ba2389 | ||
|
|
fc5e3e6b47 | ||
|
|
a84768c603 | ||
|
|
8e6239b4d5 | ||
|
|
cb48b95c13 | ||
|
|
7f4af75b34 | ||
|
|
d90eea8c98 | ||
|
|
695f72e10a | ||
|
|
3aa294d881 | ||
|
|
77b626cbcd | ||
|
|
afa5874685 | ||
|
|
1d9a03f088 | ||
|
|
51239e380d | ||
|
|
a0ae7109f4 | ||
|
|
77f1bbfc94 | ||
|
|
964a8dc40c | ||
|
|
a9f23c6dc5 | ||
|
|
65037d5a87 | ||
|
|
423390381a | ||
|
|
d2712a9235 | ||
|
|
77e7fd982a | ||
|
|
004719fa56 | ||
|
|
3c3f62bf34 | ||
|
|
ad17aa07af | ||
|
|
40f8a0c9a0 | ||
|
|
4aea9f9e3c | ||
|
|
ed3266d124 | ||
|
|
cacc600703 | ||
|
|
77ae969a74 | ||
|
|
4c1b870606 | ||
|
|
315cc497da | ||
|
|
9137224b88 | ||
|
|
4ffb453e23 | ||
|
|
062ab84138 | ||
|
|
a753c97f5b | ||
|
|
6682f67288 | ||
|
|
ca3f31e1c3 | ||
|
|
70393db217 | ||
|
|
b76362cfac | ||
|
|
d25b0fbcb9 | ||
|
|
2a003beecf | ||
|
|
58f89d8d61 | ||
|
|
dbdcad75eb | ||
|
|
ed3cd2219c | ||
|
|
b20ce595dc | ||
|
|
e007becbec | ||
|
|
ee5d0b1fa6 | ||
|
|
64e5f0eecc | ||
|
|
321110c52e | ||
|
|
c313f211cf | ||
|
|
7a20bc7170 | ||
|
|
c119703983 | ||
|
|
f7e6f82ce6 | ||
|
|
c548d8c5ce | ||
|
|
55a9c68435 | ||
|
|
87489fc18a | ||
|
|
a4b6e652eb | ||
|
|
b94073aac8 | ||
|
|
138f1f9fa5 | ||
|
|
8b6b2b40cc | ||
|
|
24c91d69b8 | ||
|
|
47edbfa835 | ||
|
|
fdaf93a26c | ||
|
|
3b27c45f64 | ||
|
|
5fde59c7e4 | ||
|
|
95de9ef8f3 | ||
|
|
18a9b5b902 | ||
|
|
c52b8f20e1 | ||
|
|
8c16d76bb1 | ||
|
|
697728e6ee | ||
|
|
d7d8e9347f | ||
|
|
ae73a2267b | ||
|
|
efd8ef0cee | ||
|
|
2ab9a981a0 | ||
|
|
a0bb1f96d4 | ||
|
|
01e542b4c0 | ||
|
|
a99f94bf8b | ||
|
|
542eb67e05 | ||
|
|
5c28b05e7e | ||
|
|
e4df4bd950 | ||
|
|
7654f18e68 | ||
|
|
58a3f1698c | ||
|
|
f3efb8e266 | ||
|
|
02b2132101 | ||
|
|
40ef8c2e01 | ||
|
|
3d131b68a1 | ||
|
|
82c805d027 | ||
|
|
e2beac6fe9 | ||
|
|
75bb72dfaa | ||
|
|
cee93f8284 | ||
|
|
3190b34a8f | ||
|
|
ccf7b2dc4d | ||
|
|
74db937a2c | ||
|
|
cacf2118d3 | ||
|
|
f07e3f7c28 | ||
|
|
0bb08f3beb | ||
|
|
a57e2ab20a | ||
|
|
18f259d9f8 | ||
|
|
be2c27673b | ||
|
|
a440ea8610 | ||
|
|
744147264d | ||
|
|
d153dc34a6 | ||
|
|
62b34800a4 | ||
|
|
4817201b88 | ||
|
|
bf4f2cbe66 | ||
|
|
487b76536e | ||
|
|
4e34b1ad57 | ||
|
|
f90773e720 | ||
|
|
7839acde7f | ||
|
|
4dc5b079e3 | ||
|
|
009023a7b3 | ||
|
|
5400ea5537 | ||
|
|
c96eb55d20 | ||
|
|
7f80557c6b | ||
|
|
df236c4ce4 | ||
|
|
26473f4742 | ||
|
|
acb33e2f00 | ||
|
|
920cdfba78 | ||
|
|
b27836d2ee | ||
|
|
7bed8cce6c | ||
|
|
fd94c2bf4b | ||
|
|
49a2f11e24 | ||
|
|
f13affcb80 | ||
|
|
aae68de9ee | ||
|
|
738c702c89 | ||
|
|
c43caf7ab6 | ||
|
|
1fd0d5e90d | ||
|
|
4692a5625f | ||
|
|
5cd7e71904 | ||
|
|
1f620eef55 | ||
|
|
66a2b92d04 | ||
|
|
ac397a073b | ||
|
|
03ec419c29 | ||
|
|
de5cab5130 | ||
|
|
2ee6e7fb57 | ||
|
|
90ba54c559 | ||
|
|
1b83385f9b | ||
|
|
25f88d3f5a | ||
|
|
d1c99deac3 | ||
|
|
975835bb40 | ||
|
|
93568034ac | ||
|
|
1556dce15a | ||
|
|
82f475c7a5 | ||
|
|
339e77e8d9 | ||
|
|
f3130d2e37 | ||
|
|
d940614669 |
61
CHANGE LOG 1.0.4.txt
Normal file
61
CHANGE LOG 1.0.4.txt
Normal 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.
|
||||
@@ -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
|
||||
11
README.md
11
README.md
@@ -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
@@ -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}};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -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
@@ -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{};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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'};";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = "";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
class Crossbow_DZ : Crossbow {
|
||||
displayName = $STR_EQUIP_CROSSBOW;
|
||||
magazines[] =
|
||||
{
|
||||
"WoodenArrow"
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
4
SQF/dayz_code/Configs/CfgWeapons/Weapon/LMG/M249_EP1.hpp
Normal file
4
SQF/dayz_code/Configs/CfgWeapons/Weapon/LMG/M249_EP1.hpp
Normal file
@@ -0,0 +1,4 @@
|
||||
class M249_EP1;
|
||||
class M249_EP1_DZ:M249_EP1 {
|
||||
type = "1";
|
||||
};
|
||||
@@ -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";
|
||||
};
|
||||
@@ -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 {};
|
||||
@@ -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
|
||||
};
|
||||
@@ -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
|
||||
};
|
||||
@@ -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
@@ -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)";
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"];
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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"];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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"];
|
||||
|
||||
|
||||
@@ -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"];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"];
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
12
SQF/dayz_code/actions/player_heliDetach.sqf
Normal file
12
SQF/dayz_code/actions/player_heliDetach.sqf
Normal 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];
|
||||
104
SQF/dayz_code/actions/player_heliLift.sqf
Normal file
104
SQF/dayz_code/actions/player_heliLift.sqf
Normal 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
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -54,6 +54,8 @@ if(_type == "backpack") then {
|
||||
_b0x1337 addBackpackCargoGlobal [_create,_qty];
|
||||
};
|
||||
|
||||
_b0x1337 setPosATL _location;
|
||||
|
||||
player reveal _b0x1337;
|
||||
|
||||
player action ["Gear", _b0x1337];
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
127
SQF/dayz_code/compile/epoch_returnChange.sqf
Normal file
127
SQF/dayz_code/compile/epoch_returnChange.sqf
Normal 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
|
||||
45
SQF/dayz_code/compile/fn_checkItems.sqf
Normal file
45
SQF/dayz_code/compile/fn_checkItems.sqf
Normal 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
|
||||
@@ -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];
|
||||
|
||||
26
SQF/dayz_code/compile/fn_hasTools.sqf
Normal file
26
SQF/dayz_code/compile/fn_hasTools.sqf
Normal 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
|
||||
54
SQF/dayz_code/compile/fn_removeItems.sqf
Normal file
54
SQF/dayz_code/compile/fn_removeItems.sqf
Normal 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
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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"];
|
||||
};
|
||||
|
||||
19
SQF/dayz_code/compile/object_showPlotRadius.sqf
Normal file
19
SQF/dayz_code/compile/object_showPlotRadius.sqf
Normal 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;
|
||||
};
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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"];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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]];
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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))];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
@@ -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));
|
||||
@@ -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));
|
||||
@@ -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
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
};
|
||||
};
|
||||
|
||||
@@ -375,6 +375,10 @@ class CfgWeight
|
||||
{
|
||||
weight = 6.5;
|
||||
};
|
||||
class M249_EP1_DZ
|
||||
{
|
||||
weight = 6.5;
|
||||
};
|
||||
class Mk_48
|
||||
{
|
||||
weight = 8.2;
|
||||
|
||||
BIN
SQF/dayz_code/gui/skaronator/1.paa
Normal file
BIN
SQF/dayz_code/gui/skaronator/1.paa
Normal file
Binary file not shown.
BIN
SQF/dayz_code/gui/skaronator/2.paa
Normal file
BIN
SQF/dayz_code/gui/skaronator/2.paa
Normal file
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user