![alt text](https://img.shields.io/github/license/szporwolik/perun.svg "MIT") ![alt text](https://img.shields.io/github/release-pre/szporwolik/perun.svg "Latest release") ![alt text](https://img.shields.io/github/release-date-pre/szporwolik/perun.svg "Latest release date") # Perun for DCS World Included lua script extracts data from DCS World multiplayer server and sends information to TCP port and JSON file for further processing. Provided windows app puts received TCP packets to MySQL database; additionaly Perun windows application can be used to merge LotATC and DCS SRS data in one database making Perun for DCS World wannabe ultimate integration tool for the server admins. However, this software is intended to be used by experienced users - the output is MySQL data and/or JSON file; you will need to process/display it yourself. ![Perun in action](https://i.imgur.com/vHw8Xu5.png) ![Data flow](https://i.imgur.com/JbNu77l.png) ## Prerequisites Core: * For JSON Export: * DCS World stable or DCS World beta * **(Optional)** For MySQL Export: * MySQL database with read/write access (tested with v5.7.21) * .NET Framework 4.8.0 3rd party applications support: * for [DCS SRS](https://github.com/ciribob/DCS-SimpleRadioStandalone/releases) integration location of the clients-list.json file will be required (by default: SRS Server folder), "Auto Export List" option has to be enabled - see [SRS documentation](https://github.com/ciribob/DCS-SimpleRadioStandalone/wiki) * for [LotATC](https://www.lotatc.com/) you will need location of stats.json file and proper LotATC configuration with JSON data export enabled - see [LotATC documentation](https://www.lotatc.com/documentation/server_configuration.html) ## Installing * Download latest [release](https://github.com/szporwolik/perun/releases) * Copy contents of [01_DCS](https://github.com/szporwolik/perun/tree/master/01_DCS) to your \Scripts folder (located inside DCS folder in your Saved Games) * **optionaly** create MySQL database using SQL script located in [03_MySQL](https://github.com/szporwolik/perun/tree/master/03_MySQL) ## Running * Start DCS World and host multiplayer session * by default the JSON is written into Scripts\Json folder located in your Saved Games DCS folder tree * by default the TCP port 48620 is in use as target port * **optionaly** run the Win32 application * set MySQL connection data * **optionaly** point LotATC json file location * **optionaly** point DCS SRS json file location * click connect and leave the app running in the background * **data shall now be filling your MySQL database** ### Windows APP - command line arguments (for expert users) Windows app supports command line arguments, what may be handy in case of multiple instance of DCS servers running at the same machine. The following arguments are accepted (keep the order!): * server port (shall be the same as in the lua file!) * instance ID (shall be the same as in the lua file!) * path to SRS client-list.json * path to LotATC stats.json Example for windows shortcut: ``` C:\Perun_v1\Perun.exe 48621 1 "G:\DCS SRS\clients-list.json" "C:\Users\DCS\Saved Games\DCS\Mods\tech\LotAtc\stats.json" ``` # API documentation (for expert users) ## Data packets - send from lua to TCP port * ```ID: 1```, contains version/diagnostic information * ```ID: 2```, contains status data in the following sections * mission - minimal information about mission * players - connected players * ```ID: 3```, available slots list and coalitions * coalitions - available coalitions * slots - available slots * ```ID: 4```, stores mission data * ```ID: 50```, chat event * ```ID: 51```, game event * ```ID: 52```, player stats * ```ID: 53```, player login to DCS server * ```ID: 100```, DCS SRS's client-list.json * ```ID: 101```, LotATC's stats.json # Project information ## Built With * [VisualStudio 2017 Community](https://visualstudio.microsoft.com/vs/community/) * [Notepad++](https://notepad-plus-plus.org/) ## used 3rd party resources * [Tango Icon Library](http://tango.freedesktop.org/Tango_Icon_Library) ## Contributing Please contact me if you'd like to contribute. ## Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/szporwolik/perun/tags). ## Authors * **Szymon Porwolik** - *Initial work* - [szporwolik](https://github.com/szporwolik) See also the list of [contributors](https://github.com/szporwolik/perun/contributors) who participated in this project. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details ## Acknowledgments * Thanks to [Gildia DCS](https://forum.gildia.org) Polish community of DCS World pilots.