Jump to content

Chat, GUID, Stats and Mapstats Logger [1.0.0.3]


ColColonCleaner

Recommended Posts

Originally Posted by XpKiller*:

 

Description:

This plugin is used to log player chat, player GUID's, player Stats, Weaponstats and Mapstats.

This includes: Chat, PBGUID, EAGUID, IP, Stats, Weaponstats, Dogtags, Killstreaks, Country, ClanTag to be continued.. ;-)

Please post errors if get some.

You can adjust the debug level to a lower value to get less Console Spam. High -> Low (Trace, Info, Warning, Error).

Error only will show critical errors.

Feel free to post feedback and suggestions.

 

Requirements:

The plugin Sandbox needs to be disabled!!! if you are not using PRoCon 1.4.1.2 or later

Access to a MySQL database that accepts remote connections is required so you need to create a user and database if not exists.

It requires the use of a MySQL database with INNODB engine that allows remote connections.(MYSQL Version 5.1 or greater is required!!!)

No ODBC Driver is needed!!!.

 

Pleases also read the changelog

 

Installation:

Extract the content of Zipfile into plugin directory.

Set DB Server Settings and the Plugin Settings

Add the machine running the plugin to the remote mysql access host list.

Will throw a permissions error if not done

Enter the correct details for your database connection in the plugin settings tab. You don't need to create tables, the plugin will do that.

The Standard MySQL Port is 3306.

 

Supported Games:

  • Battlefield 4
  • Battlefield 3
  • Battlefield Bad Comany 2 + Vietnam
  • MOH
  • MOHW

 

Whats new:

  • New Databasedesign only one Set of tables needed for multiply gameserver even with different games. Stats are not mixed up!!
  • The new Databasedesign allows easy deletion of playerentries.
  • Some Code improvements.
  • one table for all Weaponstats
  • You can create Servergroups

Working:

  • Guidlogging
  • Statslogging
  • Chatlogging
  • Weaponstatslogging
  • Autotable creation
  • Ingame commands
  • Welcomestats
  • Ingame commands for Dogtags
  • merged stats from all Server

May Working:

  • Ingame Weaponstats

Not Working:

  • ClanTag coz the server don't deliver it to PRoCon thx EA/DICE!!!.
  • Stats for tanks and other vehicles. thx EA/DICE!!!.

 

ToDo's:

Ticketcount for ServerLiveView

Join/Leave History

Bugfixes(always :-))

Code improvements

 

Issues/Requests:

--

 

Fixed or Implemented:

Current Version:

Stable: 1.0.0.3

 

 

Changelog:

 

Code:

1.0.0.3
Many thanks to Tyger.
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.

1.0.0.2
Bugfixes for column errors.
Bugfixes for the sessions streaming bug
Weaponstats working again. 
Bugfix for Identifier name is too long.

1.0.0.1
Bugfixes for value too long for column errors.
Bugfixes for some other bugs
Changed deprecated Tracemessages
Added an error prefix in pluginlog 
New feature: Tickets/teamscores are now tracked in tbl_teamscores 
New feature: Simple Stats (collects playerdata only)
New feature: Switch for disabling weaponstats 


1.0.0.0
First Release
extended Keywordlist(BF3):

 

Code:

870MCS{870,870MCS}
AEK-971{AEK,AEK971,AEK-971}
AKS-74u{AKSU,AKS-74,AKSU-74,AKS-74U}
AN-94 Abakan{ABAKAN,AN94,AN-94}
AS Val{ASVAL,AS-VAL,AS VAL}
DAO-12{DAO12,DAO,DAO-12}
death{DEATH}
Defib{DEFIBRILLATOR,DEFIB,PADDLE,PADDLES}
F2000{F2000}
FAMAS{FAMAS}
FGM-148{JAVELIN,FGM148,FGM-148}
FIM92{STINGER,FIM92,FIM-92}
Glock18{GLOCK,GLOCK18,GLOCK-18}
HK53{HK53,HK-53,G53,G-53,HK-G53}
jackhammer{JACKHAMMER,MK3A1,MK3}
JNG90{JNG-90,JNG90,JNG}
L96{L-96,L96}
LSAT{LSAT}
M416{M-416,M416}
M417{M-417,M417}
M1014{M-1014,1014,M1014}
M15 AT Mine{M15,M15 MINE,AT MINE,ATMINE,ATM,M15-ATM}
M16A4{M-16,M16,M16A3,M16-A3,M16A4,M16-A4}
M1911{1911,M1911}
M240{M-240,M240}
M249{M-249,M249,SAW}
M26Mass{M26,M-26,MASS,M26MASS}
M27IAR{M27,M-27,M27IAR}
M320{M-320,GRENADE LAUNCHER,M320}
M39{M-39,M39}
M40A5{M40,M-40,M40A5}
M4A1{M4,M-4,M4A1}
M60{M-60,M60}
M67{HANDGRENADE,GRENADE,M67,M-67}
M9{M-9,M9}
M93R{M93,M93R}
Medkit{MEDKIT}
MG36{MG-36,MG36}
Mk11{MK-11,MK11}
Model98B{M98,M98B,MODEL98,MODEL-98,MODEL98B,MODEL-98B}
MP7{MP-7,MP7}
Pecheneg{PKP-PECHENEG,PKP,PECHENEG}
PP-19{PP19,PP-19}
PP-2000{PP2000,PP-2000}
QBB-95{QBB,QBB95,QBB-95}
QBU-88{QBU,QBU88,QBU-88}
QBZ-95{QBZ,QBZ95,QBZ-95}
Repair Tool{REPAIRTOOL,TOOL,TORCH,BLOWTORCH}
RoadKill{ROADKILL}
RPG-7{RPG,RPG7,RPG7V2,RPG-7V2}
RPK-74M{RPK,RPK74,RPK-74,RPK74M,RPK-74M}
SCAR-L{SCARL,SCAR-L}
SG 553 LB{SG553,SG-553,SG-553LB}
Siaga20k{SAIGA,SAIGA20K,SIAGA,SIAGA20K}
SKS{SKS}
SMAW{SMAW}
SPAS-12{SPAS12,SPAS,SPAS-12}
Suicide{SUICIDE}
SV98{SV-98,SV98}
SVD{SVD,DRAGUNOV}
Steyr AUG{STEYR,AUGA3,AUG-A3,AUG}
Taurus .44{TAURUS,.44MAGNUM,TAURUS.44,MAGNUM,.44}
Type88{TYPE88,TYPE-88}
USAS-12{USAS,USAS12,USAS-12}
Weapons/A91/A91{A91,A-91}
Weapons/AK74M/AK74{AK74,AK-74,AKM,AK-74M,AK74M}
Weapons/G36C/G36C{G36,G36C,G-36,G-36C}
Weapons/G3A3/G3A3{G3,G-3,G3A3,G3-A3}
Weapons/Gadgets/C4/C4{C4,C-4}
Weapons/Gadgets/Claymore/Claymore{CLAYMORE,LANDMINE,APMINE,AP-MINE,APM,M18,M-18,M18-CLAYMORE}
Weapons/KH2002/KH2002{KH2002,KH-2002}
Weapons/Knife/Knife{KNIFE,MELEE}
Weapons/MagpulPDR/MagpulPDR{PDW-R,PDWR,PDR,PDW}
Weapons/MP412Rex/MP412REX{MP412REX,REX,MP-412,MP412}
Weapons/MP443/MP443{MP-443,MP443,GRACH}
Weapons/P90/P90{P-90,P90}
Weapons/Sa18IGLA/Sa18IGLA{SA18,SA-18,IGLA,SA18IGLA,SA18-IGLA,SA-18IGLA}
Weapons/SCAR-H/SCAR-H{SCARH,SCAR-H}
Weapons/UMP45/UMP45{UMP45,UMP-45,UMP}
Weapons/XP1_L85A2/L85A2{L85,L85A2,L-85,L-85A2,L85-A2}
Weapons/XP2_ACR/ACR{ACWR,ACW-R,ACR,AC-R}
Weapons/XP2_L86/L86{L86,L86A2,L-86,L-86A2,L86-A2}
Weapons/XP2_MP5K/MP5K{MP5,MP5K,M5K,MP-5,MP-5K,M5-K}
Weapons/XP2_MTAR/MTAR{MTAR,MTAR21,MTAR-21}
Download Official Version 1.0.0.3:

 

Attached Files:

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

Originally Posted by XpKiller*:

 

Website development :Old Thread(the most queries still should work):

myrcon.net/.../advanced-in-game-admin-and-ban-enforcer-adkats

 

Show all Weapons known by the plugin:

Code:

SELECT `tbl_games`.`Name`, tbl_weapons.* FROM tbl_weapons
INNER JOIN tbl_games using (`GameID`);
Show Weaponstats for a single Player for one Server:

Code:

SELECT 
`tbl_playerdata`.`SoldierName`,
`tbl_weapons`.`Fullname`,
`tbl_weapons`.`Damagetype`,
`tbl_weapons_stats`.`Kills`,
`tbl_weapons_stats`.`Headshots`,
`tbl_weapons_stats`.`Deaths`
FROM `tbl_playerdata`
INNER JOIN `tbl_server_player` ON `tbl_playerdata`.`PlayerID` = `tbl_server_player`.`PlayerID`
INNER JOIN `tbl_weapons_stats` ON `tbl_server_player`.`StatsID` = `tbl_weapons_stats`.`StatsID`
INNER JOIN `tbl_weapons` ON `tbl_weapons_stats`.`WeaponID` = `tbl_weapons`.`WeaponID`
WHERE 
`tbl_playerdata`.`SoldierName` ="XpKiller" AND `tbl_server_player`.`ServerID` = 1
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by XpKiller*:

 

[Chatlog] How to filter Comorose Spam?

  • [1]Enable chatlog filter(RegEx)? --> yes

    [2]Open "Chatfilterrules(Regex)" -->...

    [3] Add the this rule (without the quotes): "ID_CHAT_.*"

    [4]In Trace you will see this now: "Chatmessage: 'ID_CHAT_REQUEST_AMMO' was filtered out by the Regex rule: ID_CHAT_.*"

Webstatspages:

myrcon.net/.../bf4-stats-page-for-bf4-procon-chat-guid-stats-and-mapstats-logger

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

Originally Posted by toxicman2002*:

 

Hello,

 

i will get this error in my Plugin-Box:

 

[23:09:51 93] Error: Error in UpdateCurrentPlayerTable:

[23:09:51 93] Message: Out of range value for column 'Ping' at row 22

[23:09:51 93] Native: -2147467259

[23:09:51 94] Source: MySql.Data

[23:09:51 94] StackTrace: bei MySql.Data.MySqlClient.MySqlStream.ReadPacket()

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

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

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

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

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

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

bei PRoConEvents.CChatGUIDStatsLogger.UpdateCurrentPla yerTable(List`1 lstPlayers)

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

Originally Posted by jking54*:

 

XP, my welcome msg from "Server Rules Upon request" and your plugin are doubling up, I tried to disable the SRUR plugin msg and paste it into yours and get this:

 

Server: Welcome to our server %pn%, please type %cmd% in chat to see a list of our server rules.

 

Isn't there a way to disable your welcome msg for New player but retain the welcome stats msg?

 

EDIT: just got this error after a round end:

 

 

[16:33:19 85] Error: getUpdateServerID1: System.InvalidOperationException: Nested transactions are not supported.

at MySql.Data.MySqlClient.ExceptionInterceptor.Throw( Exception exception)

at MySql.Data.MySqlClient.MySqlConnection.BeginTransa ction(IsolationLevel iso)

at PRoConEvents.CChatGUIDStatsLogger.getUpdateServerI D(CServerInfo csiServerInfo)

[16:33:19 90] Error: Error in Startstreaming OuterException: System.NullReferenceException: Object reference not set to an instance of an object.

at PRoConEvents.CChatGUIDStatsLogger.DisplayMySqlErro rCollection(MySqlException myException)

at PRoConEvents.CChatGUIDStatsLogger.StartStreaming()

 

otherwise it seems to be functioning normally.

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

Originally Posted by tonnic*:

 

seems to work on procon load, but ingame, no stats are being saved... no errors in procon.

 

Edit: Just for FYI, plugin successfully created tabled... I verified

Edit2: One of my servers is working.... my other one isn't..... same database credentials, different databases...

 

Edit3: There is information in the database.... I can see that there is stuff in the tbl_playerdata but thre is no !stats on here.... tbl_playerrank is empty.

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

Originally Posted by Mandizzy*:

 

Thanks XpKiller. Installed it for my two BF4 servers with new schema instance. Received the following error on round end:

 

Code:

[19:51:36 49] Info: OnLevelLoaded: MP_Abandoned Gamemode: TeamDeathMatch0 Round: 1/1
[19:51:36 49] Info: update sql server
[19:51:36 51] Info: Started streaming to the DB-Server
[19:51:37 22] Error: Error in Startstreaming: 
[19:51:37 22] Message: Data too long for column 'CountryCode' at row 1
[19:51:37 22] Native: -2147467259
[19:51:37 23] Source: MySql.Data
[19:51:37 23] StackTrace:    at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& 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.ExecuteNonQuery()
   at PRoConEvents.CChatGUIDStatsLogger.StartStreaming()
[19:51:37 23] Info: Connection MySqlConn closed
[19:52:01 19] Error: getUpdateServerID1: System.InvalidOperationException: Nested transactions are not supported.
   at MySql.Data.MySqlClient.ExceptionInterceptor.Throw(Exception exception)
   at MySql.Data.MySqlClient.MySqlConnection.Throw(Exception ex)
   at MySql.Data.MySqlClient.MySqlConnection.BeginTransaction(IsolationLevel iso)
   at MySql.Data.MySqlClient.MySqlConnection.BeginTransaction()
   at PRoConEvents.CChatGUIDStatsLogger.getUpdateServerID(CServerInfo csiServerInfo)
[19:52:01 70] Info: Streamingprocess duration: 25.192 seconds
[19:52:01 70] Error: Error in Startstreaming OuterException: System.NullReferenceException: Object reference not set to an instance of an object.
   at PRoConEvents.CChatGUIDStatsLogger.DisplayMySqlErrorCollection(MySqlException myException)
   at PRoConEvents.CChatGUIDStatsLogger.StartStreaming()
One more thing, when I customized the welcome stats messages and then changed welcomestats delay value, it reset my customized messages to default.

 

A quick question, I've got procon layers running in ET (along with my game servers) and my database running in MT. Do I need to set Servertime offset in this case?

 

Edit: It encountered the same error on both servers at round end and didn't save anything. I've disabled it for now on both layers.

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

Originally Posted by jking54*:

 

Thanks XpKiller. Installed it for my two BF4 servers with new schema instance. Received the following error on round end:

 

 

One more thing, when I customized the welcome stats messages and then changed welcomestats delay value, it reset my customized messages to default.

 

A quick question, I've got procon layers running in ET (along with my game servers) and my database running in MT. Do I need to set Servertime offset in this case?

 

Edit: It encountered the same error on both servers at round end and didn't save anything. I've disabled it for now on both layers.

Yeah same for me on the msgs being reset and such, also the new player welcome is redundant anyhow as it's announced in other plugins or can be run on server host control panel among other ways. I mentioned to XP about removing it altogether and just keeping the stats welcome.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by rbtmarshall*:

 

sounded promising, until I ran into problems with setup, and came across someone mentioning that gameservers.com procon layers do not allow remote database connections. is this still true? if so, I'm switching when the server dies down in the morning

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

Originally Posted by alexlive1076*:

 

Good morning guys :smile:

 

i just installed this plugin and got the following errors...

 

Tried to use another DB to check if it's a permissions problem - but same error :sad:

 

Procon and MySQL are hosted at gamed.de

 

 

Code:

[07:47:25 09] Error: System.TypeInitializationException: Der Typeninitialisierer für "MySql.Data.MySqlClient.MySqlPoolManager" hat eine Ausnahme verursacht. ---> System.TypeLoadException: Der Typ "MySql.Data.MySqlClient.MySqlClientPermission" in der Assembly "MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxx" konnte nicht geladen werden.
   bei MySql.Data.MySqlClient.MySqlPoolManager..cctor()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei MySql.Data.MySqlClient.MySqlPoolManager.GetPool(MySqlConnectionStringBuilder settings)
   bei MySql.Data.MySqlClient.MySqlConnection.Open()
   bei PRoConEvents.CChatGUIDStatsLogger.tablebuilder()
[07:47:25 09] Error: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei PRoConEvents.CChatGUIDStatsLogger.tablebuilder()
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Mavy*:

 

sounded promising, until I ran into problems with setup, and came across someone mentioning that gameservers.com procon layers do not allow remote database connections. is this still true? if so, I'm switching when the server dies down in the morning

Its been working fine for me. Make sure you have your sql permissions set to allow connection from a remote host.

 

@XPKiller: Is there a way to prevent the server messages (spambot,balancer,etc) from being logged to the chat log?

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

Originally Posted by p0k3r82*:

 

Great work XPKiller! :cool:

 

 

The stats don´t change during a round.

I have to wait until the next round started to see my stats updated.

 

Yell messages still don´t work in BF4, right!?

 

Like this plugin! :-) (This isn´t a problem....)

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

Originally Posted by Ralphvd*:

 

Plugin is really working nice, no problem so far. Only thing is yell message (but disabled in BF4 right_)

I really would like to same as p0k3r82, the stats realtime in game(not only after round)

 

Great job so far!

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

Originally Posted by HappyGotLucky*:

 

Plugin is really working nice, no problem so far. Only thing is yell message (but disabled in BF4 right_)

I really would like to same as p0k3r82, the stats realtime in game(not only after round)

 

Great job so far!

Correct, in BF4 you cannot use YELL.

 

If stats could update close to real time that would be amazing. I knew I slapped those SSD drives in our MySQL server for a reason. :smile:

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

Originally Posted by exadmin*:

 

got this errors even though i already updated my bf3.def file to latest bf4.def file.

 

[19:41:00 24] Trace: Weapon: U_V40 is missing in the bf3.def file!!!

[19:41:05 17] Trace: Weapon: U_GalilACE52 is missing in the bf3.def file!!!

[19:41:07 56] Trace: Weapon: U_GalilACE52 is missing in the bf3.def file!!!

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

Originally Posted by ColColonCleaner*:

 

Great work XPKiller! :cool:

 

 

The stats don´t change during a round.

I have to wait until the next round started to see my stats updated.

 

Yell messages still don´t work in BF4, right!?

 

Like this plugin! :-) (This isn´t a problem....)

Yes, all round stats (called a session by the plugin) are collected during the round. And all posted to the database at once to avoid database spam. If he was to write to the database on every kill it would use a lot of bandwidth and db connections, and would be in general much less efficient.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

Anyone else try this on multiple servers from the same layer? Databases get setup and no errors but it only works on one server.... Other says there is no data and we need to wait a round....

See my previous reply, stats are only sent to the database at the end of a round.
* 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.

×
×
  • 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.