119 Commits

Author SHA1 Message Date
vbawol
740f4144f1 Merge pull request #1534 from raymix/master
updated stringtable compatibility with modular build
2014-08-18 00:59:52 -05:00
raymix
1c4be9a043 Merge remote-tracking branch 'upstream/master' 2014-08-18 04:08:14 +01:00
raymix
34a2d03163 compatibility for issue 1526 45m plotpole 2014-08-18 04:03:11 +01:00
vbawol
2542d94c21 Merge pull request #1531 from McKeighan/patch-10
Update UAZ.hpp
2014-08-17 14:04:00 -05:00
vbawol
a8a0e0ca5c Merge pull request #1532 from McKeighan/patch-11
Update Volha.hpp
2014-08-17 14:03:31 -05:00
vbawol
fe5af9425a Merge pull request #1526 from Mikeeeyy/patch-4
Update cannot build plot pole within 45m.
2014-08-17 14:02:09 -05:00
vbawol
ac07359c80 Merge pull request #1525 from Mikeeeyy/patch-3
Update cannot build plot pole within 45m.
2014-08-17 14:02:03 -05:00
McKeighan
1bdd96cd88 Update Volha.hpp
added armor damage resistance on upgrade.
2014-08-15 13:39:06 -04:00
McKeighan
5bb15f0c66 Update UAZ.hpp
Armor of only 50 on the upgrade seemed light since it's baseline is 40. The normal ratio of armor increase is X 2.5, so this has been applied to the 40.  (results in 100 armor).  Added damage resistance to the armor to increase it's effectiveness.
2014-08-15 13:36:47 -04:00
vbawol
a6f55498b7 Merge pull request #1528 from raymix/master
modular build code optimization + some extras
2014-08-15 01:52:04 -05:00
raymix
c66b229a96 modular build code optimization + some extras 2014-08-15 05:40:26 +01:00
Mikeeeyy
49fe5f4846 Update cannot build plot pole within 45m.
Updates the cannot build plot pole within 45m message to use the DZE_PlotPole variable.
2014-08-15 00:10:24 +01:00
Mikeeeyy
5ae7f920dd Update cannot build plot pole within 45m.
Updates the cannot build plot pole within 45m message to use the DZE_PlotPole variable.
2014-08-15 00:08:21 +01:00
vbawol
59124e6eef Merge pull request #1523 from Legodev/master
added Items for a simple Plantingsystem
2014-08-14 12:20:58 -05:00
vbawol
8192dd7b50 Merge pull request #1519 from McKeighan/patch-7
Update Offroad_DSHKM.hpp
2014-08-14 12:09:57 -05:00
vbawol
8bd438f4c6 Merge pull request #1515 from McKeighan/patch-3
Update AH6.hpp
2014-08-14 12:08:06 -05:00
vbawol
ba6a5c7dc1 Merge pull request #1513 from McKeighan/patch-1
Update cfgVehicles.hpp
2014-08-14 12:06:59 -05:00
vbawol
c7b400f36a Merge pull request #1524 from Mikeeeyy/patch-2
Fix Maintain Area/Preview not disappearing
2014-08-14 12:06:31 -05:00
vbawol
d8841474c6 Merge pull request #1521 from SJossy/patch-3
Update fn_damageActions.sqf
2014-08-14 12:05:27 -05:00
vbawol
ef0a157eb2 Merge pull request #1512 from raymix/master
minor range adjustments
2014-08-14 12:01:52 -05:00
vbawol
a0372bc88d Merge pull request #1509 from SJossy/patch-2
Update server_functions.sqf
2014-08-14 12:01:34 -05:00
Mikeeeyy
3e42af0bb4 Fix Maintain Area/Preview not disappearing
When players would look at a plot pole, they would get the maintain/preview option and if they looked away they would still have it.
2014-08-13 14:10:43 +01:00
Legodev
688c1f15b6 added Items for a simple Plantingsystem 2014-08-13 00:18:35 +02:00
vbawol
ca37210345 Merge pull request #1511 from Markokil321/patch-5
Update player_goFishing.sqf
2014-08-10 23:47:49 -05:00
vbawol
29adecc2e9 Merge pull request #1510 from Markokil321/patch-4
Add "Cannot fish while in combat"  text
2014-08-10 23:47:36 -05:00
vbawol
db15170622 Merge pull request #1508 from Uro1/master
Dynamic_vehicle & Traders spawning non-upgradable classes of hilux1 & datsun1 vehicles
2014-08-10 23:47:13 -05:00
vbawol
95676f0db7 Merge pull request #1507 from Beefheart/patch-1
Update Lada.hpp
2014-08-10 23:41:41 -05:00
Steven
04ee8578ff Update fn_damageActions.sqf
Bikes can currently be unlimited siphon sources
2014-08-11 12:09:15 +08:00
McKeighan
06b7eca2c8 Update Offroad_DSHKM.hpp
Drop in the segments that actually ALLOWS the player to upgrade to the different variants.
2014-08-10 13:09:16 -04:00
McKeighan
a79a86889d Update AH6.hpp 2014-08-09 13:40:23 -04:00
McKeighan
18d283428b Update cfgVehicles.hpp
Added definition for class TANK.

This will make vehicles like the M113 much easier to correct in future roll outs as currently many of them have turret issues.
2014-08-09 13:17:07 -04:00
raymix
14ebc32bd4 minor range adjustments 2014-08-09 14:21:21 +01:00
Marko
64d9be9169 Update player_goFishing.sqf
Added better message when trying to fish while in combat, to avoid confusion.
2014-08-09 11:41:43 +02:00
Marko
f2145b6b8d Add "Cannot fish ehile in combat" text
To avoid confusion when players try to fish while in combat, google translate was used, so excuse any wonky translations.
2014-08-09 11:38:36 +02:00
Steven
29c9f979df Update server_functions.sqf
Cut & paste casualty
2014-08-09 11:26:18 +08:00
Uro1
7dd6aac669 Typo 2014-08-08 21:26:27 +01:00
Uro1
589bf3eaa1 Update changlog 2014-08-08 21:24:43 +01:00
Uro1
2573bd184c Server & Traders spawning non-upgradable vehicles
Server and Traders spawning non-upgradable hilux1 & datsun1 variants
2014-08-08 21:18:48 +01:00
Beefheart
b1764bff8e Update Lada.hpp
fixed some copy-paste errors
2014-08-08 21:50:19 +02:00
Uro1
504503a46e Merge pull request #10 from vbawol/master
merge from epoch master
2014-08-08 20:19:22 +01:00
vbawol
2bd68a04f6 Merge pull request #1506 from raymix/master
bug fix & adjustable snap range
2014-08-08 12:19:48 -05:00
raymix
176c0372b4 bug fix & adjustable snap range 2014-08-08 13:30:25 +01:00
vbawol
ff706fde43 Merge pull request #1505 from raymix/master
function based player_build
2014-08-07 11:19:18 -05:00
raymix
73470f1e90 modular player_build 2014-08-07 13:22:09 +01:00
raymix
361ab3a3e5 function based player_build 2014-08-07 13:03:14 +01:00
vbawol
676bb91122 Merge pull request #1501 from infiSTAR/patch-1
delete promptRName.sqf
2014-08-05 17:56:13 -05:00
infiSTAR.de
d4f978e461 delete promptRName.sqf
Delete promptRName.sqf - only used for hacks and not the mod anymore
2014-08-05 19:42:40 +02:00
Skaronator.com
dd582d28ec Merge pull request #1496 from ebaydayz/patch-1
Update CHANGE LOG 1.0.5.2.txt
2014-08-02 16:46:18 +02:00
ebaydayz
12400b1a2b Update CHANGE LOG 1.0.5.2.txt 2014-08-01 14:58:20 -04:00
ebaydayz
e52790d8fb Update CHANGE LOG 1.0.5.2.txt 2014-08-01 14:56:41 -04:00
ebaydayz
a5e0f665e9 Update CHANGE LOG 1.0.5.2.txt 2014-08-01 13:56:49 -04:00
Skaronator.com
1fb0e07ebd Merge pull request #1490 from Namindu/patch-30
Update CHANGE LOG 1.0.5.2.txt
2014-07-31 23:36:27 +02:00
Skaronator.com
b8e07f3cc2 Merge pull request #1495 from ebaydayz/patch-5
Change count back to forEach
2014-07-31 22:34:16 +02:00
Skaronator.com
29c2b09175 Merge pull request #1494 from ebaydayz/patch-4
Change count back to forEach
2014-07-31 22:34:13 +02:00
Skaronator.com
923b2833c9 Merge pull request #1493 from ebaydayz/patch-3
Change count back to forEach
2014-07-31 22:34:09 +02:00
Skaronator.com
743ddf5b6b Merge pull request #1492 from ebaydayz/patch-2
Change count back to forEach
2014-07-31 22:34:02 +02:00
Skaronator.com
5603413f6e Merge pull request #1489 from Namindu/patch-14
Updated Steam Ports
2014-07-31 20:02:38 +02:00
Skaronator.com
1548ee19a6 Merge pull request #1488 from Namindu/patch-15
Updated Steam Ports
2014-07-31 20:02:27 +02:00
Skaronator.com
15f12c4861 Merge pull request #1487 from Namindu/patch-29
Updated Steam Ports
2014-07-31 20:02:23 +02:00
Skaronator.com
13bd5c554a Merge pull request #1486 from Namindu/patch-28
Updated Steam Ports
2014-07-31 20:02:21 +02:00
Skaronator.com
ee0a6b8bca Merge pull request #1485 from Namindu/patch-27
Updated Steam Ports
2014-07-31 20:02:18 +02:00
Skaronator.com
c0c8e0ecc0 Merge pull request #1484 from Namindu/patch-26
Updated Steam Ports
2014-07-31 20:02:15 +02:00
Skaronator.com
6ca0550a2a Merge pull request #1483 from Namindu/patch-25
Updated Steam Ports
2014-07-31 20:02:13 +02:00
Skaronator.com
9628b8845f Merge pull request #1482 from Namindu/patch-24
Updated Steam Ports
2014-07-31 20:02:10 +02:00
Skaronator.com
c63a7d5cb4 Merge pull request #1481 from Namindu/patch-23
Updated Steam Ports
2014-07-31 20:01:34 +02:00
Skaronator.com
25e461df99 Merge pull request #1480 from Namindu/patch-22
Updated Steam Ports
2014-07-31 20:01:30 +02:00
Skaronator.com
6eff337579 Merge pull request #1479 from Namindu/patch-21
Updated Steam Ports
2014-07-31 20:01:27 +02:00
Skaronator.com
6b4935669d Merge pull request #1478 from Namindu/patch-20
Updated Steam Ports
2014-07-31 20:01:22 +02:00
Skaronator.com
8250dcbec2 Merge pull request #1477 from Namindu/patch-19
Updated Steam Ports
2014-07-31 20:01:15 +02:00
Skaronator.com
ee179e1fc4 Merge pull request #1476 from Namindu/patch-18
Updated Steam Ports
2014-07-31 20:01:12 +02:00
Skaronator.com
a6d51c7e63 Merge pull request #1475 from Namindu/patch-17
Updated Steam Ports
2014-07-31 20:01:07 +02:00
Skaronator.com
0b2436fbb5 Merge pull request #1474 from Namindu/patch-16
Updated Steam Ports
2014-07-31 20:01:03 +02:00
Skaronator.com
1ab7f14a87 Merge pull request #1473 from Namindu/patch-13
Updated Steam Ports
2014-07-31 20:00:59 +02:00
Skaronator.com
1592885121 Merge pull request #1472 from Namindu/patch-12
Updated Steam Ports
2014-07-31 20:00:51 +02:00
ebaydayz
6d1d4c998a Change count back to forEach
Can not nest count loops inside other count loops:
https://community.bistudio.com/wiki/Code_Optimisation#forEach_vs_count
2014-07-31 14:00:50 -04:00
Skaronator.com
ceae17af98 Merge pull request #1471 from Namindu/patch-10
Updated Steam Ports
2014-07-31 20:00:39 +02:00
ebaydayz
d19001d87b Change count back to forEach
Can not nest count loops inside other count loops:
https://community.bistudio.com/wiki/Code_Optimisation#forEach_vs_count
2014-07-31 13:45:26 -04:00
ebaydayz
445556ff12 Change count back to forEach
Can not nest count loops inside other count loops:
https://community.bistudio.com/wiki/Code_Optimisation#forEach_vs_count
2014-07-31 13:41:02 -04:00
ebaydayz
81729c26f4 Change count back to forEach
Can not nest count loops inside other count loops:
https://community.bistudio.com/wiki/Code_Optimisation#forEach_vs_count
2014-07-31 13:33:51 -04:00
vbawol
573bacdfc3 Merge pull request #1491 from ebaydayz/patch-1
Change count back to forEach
2014-07-31 12:23:20 -05:00
ebaydayz
0111a8f580 Change count back to forEach
You can not nest count loops inside other count loops:
https://community.bistudio.com/wiki/Code_Optimisation#forEach_vs_count
2014-07-31 13:14:10 -04:00
Namindu
d4028a8b88 Update CHANGE LOG 1.0.5.2.txt 2014-07-30 16:23:50 -07:00
Namindu
18d76b13c6 Updated Steam Ports 2014-07-30 16:07:22 -07:00
Namindu
e302195c43 Updated Steam Ports 2014-07-30 16:06:58 -07:00
Namindu
b77d959572 Updated Steam Ports 2014-07-30 16:06:35 -07:00
Namindu
5ca6aab0c8 Updated Steam Ports 2014-07-30 16:06:12 -07:00
Namindu
a624c81653 Updated Steam Ports 2014-07-30 16:05:51 -07:00
Namindu
b6d8a8b686 Updated Steam Ports 2014-07-30 16:05:21 -07:00
Namindu
f0d041a8b3 Updated Steam Ports 2014-07-30 16:04:52 -07:00
Namindu
47ec14e9fa Updated Steam Ports 2014-07-30 16:04:24 -07:00
Namindu
329147da65 Updated Steam Ports 2014-07-30 16:03:56 -07:00
Namindu
c8ec9f545b Updated Steam Ports 2014-07-30 16:03:31 -07:00
Namindu
a340b10084 Updated Steam Ports 2014-07-30 16:03:08 -07:00
Namindu
427b9efd0f Updated Steam Ports 2014-07-30 16:02:43 -07:00
Namindu
ed42233c92 Update config.cfg 2014-07-30 16:01:51 -07:00
Namindu
383ec9a70d Updated Steam Ports 2014-07-30 16:01:32 -07:00
Namindu
640a496316 Updated Steam Ports 2014-07-30 16:01:12 -07:00
Namindu
05bfcd9299 Updated Steam Ports 2014-07-30 16:00:51 -07:00
Namindu
de538db0a4 Updated Steam Ports 2014-07-30 16:00:16 -07:00
Namindu
0ff822200a Updated Steam Ports 2014-07-30 15:59:48 -07:00
Namindu
c464d17c76 Updated Steam Ports 2014-07-30 15:51:18 -07:00
vbawol
3bc4909c6f Merge pull request #1468 from ebaydayz/patch-1
Update CHANGE LOG 1.0.5.2.txt
2014-07-29 15:00:07 -05:00
ebaydayz
94aaf929f2 Update CHANGE LOG 1.0.5.2.txt 2014-07-29 15:58:38 -04:00
vbawol
f63ad88dbd Merge pull request #1467 from ebaydayz/patch-2
Change count back to forEach - fix empty safes
2014-07-29 14:57:54 -05:00
ebaydayz
0d5d0b9b8e Change count back to forEach - fix empty safes
See Kronzky's note:
https://community.bistudio.com/wiki/count

You can only use count to iterate through an array if all elements in the array are of the same data type. In this case you have an array with strings (type), arrays (worldspace, inventory, hitpoints) and numbers (fuel, ownerID). You need to use forEach instead. 

This error explains the problem people were having with safe inventories being empty when they open them after a restart:
http://epochmod.com/forum/index.php?/topic/13423-safe-is-empty-after-restart-if-you-open-it/
https://github.com/vbawol/DayZ-Epoch/issues/1368
https://github.com/vbawol/DayZ-Epoch/issues/1422
2014-07-29 15:50:53 -04:00
vbawol
ec1308afd6 Merge pull request #1466 from ebaydayz/patch-1
Fix typo _intentory > _inventory
2014-07-29 13:33:10 -05:00
vbawol
3ec0b2be60 Merge pull request #1465 from Mikeeeyy/patch-1
Fix for glitching through doors (dayz_spaceInterrupt.sqf)
2014-07-29 13:33:03 -05:00
ebaydayz
a8389ba2bc Fix typo _intentory > _inventory
_intentory should be _inventory
2014-07-29 14:26:48 -04:00
Mikeeeyy
a4ade23086 Update dayz_spaceInterrupt.sqf
Changed starts at line 87 and end at line 93.
Fix for glitching through doors.
2014-07-29 17:47:29 +01:00
Uro1
1f2bc80070 Merge pull request #9 from vbawol/master
pull from master
2014-07-28 21:17:09 +01:00
[VB]AWOL
cb633715fa typo 2014-07-27 23:17:00 -05:00
[VB]AWOL
abc4c2f6ce push PHP steam server list query code
Example of how to get from server list from steam works for both Arma 2
and 3 servers
Original Source:
https://developer.valvesoftware.com/wiki/User:Pizzahut/test.php
2014-07-27 23:11:49 -05:00
vbawol
fc1ce8421e Merge pull request #1459 from raymix/master
some missing defines
2014-07-26 15:29:25 -05:00
vbawol
29fe8ced1a Update CHANGE LOG 1.0.5.2.txt 2014-07-26 15:28:02 -05:00
icomrade
f284fc1b92 Don't play anim for unconscious if in vehicle 2014-07-26 14:15:38 -04:00
raymix
411055260f some missing defines 2014-07-26 03:36:26 +01:00
vbawol
c479fe45f3 Merge pull request #1452 from Markokil321/patch-2
Update player_build.sqf
2014-07-25 16:02:32 -05:00
vbawol
327e7677e7 Update 1.0.5_Updates.sql 2014-07-25 13:07:01 -05:00
Marko
e330fe17aa Update player_build.sqf
Would this work for adding built item code into systemchat? This way people can PageUp to view it, even after its gone from the screen.
2014-07-25 00:34:19 +02:00
86 changed files with 1898 additions and 970 deletions

View File

@@ -1,13 +1,14 @@
[NEW] RedRyder BB Gun by @arma2WillRobinson
[NEW] DB Backup script. @raziel23x
[NEW] DB Backup script. @RimBlock
[NEW] Use DayZ_UseSteamID = false; in your init.sqf to use the old PlayerUID, instead of SteamID @icomrade
[NEW] UI Update - Graphical and code changes, enable using Dayz_Dark_UI = true; in init.sqf. @hogscraper http://epochmod.com/forum/index.php?/topic/13654-proposed-ui-change/
[NOTE] It's recommend to convert to the new SteamID system if possible, new servers should not use DayZ_UseSteamID = false;
[NEW] Snap building (disabled by default), use DZE_snapBuilding = true; in your init.sqf to enable. @raymix
[NEW] Snap building (disabled by default), use DZE_modularBuild = true; in your init.sqf to enable. @raymix
[NEW] Modular/Function based player_build for addon makers and modders. @raymix (more info and concepts - http://epochmod.com/forum/index.php?/topic/14628-modular-function-based-player-buildsqf/ )
[CHANGED] An infection chance of -1 disables self-transfusion infection. 0 is always infected. (DZE_selfTransfuse_Values) @icomrade
[CHANGED] Removed weapons from Traders hands and made them stand with arms by their side. @SilvDev
[CHANGED] Tweaked fuel capacity variables for vehicles. @raziel23x
[CHANGED] Tweaked fuel capacity variables for vehicles. @RimBlock
[FIXED] Backpack wipes when changing clothes. #1361 @icomrade
[FIXED] CH53 gear when locked #1364 @icomrade
@@ -19,9 +20,14 @@
[FIXED] Fire cleanup diag_log error in server_functions.sqf #1421 @ebaydayz
[FIXED] NearestObjects position error in server_playerSync.sqf #1425 @ebaydayz
[FIXED] Corrected ClassName type for CH53_DZE and BAF_Merlin_DZE. @Cinjun
[FIXED] Some counts reverted to forEach - count loops can not be nested inside other count loops #1491-#1495 @ebaydayz
[FIXED] Safes empty when opening after restart #1467 @ebaydayz
[FIXED] Dynamic_vehicle spawning non-upgradable classes of hilux1 & datsun1. @Uro1
[UPDATED] .hpp files updated in dayz_epoch_b CfgLootPos > CfgBuildingPos. @Uro1
[UPDATED] .bat files updated in Config-Examples @Raziel23x
[UPDATED] Updated all config.cfg in Config-Examples, Added Default Steam Ports and Updated Layout. @Namindu
[UPDATED] Epoch.sql & 1.0.5_Updates.sql with correct classnames for upgradable hilux1 & datsun1 versions. @Uro1
[INFO] (EXTREMELY IMPORTANT) Server owners MUST update their required build and beta to 125548
[INFO] Server admins should add requiredSecureId = 2; to their server.cfg to prevent uid spoofing.

View File

@@ -123,7 +123,7 @@ class SnapBuilding {
"CinderWallDoorSmall_DZ",
"MetalFloor_DZ"
};
radius = 5;
radius = 7;
};
class WoodFloorQuarter_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost
@@ -246,7 +246,7 @@ class SnapBuilding {
{2.752, 0, 1.5,"Right"},
{0, 0, 3.37042,"Top"}
};
radius = 5;
radius = 10;
};
class CinderWall_Preview_DZ: Cinder_DZE {};
class CinderWallDoorway_Preview_DZ: Cinder_DZE {};
@@ -283,7 +283,7 @@ class SnapBuilding {
{-2.64, 0, 0.009,"Left"},
{2.64, 0, 0.009,"Right"}
};
radius = 10;
radius = 12;
};
class MetalFloor_DZ: FloorsWallsStairs{
points[] = {
@@ -293,7 +293,7 @@ class SnapBuilding {
{-2.64, 0, 0.15,"Left"},
{2.64, 0, 0.15,"Right"}
};
radius = 10;
radius = 12;
};
@@ -340,7 +340,7 @@ class SnapBuilding {
snapTo[] = {
"StickFence_DZ"
};
radius = 5;
radius = 10;
points[] = {
{0,0,0,"Pivot"},
{-2.95,0,0.3,"Left"},
@@ -352,7 +352,7 @@ class SnapBuilding {
snapTo[] = {
"Fence_corrugated_DZ"
};
radius = 5;
radius = 10;
points[] = {
{0,0,0,"Pivot"},
{-1.95,0,0.88,"Left"},
@@ -364,7 +364,7 @@ class SnapBuilding {
snapTo[] = {
"WoodRamp_DZ"
};
radius = 5;
radius = 7;
points[] = {
{0,0,0,"Pivot"},
{0.65,-1.7,1.2,"Back"},

View File

@@ -1666,6 +1666,8 @@ class CfgMagazines {
#include "CfgMagazines\MeleeSwing.hpp"
#include "CfgMagazines\Planting.hpp"
class HandGrenade_Stone;
class ItemTrashToiletpaper : HandGrenade_Stone {
scope = public;
@@ -1707,6 +1709,15 @@ class CfgMagazines {
output[] = {{"ItemCanvas",1}};
input[] = {{"ItemKiloHemp",1}};
};
class Crafting1
{
text = "Craft Hemp Seeds";
script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;";
neednearby[] = {""};
requiretools[] = {"ItemKnife"};
output[] = {{"ItemHempSeed",5}};
input[] = {{"ItemKiloHemp",1}};
};
};
};
};

View File

@@ -64,6 +64,18 @@ class FoodPumpkin : FoodEdible {
weight = 1;
model = "z\addons\dayz_communityassets\models\pistachio.p3d"; // TODO: model + icon
picture = "\z\addons\dayz_communityassets\pictures\equip_pistachios_CA.paa";
class ItemActions
{
class Crafting
{
text = "Craft Pumpkin Seeds";
script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;";
neednearby[] = {""};
requiretools[] = {"ItemKnife"};
output[] = {{"ItemPumpkinSeed",5}};
input[] = {{"FoodPumpkin",1}};
};
};
};
class FoodSunFlowerSeed : FoodEdible {
scope = public;

View File

@@ -0,0 +1,93 @@
class ItemFertilizer: CA_Magazine {
scope = public;
count = 1;
displayName = "Fertilizer";
descriptionShort = "Fertilizer";
weight = 0.1;
model = "z\addons\dayz_communityassets\models\mre.p3d"; // TODO: model + icon
picture = "\z\addons\dayz_communityassets\pictures\equip_mre_CA.paa";
type = 256;
};
class ItemPumpkinSeed: CA_Magazine {
scope = public;
count = 1;
displayName = "A Pumpkin Seed";
descriptionShort = "A Pumpkin Seed";
weight = 0.1;
model = "\z\addons\dayz_epoch\models\doc_child1.p3d"; // TODO: model + icon
picture = "\z\addons\dayz_epoch\pictures\equip_child1_ca.paa";
type = 256;
class ItemActions {
class Crafting
{
text = "Craft Pumpkin Plant";
script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;";
neednearby[] = {""};
requiretools[] = {"ItemKnife"};
output[] = {{"ItemPumpkinPlant",1},{"ItemWaterbottleUnfilled",1}};
input[] = {{"ItemPumpkinSeed",1},{"ItemFertilizer",1},{"ItemWaterbottle",1}};
};
};
};
class ItemPumpkinPlant: CA_Magazine {
scope = public;
count = 1;
displayName = "A Pumpkin Plant";
descriptionShort = "A Pumpkin Plant";
weight = 0.1;
model = "\z\addons\dayz_epoch\models\doc_child1.p3d"; // TODO: model + icon
picture = "\z\addons\dayz_epoch\pictures\equip_child1_ca.paa";
type = 256;
class ItemActions {
class Build {
text = "Plant Pumpkin";
script = "spawn player_build;";
require[] = {"ItemEtool"};
create = "Grave"; // TODO: model for Pumpkin Stage 1
};
};
};
class ItemHempSeed: CA_Magazine {
scope = public;
count = 1;
displayName = "A Hemp Seed";
descriptionShort = "A Hemp Seed";
weight = 0.1;
model = "\z\addons\dayz_epoch\models\doc_child2.p3d"; // TODO: model + icon
picture = "\z\addons\dayz_epoch\pictures\equip_child2_ca.paa";
type = 256;
class ItemActions {
class Crafting
{
text = "Craft Hemp Plant";
script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;";
neednearby[] = {""};
requiretools[] = {"ItemKnife"};
output[] = {{"ItemHempPlant",1},{"ItemWaterbottleUnfilled",1}};
input[] = {{"ItemHempSeed",1},{"ItemFertilizer",1},{"ItemWaterbottle",1}};
};
};
};
class ItemHempPlant: CA_Magazine {
scope = public;
count = 1;
type = 256;
displayName = "A Hemp Plant";
descriptionShort = "A Hemp Plant";
weight = 0.1;
model = "\z\addons\dayz_epoch\models\doc_child2.p3d"; // TODO: model + icon
picture = "\z\addons\dayz_epoch\pictures\equip_child2_ca.paa";
type = 256;
class ItemActions {
class Build {
text = "Plant Hemp";
script = "spawn player_build;";
require[] = {"ItemEtool"};
create = "MAP_c_fern"; // TODO: model for Hemp Stage 1
};
};
};

View File

@@ -42,7 +42,7 @@ class AH6J_EP1_DZE: AH6J_EP1_DZ
scope = 2;
side = 2;
displayName = "AH6J_DZE";
magazines[] = {};
magazines[] = {"60Rnd_CMFlareMagazine"};
};
class AH6X_DZ: AH6_Base_EP1 {
displayname = "AH6X Little Bird";

View File

@@ -592,7 +592,7 @@ class Lada2_DZE2: Lada2_DZE1 {
};
class Upgrades {
ItemLRK[] = {"Lada1_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
ItemLRK[] = {"Lada2_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
};
};
class LadaLM_DZE2: LadaLM_DZE1 {
@@ -639,7 +639,7 @@ class LadaLM_DZE2: LadaLM_DZE1 {
};
class Upgrades {
ItemLRK[] = {"Lada1_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
ItemLRK[] = {"LadaLM_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
};
};
class Lada1_TK_CIV_EP1_DZE2: Lada1_TK_CIV_EP1_DZE1 {
@@ -686,7 +686,7 @@ class Lada1_TK_CIV_EP1_DZE2: Lada1_TK_CIV_EP1_DZE1 {
};
class Upgrades {
ItemLRK[] = {"Lada1_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
ItemLRK[] = {"Lada1_TK_CIV_EP1_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
};
};
class Lada2_TK_CIV_EP1_DZE2: Lada2_TK_CIV_EP1_DZE1 {
@@ -733,7 +733,7 @@ class Lada2_TK_CIV_EP1_DZE2: Lada2_TK_CIV_EP1_DZE1 {
};
class Upgrades {
ItemLRK[] = {"Lada1_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
ItemLRK[] = {"Lada2_TK_CIV_EP1_DZE3",{},{{"ItemLRK",1},{"PartGeneric",1},{"ItemTent",1}}};
};
};
@@ -799,4 +799,4 @@ class Lada1_TK_CIV_EP1_DZE4: Lada1_TK_CIV_EP1_DZE3 {
};
class Lada2_TK_CIV_EP1_DZE4: Lada2_TK_CIV_EP1_DZE3 {
fuelCapacity = 210; // car 100
};
};

View File

@@ -333,25 +333,112 @@ class Offroad_DSHKM_Gue_DZE: Offroad_DSHKM_base
gunnerCompartments = "Compartment2";
};
};
class Upgrades
{
ItemORP[] = {"Offroad_DSHKM_Gue_DZE1",
{ },
{
{ "ItemORP",1 },
{ "PartEngine",2 } }};
};
};
// Performance 1
class Offroad_DSHKM_Gue_DZE1: Offroad_DSHKM_Gue_DZE
{
maxspeed = 170; // Offroad_DSHKM_base 150 | car 100
class Upgrades
{
ItemLRK[] = {"Offroad_DSHKM_Gue_DZE2",
{ },
{
{ "ItemLRK",1 },
{ "PartGeneric",2 },
{ "ItemTent",1 } }};
};
};
// Armmor 2
class Offroad_DSHKM_Gue_DZE2: Offroad_DSHKM_Gue_DZE1
{
armor = 50; // car 20
class HitPoints: HitPoints
{
class HitLFWheel: HitLFWheel
{
armor = 0.3;
};
class HitLBWheel: HitLBWheel
{
armor = 0.3;
};
class HitRFWheel: HitRFWheel
{
armor = 0.3;
};
class HitRBWheel: HitRBWheel
{
armor = 0.3;
};
class HitFuel
{
armor = 0.28;
material = -1;
name = "palivo";
visual = "";
passThrough = 1;
};
class HitEngine
{
armor = 1;
material = -1;
name = "motor";
visual = "";
passThrough = 1;
};
class HitGlass1: HitGlass1
{
armor = 0.1;
};
class HitGlass2: HitGlass2
{
armor = 0.1;
};
class HitGlass3: HitGlass3
{
armor = 0.1;
};
class HitGlass4: HitGlass4
{
armor = 0.1;
};
};
class Upgrades
{
ItemLRK[] = {"Offroad_DSHKM_Gue_DZE3",
{ },
{
{ "ItemLRK",1 },
{ "PartGeneric",2 },
{ "ItemTent",1 } }};
};
};
// Cargo 3
class Offroad_DSHKM_Gue_DZE3: Offroad_DSHKM_Gue_DZE2
{
transportMaxWeapons = 20; // car 10
transportMaxMagazines = 100; // car 50
transportmaxbackpacks = 4; // car 2
transportmaxbackpacks = 4; // car 2
class Upgrades
{
ItemTNK[] = {"Offroad_DSHKM_Gue_DZE4",
{ },
{
{ "ItemTNK",1 },
{ "PartFueltank",2 } }};
};
};
// Fuel 4
class Offroad_DSHKM_Gue_DZE4: Offroad_DSHKM_Gue_DZE3
{

View File

@@ -219,7 +219,8 @@ class UAZ_Unarmed_TK_CIV_EP1_DZE1: UAZ_Unarmed_TK_CIV_EP1 {
// Armor 2
class UAZ_CDF_DZE2: UAZ_CDF_DZE1 {
armor = 50; // car 20
armor = 100; // UAZ 40
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -266,7 +267,8 @@ class UAZ_CDF_DZE2: UAZ_CDF_DZE1 {
};
};
class UAZ_INS_DZE2: UAZ_INS_DZE1 {
armor = 50; // car 20
armor = 100; // UAZ 40
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -313,7 +315,8 @@ class UAZ_INS_DZE2: UAZ_INS_DZE1 {
};
};
class UAZ_RU_DZE2: UAZ_RU_DZE1 {
armor = 50; // car 20
armor = 100; // UAZ 40
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -360,7 +363,8 @@ class UAZ_RU_DZE2: UAZ_RU_DZE1 {
};
};
class UAZ_Unarmed_TK_EP1_DZE2: UAZ_Unarmed_TK_EP1_DZE1 {
armor = 50; // car 20
armor = 100; // UAZ 40
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -407,7 +411,8 @@ class UAZ_Unarmed_TK_EP1_DZE2: UAZ_Unarmed_TK_EP1_DZE1 {
};
};
class UAZ_Unarmed_UN_EP1_DZE2: UAZ_Unarmed_UN_EP1_DZE1 {
armor = 50; // car 20
armor = 100; // UAZ 40
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -454,7 +459,8 @@ class UAZ_Unarmed_UN_EP1_DZE2: UAZ_Unarmed_UN_EP1_DZE1 {
};
};
class UAZ_Unarmed_TK_CIV_EP1_DZE2: UAZ_Unarmed_TK_CIV_EP1_DZE1 {
armor = 50; // car 20
armor = 100; // UAZ 40
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;

View File

@@ -281,6 +281,7 @@ class Volha_2_TK_CIV_EP1_DZE1: Volha_2_TK_CIV_EP1 {
// Armor 2
class VolhaLimo_TK_CIV_EP1_DZE2: VolhaLimo_TK_CIV_EP1_DZE1 {
armor = 50; // car 20
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -328,6 +329,7 @@ class VolhaLimo_TK_CIV_EP1_DZE2: VolhaLimo_TK_CIV_EP1_DZE1 {
};
class Volha_1_TK_CIV_EP1_DZE2: Volha_1_TK_CIV_EP1_DZE1 {
armor = 50; // car 20
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -375,6 +377,7 @@ class Volha_1_TK_CIV_EP1_DZE2: Volha_1_TK_CIV_EP1_DZE1 {
};
class Volha_2_TK_CIV_EP1_DZE2: Volha_2_TK_CIV_EP1_DZE1 {
armor = 50; // car 20
damageResistance = 0.02099;
class HitPoints: HitPoints {
class HitLFWheel: HitLFWheel {
armor = 0.3;
@@ -459,4 +462,4 @@ class Volha_1_TK_CIV_EP1_DZE4: Volha_1_TK_CIV_EP1_DZE3 {
};
class Volha_2_TK_CIV_EP1_DZE4: Volha_2_TK_CIV_EP1_DZE3 {
fuelCapacity = 210; // car 100
};
};

View File

@@ -204,6 +204,174 @@ class CfgVehicles {
};
};
};
class Tank: landvehicle {
class Sounds: Sounds {
class Engine;
class Movement;
};
driverOpticsModel = "\ca\Tracked\optika_tank_driver";
commanderCanSee = 31;
gunnerCanSee = 30;
getInAction = "GetInMedium";
getOutAction = "GetOutMedium";
cargoGetInAction[] = {"GetInLow"};
cargoGetOutAction[] = {"GetOutLow"};
audible = 18;
sensitivityEar = "0.0075 /3";
armorStructural = 2;
class AnimationSources;
class HitPoints {
class HitHull {
armor = 1;
material = -1;
name = "NEtelo";
visual = "telo";
passThrough = 1;
};
class HitLTrack {
armor = 0.15;
material = -1;
name = "pas_L";
visual = "pas_L";
passThrough = 0.3;
};
class HitRTrack {
armor = 0.15;
material = -1;
name = "pas_P";
visual = "pas_P";
passThrough = 0.3;
};
class HitEngine {
armor = 0.35;
material = -1;
name = "motor";
visual = "motor";
passThrough = 0.2;
minimalHit = 0.02;
};
};
weapons[] = {};
magazines[] = {};
class Turrets {
class MainTurret: NewTurret {
gunnerAction = "ManActTestDriverOut";
gunnerOpticsModel = "\ca\Tracked\optika_tank_gunner";
gunnerOutOpticsModel = "\ca\Weapons\optika_empty";
gunBeg = "usti hlavne";
gunEnd = "konec hlavne";
memoryPointsGetInGunner = "pos gunner";
memoryPointsGetInGunnerDir = "pos gunner dir";
gunnerGetInAction = "GetInHigh";
gunnerGetOutAction = "GetOutHigh";
viewGunnerInExternal = 0;
primaryGunner = 1;
gunnerOpticsEffect[] = {"TankGunnerOptics2","OpticsBlur1","OpticsCHAbera1"};
gunnerOutOpticsEffect[] = {};
class HitPoints {
class HitTurret {
armor = 1;
material = -1;
name = "vez";
visual = "vez";
passThrough = 1;
};
class HitGun {
armor = 0.3;
material = -1;
name = "zbran";
visual = "zbran";
passThrough = 0;
};
};
class Turrets {
class CommanderOptics: NewTurret {
proxyType = "CPCommander";
proxyIndex = 1;
gunnerName = "$STR_POSITION_COMMANDER";
primaryGunner = 0;
primaryObserver = 1;
stabilizedInAxes = "StabilizedInAxesNone";
body = "obsTurret";
gun = "obsGun";
animationSourceBody = "obsTurret";
animationSourceGun = "obsGun";
animationSourceHatch = "hatchCommander";
soundServo[] = {"\ca\sounds\vehicles\servos\turret-1",0.01,1,10};
gunBeg = "";
gunEnd = "";
minElev = -4;
maxElev = 20;
initElev = 0;
minTurn = -360;
maxTurn = 360;
initTurn = 0;
commanding = 2;
outGunnerMayFire = 1;
inGunnerMayFire = 1;
viewGunnerInExternal = 0;
gunnerOpticsModel = "\ca\Tracked\optika_tank_driver";
gunnerOutOpticsModel = "\ca\Weapons\optika_empty";
gunnerOutOpticsColor[] = {0,0,0,1};
gunnerOutForceOptics = 0;
gunnerOutOpticsShowCursor = 0;
gunnerOpticsEffect[] = {};
gunnerOutOpticsEffect[] = {};
memoryPointGunnerOutOptics = "commander_weapon_view";
memoryPointGunnerOptics = "commanderview";
memoryPointsGetInGunner = "pos commander";
memoryPointsGetInGunnerDir = "pos commander dir";
gunnerGetInAction = "GetInHigh";
gunnerGetOutAction = "GetOutHigh";
memoryPointGun = "gun_muzzle";
selectionFireAnim = "zasleh_1";
class ViewOptics {
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.155;
minFov = 0.0625;
maxFov = 0.466;
};
class ViewGunner {
initAngleX = 5;
minAngleX = -65;
maxAngleX = 85;
initAngleY = 0;
minAngleY = -150;
maxAngleY = 150;
initFov = 0.7;
minFov = 0.25;
maxFov = 1.1;
};
};
};
};
};
soundDammage[] = {"\ca\Tracked\Data\Sound\alarm_loop1",0.000316228,1};
supplyRadius = 1.5;
class ViewOptics: ViewOptics {
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.466;
minFov = 0.466;
maxFov = 0.466;
};
class DefaultEventhandlers;
class Eventhandlers: DefaultEventhandlers{};
smokeLauncherGrenadeCount = 6;
smokeLauncherVelocity = 15;
smokeLauncherOnTurret = 1;
smokeLauncherAngle = 120;
};
// AIR
#include "CfgVehicles\AIR\AN2.hpp"

View File

@@ -84,6 +84,14 @@ if (_dikCode in actionKeys "MoveLeft") exitWith {r_interrupt = true; if (DZE_Sur
if (_dikCode in actionKeys "MoveRight") exitWith {r_interrupt = true; if (DZE_Surrender) then {call dze_surrender_off};};
if (_dikCode in actionKeys "MoveBack") exitWith {r_interrupt = true; if (DZE_Surrender) then {call dze_surrender_off};};
//Prevent exploit of glitching through doors
if (_dikCode in actionKeys "Prone") then {
_doors = nearestObjects [player, DZE_DoorsLocked, 3];
if (count _doors > 0) then {
_handled = true;
};
};
//Prevent exploit of drag body
if ((_dikCode in actionKeys "Prone") && r_drag_sqf) exitWith { force_dropBody = true; };
if ((_dikCode in actionKeys "Crouch") && r_drag_sqf) exitWith { force_dropBody = true; };

View File

@@ -66,7 +66,7 @@ switch _option do {
_countIn = _x select 1;
_qty = { (_x == _itemIn) || (configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count magazines player;
if (_qty < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _qty); _proceed = false; };
} count _requirements;
} forEach _requirements;
if (_proceed) then {
player playActionNow "Medic";

View File

@@ -0,0 +1,88 @@
//Check if building already in progress, exit if so.
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
private ["_itemConfig","_classname","_classnametmp","_require","_text","_ghost","_lockable","_requireplot","_isAllowedUnderGround","_offset","_isPole","_isLandFireDZ","_hasRequired","_hasrequireditem","_reason","_buildObject","_location1","_object","_objectHelper","_position","_controls","_cancel","_dir"];
/*Basic Defines*/
DZE_Q = false;
DZE_Z = false;
DZE_Q_alt = false;
DZE_Z_alt = false;
DZE_Q_ctrl = false;
DZE_Z_ctrl = false;
DZE_5 = false;
DZE_4 = false;
DZE_6 = false;
DZE_F = false;
DZE_cancelBuilding = false;
call gear_ui_init;
closeDialog 1;
DZE_buildItem = _this; //This is a magazine! It's global to allow access to it from outside functions
//count nearby objects. Returns [_cnt] number
[] call player_build_countNearby;
//Check illegal player states. Returns [_isFine] string
[] call player_build_states;
//check for nearby requirements (campfire, workshop, fueltank). Returns [_reason] string
[] call player_build_needNearby;
//check config files and gather info about item (if using custom buildables, make your own similar function instead).
_itemConfig = [] call player_build_getConfig;
//define items collected from function
_classname = _itemConfig select 0; //string
_classnametmp = _itemConfig select 1; //string
_require = _itemConfig select 2; // array
_text = _itemConfig select 3; // string
_ghost = _itemConfig select 4; //string
_lockable = _itemConfig select 5; //int -- 0/1=No 2=lockbox, 3=combolock, 4=safe
_requireplot = _itemConfig select 6; //int
_isAllowedUnderGround = _itemConfig select 7; //int
_offset = _itemConfig select 8; //array
_isPole = _itemConfig select 9; //bool
_isLandFireDZ = _itemConfig select 10; //bool
//Check for nearby plotpoles. Returns [_IsNearPlot,_nearestPole,_ownerID,_friendlies] [int,Obj,int,array]
[_isPole, _requireplot, _isLandFireDZ] call player_build_plotCheck;
if (DZE_ActionInProgress) then { //needed otherwise _hasRequired gets RPT error
//Check for build requirements (missing tools and items). Returns [_hasrequireditem,_reason] [bool,string]
_hasRequired = [_require, _text, true, true] call player_build_buildReq;
//define item collected from function
_hasrequireditem = _hasRequired select 0; //bool
if (_hasrequireditem) then {
//Create object that is attached to a player (i.e Ghost preview if available)
_buildObject = [_classname, _ghost, _offset, true] call player_build_create;
//define items collected from function
_location1 = _buildObject select 0; //array
_object = _buildObject select 1; //Obj
_position = _buildObject select 2; // array
_objectHelper = _buildObject select 3; //Obj
_controls = [_object, _isAllowedUnderGround, _location1, _position, _objectHelper] call player_build_controls;
//define items collected from function
_cancel = _controls select 0; //bool
_reason = _controls select 1; //string
_position = _controls select 2; //array
_dir = _controls select 3; //int
//Publish item to a database
[_cancel, _position, _classnametmp,_isAllowedUnderGround, _text, _isPole, _lockable,_dir, _reason] call player_build_publish;
};
};

View File

@@ -137,7 +137,7 @@ _findNearestPole = [];
_IsNearPlot = count (_findNearestPole);
// If item is plot pole && another one exists within 45m
if(_isPole && _IsNearPlot > 0) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; };
if(_isPole && _IsNearPlot > 0) exitWith { DZE_ActionInProgress = false; cutText [(format [localize "str_epoch_player_44", DZE_PlotPole select 1]) , "PLAIN DOWN"]; };
if(_IsNearPlot == 0) then {
@@ -521,7 +521,7 @@ if (_hasrequireditem) then {
publicVariableServer "PVDZE_obj_Publish";
cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5];
systemChat format [(localize "str_epoch_player_140"),_combinationDisplay,_text];
} else {
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];

View File

@@ -1,627 +0,0 @@
/*
DayZ Base Building
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_helperColor","_objectHelper","_objectHelperDir","_objectHelperPos","_canDo",
"_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","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
// disallow building if too many objects are found within 30m
if((count ((getPosATL player) nearObjects ["All",30])) >= DZE_BuildingLimit) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_41"), "PLAIN DOWN"];};
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_isWater = dayz_isSwimming;
_cancel = false;
_reason = "";
_canBuildOnPlot = false;
_vehicle = vehicle player;
_inVehicle = (_vehicle != player);
//snap
helperDetach = false;
_canDo = (!r_drag_sqf and !r_player_unconscious);
DZE_Q = false;
DZE_Z = false;
DZE_Q_alt = false;
DZE_Z_alt = false;
DZE_Q_ctrl = false;
DZE_Z_ctrl = false;
DZE_5 = false;
DZE_4 = false;
DZE_6 = false;
DZE_F = false;
DZE_cancelBuilding = false;
call gear_ui_init;
closeDialog 1;
if (_isWater) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"];};
if (_inVehicle) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_42"), "PLAIN DOWN"];};
if (_onLadder) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_21", "PLAIN DOWN"];};
if (player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];};
_item = _this;
// Need Near Requirements
_abort = false;
_reason = "";
_needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "neednearby");
{
switch(_x) do{
case "fire":
{
_distance = 3;
_isNear = {inflamed _x} count (getPosATL player nearObjects _distance);
if(_isNear == 0) then {
_abort = true;
_reason = "fire";
};
};
case "workshop":
{
_distance = 3;
_isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]);
if(_isNear == 0) then {
_abort = true;
_reason = "workshop";
};
};
case "fueltank":
{
_distance = 30;
_isNear = count (nearestObjects [player, dayz_fuelsources, _distance]);
if(_isNear == 0) then {
_abort = true;
_reason = "fuel tank";
};
};
};
} forEach _needNear;
if(_abort) exitWith {
cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"];
DZE_ActionInProgress = false;
};
_classname = getText (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "create");
_classnametmp = _classname;
_require = getArray (configFile >> "cfgMagazines" >> _this >> "ItemActions" >> "Build" >> "require");
_text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
_ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview");
_lockable = 0;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then {
_lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable");
};
_requireplot = DZE_requireplot;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then {
_requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot");
};
_isAllowedUnderGround = 1;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then {
_isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground");
};
_offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset");
if((count _offset) <= 0) then {
_offset = [0,1.5,0];
};
_isPole = (_classname == "Plastic_Pole_EP1_DZ");
_isLandFireDZ = (_classname == "Land_Fire_DZ");
_distance = DZE_PlotPole select 0;
_needText = localize "str_epoch_player_246";
if(_isPole) then {
_distance = DZE_PlotPole select 1;
};
// check for near plot
_findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance];
_findNearestPole = [];
{
if (alive _x) then {
_findNearestPole set [(count _findNearestPole),_x];
};
} count _findNearestPoles;
_IsNearPlot = count (_findNearestPole);
// If item is plot pole && another one exists within 45m
if(_isPole && _IsNearPlot > 0) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; };
if(_IsNearPlot == 0) then {
// Allow building of plot
if(_requireplot == 0 || _isLandFireDZ) then {
_canBuildOnPlot = true;
};
} else {
// Since there are plots nearby we check for ownership && then for friend status
// check nearby plots ownership && then for friend status
_nearestPole = _findNearestPole select 0;
// Find owner
_ownerID = _nearestPole getVariable ["CharacterID","0"];
// diag_log format["DEBUG BUILDING: %1 = %2", dayz_characterID, _ownerID];
// check if friendly to owner
if(dayz_characterID == _ownerID) then { //Keep ownership
// owner can build anything within his plot except other plots
if(!_isPole) then {
_canBuildOnPlot = true;
};
} else {
// disallow building plot
if(!_isPole) then {
_friendlies = player getVariable ["friendlyTo",[]];
// check if friendly to owner
if(_ownerID in _friendlies) then {
_canBuildOnPlot = true;
};
};
};
};
// _message
if(!_canBuildOnPlot) exitWith { DZE_ActionInProgress = false; cutText [format[(localize "STR_EPOCH_PLAYER_135"),_needText,_distance] , "PLAIN DOWN"]; };
_missing = "";
_hasrequireditem = true;
{
_hastoolweapon = _x in weapons player;
if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); };
} count _require;
_hasbuilditem = _this in magazines player;
if (!_hasbuilditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]; };
if (!_hasrequireditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_137"),_missing] , "PLAIN DOWN"]; };
if (_hasrequireditem) then {
_location = [0,0,0];
_isOk = true;
// get inital players position
_location1 = getPosATL player;
_dir = getDir player;
// if ghost preview available use that instead
if (_ghost != "") then {
_classname = _ghost;
};
_object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
//Build gizmo
_objectHelper = "Sign_sphere10cm_EP1" createVehicle _location;
_helperColor = "#(argb,8,8,3)color(0,0,0,0,ca)";
_objectHelper setobjecttexture [0,_helperColor];
_objectHelper attachTo [player,_offset];
_object attachTo [_objectHelper,[0,0,0]];
_position = getPosATL _objectHelper;
//cutText [(localize "str_epoch_player_45"), "PLAIN DOWN"];
_objHDiff = 0;
if (isClass (configFile >> "SnapBuilding" >> _classname)) then {
["","","",["Init",_object,_classname,_objectHelper]] spawn snap_build;
};
while {_isOk} do {
_zheightchanged = false;
_zheightdirection = "";
_rotate = false;
if (DZE_Q) then {
DZE_Q = false;
_zheightdirection = "up";
_zheightchanged = true;
};
if (DZE_Z) then {
DZE_Z = false;
_zheightdirection = "down";
_zheightchanged = true;
};
if (DZE_Q_alt) then {
DZE_Q_alt = false;
_zheightdirection = "up_alt";
_zheightchanged = true;
};
if (DZE_Z_alt) then {
DZE_Z_alt = false;
_zheightdirection = "down_alt";
_zheightchanged = true;
};
if (DZE_Q_ctrl) then {
DZE_Q_ctrl = false;
_zheightdirection = "up_ctrl";
_zheightchanged = true;
};
if (DZE_Z_ctrl) then {
DZE_Z_ctrl = false;
_zheightdirection = "down_ctrl";
_zheightchanged = true;
};
if (DZE_4) then {
_rotate = true;
DZE_4 = false;
if (helperDetach) then {
_dir = -45;
} else {
_dir = 180;
};
};
if (DZE_6) then {
_rotate = true;
DZE_6 = false;
if (helperDetach) then {
_dir = 45;
} else {
_dir = 0;
};
};
if (DZE_F and _canDo) then {
if (helperDetach) then {
_objectHelperDir = getDir _objectHelper;
_objectHelper attachTo [player];
_objectHelper setDir _objectHelperDir-(getDir player);
helperDetach = false;
} else {
_objectHelperPos = getPosATL _objectHelper;
detach _objectHelper;
_objectHelper setPosATL _objectHelperPos;
_objectHelperDir = getDir _objectHelper;
_objectHelper setVelocity [0,0,0]; //fix sliding glitch
helperDetach = true;
};
DZE_F = false;
};
if(_rotate) then {
if (helperDetach) then {
_objectHelperDir = getDir _objectHelper;
_objectHelperPos = getPosATL _objectHelper;
_objectHelper setDir _objectHelperDir+_dir;
_objectHelper setPosATL _objectHelperPos;
} else {
_objectHelper setDir _dir;
_objectHelper setPosATL _position;
//diag_log format["DEBUG Rotate BUILDING POS: %1", _position];
};
};
if(_zheightchanged) then {
if (!helperDetach) then {
detach _objectHelper;
};
_position = getPosATL _objectHelper;
if(_zheightdirection == "up") then {
_position set [2,((_position select 2)+0.1)];
_objHDiff = _objHDiff + 0.1;
};
if(_zheightdirection == "down") then {
_position set [2,((_position select 2)-0.1)];
_objHDiff = _objHDiff - 0.1;
};
if(_zheightdirection == "up_alt") then {
_position set [2,((_position select 2)+1)];
_objHDiff = _objHDiff + 1;
};
if(_zheightdirection == "down_alt") then {
_position set [2,((_position select 2)-1)];
_objHDiff = _objHDiff - 1;
};
if(_zheightdirection == "up_ctrl") then {
_position set [2,((_position select 2)+0.01)];
_objHDiff = _objHDiff + 0.01;
};
if(_zheightdirection == "down_ctrl") then {
_position set [2,((_position select 2)-0.01)];
_objHDiff = _objHDiff - 0.01;
};
_objectHelper setDir (getDir _objectHelper);
if((_isAllowedUnderGround == 0) && ((_position select 2) < 0)) then {
_position set [2,0];
};
_objectHelper setPosATL _position;
//diag_log format["DEBUG Change BUILDING POS: %1", _position];
if (!helperDetach) then {
_objectHelper attachTo [player];
};
};
sleep 0.5;
_location2 = getPosATL player;
if(DZE_5) exitWith {
_isOk = false;
detach _object;
_dir = getDir _object;
_position = getPosATL _object;
//diag_log format["DEBUG BUILDING POS: %1", _position];
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if(_location1 distance _location2 > 10) exitWith {
_isOk = false;
_cancel = true;
_reason = "You've moved to far away from where you started building (within 10 meters)";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if(_location1 distance _objectHelperPos > 10) exitWith {
_isOk = false;
_cancel = true;
_reason = "Object is placed to far away from where you started building (within 10 meters)";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if(abs(_objHDiff) > 10) exitWith {
_isOk = false;
_cancel = true;
_reason = "Cannot move up or down more than 10 meters";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if (player getVariable["combattimeout", 0] >= time) exitWith {
_isOk = false;
_cancel = true;
_reason = (localize "str_epoch_player_43");
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if (DZE_cancelBuilding) exitWith {
_isOk = false;
_cancel = true;
_reason = "Cancelled building.";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
};
//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."; };
if(!_cancel) then {
_classname = _classnametmp;
// Start Build
_tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
_tmpbuilt setdir _dir;
// Get position based on object
_location = _position;
if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then {
_location set [2,0];
};
_tmpbuilt setPosATL _location;
cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"];
_limit = 3;
if (DZE_StaticConstructionCount > 0) then {
_limit = DZE_StaticConstructionCount;
}
else {
if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then {
_limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount");
};
};
_isOk = true;
_proceed = false;
_counter = 0;
while {_isOk} do {
[10,10] call dayz_HungerThirst;
player playActionNow "Medic";
_dis=20;
_sfx = "repair";
[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
r_interrupt = false;
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 && !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt || (player getVariable["combattimeout", 0] >= time)) then {
r_doLoop = false;
};
if (DZE_cancelBuilding) exitWith {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if(!_finished) exitWith {
_isOk = false;
_proceed = false;
};
if(_finished) then {
_counter = _counter + 1;
};
cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"];
if(_counter == _limit) exitWith {
_isOk = false;
_proceed = true;
};
};
if (_proceed) then {
_num_removed = ([player,_item] call BIS_fnc_invRemove);
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];
if(_lockable > 1) then {
_combinationDisplay = "";
switch (_lockable) do {
case 2: { // 2 lockbox
_combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue
_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";
};
if (_combination_1 == 101) then {
_combination_1_Display = "Green";
};
if (_combination_1 == 102) then {
_combination_1_Display = "Blue";
};
_combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3];
};
case 3: { // 3 combolock
_combination_1 = floor(random 10);
_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;
};
case 4: { // 4 safe
_combination_1 = floor(random 10);
_combination_2 = floor(random 10);
_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;
};
};
_tmpbuilt setVariable ["CharacterID",_combination,true];
PVDZE_obj_Publish = [_combination,_tmpbuilt,[_dir,_location],_classname];
publicVariableServer "PVDZE_obj_Publish";
cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5];
systemChat format [(localize "str_epoch_player_140"),_combinationDisplay,_text];
} else {
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
// fire?
if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
_tmpbuilt spawn player_fireMonitor;
} else {
PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname];
publicVariableServer "PVDZE_obj_Publish";
};
};
} else {
deleteVehicle _tmpbuilt;
cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
};
} else {
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
deleteVehicle _tmpbuilt;
cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
};
} else {
cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"];
};
};
DZE_ActionInProgress = false;

View File

@@ -0,0 +1,44 @@
if(!DZE_ActionInProgress) exitWith {};
//Check for build requirements like tools and if item is in magazines (check args to disable checks)
private ["_passArray","_missing","_hasrequireditem","_require","_hastoolweapon","_hasbuilditem","_checkMag","_checkTools","_reason"];
_require = _this select 0; //grab passed array of required items from item config function
_text = _this select 1; //grab text string passed from config
_checkMag = _this select 2; //check if item was built from magazine used in config file. Default is true. Set to false if building item from custom script
_checkTools = _this select 3; //same as above, default is true, set to false if you do not need item requirements.
_missing = "";
_hasrequireditem = true;
_reason = "ok";
_passArray = [];
{
_hastoolweapon = _x in weapons player; //check each required item against weapons array on player
if(!_hastoolweapon) exitWith { //if tool was not found, get missing tool's name from config
_hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName");
};
} count _require; //count each item in requirements array
_hasbuilditem = DZE_buildItem in magazines player;
_passArray = [_hasrequireditem,_reason];
if (_checkMag) then { //passed argument
if (!_hasbuilditem) exitWith { //End script if magazine was not found
DZE_ActionInProgress = false;
cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"];
_reason = "missing item";
_passArray
};
};
if (_checkTools) then { //passed argument
if (!_hasrequireditem) exitWith { //End script if required item/tool was not found
DZE_ActionInProgress = false;
cutText [format[(localize "str_epoch_player_137"),_missing] , "PLAIN DOWN"];
_reason = "missing tools";
_passArray
};
};
_passArray //[bool,string]

View File

@@ -0,0 +1,218 @@
private ["_canDo","_passArray","_objHDiff","_isOk","_zheightchanged","_zheightdirection","_rotate","_dir","_object","_position","_isAllowedUnderGround","_location1","_location2","_cancel","_reason","_lastDir","_objectHelper","_objectHelperDir","_objectHelperPos"];
_object = _this select 0;
_isAllowedUnderGround = _this select 1;
_location1 = _this select 2;
_position = _this select 3;
_objectHelper = _this select 4;
_passArray = [];
_objHDiff = 0;
_isOk = true;
_cancel = false;
_reason = "";
_dir = getDir player; //required to pass direction when building
helperDetach = false;
_canDo = (!r_drag_sqf and !r_player_unconscious);
while {_isOk} do {
_zheightchanged = false;
_zheightdirection = "";
_rotate = false;
if (DZE_Q) then {
DZE_Q = false;
_zheightdirection = "up";
_zheightchanged = true;
};
if (DZE_Z) then {
DZE_Z = false;
_zheightdirection = "down";
_zheightchanged = true;
};
if (DZE_Q_alt) then {
DZE_Q_alt = false;
_zheightdirection = "up_alt";
_zheightchanged = true;
};
if (DZE_Z_alt) then {
DZE_Z_alt = false;
_zheightdirection = "down_alt";
_zheightchanged = true;
};
if (DZE_Q_ctrl) then {
DZE_Q_ctrl = false;
_zheightdirection = "up_ctrl";
_zheightchanged = true;
};
if (DZE_Z_ctrl) then {
DZE_Z_ctrl = false;
_zheightdirection = "down_ctrl";
_zheightchanged = true;
};
if (DZE_4) then {
_rotate = true;
DZE_4 = false;
if (helperDetach) then {
_dir = -45;
} else {
_dir = 180;
};
};
if (DZE_6) then {
_rotate = true;
DZE_6 = false;
if (helperDetach) then {
_dir = 45;
} else {
_dir = 0;
};
};
if (DZE_F and _canDo) then {
if (helperDetach) then {
_objectHelperDir = getDir _objectHelper;
_objectHelper attachTo [player];
_objectHelper setDir _objectHelperDir-(getDir player);
helperDetach = false;
} else {
_objectHelperPos = getPosATL _objectHelper;
detach _objectHelper;
_objectHelper setPosATL _objectHelperPos;
_objectHelperDir = getDir _objectHelper;
_objectHelper setVelocity [0,0,0]; //fix sliding glitch
helperDetach = true;
};
DZE_F = false;
};
if(_rotate) then {
if (helperDetach) then {
_objectHelperDir = getDir _objectHelper;
_objectHelperPos = getPosATL _objectHelper;
_objectHelper setDir _objectHelperDir+_dir;
_objectHelper setPosATL _objectHelperPos;
} else {
_objectHelper setDir _dir;
_objectHelper setPosATL _position;
};
};
if(_zheightchanged) then {
if (!helperDetach) then {
detach _objectHelper;
};
_position = getPosATL _objectHelper;
if(_zheightdirection == "up") then {
_position set [2,((_position select 2)+0.1)];
_objHDiff = _objHDiff + 0.1;
};
if(_zheightdirection == "down") then {
_position set [2,((_position select 2)-0.1)];
_objHDiff = _objHDiff - 0.1;
};
if(_zheightdirection == "up_alt") then {
_position set [2,((_position select 2)+1)];
_objHDiff = _objHDiff + 1;
};
if(_zheightdirection == "down_alt") then {
_position set [2,((_position select 2)-1)];
_objHDiff = _objHDiff - 1;
};
if(_zheightdirection == "up_ctrl") then {
_position set [2,((_position select 2)+0.01)];
_objHDiff = _objHDiff + 0.01;
};
if(_zheightdirection == "down_ctrl") then {
_position set [2,((_position select 2)-0.01)];
_objHDiff = _objHDiff - 0.01;
};
_objectHelper setDir (getDir _objectHelper);
if((_isAllowedUnderGround == 0) && ((_position select 2) < 0)) then {
_position set [2,0];
};
_objectHelper setPosATL _position;
if (!helperDetach) then {
_objectHelper attachTo [player];
};
};
sleep 0.5;
_location2 = getPosATL player;
_objectHelperPos = getPosATL _objectHelper;
if(DZE_5) exitWith {
_isOk = false;
detach _object;
_position = getPosATL _object;
_dir = getDir _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if(_location1 distance _location2 > 10) exitWith {
_isOk = false;
_cancel = true;
_reason = "You've moved to far away from where you started building (within 10 meters)";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if(_location1 distance _objectHelperPos > 10) exitWith {
_isOk = false;
_cancel = true;
_reason = "Object is placed to far away from where you started building (within 10 meters)";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if(abs(_objHDiff) > 10) exitWith {
_isOk = false;
_cancel = true;
_reason = "Cannot move up or down more than 10 meters";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if (player getVariable["combattimeout", 0] >= time) exitWith {
_isOk = false;
_cancel = true;
_reason = (localize "str_epoch_player_43");
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
if (DZE_cancelBuilding) exitWith {
_isOk = false;
_cancel = true;
_reason = "Cancelled building.";
detach _object;
deleteVehicle _object;
detach _objectHelper;
deleteVehicle _objectHelper;
};
};
_passArray = [_cancel,_reason,_position,_dir];
_passArray //[bool,string,array,int]

View File

@@ -0,0 +1,10 @@
// disallow building if too many objects are found within 30m (by default)
private ["_cnt"];
_cnt = count ((getPosATL player) nearObjects ["All",DZE_checkNearbyRadius]);
if (_cnt >= DZE_BuildingLimit) exitWith { //end script if too many objects nearby
DZE_ActionInProgress = false;
cutText [(localize "str_epoch_player_41"), "PLAIN DOWN"];
};
_cnt //returns amount of total objects found nearby

View File

@@ -0,0 +1,38 @@
//create an object for default build system style
private ["_passArray","_classname","_enableGhost","_ghost","_location","_location1","_dir","_object","_position","_objectHelper","_helperColor"];
_classname = _this select 0;
_ghost = _this select 1;
_offset = _this select 2;
_enableGhost = _this select 3; //pass false trough args if not using ghost preview
_passArray = [];
_location = [0,0,0]; //create object in debug zone first
_objectHelper = objNull;
// get inital players position
_location1 = getPosATL player;
// if enabled, use ghost preview where available
if (_enableGhost) then {
if (_ghost != "") then {
_classname = _ghost;
};
};
_object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; //object preview, not an actual object that will be built
_objectHelper = "Sign_sphere10cm_EP1" createVehicle _location;
_helperColor = "#(argb,8,8,3)color(0,0,0,0,ca)";
_objectHelper setobjecttexture [0,_helperColor];
_objectHelper attachTo [player,_offset];
_object attachTo [_objectHelper,[0,0,0]];
_position = getPosATL _objectHelper;
if (isClass (configFile >> "SnapBuilding" >> _classname)) then {
["","","",["Init",_object,_classname,_objectHelper]] spawn snap_build;
};
_passArray = [_location1,_object,_position,_objectHelper];
_passArray //[array,obj,array]

View File

@@ -0,0 +1,39 @@
if(!DZE_ActionInProgress) exitWith {};
//Build an array of various variables gathered about build object from config files, only applies to legit buildable objects
private ["_passArray","_classname","_classnametmp","_require","_text","_ghost","_lockable","_requireplot","_isAllowedUnderGround","_offset","_isPole","_isLandFireDZ"];
_passArray = [];
_classname = getText (configFile >> "CfgMagazines" >> DZE_buildItem >> "ItemActions" >> "Build" >> "create");
_classnametmp = _classname;
_require = getArray (configFile >> "cfgMagazines" >> DZE_buildItem >> "ItemActions" >> "Build" >> "require");
_text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
_ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview");
_lockable = 0; //default define if lockable not found in config file below
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { //find out if item is lockable object
_lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable"); // 2=lockbox, 3=combolock, 4=safe
};
_requireplot = DZE_requireplot; //check for plotpole requirements defined in init.sqf
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then {
_requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot");
};
_isAllowedUnderGround = 1; //check if allowed to build under terrain
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then {
_isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground");
};
_offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset"); //check default distance offset, define if does not exist
if((count _offset) <= 0) then {
_offset = [0,1.5,0];
};
_isPole = (_classname == "Plastic_Pole_EP1_DZ"); //check if item is plotpole
_isLandFireDZ = (_classname == "Land_Fire_DZ"); //check if item is campfire
_passArray = [_classname,_classnametmp,_require,_text,_ghost,_lockable,_requireplot,_isAllowedUnderGround,_offset,_isPole,_isLandFireDZ]; //create new array to pass to caller
_passArray //[string,string,array,string,string,int,int,int,array,bool,bool]

View File

@@ -0,0 +1,44 @@
if(!DZE_ActionInProgress) exitWith {};
//disallow building if required items (defined in config) are not found nearby
private ["_abort","_reason","_distance","_needNear","_isNear"];
_abort = false; //do not abort by default
_reason = ""; // define to avoid RPT errors
_needNear = getArray (configFile >> "CfgMagazines" >> DZE_buildItem >> "ItemActions" >> "Build" >> "neednearby");
{
switch(_x) do{
case "fire":
{
_distance = 3;
_isNear = {inflamed _x} count (getPosATL player nearObjects _distance);
if(_isNear == 0) then {
_abort = true;
_reason = "fire";
};
};
case "workshop":
{
_distance = 3;
_isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]);
if(_isNear == 0) then {
_abort = true;
_reason = "workshop";
};
};
case "fueltank":
{
_distance = 30;
_isNear = count (nearestObjects [player, dayz_fuelsources, _distance]);
if(_isNear == 0) then {
_abort = true;
_reason = "fuel tank";
};
};
};
} forEach _needNear;
if (_abort) exitWith {
cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"];
DZE_ActionInProgress = false;
};

View File

@@ -0,0 +1,79 @@
if(!DZE_ActionInProgress) exitWith {};
//Check if nearby plotpoles exists
private ["_passArray","_isPole","_needText","_distance","_findNearestPoles","_findNearestPole","_IsNearPlot","_requireplot","_isLandFireDZ","_canBuildOnPlot","_nearestPole","_ownerID","_friendlies"];
//defines
_isPole = _this select 0;
_requireplot = _this select 1;
_isLandFireDZ = _this select 2;
_needText = localize "str_epoch_player_246"; //text for when requirements not met
_canBuildOnPlot = false;
_nearestPole = objNull;
_ownerID = 0;
_friendlies = [];
if(_isPole) then { //check if object is plotpole and adjust distance accordingly
_distance = DZE_PlotPole select 1;
} else {
_distance = DZE_PlotPole select 0;
};
// check for near plotpoles
_findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance]; //create an array of nearby objects that are plotpoles, nearest will always be first in array
_findNearestPole = []; //must define an empty array to avoid problems
{
if (alive _x) then { //only look for non-destroyed plotpoles
_findNearestPole set [(count _findNearestPole),_x]; //build an array of live plotpoles found nearby
};
} count _findNearestPoles; //count each item in previously created array of nearby plotpoles
_IsNearPlot = count (_findNearestPole); //count our new array of non-destroyed plotpoles. Empty array will return 0
if(_IsNearPlot == 0) then { //No live plotpoles were found nearby
// Allow building of plot
if(_requireplot == 0 || _isLandFireDZ) then {
_canBuildOnPlot = true;
};
} else {
// Since there are plots nearby we check for ownership && then for friend status
// check nearby plots ownership && then for friend status
_nearestPole = _findNearestPole select 0; //nearest is always first in array when using nearestObjects check
// Find owner
_ownerID = _nearestPole getVariable ["CharacterID","0"];
// check if friendly to owner
if(dayz_characterID == _ownerID) then { //Keep ownership
// owner can build anything within his plot except other plots
if(!_isPole) then {
_canBuildOnPlot = true;
};
} else {
// disallow building plot
if(!_isPole) then {
_friendlies = player getVariable ["friendlyTo",[]];
// check if friendly to owner
if(_ownerID in _friendlies) then {
_canBuildOnPlot = true;
};
};
};
};
_passArray = [_IsNearPlot,_nearestPole,_ownerID,_friendlies]; //create new array and pass it to caller
// End script if item is plot pole and another one exists within defined radius
if(_isPole && _IsNearPlot > 0) exitWith {
DZE_ActionInProgress = false;
cutText [(format [localize "str_epoch_player_44", DZE_PlotPole select 1]) , "PLAIN DOWN"];
_passArray
};
if(!_canBuildOnPlot) exitWith { //end script if requirements were not met
DZE_ActionInProgress = false;
cutText [format[(localize "STR_EPOCH_PLAYER_135"),_needText,_distance] , "PLAIN DOWN"];
_passArray
};
_passArray //[int,Obj,int,array]

View File

@@ -0,0 +1,220 @@
private ["_passArray","_cancel","_position","_reason","_classnametmp","_classname","_tmpbuilt","_dir","_location","_text","_limit","_isOk","_proceed","_counter","_dis","_sfx","_started","_finished","_animState","_isMedic","_num_removed","_lockable","_combinationDisplay","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display"];
//defines
_cancel = _this select 0;
_position = _this select 1;
_classnametmp = _this select 2;
_isAllowedUnderGround = _this select 3;
_text = _this select 4;
_isPole = _this select 5;
_lockable = _this select 6;
_dir = _this select 7;
_reason = _this select 8;
_passArray = [];
_isOk = true;
_proceed = false;
_counter = 0;
_location = [0,0,0];
//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.";
};
if(!_cancel) then {
_classname = _classnametmp;
// Start Build
_tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; //create actual object that will be published to database
_tmpbuilt setdir _dir; //set direction inherited from passed args from control
// Get position based on object
_location = _position;
if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then { //check Z axis if not allowed to build underground
_location set [2,0]; //reset Z axis to zero (above terrain)
};
_tmpbuilt setPosATL _location; //update position passed from args or previous if statement
cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"];
_limit = 3; //times it takes to build by default
if (DZE_StaticConstructionCount > 0) then { //if count is manually overridden inside init.sqf, use that instead, else use limits configured in config files
_limit = DZE_StaticConstructionCount;
}
else {
if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then {
_limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount");
};
};
while {_isOk} do { //publish phase
[10,10] call dayz_HungerThirst;
player playActionNow "Medic"; //animation
//alert zombies
_dis=20;
_sfx = "repair";
[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
r_interrupt = false;
r_doLoop = true;
_started = false;
_finished = false;
while {r_doLoop} do { //while player is not interrupted, go trough animations
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started && !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt || (player getVariable["combattimeout", 0] >= time)) then {
r_doLoop = false;
};
if (DZE_cancelBuilding) exitWith {
r_doLoop = false;
};
sleep 0.1;
};
r_doLoop = false;
if(!_finished) exitWith { //exit if interrupted
_isOk = false;
_proceed = false;
};
if(_finished) then { //if animation finished, add to build count
_counter = _counter + 1;
};
cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"]; //report how many steps are done out of total limit
if(_counter == _limit) exitWith { //if all steps done proceed with next step, otherwise cancel publish
_isOk = false;
_proceed = true;
};
};
if (_proceed) then {
_num_removed = ([player,DZE_buildItem] call BIS_fnc_invRemove); //remove item's magazine from inventory
if(_num_removed == 1) then {
cutText [format[localize "str_build_01",_text], "PLAIN DOWN"];
if (_isPole) then { //if item was a plotpole, build a visual radius around it
[] spawn player_plotPreview;
};
_tmpbuilt setVariable ["OEMPos",_location,true]; //store original location as a variable
if(_lockable > 1) then { //if item has code lock on it
_combinationDisplay = ""; //define new display
switch (_lockable) do { //generate random combinations depending on item type
case 2: { // 2 lockbox
_combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue
_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";
};
if (_combination_1 == 101) then {
_combination_1_Display = "Green";
};
if (_combination_1 == 102) then {
_combination_1_Display = "Blue";
};
_combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3];
};
case 3: { // 3 combolock
_combination_1 = floor(random 10);
_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;
};
case 4: { // 4 safe
_combination_1 = floor(random 10);
_combination_2 = floor(random 10);
_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;
};
};
_tmpbuilt setVariable ["CharacterID",_combination,true]; //set combination as a character ID
//call publish precompiled function with given args and send public variable to server to save item to database
PVDZE_obj_Publish = [_combination,_tmpbuilt,[_dir,_location],_classname];
publicVariableServer "PVDZE_obj_Publish";
cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5]; //display new combination
} else { //if not lockable item
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
// fire?
if(_tmpbuilt isKindOf "Land_Fire_DZ") then { //if campfire, then spawn, but do not publish to database
_tmpbuilt spawn player_fireMonitor;
} else {
PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname];
publicVariableServer "PVDZE_obj_Publish";
};
};
} else { //if magazine was not removed, cancel publish
deleteVehicle _tmpbuilt;
cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
};
} else { //if player was interrupted, cancel publish and stop build animations
r_interrupt = false;
if (vehicle player == player) then {
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
};
deleteVehicle _tmpbuilt;
cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
};
} else { //cancel build if passed _cancel arg was true or building on roads/trader city
cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"];
};
DZE_ActionInProgress = false; //in any case always finish last function with this to "reset" everything.

View File

@@ -0,0 +1,39 @@
if(!DZE_ActionInProgress) exitWith {};
//disallow building if these conditions are not met
private ["_isFine","_onLadder","_vehicle","_inVehicle"];
_isFine = "ok"; //define variable to avoid RPT errors
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_vehicle = vehicle player;
_inVehicle = (_vehicle != player);
if (dayz_isSwimming) exitWith { //end script if player is swimming
DZE_ActionInProgress = false;
cutText [localize "str_player_26", "PLAIN DOWN"];
_isFine = "Swimming";
_isFine
};
if (_inVehicle) exitWith { //end script if player is in vehicle
DZE_ActionInProgress = false;
cutText [(localize "str_epoch_player_42"), "PLAIN DOWN"];
_isFine = "In vehicle";
_isFine
};
if (_onLadder) exitWith { //end script if player is climbing on ladder
DZE_ActionInProgress = false;
cutText [localize "str_player_21", "PLAIN DOWN"];
_isFine = "On ladder";
_isFine
};
if (player getVariable["combattimeout", 0] >= time) exitWith { //end script if player is in combat
DZE_ActionInProgress = false;
cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];
_isFine = "In combat";
_isFine
};
_isFine //returns string to caller, default is "ok" if conditions were not met

View File

@@ -17,7 +17,7 @@ if(!(surfaceIsWater _position)) exitWith {DZE_ActionInProgress = false; cutText
if((currentWeapon player) != "MeleeFishingPole") exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_67"), "PLAIN DOWN"]; };
if(dayz_isSwimming) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"]; };
if(player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_68"), "PLAIN DOWN"];};
if(player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_312"), "PLAIN DOWN"];};
_isOk = true;
_counter = 0;
@@ -81,4 +81,4 @@ while {_isOk} do {
};
};
};
DZE_ActionInProgress = false;
DZE_ActionInProgress = false;

View File

@@ -3,7 +3,7 @@
// July 10 2014 //
/*--------------------------------*/
private ["_object","_objectSnapGizmo","_objColorActive","_objColorInactive","_classname","_whitelist","_points","_radius","_cfg","_cnt","_pos","_findWhitelisted","_nearbyObject","_posNearby","_selectedAction","_newPos","_pointsNearby","_onWater"];
private ["_object","_objectSnapGizmo","_objColorActive","_objColorInactive","_classname","_whitelist","_points","_radius","_cfg","_cnt","_pos","_findWhitelisted","_nearbyObject","_posNearby","_selectedAction","_newPos","_pointsNearby","_onWater","_waterBase"];
//Args
snapActionState = _this select 3 select 0;
_object = _this select 3 select 1;
@@ -58,8 +58,10 @@ fnc_initSnapPoints = {
fnc_initSnapPointsNearby = {
_pos = getPosATL _object;
_findWhitelisted = []; _pointsNearby = [];
_findWhitelisted = nearestObjects [_pos,_whitelist,_radius]-[_object];
_findWhitelisted = []; _pointsNearby = []; _waterBase = 0;
_onWater = surfaceIsWater position player;
if (_onWater) then { _waterBase = (getPosATL player select 2);};
_findWhitelisted = nearestObjects [_pos,_whitelist,(_radius + DZE_snapExtraRange + _waterBase)]-[_object];
snapGizmosNearby = [];
{
_nearbyObject = _x;
@@ -242,7 +244,7 @@ switch (snapActionState) do {
[1,0,0] call fnc_snapActionCleanup;
[] spawn {
while {true} do {
if(!DZE_ActionInProgress) exitWith {call fnc_initSnapPointsCleanup;[0,0,0] call fnc_snapActionCleanup; ["",false] call fnc_initSnapTutorial; snapActionState = "OFF";};
if(!DZE_ActionInProgress || DZE_cancelBuilding) exitWith {call fnc_initSnapPointsCleanup;[0,0,0] call fnc_snapActionCleanup; ["",false] call fnc_initSnapTutorial; snapActionState = "OFF";};
sleep 2;
};
};

View File

@@ -41,5 +41,5 @@ _hasItems = true;
_textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName");
cutText [format[(localize "STR_EPOCH_ACTIONS_12"), _missingQty, _textMissing], "PLAIN DOWN"];
};
} count _items;
} forEach _items;
_hasItems

View File

@@ -76,7 +76,7 @@ if (_inVehicle) then {
if (!isNull _menClose && _hasPatient && !r_drag_sqf && !r_action && !_inVehicle && !r_player_unconscious && _isClose) then {
_unit = cursorTarget;
_isDisallowRefuel = typeOf _unit in ["M240Nest_DZ"];
_isDisallowRefuel = typeOf _unit in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"];
// player reveal _unit;
_vehClose = (getPosATL player) nearEntities [["Car","Tank","Helicopter","Plane","StaticWeapon","Ship"],5]; //nearestObjects [player, ["Car","Tank","Helicopter","Plane","StaticWeapon","Ship"], 5];
_hasVehicle = ({alive _x} count _vehClose > 0);

View File

@@ -866,6 +866,10 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso
s_player_SurrenderedGear = -1;
//Others
player removeAction s_player_maintain_area;
s_player_maintain_area = -1;
player removeAction s_player_maintain_area_preview;
s_player_maintain_area_preview = -1;
player removeAction s_player_forceSave;
s_player_forceSave = -1;
player removeAction s_player_flipveh;

View File

@@ -11,7 +11,9 @@ if ((!r_player_handler1) && (r_handlerCount == 0)) then {
_timeout = 0;
r_handlerCount = r_handlerCount + 1;
r_player_handler1 = true;
player playAction "CanNotMove";
if (vehicle player == player) then {
player playAction "CanNotMove";
};
"dynamicBlur" ppEffectEnable true;"dynamicBlur" ppEffectAdjust [2]; "dynamicBlur" ppEffectCommit 0;
"colorCorrections" ppEffectEnable true;"colorCorrections" ppEffectEnable true;"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 0.1], [1, 1, 1, 0.0]];"colorCorrections" ppEffectCommit 0;
0 fadeSound 0.05;

View File

@@ -137,7 +137,7 @@ if(isServer)then{
};
};
sleep 0.001;
} count _missonLights;
} forEach _missonLights;
if (_delQtyLights > 0) then {
_qty = count _missonLights;
diag_log (format["CLEANUP: Deleted %1 Lights out of %2",_delQtyLights,_qty]);

View File

@@ -150,4 +150,4 @@ if (_nearbyCount < 1) exitwith
};
};
};
} count _nearby;
} forEach _nearby;

View File

@@ -99,7 +99,23 @@ if (!isDedicated) then {
player_makeFire = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf";
player_harvestPlant = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_harvestPlant.sqf";
player_goFishing = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.sqf";
player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
if (DZE_modularBuild) then {
player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\modular_build.sqf";
player_build_countNearby = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_countNearby.sqf";
player_build_states = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_states.sqf";
player_build_needNearby = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_needNearby.sqf";
player_build_getConfig = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_getConfig.sqf";
player_build_plotCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_plotCheck.sqf";
player_build_buildReq = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_buildReq.sqf";
player_build_create = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_create.sqf";
player_build_controls = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_controls.sqf";
player_build_publish = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_publish.sqf";
snap_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\snap_build.sqf";
} else {
player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
};
player_wearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf";
object_pickup = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf";
player_flipvehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf";
@@ -107,12 +123,6 @@ 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";
//Snap building - disabled by default, not sure about your stance towards this mod yet, feel free to edit
if (DZE_snapBuilding) then {
player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build2.sqf";
snap_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\snap_build.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";

View File

@@ -274,6 +274,10 @@ s_player_madsci = [];
s_player_parts = [];
s_player_combi = [];
//Modular player_build
snapGizmos = [];
snapGizmosNearby = [];
//Initialize Medical Variables
r_interrupt = false;
r_doLoop = false;
@@ -538,8 +542,17 @@ if(isNil "DZE_StaticConstructionCount") then {
if (isNil "DZE_selfTransfuse_Values") then {
DZE_selfTransfuse_Values = [12000, 15, 300];
};
if (isNil "DZE_snapBuilding") then {
DZE_snapBuilding = false;
if (isNil "helperDetach") then {
helperDetach = false;
};
if (isNil "DZE_modularBuild") then {
DZE_modularBuild = false;
};
if (isNil "DZE_snapExtraRange") then {
DZE_snapExtraRange = 0;
};
if (isNil "DZE_checkNearbyRadius") then {
DZE_checkNearbyRadius = 30;
};
// needed on server
@@ -789,6 +802,8 @@ if(!isDedicated) then {
DZE_5 = false;
DZE_4 = false;
DZE_6 = false;
DZE_F = false;
DZE_cancelBuilding = false;
DZE_PZATTACK = false;

View File

@@ -1,6 +0,0 @@
// promptRName.sqf
private ["_unit"];
_unit = _this select 0;
call compile format ["server globalChat reviver_%1", _unit];

View File

@@ -260,7 +260,9 @@ fnc_usec_recoverUncons = {
sleep 1;
disableUserInput false;
[objNull,player,rSwitchMove,"AinjPpneMstpSnonWnonDnon"] call RE;
player switchMove "AinjPpneMstpSnonWnonDnon";
player playMoveNow "AmovPpneMstpSnonWnonDnon_healed";
if (vehicle player == player) then {
[objNull,player,rSwitchMove,"AinjPpneMstpSnonWnonDnon"] call RE;
player switchMove "AinjPpneMstpSnonWnonDnon";
player playMoveNow "AmovPpneMstpSnonWnonDnon_healed";
};
};

View File

@@ -3147,14 +3147,14 @@
<Czech>Nelze stavět v boji.</Czech>
</Key>
<Key ID="STR_EPOCH_PLAYER_44">
<Original>Cannot build plot pole within 45m of an existing plot.</Original>
<English>Cannot build plot pole within 45m of an existing plot.</English>
<German>Grundstück-Markierung kann nicht innerhalb 45m von einem bestehenden Grundstück erbaut werden.</German>
<Russian>Нельзя построить столб в пределах 45м. от существующего столба.</Russian>
<Original>Cannot build plot pole within %1m of an existing plot.</Original>
<English>Cannot build plot pole within %1m of an existing plot.</English>
<German>Grundstück-Markierung kann nicht innerhalb %1m von einem bestehenden Grundstück erbaut werden.</German>
<Russian>Нельзя построить столб в пределах %1м. от существующего столба.</Russian>
<!-- <Spanish></Spanish> -->
<Dutch>Kan bouw-paal niet bouwen op minder als 45m afstand van een bestaand bouwterrein.</Dutch>
<French>Impossible de construire un panneau de propriété privée à moins de 45m d'un autre panneau du genre.</French>
<Czech>Nelze postavit hraniční značku ve vzdálenosti 45 metrů od jiné značky.</Czech>
<Dutch>Kan bouw-paal niet bouwen op minder als %1m afstand van een bestaand bouwterrein.</Dutch>
<French>Impossible de construire un panneau de propriété privée à moins de %1m d'un autre panneau du genre.</French>
<Czech>Nelze postavit hraniční značku ve vzdálenosti %1 metrů od jiné značky.</Czech>
</Key>
<Key ID="STR_EPOCH_PLAYER_45">
<Original>PgUp to raise or PgDn to lower (Hold ALT to raise faster or CTRL slower), Q or E to flip 180. Space-Bar to build.</Original>
@@ -6056,6 +6056,16 @@
<!-- <Dutch></Dutch> -->
<!-- <German></German> -->
</Key>
<Key ID="STR_EPOCH_PLAYER_312">
<Original>\n\nCannot fish while in combat.</Original>
<English>\n\nCannot fish while in combat.</English>
<German>\n\nSie können nicht im Kampf zu fischen.</German>
<Russian>\n\nВы не можете ловить рыбу в то время как в бою.</Russian>
<!-- <Spanish></Spanish> -->
<Dutch>\n\nVissen is niet mogelijk tijdens een conflictsituatie.</Dutch>
<French>\n\nVous ne pouvez pas pêcher pendant les combats.</French>
<Czech>Nemůžete ryby, když v boji.</Czech>
</Key>
<Key ID="STR_EPOCH_PLAYER_REPAIRV">
<Original>Repair Vehicle</Original>
<English>Repair Vehicle</English>

View File

@@ -863,7 +863,7 @@ server_spawnCleanLoot = {
};
};
sleep 0.001;
} count _missionObjs;
} forEach _missionObjs;
if (_delQty > 0) then {
_qty = count _missionObjs;
diag_log (format["CLEANUP: Deleted %1 Loot Piles out of %2",_delQty,_qty]);
@@ -894,7 +894,7 @@ server_spawnCleanAnimals = {
};
};
sleep 0.001;
} count _missonAnimals;
} forEach _missonAnimals;
if (_delQtyAnimal > 0) then {
_qty = count _missonAnimals;
diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]);
@@ -914,7 +914,7 @@ server_logUnlockLockEvent = {
[_obj, "gear"] call server_updateObject;
_statusText = "LOCKED";
};
_PUID = [_killer] call FNC_GetPlayerUID;
_PUID = [_player] call FNC_GetPlayerUID;
diag_log format["SAFE %5: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), _PUID, _statusText];
};
};

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["Fishing_Boat",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
@@ -23,9 +23,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -11,9 +11,9 @@ AllowedVehiclesList = [
["CSJ_GyroC",3],
["CSJ_GyroCover",3],
["CSJ_GyroP",3],
["datsun1_civil_1_open",3],
["datsun1_civil_2_covered",3],
["datsun1_civil_3_open",3],
["datsun1_civil_1_open_DZE",3],
["datsun1_civil_2_covered_DZE",3],
["datsun1_civil_3_open_DZE",3],
["GAZ_Vodnik_DZE",1],
["GAZ_Vodnik_MedEvac",1],
["GLT_M300_LT",3],
@@ -22,9 +22,9 @@ AllowedVehiclesList = [
["GNT_C185C",1],
["GNT_C185R",1],
["GNT_C185U",1],
["hilux1_civil_1_open",3],
["hilux1_civil_2_covered",3],
["hilux1_civil_3_open_EP1",3],
["hilux1_civil_1_open_DZE",3],
["hilux1_civil_2_covered_DZE",3],
["hilux1_civil_3_open_DZE",3],
["HMMWV_Ambulance",1],
["HMMWV_Ambulance_CZ_DES_EP1",1],
["HMMWV_DES_EP1",3],

View File

@@ -1,4 +1,4 @@
private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"];
private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_inventory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"];
dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
@@ -91,7 +91,7 @@ if (isServer && isNil "sm_done") then {
_ownerID = _x select 3;
_worldspace = _x select 4;
_intentory = _x select 5;
_inventory = _x select 5;
_hitPoints = _x select 6;
_fuel = _x select 7;
_damage = _x select 8;
@@ -176,17 +176,17 @@ if (isServer && isNil "sm_done") then {
};
if (count _intentory > 0) then {
if (count _inventory > 0) then {
if (_type in DZE_LockedStorage) then {
// Fill variables with loot
_object setVariable ["WeaponCargo", (_intentory select 0),true];
_object setVariable ["MagazineCargo", (_intentory select 1),true];
_object setVariable ["BackpackCargo", (_intentory select 2),true];
_object setVariable ["WeaponCargo", (_inventory select 0),true];
_object setVariable ["MagazineCargo", (_inventory select 1),true];
_object setVariable ["BackpackCargo", (_inventory select 2),true];
} else {
//Add weapons
_objWpnTypes = (_intentory select 0) select 0;
_objWpnQty = (_intentory select 0) select 1;
_objWpnTypes = (_inventory select 0) select 0;
_objWpnQty = (_inventory select 0) select 1;
_countr = 0;
{
if(_x in (DZE_REPLACE_WEAPONS select 0)) then {
@@ -200,8 +200,8 @@ if (isServer && isNil "sm_done") then {
} count _objWpnTypes;
//Add Magazines
_objWpnTypes = (_intentory select 1) select 0;
_objWpnQty = (_intentory select 1) select 1;
_objWpnTypes = (_inventory select 1) select 0;
_objWpnQty = (_inventory select 1) select 1;
_countr = 0;
{
if (_x == "BoltSteel") then { _x = "WoodenArrow" }; // Convert BoltSteel to WoodenArrow
@@ -214,8 +214,8 @@ if (isServer && isNil "sm_done") then {
} count _objWpnTypes;
//Add Backpacks
_objWpnTypes = (_intentory select 2) select 0;
_objWpnQty = (_intentory select 2) select 1;
_objWpnTypes = (_inventory select 2) select 0;
_objWpnQty = (_inventory select 2) select 1;
_countr = 0;
{
_isOK = isClass(configFile >> "CfgVehicles" >> _x);
@@ -256,7 +256,7 @@ if (isServer && isNil "sm_done") then {
//Monitor the object
PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
};
} count (_BuildingQueue + _objectQueue);
} forEach (_BuildingQueue + _objectQueue);
// # END SPAWN OBJECTS #
// preload server traders menu data into cache

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Chernarus Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Isla Duala Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Taviana Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Namalsk Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Panthera Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Sahrani Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Podagorsk Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Takistan Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Fapovo Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Caribou Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch SMD Sahrani Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Napf Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Sauerland Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Utes Server (1.0.5.2/125548/No Traders)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -1,14 +1,18 @@
hostName = "DayZ Epoch Shapur BAF Server (1.0.5.2/125548/No Traders)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 24;
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Zargabad Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Dingor Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch Lingor Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,11 +20,13 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
@@ -33,4 +39,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -2,13 +2,17 @@ hostName = "DayZ Epoch ProvingGrounds_PMC Server (1.0.5.2/125548)";
password = "";
passwordAdmin = "changeme";
maxPlayers = 50;
steamport = 8766;
steamqueryport = 27016;
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
logFile = "server_log.txt";
voteThreshold = 2;
voteMissionPlayers = 3;
reportingIP = "arma2oapc.master.gamespy.com";
timeStampFormat = "short";
motd[] = {"DayZ Epoch","Have fun!"};
motdInterval = 0;
vonCodecQuality = 11;
disableVoN = 0;
kickduplicate = 1;
@@ -16,15 +20,18 @@ verifySignatures = 2;
persistent = 1;
BattlEye = 1;
doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
regularCheck = "";
requiredBuild = 125548;
requiredSecureId = 2;
class Missions
{
class Mission1
@@ -33,4 +40,4 @@ class Missions
difficulty="veteran";
};
};
};

View File

@@ -7,6 +7,46 @@ INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["CH53_DZE",2]', 6, '[2,"ItemBr
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["CH53_DZE",2]', 10, '[3,"ItemBriefcase100oz",1]', '[2,"ItemBriefcase100oz",1]', 0, 512, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["BAF_Merlin_DZE",2]', 10, '[2,"ItemBriefcase100oz",1]', '[1,"ItemBriefcase100oz",1]', 0, 519, 'trade_any_vehicle');
DELETE FROM `Traders_DATA` WHERE item = '["hilux1_civil_1_open"]';
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_1_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_1_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_1_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_1_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
DELETE FROM `Traders_DATA` WHERE item = '["hilux1_civil_2_covered"]';
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_2_covered_DZE",2]', 7, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_2_covered_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_2_covered_DZE",2]', 7, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_2_covered_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
DELETE FROM `Traders_DATA` WHERE item = '["hilux1_civil_3_open"]';
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_3_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_3_open_DZE",2]', 5, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["hilux1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
DELETE FROM `Traders_DATA` WHERE item = '["datsun1_civil_1_open"]';
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_1_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_1_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_1_open_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_1_open_DZE",2]', 12, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
DELETE FROM `Traders_DATA` WHERE item = '["datsun1_civil_2_covered"]';
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_2_covered_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_2_covered_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_2_covered_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_2_covered_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
DELETE FROM `Traders_DATA` WHERE item = '["datsun1_civil_3_open"]';
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_3_open_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT IGNORE INTO `Traders_DATA` VALUES (NULL, '["datsun1_civil_3_open_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
-- Remove incorrect lines
DELETE FROM `Traders_DATA` WHERE item = '["CH53_DZE",1]';
DELETE FROM `Traders_DATA` WHERE item = '["BAF_Merlin_DZE",1]';
UPDATE `Traders_DATA` SET `item` = '["C130J_US_EP1_DZ",2]' WHERE `item` = '["C130J_US_EP1",2]';

View File

@@ -529,12 +529,12 @@ INSERT INTO `Traders_DATA` VALUES(5395, '["ItemWatch",3]', 249, '[2,"ItemSilverB
INSERT INTO `Traders_DATA` VALUES(5396, '["NVGoggles",3]', 242, '[4,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]', 0, 532, 'trade_weapons');
INSERT INTO `Traders_DATA` VALUES(5409, '["Pickup_PK_GUE_DZE",2]', 11, '[1,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 534, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5410, '["Pickup_PK_INS_DZE",2]', 13, '[1,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 534, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5411, '["hilux1_civil_3_open_EP1",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5412, '["datsun1_civil_3_open",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5413, '["hilux1_civil_1_open",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5414, '["datsun1_civil_2_covered",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5415, '["datsun1_civil_1_open",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5416, '["hilux1_civil_2_covered",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5411, '["hilux1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5412, '["datsun1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5413, '["hilux1_civil_1_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5414, '["datsun1_civil_2_covered_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5415, '["datsun1_civil_1_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5416, '["hilux1_civil_2_covered_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 535, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5420, '["MMT_Civ",2]', 250, '[4,"ItemSilverBar",1]', '[2,"ItemSilverBar",1]', 0, 536, 'trade_any_bicycle');
INSERT INTO `Traders_DATA` VALUES(5421, '["Old_bike_TK_INS_EP1",2]', 250, '[4,"ItemSilverBar",1]', '[2,"ItemSilverBar",1]', 0, 536, 'trade_any_bicycle');
INSERT INTO `Traders_DATA` VALUES(5422, '["TT650_Civ",2]', 10, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]', 0, 536, 'trade_any_vehicle');
@@ -589,12 +589,12 @@ INSERT INTO `Traders_DATA` VALUES(5626, '["Ikarus",2]', 10, '[2,"ItemGoldBar10oz
INSERT INTO `Traders_DATA` VALUES(5627, '["Ikarus_TK_CIV_EP1",2]', 10, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 563, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5630, '["S1203_TK_CIV_EP1",2]', 9, '[6,"ItemGoldBar",1]', '[3,"ItemGoldBar",1]', 0, 563, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5631, '["S1203_ambulance_EP1",2]', 10, '[6,"ItemGoldBar",1]', '[3,"ItemGoldBar",1]', 0, 563, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5643, '["hilux1_civil_3_open_EP1",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5644, '["datsun1_civil_3_open",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5645, '["hilux1_civil_1_open",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5646, '["datsun1_civil_2_covered",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5647, '["datsun1_civil_1_open",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5648, '["hilux1_civil_2_covered",2]', 7, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5643, '["hilux1_civil_3_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5644, '["datsun1_civil_3_open_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5645, '["hilux1_civil_1_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5646, '["datsun1_civil_2_covered_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5647, '["datsun1_civil_1_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5648, '["hilux1_civil_2_covered_DZE",2]', 7, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 495, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5652, '["Ural_CDF",2]', 12, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 564, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5653, '["Ural_TK_CIV_EP1",2]', 13, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 564, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5654, '["Ural_UN_EP1",2]', 10, '[2,"ItemGoldBar10oz",1]', '[1,"ItemGoldBar10oz",1]', 0, 564, 'trade_any_vehicle');
@@ -734,12 +734,12 @@ INSERT INTO `Traders_DATA` VALUES(5984, '["KamazRefuel_DZ",2]', 11, '[7,"ItemGol
INSERT INTO `Traders_DATA` VALUES(5985, '["MtvrRefuel_DES_EP1_DZ",2]', 8, '[7,"ItemGoldBar10oz",1]', '[3,"ItemGoldBar10oz",1]', 0, 589, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5986, '["UralRefuel_TK_EP1_DZ",2]', 11, '[7,"ItemGoldBar10oz",1]', '[3,"ItemGoldBar10oz",1]', 0, 589, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5987, '["V3S_Refuel_TK_GUE_EP1_DZ",2]', 9, '[7,"ItemGoldBar10oz",1]', '[3,"ItemGoldBar10oz",1]', 0, 589, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5988, '["hilux1_civil_3_open_EP1",2]', 5, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5989, '["datsun1_civil_3_open",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5990, '["hilux1_civil_1_open",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5991, '["datsun1_civil_2_covered",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5992, '["datsun1_civil_1_open",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5993, '["hilux1_civil_2_covered",2]', 7, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5988, '["hilux1_civil_3_open_DZE",2]', 5, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5989, '["datsun1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5990, '["hilux1_civil_1_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5991, '["datsun1_civil_2_covered_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5992, '["datsun1_civil_1_open_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5993, '["hilux1_civil_2_covered_DZE",2]', 7, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 590, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5997, '["SUV_TK_CIV_EP1",2]', 9, '[2,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 591, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5998, '["SUV_Blue",2]', 9, '[2,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 591, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(5999, '["SUV_Charcoal",2]', 10, '[2,"ItemGoldBar10oz",1]', '[5,"ItemGoldBar",1]', 0, 591, 'trade_any_vehicle');
@@ -1232,12 +1232,12 @@ INSERT INTO `Traders_DATA` VALUES(6640, '["HMMWV_Ambulance_CZ_DES_EP1",2]', 12,
INSERT INTO `Traders_DATA` VALUES(6641, '["HMMWV_DES_EP1",2]', 15, '[4,"ItemGoldBar10oz",1]', '[2,"ItemGoldBar10oz",1]', 0, 658, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6642, '["GAZ_Vodnik_MedEvac",2]', 15, '[1,"ItemBriefcase100oz",1]', '[5,"ItemGoldBar10oz",1]', 0, 658, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6643, '["HMMWV_DZ",2]', 14, '[4,"ItemGoldBar10oz",1]', '[2,"ItemGoldBar10oz",1]', 0, 658, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6644, '["hilux1_civil_3_open_EP1",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6645, '["datsun1_civil_3_open",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6646, '["hilux1_civil_1_open",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6647, '["datsun1_civil_2_covered",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6648, '["datsun1_civil_1_open",2]', 12, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6649, '["hilux1_civil_2_covered",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6644, '["hilux1_civil_3_open_DZE",2]', 10, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6645, '["datsun1_civil_3_open_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6646, '["hilux1_civil_1_open_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6647, '["datsun1_civil_2_covered_DZE",2]', 11, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6648, '["datsun1_civil_1_open_DZE",2]', 12, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6649, '["hilux1_civil_2_covered_DZE",2]', 9, '[8,"ItemGoldBar",1]', '[4,"ItemGoldBar",1]', 0, 659, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6653, '["Skoda",2]', 10, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]', 0, 660, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6654, '["SkodaBlue",2]', 10, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]', 0, 660, 'trade_any_vehicle');
INSERT INTO `Traders_DATA` VALUES(6655, '["SkodaGreen",2]', 11, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]', 0, 660, 'trade_any_vehicle');

View File

@@ -0,0 +1,140 @@
<pre>
<?php
/*
Example of how to get server list from steam. Works for both Arma 2 and 3 servers
Original Source: https://developer.valvesoftware.com/wiki/User:Pizzahut/test.php
*/
$master_servers = array("hl2master.steampowered.com");
define("MIN_PORT", 27010); // Range of port numbers which the master servers
define("MAX_PORT", 27013); // potentially use.
// define("FILTER", '\gamedir\arma3'); // A3
define("FILTER", '\gamedir\arma2arrowpc'); // A2
define("REGION", "\xFF"); // region = world
define("TIMEOUT", 2.0); // 2s timeout
function query_timeout(&$socket, $seed)
{
echo "Sending query to master server.\n";
stream_set_timeout($socket, TIMEOUT);
if (!fwrite($socket, "1".REGION."$seed\0".FILTER."\0"))
{
fclose($socket);
exit("fwrite error\n");
}
echo "Reading response header.\n";
stream_set_timeout($socket, TIMEOUT);
$s = bin2hex(fread($socket, 6));
$info = stream_get_meta_data($socket);
if ($info['timed_out'])
echo "Master server timed out.\n";
else
{
if ($s !== "ffffffff660a")
{
fclose($socket);
if ($s == "")
echo "Expected ff ff ff ff 66 0a (hex) but got nothing.\n";
else
echo "Expected ff ff ff ff 66 0a (hex) but got $s.\n";
return True;
}
}
return $info['timed_out'];
}
// Connect to master server, return timeout info.
// The socket is passed as reference and thus returned as well.
function master_server_timeout(&$socket, $ip)
{
$port = MIN_PORT;
do {
echo "Connecting to master server \"$ip:$port\".\n";
$socket = fsockopen("udp://$ip", $port, $errno, $errstr, TIMEOUT);
if (!$socket) exit("Error $errno : $errstr \n");
$timeout = query_timeout($socket, "0.0.0.0:0");
$port = $port + 1;
} while ($timeout && ($port <= MAX_PORT));
return $timeout;
}
// Repeat until list isn't empty.
do
{
// Try all master servers until we find one that isn't timing out.
do
foreach ($master_servers as $ip)
if ($timeout=master_server_timeout($socket, $ip))
fclose($socket);
else
break;
while ($timeout);
// Read list with server addresses (IP:port).
$count = 0;
$old_a1 = 0; $old_a2 = 0; $old_a3 = 0; $old_a4 = 0; $old_a5 = 0;
$max_timeouts = 6;
do
{
stream_set_timeout($socket, TIMEOUT);
$a1 = ord(fread($socket,1));
$info = stream_get_meta_data($socket);
if ($info['timed_out'])
{
$seed = "$old_a1.$old_a2.$old_a3.$old_a4:$old_a5";
echo "Seed: $seed\n";
while (query_timeout($socket, $seed));
stream_set_timeout($socket, TIMEOUT);
$a1 = ord(fread($socket,1));
$info = stream_get_meta_data($socket);
if ($info['timed_out'])
{
echo "Timeout occured.\n";
break;
}
$check_for_duplicate = 1;
}
else
$check_for_duplicate = 0;
// Let's always read the rest of the address (even if it starts with 0) in
// order to empty the master server's write buffer. This may avoid subsequent
// problems, but I'm paranoid here.
$a2 = ord(fread($socket,1));
$a3 = ord(fread($socket,1));
$a4 = ord(fread($socket,1));
$a5 = ord(fread($socket,1))*256 + ord(fread($socket,1));
if ($a1 != 0)
{
if (($check_for_duplicate==0)||($a1!=$old_a1)||($a2!=$old_a2)||
($a3!=$old_a3)||($a4!=$old_a4)||($a5!=$old_a5))
{
$count++;
//echo "$count $a1.$a2.$a3.$a4:$a5\n";
$addy = "$a1.$a2.$a3.$a4";
$key = $addy.":".$a5;
echo $key."\n";
}
$old_a1 = $a1; $old_a2 = $a2; $old_a3 = $a3; $old_a4 = $a4; $old_a5 = $a5;
}
} while ($a1 != 0);
fclose($socket);
} while ($count == 0);
echo "Retrieved $count server addresses.\n";
?>
</pre>