szporowolik b36127c272 Code cleanup
2019-10-20 13:30:17 +02:00
2019-10-20 02:50:20 +02:00
2019-10-20 13:30:17 +02:00
2019-10-17 16:36:23 +02:00
2019-02-22 11:48:47 +01:00
2019-10-20 02:39:34 +02:00

alt text alt text alt text

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 Data flow

Prerequisites

Core:

  • For JSON Export:
    • DCS World stable or DCS World beta
  • (Optional) For MySQL Export:
    • MySQL database with read/write access running at min. 5.7 server (tested with v5.7.21; native JSON support is required)
    • .NET Framework 4.8.0

3rd party applications support:

  • for DCS SRS 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
  • for LotATC you will need location of stats.json file and proper LotATC configuration with JSON data export enabled - see LotATC documentation

Installing

  • Download latest release
  • Copy contents of 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; 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
    • perun version - for server administration usage
    • player count - actual number of connected players
  • ID: 2, contains status data in the following sections
    • mission name - name of the mission file
    • model time - simulation time
    • real time - real time
    • pause - information if server is paused
    • multiplayer - information if this is multiplayer game (always true for dedicated server usage)
    • theather - information about area of operation
    • weather - basic weather information
    • players - connected players
  • ID: 3, available slots list and coalitions
    • coalitions - available coalitions
    • slots - available slots
  • ID: 4, stores mission data ; idea is to have whole DCS.getCurrentMission() result - currenlty commented out due to performance issues
  • ID: 50, chat event
  • ID: 51, game event
  • ID: 52, player stats ; note that as DSC native stats are not reliable, seperate stats couting methods are used
  • 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

used 3rd party resources

Contributing

Please contact me if you'd like to contribute.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • Thanks to Gildia DCS Polish community of DCS World pilots.
Description
Miroir de DaKerboul/perun (Perun DCS, reprise). Source de verite : GitHub.
Readme 1.4 MiB
Languages
C 49.8%
HTML 31.6%
C# 9.5%
Lua 5.3%
Makefile 1.2%
Other 2.6%