Jump to content

Chat, GUID, Stats and Mapstats Logger [1.0.0.3]


ColColonCleaner

Recommended Posts

Originally Posted by CaptCourage*:

 

Stop the plugin on the layer server (if it is running for some reason).

 

Open the file 'CChatGUIDStatsLogger.inc'. On line 5429, change `TeamID` smallint(5) DEFAULT NULL, to `TeamID` smallint(5) unsigned NOT NULL,.

 

Save the file. Upload it to your layer server. Start the plugin on the layer server. It should work now.

 

I have no way to test since I don't have that new of a database to test on and I don't have a game server or layer server to start the process either. Let me know if it does or does not work.

I did as you said yet still get the following error

 

Error in Tablebuilder:

[04:17:30 66] Message: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

[04:17:30 66] Native: -2147467259

[04:17:30 66] Source: MySql.Data

[04:17:30 66] StackTrace: at MySql.Data.MySqlClient.MySqlStream.ReadPacket()

at MySql.Data.MySqlClient.NativeDriver.GetResult(Int3 2& affectedRow, Int64& insertedId)

at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)

at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)

at MySql.Data.MySqlClient.MySqlDataReader.NextResult( )

at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader( CommandBehavior behavior)

at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuer y()

at PRoConEvents.CChatGUIDStatsLogger.tablebuilder()

[04:17:30 66] Error: System.NullReferenceException: Object reference not set to an instance of an object.

at PRoConEvents.CChatGUIDStatsLogger.DisplayMySqlErro rCollection(MySqlException myException)

at PRoConEvents.CChatGUIDStatsLogger.tablebuilder()

 

Regards

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

I should have known that the layer needs to be stopped and restarted for the source code to be recompiled. If that doesn't work, try stopping the layer, deleting CChatGUIDStatsLogger.dll from the layer, and then starting the layer again.

 

If that still doesn't work, can you increase plugin debug verbosity so that more information is available about which step of the table builder is causing the error? Just knowing that one part of the table builder query is causing an error isn't particularly helpful.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by CaptCourage*:

 

PRoCon Chat, GUID and Stats Logger Enabled

[05:45:25 34] PRoCon Chat, GUID and Stats Logger: Floodprotection set to 10 Request per Round for each Player

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey RPG-7 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/SCAR-H/SCAR-H not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey USAS-12 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey M27IAR not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey M16A4 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey AEK-971 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/A91/A91 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/AK74M/AK74 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/G36C/G36C not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/G3A3/G3A3 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Gadgets/C4/C4 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Gadgets/Claymore/Claymore not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/KH2002/KH2002 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Knife/Knife not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/M416/M416 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/MagpulPDR/MagpulPDR not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/MP412Rex/MP412REX not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/MP443/MP443 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Taurus .44 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/P90/P90 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Sa18IGLA/Sa18IGLA not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/UMP45/UMP45 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/XP1_L85A2/L85A2 not found!

[05:45:25 39] [statslogger]Warning: PrepareKeywordDic: Mainkey Glock18 not found!

[05:45:28 39] [statslogger]Info: Start tablebuilder

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey RPG-7 not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/SCAR-H/SCAR-H not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey USAS-12 not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey M27IAR not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey M16A4 not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey AEK-971 not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/A91/A91 not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/AK74M/AK74 not found!

[05:45:28 40] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/G36C/G36C not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/G3A3/G3A3 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Gadgets/C4/C4 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Gadgets/Claymore/Claymore not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/KH2002/KH2002 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Knife/Knife not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/M416/M416 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/MagpulPDR/MagpulPDR not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/MP412Rex/MP412REX not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/MP443/MP443 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Taurus .44 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/P90/P90 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/Sa18IGLA/Sa18IGLA not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/UMP45/UMP45 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Weapons/XP1_L85A2/L85A2 not found!

[05:45:28 41] [statslogger]Warning: PrepareKeywordDic: Mainkey Glock18 not found!

 

 

Which one do you want . This is the info log.

And It still has errors after doing as you said

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

It looks like it is working fine. I don't see any more messages about table builder errors.

 

The weapon warnings are nothing to worry about. Those warnings just means that it isn't finding the BF3 or BFBC2 weapons in BF4 (which is to be expected).

 

If you remove those weapon keys from the extended keyword list in the plugin's settings, those warning messages should go away.

 

You need to play a full round from natural start to natural end with the server in ranked mode with at least 4 players in the server. Once that round is over, you should start seeing stats data saved in the database.

 

If you do still have problems with data being saved to the database, you may need to stop the plugin and empty the database or delete the database and start over. I don't know if earlier table builder errors have caused problems with foreign key constraints when the tables were partially built during earlier attempts.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

Update

Since XpKiller has abandoned this project and since there are a couple errors which needed to be fixed, I have modified and I am distributing the modified [unofficial] version.

 

You can download it here:

https://github.com/tyger07/CChatGUID...ive/master.zip

 

Changes in New Version

In CChatGUIDStatsLogger.inc file, the following items were changed:

- Line 462 through 545: Added additional weapon keywords.

- Line 4367: Fixed error in query which caused !top10 weapons query to fail.

- Line 5489: Fixed null primary key problem which caused incompatibility with MySQL version 5.7.3 m13 and up.

 

This is UNTESTED since I don't have a server or resources to test with. I guarantee that it is virus/trojan free and you are free to test for yourself and let the rest of the community know the results. :cool:

Edit: community feedback confirms that this unofficial version works as advertised.

 

Remember: You MUST stop the layer server, upload the new file, and restart the layer server for the changes to take effect. Additional weapon keywords will not populate the plugin settings if doing a plugin upgrade; they will only populate if you are running this plugin for the first time. :ohmy:

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

I have 2 server on 2 different dbs, i have any chance to merge this servers to one db?

No, no chance. You should have placed them in the same database to begin with. You can start saving them to the same database, but whichever server(s) stop saving to their old database(s), that old data is inaccessible.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Grovax*:

 

No, no chance. You should have placed them in the same database to begin with. You can start saving them to the same database, but whichever server(s) stop saving to their old database(s), that old data is inaccessible.

ok, thanks
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by DarkZerO_AT*:

 

getting some errors on our #2 server

already talked to the hoster and they couldnt find an error

 

[13:49:28 72] Error in Tablebuilder:

[13:49:28 72] Message: Unable to connect to any of the specified MySQL hosts.

[13:49:28 72] Native: -2147467259

[13:49:28 72] Source: MySql.Data

[13:49:28 72] StackTrace: at MySql.Data.MySqlClient.NativeDriver.Open()

at MySql.Data.MySqlClient.Driver.Open()

at MySql.Data.MySqlClient.Driver.Create(MySqlConnecti onStringBuilder settings)

at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledCo nnection()

at MySql.Data.MySqlClient.MySqlPool.GetPooledConnecti on()

at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()

at MySql.Data.MySqlClient.MySqlPool.GetConnection()

at MySql.Data.MySqlClient.MySqlConnection.Open()

at PRoConEvents.CChatGUIDStatsLogger.tablebuilder()

[13:49:28 72] InnerException: System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 78.143.39.37:3306

at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)

at MySql.Data.Common.StreamCreator.CreateSocketStream (IPAddress ip, Boolean unix)

at MySql.Data.Common.StreamCreator.GetStreamFromHost( String pipeName, String hostName, UInt32 timeout)

at MySql.Data.Common.StreamCreator.GetStream(UInt32 timeout)

at MySql.Data.MySqlClient.NativeDriver.Open()

[13:49:28 72] Error: System.NullReferenceException: Object reference not set to an instance of an object.

at PRoConEvents.CChatGUIDStatsLogger.tablebuilder()

please help cause i dont know whats the problem

checked everything multiple times and its the same every time

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

getting some errors on our #2 server

already talked to the hoster and they couldnt find an error

 

 

 

please help cause i dont know whats the problem

checked everything multiple times and its the same every time

Your connection variables to your MySQL server are incorrect, update them to point to that server/db.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

I have to assume that it is an issue with the way your Procon layer is set up, an issue with how your database is set up, a networking problem at one or the other or somewhere in between, or an issue with your settings. Beyond that, who knows? We don't have the necessary information to speculate further.

 

Is the database address added to your Procon layer as a "trusted host"? Is the procon layer address added to your database as a trusted external connection which won't be blocked by the database server or database server firewall?

 

I am getting the error "Got packets out of order" back from your database at the address and port you provided when trying to connect to it as an HTTP interface. Usually, I am used to getting the response "Bad handshake". I know that connecting to it as a HTTP interface will not be successful, but I am puzzled of which error message was returned.

 

Make sure that you are using the database's standard query address and not accidentally using the database server's remote server administration/web control panel address.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by DarkZerO_AT*:

 

I have to assume that it is an issue with the way your Procon layer is set up, an issue with how your database is set up, a networking problem at one or the other or somewhere in between, or an issue with your settings. Beyond that, who knows? We don't have the necessary information to speculate further.

 

Is the database address added to your Procon layer as a "trusted host"? Is the procon layer address added to your database as a trusted external connection which won't be blocked by the database server or database server firewall?

 

I am getting the error "Got packets out of order" back from your database at the address and port you provided when trying to connect to it as an HTTP interface. Usually, I am used to getting the response "Bad handshake". I know that connecting to it as a HTTP interface will not be successful, but I am puzzled of which error message was returned.

 

Make sure that you are using the database's standard query address and not accidentally using the database server's remote server administration/web control panel address.

its strange cause the exact same credentials and DB works on the our #1 main server
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

its strange cause the exact same credentials and DB works on the our #1 main server

Where is the database in relation to the game server and procon layer? Are both games going through the same plugin on the same procon layer, or seperate plugins on seperate layers?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by DarkZerO_AT*:

 

Where is the database in relation to the game server and procon layer? Are both games going through the same plugin on the same procon layer, or seperate plugins on seperate layers?

what you mean "where"?

all 3 are from the same hoster

different layers and plugins

2 gameservers and 1 webspace with DB which i use for our homepage and plugin DB

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by DarkZerO_AT*:

 

So, the game server, procon layer, and web hosting are all at the same location? They all have almost the same IP address?

exactly, almost same location

 

gameservers and proconlayers are almost same IPs for eachother

webserver is different tho

could that be a problem?

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ruinzaO*:

 

First I would like to thank the efforts of those involved with this plugin,

knowing that the original author is absent.

Apparently occur an error with filling tbl_mapstats table.

According to the annex prints; you can observe that occur a problem when

changes the map playing the game and I observe that, when finish a map

instead of filling the information about map that was finishing, it put

that information in the next map.

 

EX: Instead of finish the round N.Canals - TDM with start, end, duration,

players... It put that information in the next map O.Metro - C64.

This when it won't changes the map, according to prints,

instead of it put G.Bazaar - Rush, it repeated O.Metro - Rush.

 

I suspect that error appear in the Procon when there is a problem to save

the map in the table;

[statslooger]Error: getUpdateServerID1: System.NullReferenceException:

Object reference not set to an instance of an object ProconEvents.CChatGUIDStatsLogger.getUpdateServerI D(CServerInfocsiServerInfo)

 

Could you help me to solve this?

 

Thank you so much.error estatslogger maps_log.pngerror statslogger maps_db.png

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

Update

Since XpKiller has abandoned this project and since there are a couple errors which needed to be fixed, I have modified and I am distributing the modified [unofficial] version.

 

You can download it here:

[ty_gerMOD].zip]http://open-web-community.com/upload...ty_gerMOD].zip

 

Changes in New Version

In CChatGUIDStatsLogger.inc file, the following items were changed:

- Line 462 through 545: Added additional weapon keywords.

- Line 4367: Fixed error in query which caused !top10 weapons query to fail.

- Line 5489: Fixed null primary key problem which caused incompatibility with MySQL version 5.7.3 m13 and later.

 

This is UNTESTED since I don't have a server or resources to test with. I guarantee that it is virus/trojan free and you are free to test for yourself and let the rest of the community know the results. :cool:

 

Remember: You MUST stop the layer server, upload the new file, and restart the layer server for the changes to take effect. Additional weapon keywords will not populate the plugin settings if doing a plugin upgrade; they will only populate if you are running this plugin for the first time. :ohmy:

Anyone?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ruinzaO*:

 

Anyone?

First I would like to thank the efforts of those involved with this plugin,

knowing that the original author is absent.

Apparently occur an error with filling tbl_mapstats table.

According to the annex prints; you can observe that occur a problem when

changes the map playing the game and I observe that, when finish a map

instead of filling the information about map that was finishing, it put

that information in the next map.

 

EX: Instead of finish the round N.Canals - TDM with start, end, duration,

players... It put that information in the next map O.Metro - C64.

This when it won't changes the map, according to prints,

instead of it put G.Bazaar - Rush, it repeated O.Metro - Rush.

 

I suspect that error appear in the Procon when there is a problem to save

the map in the table;

[statslooger]Error: getUpdateServerID1: System.NullReferenceException:

Object reference not set to an instance of an object ProconEvents.CChatGUIDStatsLogger.getUpdateServerI D(CServerInfocsiServerInfo)

 

Could you help me to solve this?

 

Thank you so much.error estatslogger maps_log.pngerror statslogger maps_db.png

Updated to the version without error.

But still the problem of MapStats

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

Updated to the version without error.

But still the problem of MapStats

[statslooger]Error: getUpdateServerID1: System.NullReferenceException:

Object reference not set to an instance of an object ProconEvents.CChatGUIDStatsLogger.getUpdateServerI D(CServerInfocsiServerInfo)

I don't know. I don't really know C#. From what I gather, the function getUpdateServerID is being called upon but is being passed a null value and that is why it is skipping through all the useful stuff and throwing an exception at the bottom of the function instead.

 

See below.

Code:

private void getUpdateServerID(CServerInfo csiServerInfo)
{
	try
	{

		// a bunch of stuff here

	}

	// more irrelevant stuff here
	// it isn't catching a DB connection exception, so no sense showing this part of the code
	// ...

	// but here is where it starts becoming relevant

	catch (Exception c)
	{
		this.DebugInfo("Error", "getUpdateServerID1: " + c);
	}
}
It skips the useful stuff in try and catches the null reference exception at the bottom. I don't know enough about C# to understand why a null reference is being passed to the function.

 

Anyone else want to weight in?

 

Anyone see anything wrong here?

Code:

// Query Events
public override void OnServerInfo(CServerInfo csiServerInfo)
{
	this.serverName = csiServerInfo.ServerName;
	this.Mapstats.StrGamemode = csiServerInfo.GameMode;
	this.Mapstats.ListADD(csiServerInfo.PlayerCount);
	//Mapstats
	if (csiServerInfo.PlayerCount >= intRoundStartCount && this.Mapstats.TimeMapStarted == DateTime.MinValue)
	{
		this.Mapstats.MapStarted();
	}
	this.Mapstats.StrMapname = csiServerInfo.Map;
	this.Mapstats.IntRound = csiServerInfo.CurrentRound;
	this.Mapstats.IntNumberOfRounds = csiServerInfo.TotalRounds;
	this.Mapstats.IntServerplayermax = csiServerInfo.MaxPlayerCount;

	if(this.ServerID == 0 || this.minIntervalllenght <= (DateTime.Now.Subtract(this.dtLastServerInfoEvent).TotalSeconds))
	{
		this.dtLastServerInfoEvent = DateTime.Now;
		try
		{
			ThreadPool.QueueUserWorkItem(delegate { this.getUpdateServerID(csiServerInfo); });
		}
		catch { };
	}
}
It seems that something in there might be the source of the issue. Maybe?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by sirex*:

 

I don't know. I don't really know C#. From what I gather, the function getUpdateServerID is being called upon but is being passed a null value and that is why it is skipping through all the useful stuff and throwing an exception at the bottom of the function instead.

 

See below.

Code:

private void getUpdateServerID(CServerInfo csiServerInfo)
{
	try
	{

		// a bunch of stuff here

	}

	// more irrelevant stuff here
	// it isn't catching a DB connection exception, so no sense showing this part of the code
	// ...

	// but here is where it starts becoming relevant

	catch (Exception c)
	{
		this.DebugInfo("Error", "getUpdateServerID1: " + c);
	}
}
It skips the useful stuff in try and catches the null reference exception at the bottom. I don't know enough about C# to understand why a null reference is being passed to the function.

 

Anyone else want to weight in?

 

Anyone see anything wrong here?

Code:

// Query Events
public override void OnServerInfo(CServerInfo csiServerInfo)
{
	this.serverName = csiServerInfo.ServerName;
	this.Mapstats.StrGamemode = csiServerInfo.GameMode;
	this.Mapstats.ListADD(csiServerInfo.PlayerCount);
	//Mapstats
	if (csiServerInfo.PlayerCount >= intRoundStartCount && this.Mapstats.TimeMapStarted == DateTime.MinValue)
	{
		this.Mapstats.MapStarted();
	}
	this.Mapstats.StrMapname = csiServerInfo.Map;
	this.Mapstats.IntRound = csiServerInfo.CurrentRound;
	this.Mapstats.IntNumberOfRounds = csiServerInfo.TotalRounds;
	this.Mapstats.IntServerplayermax = csiServerInfo.MaxPlayerCount;

	if(this.ServerID == 0 || this.minIntervalllenght <= (DateTime.Now.Subtract(this.dtLastServerInfoEvent).TotalSeconds))
	{
		this.dtLastServerInfoEvent = DateTime.Now;
		try
		{
			ThreadPool.QueueUserWorkItem(delegate { this.getUpdateServerID(csiServerInfo); });
		}
		catch { };
	}
}
It seems that something in there might be the source of the issue. Maybe?
Hi ty_ger07

As i understand this error became when plugin try to update tbl_teamscores. May be error became when BF4 report tickets count between rounds.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

That would make sense. There are probably going to be null values for some server information between rounds which would need to be manually set to some default safe value if null.

 

I wish I had a game server to test with.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by sirex*:

 

That would make sense. There are probably going to be null values for some server information between rounds which would need to be manually set to some default safe value if null.

 

I wish I had a game server to test with.

I think, we can change SQL script and use IFNULL() function to insert 0 instead of NULL.

Old code

ScoreSQL = "INSERT INTO `" + this.tbl_teamscores + "` (`ServerID`,`TeamID`,`Score`,`WinningScore`) VALUES(@ServerID, @TeamID, @Score, @WinningScore)";

New code

ScoreSQL = "INSERT INTO `" + this.tbl_teamscores + "` (`ServerID`,`TeamID`,`Score`,`WinningScore`) VALUES(@ServerID, ifnull(@TeamID,0), @Score, @WinningScore)";

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ruinzaO*:

 

I think, we can change SQL script and use IFNULL() function to insert 0 instead of NULL.

Old code

ScoreSQL = "INSERT INTO `" + this.tbl_teamscores + "` (`ServerID`,`TeamID`,`Score`,`WinningScore`) VALUES(@ServerID, https://forum.myrcon.com/admincp/user.php_do=edit&u=34377@TeamID, @Score, @WinningScore)";

New code

ScoreSQL = "INSERT INTO `" + this.tbl_teamscores + "` (`ServerID`,`TeamID`,`Score`,`WinningScore`) VALUES(@ServerID, ifnull(@TeamID,0), @Score, @WinningScore)";

Testing change in the server 48 slots

I will follow and come back when you have results

 

Thanks for helping!

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

I think, we can change SQL script and use IFNULL() function to insert 0 instead of NULL.

Old code

ScoreSQL = "INSERT INTO `" + this.tbl_teamscores + "` (`ServerID`,`TeamID`,`Score`,`WinningScore`) VALUES(@ServerID, @TeamID, @Score, @WinningScore)";

New code

ScoreSQL = "INSERT INTO `" + this.tbl_teamscores + "` (`ServerID`,`TeamID`,`Score`,`WinningScore`) VALUES(@ServerID, ifnull(@TeamID,0), @Score, @WinningScore)";

I could be wrong, but I don't think it is bothered about attempting to insert a null value into the database. I think it is bothered about receiving a null value to a function call. I think the variables need to be made 'safe' way before it gets to the point of inserting it into the database.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by sirex*:

 

I could be wrong, but I don't think it is bothered about attempting to insert a null value into the database. I think it is bothered about receiving a null value to a function call. I think the variables need to be made 'safe' way before it gets to the point of inserting it into the database.

As i see in code, variable get value directly during function execution. Anyway if you can test my solution and share result it will be great.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Stov3top*:

 

It's because keywords for the keyword list are required. Since it seems just about every weapon is now being tracked, I went ahead and took a couple hours to put together this keyword list. Just copy and paste it into your plugin's keyword list under the "Table" section of the plugin. Here ya go... :smile:

 

Code:

DamageArea{DAMAGEAREA,DESTRUCTION,DAMAGE,BUILDINGCOLLAPSE,COLLAPSEDBUILDING}
Death{DEATH}
Melee{MELEE}
RoadKill{ROADKILL}
SoldierCollision{SOLDIERCOLLISION,COLLISION}
Suicide{SUICIDE}
VehicleUpsideDown{UPSIDEDOWNVEHICLE,VEHICLETURNEDUPSIDEDOWN,VEHICLETURNED,VEHICLETURNEDOVER,VEHICLEUPSIDEDOWN}
U_ACB-90{ACB-90,ACB90}
U_ACWR{ACWR}
U_AKM{AKM}
U_AKS74u{AKS-74U,AKS74U}
U_BaseballBat{BASEBALL,BAT}
U_BlackJack{BLACKJACK}
U_BreachingCharge{BREACHINGCHARGE,BREACHING,CHARGE}
U_BreachingHammer{BREACHINGHAMMER,BREACHING,HAMMER}
U_Car556{CAR-556,CAR556,CAR}
U_CollapsingBaton{COLLAPSIBLEBATON,COLLAPSIBLE,BATON2}
U_Crowbar{CROWBAR,BAR}
U_Defib{DEFIBRILLATOR,DEFIB}
U_CS_Gas{GASGRENADE,GAS}
U_FIM92{STINGER}
U_Flashbang{FLASHBANG}
U_FMG9{FMG9}
U_G18C{G18C}
U_Galil_AR{ARM}
U_GolfClub{GOLFCLUB,GOLF,CLUB}
U_GolfClub_Gold{GOLDGOLFCLUB,GOLDCLUB,GOLDGOLF}
U_HCAR{HCAR}
U_HK45C{45T}
U_HK51{HK51}
U_IMI50BaldEagle{BALDEAGLE,BALD,EAGLE,DEAGLE}
U_IncendiaryDevice{INCENDIARYDEVICE,INCENDIARYGRENADE,INCENDIARY}
U_INF9{TEC-9,TEC9}
U_ISC9{UZI}
U_Jury410{.410JURY,410JURY,.410,410,JURY}
U_K10{K10}
U_Knife{KNIFE}
U_KnifeBoot{BOOTKNIFE,BOOT}
U_KnifeBoot_Gold{GOLDBOOTKNIFE,GOLDBOOT}
U_KnifeBowie{BOWIEKNIFE,BOWIE}
U_KnifeCarbon{CARBONFIBERKNIFE,CARBONFIBER,CARBONKNIFE,FIBERKNIFE,CARBON}
U_KnifeSeal{GOLDSEALKNIFE,SEALKNIFE,SEAL}
U_KnifeScout{SCOUTKNIFE,SCOUT}
U_KnifeScout_Gold{GOLDSCOUTKNIFE,GOLDSCOUT}
U_KnifeSurvival{SURVIVALKNIFE,SURVIVAL}
U_KnifeTrench{TRENCHKNIFE,TRENCH}
U_L85A2{L85A2,L85}
U_L96A1{AWM,L96,L96-A1,L96A1}
U_LeadPipe{LEADPIPE,PIPE,LEAD}
U_M16A4{M16A3}
U_M18{M18SMOKEGRENADE,M18SMOKE,SMOKEGRENADE,SMOKE,M18}
U_M1911{M1911A1,M1911}
U_M240{M240B,M240}
U_M320_HE{M320GRENADELAUNCHER,M320GL,M320,GRENADELAUNCHER}
U_Mac_10{MAC-10,MAC10}
U_Machete{MACHETE}
U_M416{M416}
U_M45{M45}
U_M67{M67 GRENADE,M67,GRENADE}
U_M79_HE{M79GRENADELAUNCHER,GRENADELAUNCHER2,M79,M79GL}
U_M9{92FS}
U_M93R{M93R,M93,93R}
U_LE_MedicBag{MEDICBAG,MEDIC,BAG}
U_CR_MedicBag{MEDICBAGCRIMINAL,MEDIC2,MEDICCRIMINAL,BAGCRIMINAL}
U_MG36{MG36}
U_Molotov{MOLOTOV}
U_MP5K{MP5K,MP5}
U_MPX{MPX}
U_NightStick{NIGHTSTICK,STICK}
U_P90{P90}
U_PoliceBaton{POLICEBATON,BATON}
U_PrisonShank{SHANK}
U_PTI91{PTR-91,PTR91}
U_R700LTR{R700LTR,R700,LTR}
U_R700Blackout{.300Knockout,300KNOCKOUT,KNOCKOUT,.300,300}
U_Rem870P{REMINGTON870PMAGNUM,REMINGTON,870PMAGNUM,REMINGTON870P,REMINGTONMAGNUM,870P,870}
U_Repairtool{REPAIRTOOL,REPAIR,TOOL}
U_CR_Revive{REVIVESYRINGE,REVIVE,SYRINGE}
U_RO933{RO993}
U_RPG7{RPG7,RPG}
U_SP_RPG7{RPG72,RPG2,RPG7SP,RPGSP}
U_RS357{.357RS,357RS,RS,357,.357}
U_SA58{SA-58OSW,SA58,OSW,SA58OSW}
U_SabotageTool{SABOTAGETOOL,SABOTAGE,TOOL2}
U_SBS12Short{DOUBLE-BARRELSHOTGUN,DOUBLEBARRELSHOTGUN,DOUBLE-BARREL,DOUBLEBARREL}
U_SCARH{SCAR-H,SCARH}
U_Scout{SCOUT}
U_SCR308{SAIGA 08,SAIGA,308}
U_SG533LB{SG553}
U_SledgeHammer{SLEDGEHAMMER,SLEDGE,HAMMER2}
u_smaw{SMAW}
u_sp_smaw{SMAW2,SMAWSP}
U_SOCOM16{SOCOM16,SOCOM}
U_Spas12{SPAS-12,SPAS}
U_SR25ECC{SR-25ECC,SR25ECC,SR-25,SR25,ECC}
U_Stakeout37{37STAKEOUT,STAKEOUT,STAKEOUT37}
U_SW40P{.40PRO,SW40,PRO,40PRO}
U_SW38Snub{.38SNUB,38SNUB,SNUB}
U_TaserGun{T62CEWTASERGUN,T62,TASER,T62CEW,TASERGUN}
U_Taurus44{44MAGNUM,.44MAGNUM,44,MAGNUM}
U_TracerDartGun{TRACERDART,DART,TRACER}
U_TripMine{LASERTRIPMINE,TRIPMINE,MINE}
U_UMP45{UMP45,UMP}
U_ZipLineGun{ZIPLINE,ZIP-LINE,ZIP,LINE}
havana/Vehicles/OFFROAD_MOTORCYCLE_CR/OFFROAD_MOTORCYCLE_CR{OFFROADMOTORCYCLE2,MOTORCYCLE2,MOTORCYCLECRIMINAL,OFFROADMOTORCYCLECRIMINAL,DIRTBIKE}
havana/Vehicles/OFFROAD_MOTORCYCLE_LE/OFFROAD_MOTORCYCLE_LE{OFFROADMOTORCYCLE,MOTORCYCLE,MOTORCYCLECOPS,OFFROADMOTORCYCLECOPS,OFFROAD,OFFROADPATROLBIKE,PATROLBIKE,OFFROADPATROLBIKE}
havana/Vehicles/STREET_MOTORCYCLE_CR/STREET_MOTORCYCLE_CR{STREETMOTORCYCLE2,MOTORCYCLE22,MOTORCYCLE2CRIMINAL,STREETMOTORCYCLECRIMINAL,STREETBIKE,STREET}
havana/Vehicles/STREET_MOTORCYCLE_CR/STREET_MOTORCYCLE_CR_HW{STREETMOTORCYCLEHW,MOTORCYCLEHW}
havana/Vehicles/STREET_MOTORCYCLE_LE/STREET_MOTORCYCLE_LE{STREETMOTORCYCLE,MOTORCYCLE2,MOTORCYCLE2COPS,STREETMOTORCYCLECOPS,POLICEBIKE,POLICEMOTORCYCLE}
havana/Vehicles/COUPE_CR/COUPE_CR{COUPE2,COUPECRIMINAL,MUSCLE}
havana/Vehicles/COUPE_CR/COUPE_CR_HW0{COUPEHW}
havana/Vehicles/COUPE_LE/COUPE_LE{COUPE,COUPECOPS,INTERCEPTOR}
havana/Vehicles/FUEL_TANKER/FUEL_TANKER{FUELTANKER,TANKER}
havana/Vehicles/FUEL_TANKER/FUEL_TANKER_HW{FUELTANKERHW,TANKERHW}
havana/Vehicles/MATHUSMOBILE/MATHUSCOUCH{MERICACOUCH,COUCH,MERICA,MURICA}
havana/Vehicles/MSP_CR/MSP_CR{MOBILESPAWNPOINT2,MOBILESPAWN2,MOBILESPAWNPOINTCRIMINAL,MOBILESPAWNCRIMINAL}
havana/Vehicles/MSP_LE/MSP_LE{MOBILESPAWNPOINT,MOBILESPAWN,MOBILESPAWNPOINTCOPS,MOBILESPAWNCOPS}
Havana/Vehicles/Sedan_CR/SEDAN_CR{SEDAN2,SEDANCRIMINAL,SPORTS,SPORTSSEDAN}
Havana/Vehicles/Sedan_CR/SEDAN_CR_HW{SEDANHW}
havana/Vehicles/SEDAN_LE/SEDAN_LE{SEDAN,SEDANCOPS,SQUAD,SQUADCAR}
havana/Vehicles/SUV_CR/SUV_CR{SUV2,SUVCRIMINAL,INTERVENTIONSUV,INTERVENTION}
havana/Vehicles/SUV_LE/SUV_LE{SUV,SUVCOPS,ARMOREDSUV,ARMORED2}
havana/Vehicles/UTILITY_VAN/UTILITY_VAN{UTILITYVAN,VAN}
havana/Vehicles/UTILITY_VAN/UTILITY_VAN_HW{UTILITYVANHW,VANHW}
havana/Vehicles/CAT_CR/CAT_CR{COUNTERATTACKTRUCK2,CAT2,COUNTERATTACKTRUCKCRIMINAL,CATCRIMINAL,ARMOREDRESCUEVEHICLE,RESCUEVEHICLE,ARMOREDVEHICLE,ARMORED}
havana/Vehicles/CAT_LE/CAT_LE{COUNTERATTACKTRUCK,CAT,COUNTERATTACKTRUCKCOPS,CATCOPS,HARDENEDATTACKTRUCK,HARDENEDATTACK,ATTACKTRUCK,HARDENED}
havana/Vehicles/ATTACK_HELI_CR/ATTACK_HELI_CR{ATTACKHELICOPTER2,ATTACKCHOPPER2,ATTACKHELICOPTERCRIMINAL,ATTACKCHOPPERCRIMINAL,ROGUE}
havana/Vehicles/ATTACK_HELI_LE/ATTACK_HELI_LE{ATTACKHELICOPTER,ATTACKCHOPPER,ATTACKHELICOPTERCOPS,ATTACKCHOPPERCOPS,PATROL}
havana/Vehicles/TRANSPORT_HELI_CR/TRANSPORT_HELI_CR{TRANSPORTHELICOPTER2,TRANSPORTCHOPPER2,TRANSPORTHELICOPTERCRIMINAL,TRANSPORTCHOPPERCRIMINAL,EXECUTIVE,EXECUTIVEHELICOPTER,EXECUTIVECHOPPER}
havana/Vehicles/TRANSPORT_HELI_LE/TRANSPORT_HELI_LE{TRANSPORTHELICOPTER,TRANSPORTCHOPPER,TRANSPORTHELICOPTERCOPS,TRANSPORTCHOPPERCOPS,TRANSPORT}
havana/Vehicles/AIRBOAT/AirBoat_test2{AIRBOAT}
Havana/Vehicles/GUNBOAT_CR/GUNBOAT_CR{GUNBOAT2,BOAT2,GUNBOATCRIMINAL,BOATCRIMINAL,SMUGGLER,SMUGGLERSBOAT,SMUGGLERBOAT}
havana/Vehicles/GUNBOAT_LE/GUNBOAT_LE{GUNBOAT,BOAT,GUNBOATCOPS,BOATCOPS,PATROLBOAT}
havana/gameplay/GameModes/Heist/Helicopter_HeistPickup_Vehicle{HEISTPICKUPCHOPPER,HEISTPICKUPHELICOPTER,HEISTPICKUP,PICKUPHELICOPTER,PICKUPCHOPPER,HEISTHELICOPTER,HEISTCHOPPER,PICKUP}
Is there any chance anybody has the latest version of this keyword list for Hardline?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ruinzaO*:

 

As i see in code, variable get value directly during function execution. Anyway if you can test my solution and share result it will be great.

Hi

I tested your changes and remains the same problem.

This link has a folder with the prints of the test performed

http://index.ruinzao.com.br/downloads/procon/

* Restored post. It could be that the author is no longer active.
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Our picks

    • Game Server Hosting:

      We're happy to announce that EZRCON will branch out into the game server provider scene. This is a big step for us so please having patience if something doesn't go right in this area. Now, what makes us different compared to other providers? Well, we're going with the idea of having a scaleable server hosting and providing more control in how you set up your server. For example, in Minecraft, you have the ability to control how many CPU cores you wish your server to have access to, how much RAM you want to use, how much disk space you want to use. This type of control can't be offered in a single service package so you're able to configure a custom package the way you want it.

      You can see all the available games here. Currently, we have the following games available.

      Valheim (From $1.50 USD)


      Rust (From $3.20 USD)


      Minecraft (Basic) (From $4.00 USD)


      Call of Duty 4X (From $7.00 USD)


      OpenTTD (From $4.00 USD)


      Squad (From $9.00 USD)


      Insurgency: Sandstorm (From $6.40 USD)


      Changes to US-East:

      Starting in January 2022, we will be moving to a different provider that has better support, better infrastructure, and better connectivity. We've noticed that the connection/routes to this location are not ideal and it's been hard getting support to correct this. Our contract for our two servers ends in March/April respectively. If you currently have servers in this location you will be migrated over to the new provider. We'll have more details when the time comes closer to January. The new location for this change will be based out of Atlanta, GA. If you have any questions/concerns please open a ticket and we'll do our best to answer them.
      • 5 replies
    • Hello All,

      I wanted to give an update to how EZRCON is doing. As of today we have 56 active customers using the services offered. I'm glad its doing so well and it hasn't been 1 year yet. To those that have services with EZRCON, I hope the service is doing well and if not please let us know so that we can improve it where possible. We've done quite a few changes behind the scenes to improve the performance hopefully. 

      We'll be launching a new location for hosting procon layers in either Los Angeles, USA or Chicago, IL. Still being decided on where the placement should be but these two locations are not set in stone yet. We would like to get feedback on where we should have a new location for hosting the Procon Layers, which you can do by replying to this topic. A poll will be created where people can vote on which location they would like to see.

      We're also looking for some suggestions on what else you would like to see for hosting provider options. So please let us know your thoughts on this matter.
      • 4 replies
    • Added ability to disable the new API check for player country info


      Updated GeoIP database file


      Removed usage sending stats


      Added EZRCON ad banner



      If you are upgrading then you may need to add these two lines to your existing installation in the file procon.cfg. To enable these options just change False to True.

      procon.private.options.UseGeoIpFileOnly False
      procon.private.options.BlockRssFeedNews False



       
      • 2 replies
    • I wanted I let you know that I am starting to build out the foundation for the hosting services that I talked about here. The pricing model I was originally going for wasn't going to be suitable for how I want to build it. So instead I decided to offer each service as it's own product instead of a package deal. In the future, hopefully, I will be able to do this and offer discounts to those that choose it.

      Here is how the pricing is laid out for each service as well as information about each. This is as of 7/12/2020.

      Single MySQL database (up to 30 GB) is $10 USD per month.



      If you go over the 30 GB usage for the database then each additional gigabyte is charged at $0.10 USD each billing cycle. If you're under 30GB you don't need to worry about this.


      Databases are replicated across 3 zones (regions) for redundancy. One (1) on the east coast of the USA, One (1) in Frankfurt, and One (1) in Singapore. Depending on the demand, this would grow to more regions.


      Databases will also be backed up daily and retained for 7 days.




      Procon Layer will be $2 USD per month.


      Each layer will only allow one (1) game server connection. The reason behind this is for performance.


      Each layer will also come with all available plugins installed by default. This is to help facilitate faster deployments and get you up and running quickly.


      Each layer will automatically restart if Procon crashes. 


      Each layer will also automatically restart daily at midnight to make sure it stays in tip-top shape.


      Custom plugins can be installed by submitting a support ticket.




      Battlefield Admin Control Panel (BFACP) will be $5 USD per month


      As I am still working on building version 3 of the software, I will be installing the last version I did. Once I complete version 3 it will automatically be upgraded for you.





      All these services will be managed by me so you don't have to worry about the technical side of things to get up and going.

      If you would like to see how much it would cost for the services, I made a calculator that you can use. It can be found here https://ezrcon.com/calculator.html

       
      • 11 replies
    • I have pushed out a new minor release which updates the geodata pull (flags in the playerlisting). This should be way more accurate now. As always, please let me know if any problems show up.

       
      • 9 replies
×
×
  • Create New...

Important Information

Please review our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.