diff --git a/CREDITS.md b/CREDITS.md new file mode 100644 index 00000000..273f38dd --- /dev/null +++ b/CREDITS.md @@ -0,0 +1,48 @@ +## [Epoch Projects](https://github.com/EpochModTeam) by [Epoch Mod Team](https://github.com/orgs/EpochModTeam/people) for [Arma 3](https://arma3.com/) + + +### [Epoch Survival Gamemode](https://github.com/EpochModTeam/Epoch) + +* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Code +* [Andrew Gregory (Axeman)](http://thefreezer.co.uk): AI Code +* [Raimonds Virtoss (Raymix)](https://www.twitch.tv/raymich): UI Code +* [Niklas Wagner (Skaronator)](https://skaronator.com): Code +* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester + +### [Epoch Server DB extension (DLL / so)](https://github.com/EpochModTeam/EpochServer) + +* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Code +* [Florian Kinder (Fank)](https://github.com/Fank): Code +* [Denis Erygin (devd)](https://github.com/denisio): Linux Code Support + +### [Epoch Server SQF Persistence Framework](https://github.com/EpochModTeam/EpochServerCore) + +* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Code +* [Florian Kinder (Fank)](https://github.com/Fank): Code + +### [Epoch Mod](http://steamcommunity.com/sharedfiles/filedetails/?id=421839251) + +* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Configs, Textures +* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Textures +* [Darren Harrison (Kiory)](https://www.twitch.tv/kiory123): Models, Textures +* [Paden Sturtevant (SteamPunkGears)](https://www.twitch.tv/steampunkgears): Models, Textures +* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester, Models +* Damian Clark ([VB]GREEN): Graphics + +#### Contributors + +* [Dan (OrangeSherbet)](https://www.twitch.tv/OrangeSherbet): Tester, Videos, Wiki Editor +* [Poulmba](https://www.youtube.com/user/poulmba): Wiki Editor, Tester +* Richie: Map Support, Forum Moderator +* [Tobias Solem](http://whatthepoch.com/): Tester + +#### Special Thanks! + +* [Bohemia Interactive](http://bistudio.com) for an incredible and versatile game engine. +* Top Donors: dean4310, Robio, rhinoCRUNCH, B3nzi, Madman2077 +* [GTXGaming](http://www.gtxgaming.co.uk) - Dedicated Dev Server +* [Survival Servers](https://www.survivalservers.com) - Dedicated Dev Server +* [Vilayer](https://www.vilayer.com) - Dedicated Dev Server +* [Nitrado](https://server.nitrado.net) - Dedicated Dev Server +* [Vert Hosting](https://verthosting.com) - Shared Arma 2 and 3 Dev servers. +* Also a thanks goes to all the testers and supporters we missed, you know who you are! diff --git a/CREDITS.txt b/CREDITS.txt deleted file mode 100644 index 0b2b9ee5..00000000 --- a/CREDITS.txt +++ /dev/null @@ -1,29 +0,0 @@ -=== Epoch Mod Credits === -The entire Epoch Mod Team wants to thank all those that have helped along the way! - -== Contributors == -Poul Andersen - Poulmba - Wiki Editor - https://www.youtube.com/user/poulmba -Tobias Solem - - Tester / Server Host - http://whatthepoch.com/ -More TBA - -== Top Donators to EpochMod.com == -GTXGAMING -SurvivalServers.com -dean4310 -Robio -rhinoCRUNCH -B3nzi -Madman2077 -Axle -orangesherbet - -== Active GSP Supporters == -GTXGaming - Dedicated Server - http://www.gtxgaming.co.uk -Survival Servers - Dedicated Server - https://www.survivalservers.com -Vilayer - Dedicated Server - https://www.vilayer.com -Nitrado - Dedicated Server - https://server.nitrado.net -Vert Hosting - Shared Arma 2 and 3 servers - https://verthosting.com - -== Past GSP Supporters == -Gportal - Dedicated Server - https://www.g-portal.com -Arctic Servers - Shared Arma 3 server - http://arcticservers.co.uk diff --git a/Changelogs/0.3.8.0.txt b/Changelogs/0.3.8.0.txt index 5bfd84c9..9d639345 100644 --- a/Changelogs/0.3.8.0.txt +++ b/Changelogs/0.3.8.0.txt @@ -43,7 +43,11 @@ [Info] Some AI Scripts Mods may not work with disableRemoteSensors enabled. You can disable with "disableRemoteSensors = false;" in CfgEpochClient. [Info] Removed old .bikey and added new one for 0380. -Build: 422 +Build: 424 +[Changed] Preloading sapper by spawning one on the map at server start. +[Changed] Change to github markdown for credits and license. +[Fixed] Green Marked traders unable to be accessed. +[Fixed] Trailing commas in CfgLootTable. [Fixed] Disallow building inside of vehicles. [Fixed] Incorrectly enabled CUP vehicles and weapons support if only Core and Maps where enabled. [Fixed] removeExec Battleye kick fixed. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..3745341a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,4 @@ +[Epoch Mod](http://epochmod.com) for [Arma 3](http://arma3.com) by [Epoch Mod Team](https://github.com/EpochModTeam/Epoch) + +The contents of this github are under the following license: +http://www.bistudio.com/community/licenses/arma-public-license-share-alike diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 4cc4615e..00000000 --- a/LICENSE.txt +++ /dev/null @@ -1,9 +0,0 @@ -Epoch Mod for Arma 3 -http://epochmod.com -by Epoch Mod Team -https://github.com/EpochModTeam/Epoch - -The contents of this github are under the following license: -http://www.bistudio.com/community/licenses/arma-public-license-share-alike - -Keep this file and file headers with attribution intact for proper use. \ No newline at end of file diff --git a/README.md b/README.md index decaba49..98e84552 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -Arma 3 Epoch +Epoch Survival Gamemode for Arma 3 ===== http://epochmod.com -This github is for the latest server files, public bug reports, and feedback related to A3 Epoch. +This github is for the latest server files, public bug reports, and feedback related to the Epoch Survival gamemode for Arma 3. Lastest Stable Server Files: https://github.com/EpochModTeam/Epoch/releases @@ -13,18 +13,6 @@ License: Arma Public License Share Alike (APL-SA). http://www.bistudio.com/community/licenses/arma-public-license-share-alike -Developers +Credits: ===== -* Aaron Clark - [VB]AWOL - Game Design, Code -* Kenneth Bente - Axle - Public Relations -* Paul Tomany - Sequisha - Models, Textures -* Dan - OrangeSherbet - Tester, Videos, Wiki Editor -* Darren Harrison - Kiory - Models, Textures -* Damian Clark - [VB]GREEN - Graphics -* Niklas Wagner - Skaronator - Code - https://skaronator.com -* Andrew Gregory - Axeman - AI Code - http://thefreezer.co.uk -* Florian Kinder - Fank - DLL Code -* Denis Erygin - devd - Linux DLL Support -* Richie - Map Support -* SteamPunkGears - Models -* Raymix - UI and Code +https://github.com/EpochModTeam/Epoch/CREDITS.md diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 21c080a2..e52d0a0f 100644 Binary files a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo and b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo differ diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index 9160503f..32eabb11 100644 Binary files a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo and b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo differ diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo index 4039492d..ec136605 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo differ diff --git a/Server_Install_Pack/MPMissions/epoch.Napf.pbo b/Server_Install_Pack/MPMissions/epoch.Napf.pbo index 64aec3aa..7906591d 100644 Binary files a/Server_Install_Pack/MPMissions/epoch.Napf.pbo and b/Server_Install_Pack/MPMissions/epoch.Napf.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Altis.pbo b/Server_Install_Pack/mpmissions/epoch.Altis.pbo index 81f29db2..a29a8e9f 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Altis.pbo and b/Server_Install_Pack/mpmissions/epoch.Altis.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Australia.pbo b/Server_Install_Pack/mpmissions/epoch.Australia.pbo index d31da707..7eac2ce3 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Australia.pbo and b/Server_Install_Pack/mpmissions/epoch.Australia.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo index 10e75ae1..e9926fcc 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo index 1799e044..eeab179b 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo and b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index b52251ab..28d42dfa 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo and b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo index 6c8d8014..e89dbfec 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo and b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo index 8fe47b70..8a7f378a 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo and b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo index 0c4027cf..95c893fd 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo and b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo index 7b1aad6f..d70bb1fb 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Porto.pbo b/Server_Install_Pack/mpmissions/epoch.Porto.pbo index 25fd1b54..5eaa3c2b 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Porto.pbo and b/Server_Install_Pack/mpmissions/epoch.Porto.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo index d8f1364b..26e601c5 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo and b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara.pbo b/Server_Install_Pack/mpmissions/epoch.Sara.pbo index 61979e3a..5b7a0c40 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Sara.pbo and b/Server_Install_Pack/mpmissions/epoch.Sara.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo index cc18ac47..302fc371 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo and b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo index 9cd4b5ec..d42c2e76 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo and b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo index 6544deb2..6d3cddf7 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo and b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index 1bc42760..577dcba5 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo and b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo index 85c0f447..a56cae6f 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo and b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index ee5fcf6d..1e8b7731 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.VR.pbo and b/Server_Install_Pack/mpmissions/epoch.VR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo index 48ec5077..b8d7d77e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo index 979d20dc..fdad5103 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo and b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.utes.pbo b/Server_Install_Pack/mpmissions/epoch.utes.pbo index 5b8fab12..2a53380e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.utes.pbo and b/Server_Install_Pack/mpmissions/epoch.utes.pbo differ diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index bb050d06..812338e5 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -21,7 +21,7 @@ class CfgEpochClient buildingRequireJammer = 0; // 1 = to allow building without a jammer buildingCountLimit = 200; // how many objects can be built within range of a jammer buildingJammerRange = 75; // jammer range in meters - disableRemoteSensors = true; // 1 = disableRemoteSensors true, 0 = disableRemoteSensors false + disableRemoteSensors = true; // disableRemoteSensors true EPOCH_news[] = {"Word is that Sappers have a new boss.","Dogs will often lure them monsters away.","My dog was blown up. I miss him.."}; antagonistSpawnIndex[] = { {"Epoch_Cloak_F", 1}, // {"type", limit} diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index 4cb1a87a..89d6c6d9 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=422; +build=424; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index 4cb1a87a..89d6c6d9 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=422; +build=424; diff --git a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf index cfcf4359..5eb1940e 100644 --- a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf +++ b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf @@ -28,7 +28,7 @@ _storedVehicleLimit = [_serverSettingsConfig, "storedVehicleLimit", 20] call EPO EPOCH_storedVehicleCount = 0; for "_i" from 0 to _maxTraderLimit do { - _traderSlotIndex = EPOCH_TraderSlots pushBack str(_i); + _traderSlotIndex = EPOCH_TraderSlots pushBack _i; // Spawn static traders first if (_staticTradersArrCount > 0 && _i < _staticTradersArrCount) then { diff --git a/Sources/epoch_server/init/server_init.sqf b/Sources/epoch_server/init/server_init.sqf index a3c5bd04..ca5d2f12 100644 --- a/Sources/epoch_server/init/server_init.sqf +++ b/Sources/epoch_server/init/server_init.sqf @@ -209,4 +209,9 @@ missionNamespace setVariable ["EPOCH_taxRate", [_serverSettingsConfig, "taxRate" // start accepting logins missionNamespace setVariable ["EPOCH_SERVER_READY", true, true]; +// spawn a single sapper to preload +_sapper = createAgent ["Epoch_Sapper_F", [0,0,0], [], 0, "CAN_COLLIDE"]; +_sapper setDamage 1; +_sapper enableSimulationGlobal false; + diag_log format ["Epoch: Server Start Complete: %1 seconds",diag_tickTime-_startTime]; diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index 4cb1a87a..89d6c6d9 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=422; +build=424; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index 4cb1a87a..89d6c6d9 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=422; +build=424; diff --git a/Sources/epoch_server_settings/configs/CfgLootTable.h b/Sources/epoch_server_settings/configs/CfgLootTable.h index 140722da..3a36b69a 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable.h @@ -165,7 +165,7 @@ class CfgLootTable { { "ItemAluminumBar", "magazine" }, 2 }, { { "ItemCopperBar", "magazine" }, 2 }, - { { "ItemTinBar", "magazine" }, 1 }, + { { "ItemTinBar", "magazine" }, 1 } }; }; @@ -733,7 +733,7 @@ class CfgLootTable { { "ItemSilverBar", "magazine" }, 20 }, { { "ItemCopperBar", "magazine" }, 20 }, { { "ItemAluminumBar", "magazine" }, 20 }, - { { "ItemTinBar", "magazine" }, 30 }, + { { "ItemTinBar", "magazine" }, 30 } }; }; class Gems diff --git a/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h b/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h index 7c28ca54..4b2cf563 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h @@ -259,7 +259,7 @@ class CfgLootTable_CUP { { "lighter_epoch", "magazine" }, 1 }, { { "ItemAluminumBar", "magazine" }, 2 }, { { "ItemCopperBar", "magazine" }, 2 }, - { { "ItemTinBar", "magazine" }, 1 }, + { { "ItemTinBar", "magazine" }, 1 } }; }; class Primitive @@ -886,7 +886,7 @@ class CfgLootTable_CUP { { "CUP_lmg_m249_SQuantoon", "weapon" }, 1 }, { { "CUP_lmg_M60E4", "weapon" }, 1 }, { { "CUP_lmg_Mk48_des", "weapon" }, 1 }, - { { "CUP_lmg_Mk48_wdl", "weapon" }, 1 }, + { { "CUP_lmg_Mk48_wdl", "weapon" }, 1 } }; }; @@ -927,7 +927,7 @@ class CfgLootTable_CUP { { "200Rnd_556x45_M249", "magazine" }, 10 }, { { "150Rnd_93x64_Mag", "magazine" }, 10 }, { { "MachinegunAmmo_30Rnd_65x39_caseless_mag", "CfgLootTable" }, 20 }, - { { "CUP_MachinegunAmmo", "CfgLootTable" }, 23 }, + { { "CUP_MachinegunAmmo", "CfgLootTable" }, 23 } }; }; class CUP_MachinegunAmmo @@ -1018,7 +1018,7 @@ class CfgLootTable_CUP { { "hgun_ACPC2_F", "weapon" }, 10 }, { { "ruger_pistol_epoch", "weapon" }, 12 }, // CUP - { { "CUP_pistols", "CfgLootTable" }, 15 }, + { { "CUP_pistols", "CfgLootTable" }, 15 } }; }; class CUP_pistols @@ -1055,7 +1055,7 @@ class CfgLootTable_CUP // CUP { { "CUP_PistolAmmo", "CfgLootTable" }, 10 }, { { "CUP_ShotgunAmmo", "CfgLootTable" }, 5 }, - { { "CUP_SubMachinegunAmmo", "CfgLootTable" }, 5 }, + { { "CUP_SubMachinegunAmmo", "CfgLootTable" }, 5 } }; }; @@ -1196,7 +1196,7 @@ class CfgLootTable_CUP { { "bipod_02_F_hex", "item" }, 1 }, { { "bipod_03_F_blk", "item" }, 1 }, { { "bipod_03_F_oli", "item" }, 1 }, - { { "CUP_Bipods", "CfgLootTable" }, 2 }, + { { "CUP_Bipods", "CfgLootTable" }, 2 } }; }; class CUP_Bipods @@ -1221,7 +1221,7 @@ class CfgLootTable_CUP // Marksman DLC { { "Muzzles_338MarkDLC", "CfgLootTable" }, 1 }, { { "Muzzles_93mmgMarkDLC", "CfgLootTable" }, 1 }, - { { "CUP_Muzzles", "CfgLootTable" }, 8 }, + { { "CUP_Muzzles", "CfgLootTable" }, 8 } }; }; class CUP_Muzzles @@ -1244,7 +1244,7 @@ class CfgLootTable_CUP { { "CUP_muzzle_mfsup_SCAR_L", "item" }, 1 }, { { "CUP_muzzle_snds_SCAR_H", "item" }, 1 }, { { "CUP_muzzle_mfsup_SCAR_H", "item" }, 1 }, - { { "CUP_muzzle_snds_XM8", "item" }, 1 }, + { { "CUP_muzzle_snds_XM8", "item" }, 1 } }; }; @@ -1295,7 +1295,7 @@ class CfgLootTable_CUP { { "ItemSilverBar", "magazine" }, 20 }, { { "ItemCopperBar", "magazine" }, 20 }, { { "ItemAluminumBar", "magazine" }, 20 }, - { { "ItemTinBar", "magazine" }, 30 }, + { { "ItemTinBar", "magazine" }, 30 } }; }; class Gems diff --git a/Tools/PHP/ConvertMission2dto3d.php b/Tools/PHP/ConvertMission2dto3d.php new file mode 100644 index 00000000..15a4c6d9 --- /dev/null +++ b/Tools/PHP/ConvertMission2dto3d.php @@ -0,0 +1,298 @@ +'Epoch Mod', + 'timeOfChanges'=>28800, + 'startWeather'=>0, + 'startWind'=>0, + 'startWaves'=>0, + 'forecastWeather'=>0, + 'forecastWind'=>0, + 'forecastWaves'=>0, + 'forecastLightnings'=>1.0, + 'year'=>2035, + 'month'=>6, + 'day'=>24, + 'hour'=>12, + 'minute'=>0, + 'startFogDecay'=>0.013, + 'forecastFogDecay'=>0.013 + ), + $playerCount = 100, + $groups = array ( + 'Item0' => array ( + 'side'=>'CIV', + 'Vehicles' => array ( + 'Item0' => array ( + 'position'=> array(4331.02,0,148.62354), + ) + ) + ) + ), + $markers = array ( + + 'Item0' => array ( + 'position' => array (4135.0137,0,4039.3584), + 'name'=>"center", + 'type'=>"Empty", + ), + 'Item1' => array ( + 'position' => array (4331.02,0,148.62354), + 'name'=>"respawn_east", + 'type'=>"Empty", + ), + 'Item2' => array ( + 'position' => array (4331.02,0,148.62354), + 'name'=>"respawn_west", + 'type'=>"Empty", + ), + 'Item3' => array ( + 'position' => array (3257.1497,0,1079.2324), + 'name'=>"south", + 'type'=>"Empty", + ), + 'Item4' => array ( + 'position' => array (3154.1616,0,5169.5229), + 'name'=>"east", + 'type'=>"Empty", + ) + + ) + ) + { + $this->addOns = $addOns; + $this->addOnsAuto = $addOnsAuto; + $this->randomSeed = $randomSeed; + $this->intel = $intel; + $this->playerCount = $playerCount; + $this->groups = $groups; + $this->markers = $markers; + } + + + + +} // end of class Mission + + + + +?> +
+ $val) { + if (!is_array($val)) { + echo "\t$prop = $val\n"; + } else { + echo "\t$prop = \n"; + print_r($val); + } + } +} + +function print_methods($obj) + { + $arr = get_class_methods(get_class($obj)); + foreach ($arr as $method) { + echo "\tfunction $method()\n"; + } +} + +function class_parentage($obj, $class) +{ + if (is_subclass_of($GLOBALS[$obj], $class)) { + echo "Object $obj belongs to class " . get_class($GLOBALS[$obj]); + echo ", a subclass of $class\n"; + } else { + echo "Object $obj does not belong to a subclass of $class\n"; + } +} + +// instantiate 2 objects +$mission = new Mission(); + +// print out information about objects +// echo "CLASS " . get_class($mission) . "\n"; + +// show mission properties + //echo "\nmission: Properties\n"; + //print_vars($mission); + +echo "version=51; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={7542.4932,93.791428,15492.986}; + dir[]={-0.8989169,-0.17364819,-0.40223712}; + up[]={-0.15850332,0.98480779,-0.070925266}; + aside[]={-0.40844229,0,0.91278416}; + }; +}; +binarizationWanted=0; +"; + + + +echo "addons[]= +{ +"; +foreach ($mission->addOnsAuto as $key => $value) { + if (is_string($value)) { + echo " \"$value\",\n"; + } else { + echo " $value,\n"; + } + +} +echo "};\n"; + + +echo "randomSeed=$mission->randomSeed;\n"; +echo "class ScenarioData +{ + author=\"[VB]AWOL\"; +};\n"; + + + +echo "class Mission +{ + class Intel + { +"; +foreach ($mission->intel as $key => $value) { + if (is_string($value)) { + echo " $key=\"$value\";\n"; + } else { + echo " $key=$value;\n"; + } + +} +echo " };\n"; + +$EntitiesCounter = 0; + +echo " class Entities + { +"; +echo " items=". (count($mission->markers) + $mission->playerCount) .";\n"; + +foreach ($mission->markers as $key => $value) { + + $position = implode(",", $value["position"]); + echo " class Item".$EntitiesCounter." + { + dataType=\"Marker\"; + position[]={".$position."}; + name=\"".$value["name"]."\"; + type=\"".$value["type"]."\"; + id=".$EntitiesCounter."; + };\n"; + $EntitiesCounter++; + +} + +for ($x = count($mission->markers); $x <= ($mission->playerCount+count($mission->markers)); $x++) { + + foreach ($mission->groups as $key => $value) { + + $position = implode(",", $value["Vehicles"]["Item0"]["position"]); + echo " class Item".$x." + { + dataType=\"Group\"; + side=\"Civilian\"; + class Entities + { + items=1; + class Item0 + { + dataType=\"Object\"; + class PositionInfo + { + position[]={".$position."}; + angles[]={0,4.7169838,0}; + }; + side=\"Civilian\"; + flags=3; + class Attributes + { + isPlayable=1; + }; + id=".($EntitiesCounter+1)."; + type=\"VirtualMan_EPOCH\"; + }; + }; + class Attributes + { + }; + id=".$EntitiesCounter."; + };\n"; + $EntitiesCounter++; + $EntitiesCounter++; + + } +} + + + +// Entities end +echo " };\n"; + + + + +// final +echo "};\n"; + +?> ++ + +