mirror of
https://github.com/DaKerboul/perun.git
synced 2026-08-10 01:05:40 +02:00
119 lines
5.4 KiB
Markdown
119 lines
5.4 KiB
Markdown

|
|

|
|

|
|
|
|
|
|
# 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.
|
|
|
|

|
|

|
|
|
|
## 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); note that you need just a one database per DCS server machine - multiple instances pushing data to the one database are supported
|
|
|
|
## 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)
|
|
## MySQL database structure
|
|
* table: pe_DataMissionHashes - holds mission hashes, unique hashes created per each mission start at server
|
|
* table: pe_DataPlayers - holds players UCIDs together with last login information
|
|
* table: pe_DataRaw - holds raw data received from perun windows app, containing debug/version information together with DCS SRS and LotATC data
|
|
* table: pe_DataTypes - names of all model depende class names detected in DCS
|
|
* table: pe_LogChat - holds chat history
|
|
* table: pe_LogEvent - holds event history
|
|
* table: pe_LogLogins - holds login to server event history
|
|
* table: pe_LogStats - holds static information
|
|
|
|
## 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.
|