11 Commits

Author SHA1 Message Date
VladMordock
8e28b5b735 Merge pull request #47 from szporwolik/dev
v0.11.0-hotfix
2020-11-06 22:57:03 +01:00
szporowolik
b07ec7b9c3 v0.11.0-hotfix 2020-11-06 22:53:18 +01:00
VladMordock
d591da2c43 Merge pull request #46 from szporwolik/dev
v0.11.0
2020-11-06 17:21:33 +01:00
szporowolik
174bb1e2ef v0.11.1 config 2020-11-06 17:13:52 +01:00
szporowolik
a4ce9ed254 Update for v0.11.0 2020-11-06 17:08:32 +01:00
szporowolik
ff268a47e4 Fixes for: #43 , #44, #45 2020-11-06 16:59:25 +01:00
szporowolik
37fd76c8ae Config for 0.11.0 2020-09-16 01:17:29 +02:00
szporowolik
167f3e9021 Added status tables:
- pe_OnlinePlayers
- pe_OnlineStatus
2020-09-16 01:01:42 +02:00
szporowolik
4723702d28 0.10.2 config prepared 2020-09-15 23:23:30 +02:00
VladMordock
f6d1ec82d5 Merge pull request #41 from szporwolik/master
Merge master with Dev
2020-09-15 23:21:46 +02:00
VladMordock
fd6b0a65ab Added donation link 2020-09-15 00:58:09 +02:00
7 changed files with 98 additions and 20 deletions

View File

@@ -22,7 +22,7 @@ Perun.MOTD_L2 = "Wymagamy obecnosci DCS SRS oraz TeamSpeak - szczegoly na forum"
-- ###################### END OF SETTINGS - DO NOT MODIFY OUTSIDE THIS SECTION ###################### -- ###################### END OF SETTINGS - DO NOT MODIFY OUTSIDE THIS SECTION ######################
-- Variable init -- Variable init
Perun.Version = "v0.10.1" Perun.Version = "v0.11.0"
Perun.StatusData = {} Perun.StatusData = {}
Perun.SlotsData = {} Perun.SlotsData = {}
Perun.MissionData = {} Perun.MissionData = {}

View File

@@ -93,6 +93,38 @@ public class DatabaseController
SQLQueryTxt += "UPDATE `pe_DataRaw` SET `pe_dataraw_payload` = @PAR_TCPFramePayload, `pe_dataraw_updated`=" + TCPFrameTimestamp + " WHERE `pe_dataraw_type`=" + TCPFrameType + " AND `pe_dataraw_instance` = " + TCPFrameInstance + ";"; SQLQueryTxt += "UPDATE `pe_DataRaw` SET `pe_dataraw_payload` = @PAR_TCPFramePayload, `pe_dataraw_updated`=" + TCPFrameTimestamp + " WHERE `pe_dataraw_type`=" + TCPFrameType + " AND `pe_dataraw_instance` = " + TCPFrameInstance + ";";
} }
// Handling of special data (like parsing JSONs to DB)
switch (Int32.Parse(TCPFrameType))
{
case 1:
// General status information
SQLQueryTxt += "INSERT INTO `pe_OnlineStatus` (`pe_OnlineStatus_instance`) SELECT '" + Int32.Parse(TCPFrameInstance) + "' FROM DUAL WHERE NOT EXISTS(SELECT * FROM `pe_OnlineStatus` WHERE `pe_OnlineStatus_instance` = '" + Int32.Parse(TCPFrameInstance) + "');";
SQLQueryTxt += "UPDATE `pe_OnlineStatus` SET `pe_OnlineStatus_perunversion_winapp` = '" + TCPFrame.payload.v_win + "', `pe_OnlineStatus_perunversion_dcshook` ='" + TCPFrame.payload.v_dcs_hook + "' WHERE `pe_OnlineStatus_instance` = '" + Int32.Parse(TCPFrameInstance) + "' ;";
break;
case 2:
// SRS Data
SQLQueryTxt += "DELETE FROM pe_OnlinePlayers WHERE pe_OnlinePlayers_instance = " + Int32.Parse(TCPFrameInstance) +";";
int player_count = 0;
foreach (var record_player in TCPFrame.payload.players)
{
SQLQueryTxt += "INSERT INTO `pe_OnlinePlayers` (`pe_OnlinePlayers_id`, `pe_OnlinePlayers_instance`, `pe_OnlinePlayers_ping`, `pe_OnlinePlayers_side`, `pe_OnlinePlayers_slot`, `pe_OnlinePlayers_ucid`) VALUES ("+ record_player.id + ", '"+ Int32.Parse(TCPFrameInstance) + "', '" + record_player.ping + "', '" + record_player.side + "', '" + record_player.slot + "', '" + record_player.ucid + "');";
player_count++;
}
//SQLQueryTxt += "DELETE FROM pe_OnlineStatus WHERE pe_OnlineStatus_instance = " + Int32.Parse(TCPFrameInstance) + ";";
SQLQueryTxt += "INSERT INTO `pe_OnlineStatus` (`pe_OnlineStatus_instance`) SELECT '" + Int32.Parse(TCPFrameInstance) + "' FROM DUAL WHERE NOT EXISTS(SELECT * FROM `pe_OnlineStatus` WHERE `pe_OnlineStatus_instance` = '" + Int32.Parse(TCPFrameInstance) + "');";
SQLQueryTxt += "UPDATE `pe_OnlineStatus` SET `pe_OnlineStatus_theatre` = '" + TCPFrame.payload.mission.theatre + "', `pe_OnlineStatus_name` = '" + TCPFrame.payload.mission.name + "' , `pe_OnlineStatus_pause` = '" + TCPFrame.payload.mission.pause + "', `pe_OnlineStatus_multiplayer` = '" + TCPFrame.payload.mission.multiplayer + "', `pe_OnlineStatus_realtime` = '" + TCPFrame.payload.mission.realtime + "', `pe_OnlineStatus_modeltime` = '" + TCPFrame.payload.mission.modeltime + "', `pe_OnlineStatus_players` = " + player_count + " WHERE `pe_OnlineStatus_instance` = '" + Int32.Parse(TCPFrameInstance) + "';";
break;
default:
break;
}
// Connect to mysql and execute sql // Connect to mysql and execute sql
try try
{ {

View File

@@ -37,7 +37,10 @@ namespace Perun_v1
// Get argument server port // Get argument server port
if (args[1] != null) if (args[1] != null)
{ {
con_txt_dcs_server_port.Text = args[1]; if (args[1] != "-1")
{
con_txt_dcs_server_port.Text = args[1];
}
} }
} }
if (args.Length > 2) if (args.Length > 2)
@@ -45,16 +48,23 @@ namespace Perun_v1
// Get argument instance id // Get argument instance id
if (args[2] != null) if (args[2] != null)
{ {
con_txt_dcs_instance.Text = args[2]; if (args[2] != "-1")
{
con_txt_dcs_instance.Text = args[2];
}
} }
} }
if (args.Length > 3) if (args.Length > 3)
{ {
// Get argument DCS SRS file path // Get argument DCS SRS file path
if (args[3] != null) if (args[3] != null)
{ {
con_txt_3rd_srs.Text = args[3]; if (args[3] != "-1")
con_check_3rd_srs.Checked = true; {
con_txt_3rd_srs.Text = args[3];
con_check_3rd_srs.Checked = true;
}
} }
} }
if (args.Length > 4) if (args.Length > 4)
@@ -62,8 +72,11 @@ namespace Perun_v1
// Get argument lotATC file path // Get argument lotATC file path
if (args[4] != null) if (args[4] != null)
{ {
con_txt_3rd_lotatc.Text = args[4]; if (args[4] != "-1")
con_check_3rd_lotatc.Checked = true; {
con_txt_3rd_lotatc.Text = args[4];
con_check_3rd_lotatc.Checked = true;
}
} }
} }
@@ -74,8 +87,11 @@ namespace Perun_v1
{ {
if (args[5] == "1") if (args[5] == "1")
{ {
TIM_Autostart.Enabled = true; if (args[5] != "-1")
PerunHelper.AddLog(ref Globals.AppLogHistory, "Autostart parameter provided", 0, 1); {
TIM_Autostart.Enabled = true;
PerunHelper.AddLog(ref Globals.AppLogHistory, "Autostart parameter provided", 0, 1);
}
} }
} }
} }

View File

@@ -31,8 +31,8 @@
<PublisherName>szporwolik</PublisherName> <PublisherName>szporwolik</PublisherName>
<SuiteName>Perun</SuiteName> <SuiteName>Perun</SuiteName>
<WebPage>Perun.htm</WebPage> <WebPage>Perun.htm</WebPage>
<ApplicationRevision>2</ApplicationRevision> <ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>0.10.1.%2a</ApplicationVersion> <ApplicationVersion>0.11.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut> <CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted> <PublishWizardCompleted>true</PublishWizardCompleted>

View File

@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
// Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki // Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki
// przy użyciu symbolu „*”, tak jak pokazano poniżej: // przy użyciu symbolu „*”, tak jak pokazano poniżej:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.10.1.0")] [assembly: AssemblyVersion("0.11.1.0")]
[assembly: AssemblyFileVersion("0.10.1.0")] [assembly: AssemblyFileVersion("0.11.1.0")]
[assembly: NeutralResourcesLanguage("en")] [assembly: NeutralResourcesLanguage("en")]

View File

@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS `pe_Config` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `pe_Config` (`pe_Config_id`, `pe_Config_payload`) VALUES INSERT INTO `pe_Config` (`pe_Config_id`, `pe_Config_payload`) VALUES
(1, 'v0.10.1'); (1, 'v0.11.0');
DROP TABLE IF EXISTS `pe_DataMissionHashes`; DROP TABLE IF EXISTS `pe_DataMissionHashes`;
CREATE TABLE IF NOT EXISTS `pe_DataMissionHashes` ( CREATE TABLE IF NOT EXISTS `pe_DataMissionHashes` (
@@ -41,7 +41,6 @@ CREATE TABLE IF NOT EXISTS `pe_DataPlayers` (
UNIQUE KEY `UNIQUE_UCID` (`pe_DataPlayers_ucid`) UNIQUE KEY `UNIQUE_UCID` (`pe_DataPlayers_ucid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `pe_DataRaw`; DROP TABLE IF EXISTS `pe_DataRaw`;
CREATE TABLE IF NOT EXISTS `pe_DataRaw` ( CREATE TABLE IF NOT EXISTS `pe_DataRaw` (
`pe_dataraw_type` tinyint(4) NOT NULL, `pe_dataraw_type` tinyint(4) NOT NULL,
@@ -116,6 +115,7 @@ CREATE TABLE IF NOT EXISTS `pe_LogStats` (
`pe_LogStats_typeid` int(11) DEFAULT NULL, `pe_LogStats_typeid` int(11) DEFAULT NULL,
`pe_LogStats_masterslot` int(11) DEFAULT NULL, `pe_LogStats_masterslot` int(11) DEFAULT NULL,
`pe_LogStats_seat` int(10) DEFAULT NULL, `pe_LogStats_seat` int(10) DEFAULT NULL,
`ps_kills_X` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_pvp` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_pvp` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_deaths` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_deaths` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_ejections` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_ejections` int(11) UNSIGNED NOT NULL DEFAULT '0',
@@ -129,7 +129,7 @@ CREATE TABLE IF NOT EXISTS `pe_LogStats` (
`ps_kills_infantry` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_kills_infantry` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_kills_ships` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_kills_ships` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_kills_fortification` int(10) UNSIGNED NOT NULL DEFAULT '0', `ps_kills_fortification` int(10) UNSIGNED NOT NULL DEFAULT '0',
`ps_kills_artillery` int(10) UNSIGNED NOT NULL DEFAULT '0', `ps_kills_artillery` int(10) NOT NULL DEFAULT '0',
`ps_kills_other` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_kills_other` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_airfield_takeoffs` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_airfield_takeoffs` int(11) UNSIGNED NOT NULL DEFAULT '0',
`ps_airfield_landings` int(11) UNSIGNED NOT NULL DEFAULT '0', `ps_airfield_landings` int(11) UNSIGNED NOT NULL DEFAULT '0',
@@ -150,7 +150,6 @@ CREATE TABLE IF NOT EXISTS `pe_LogStats` (
KEY `pe_LogStats_mstatus` (`pe_LogStats_mstatus`), KEY `pe_LogStats_mstatus` (`pe_LogStats_mstatus`),
KEY `pe_LogStats_seat` (`pe_LogStats_seat`) KEY `pe_LogStats_seat` (`pe_LogStats_seat`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TRIGGER IF EXISTS `pe_LogStats_UPDATE`; DROP TRIGGER IF EXISTS `pe_LogStats_UPDATE`;
DELIMITER $$ DELIMITER $$
CREATE TRIGGER `pe_LogStats_UPDATE` BEFORE UPDATE ON `pe_LogStats` FOR EACH ROW BEGIN CREATE TRIGGER `pe_LogStats_UPDATE` BEFORE UPDATE ON `pe_LogStats` FOR EACH ROW BEGIN
@@ -173,6 +172,32 @@ END
$$ $$
DELIMITER ; DELIMITER ;
DROP TABLE IF EXISTS `pe_OnlinePlayers`;
CREATE TABLE IF NOT EXISTS `pe_OnlinePlayers` (
`pe_OnlinePlayers_id` int(11) NOT NULL,
`pe_OnlinePlayers_instance` int(11) NOT NULL,
`pe_OnlinePlayers_ping` int(11) NOT NULL,
`pe_OnlinePlayers_side` int(11) NOT NULL,
`pe_OnlinePlayers_slot` varchar(255) NOT NULL,
`pe_OnlinePlayers_ucid` varchar(255) NOT NULL,
`pe_OnlinePlayers_updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `pe_OnlineStatus`;
CREATE TABLE IF NOT EXISTS `pe_OnlineStatus` (
`pe_OnlineStatus_instance` int(11) NOT NULL,
`pe_OnlineStatus_theatre` varchar(255) NOT NULL,
`pe_OnlineStatus_name` varchar(255) NOT NULL,
`pe_OnlineStatus_pause` varchar(255) NOT NULL,
`pe_OnlineStatus_multiplayer` varchar(255) NOT NULL,
`pe_OnlineStatus_realtime` varchar(255) NOT NULL,
`pe_OnlineStatus_modeltime` varchar(255) NOT NULL,
`pe_OnlineStatus_players` int(11) NOT NULL,
`pe_OnlineStatus_perunversion_winapp` varchar(255) NOT NULL,
`pe_OnlineStatus_perunversion_dcshook` varchar(255) NOT NULL,
`pe_OnlineStatus_updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `pe_DataMissionHashes` ADD FULLTEXT KEY `pe_DataMissionHashes_hash` (`pe_DataMissionHashes_hash`); ALTER TABLE `pe_DataMissionHashes` ADD FULLTEXT KEY `pe_DataMissionHashes_hash` (`pe_DataMissionHashes_hash`);

View File

@@ -2,6 +2,7 @@
![alt text](https://img.shields.io/github/license/szporwolik/perun.svg "MIT") ![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-pre/szporwolik/perun.svg "Latest release")
![alt text](https://img.shields.io/github/release-date-pre/szporwolik/perun.svg "Latest release date") ![alt text](https://img.shields.io/github/release-date-pre/szporwolik/perun.svg "Latest release date")
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ZBW8R5L25A8QW&currency_code=EUR&source=url)
![Perun logo](https://i.imgur.com/PrIkqNA.png) ![Perun logo](https://i.imgur.com/PrIkqNA.png)
@@ -47,8 +48,8 @@ Windows app supports command line arguments, what may be handy in case of multip
The following arguments are accepted (keep the order!): The following arguments are accepted (keep the order!):
* server port (shall be the same as in the lua file!) * server port (shall be the same as in the lua file!)
* instance ID (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 SRS client-list.json OR put -1 if you do not want to use DCS SRS
* path to LotATC stats.json * path to LotATC stats.json OR put -1 if you do not want to use LotATC
* numeric value (without quotes), set 1 for Autostart (Perun will start within 500ms after starting up) * numeric value (without quotes), set 1 for Autostart (Perun will start within 500ms after starting up)
Example for windows shortcut: Example for windows shortcut:
@@ -87,7 +88,7 @@ DCS API does not track carrier or FARP operations natively, so there is a trick
* table: pe_LogLogins - holds login to server event history * table: pe_LogLogins - holds login to server event history
* table: pe_LogStats - holds static information * table: pe_LogStats - holds static information
![Database Scheme](https://i.imgur.com/dmJ2pIY.png "MIT") ![Database Scheme](https://i.imgur.com/zJsFxV0.png "MIT")
## Data packets - send from lua to TCP port ## Data packets - send from lua to TCP port
* ```ID: 1```, contains version/diagnostic information * ```ID: 1```, contains version/diagnostic information
@@ -132,6 +133,10 @@ See also the list of [contributors](https://github.com/szporwolik/perun/contribu
## License ## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
## Donation
This software is provide "as it is" without any warranties, but if you would like to thank me for development/support please
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ZBW8R5L25A8QW&currency_code=EUR&source=url)
## Acknowledgments ## Acknowledgments
![Gildia.org Logo](https://images.weserv.nl/?url=https://i.imgur.com/nFHxQMy.png&w=140&il) ![Gildia.org Logo](https://images.weserv.nl/?url=https://i.imgur.com/nFHxQMy.png&w=140&il)