From ee877f4a2ee1cea9cf15a5e32a506819ea34d989 Mon Sep 17 00:00:00 2001 From: Jackz Date: Fri, 19 Jun 2020 01:26:30 -0500 Subject: [PATCH] Minor fixes & flush periodically - every 60 game time --- plugins/l4d2_stats_recorder.smx | Bin 10540 -> 10741 bytes scripting/l4d2_stats_recorder.sp | 25 ++++++++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/plugins/l4d2_stats_recorder.smx b/plugins/l4d2_stats_recorder.smx index bd4e79492024050748e1db90b8e99313f75637b8..c77f0d19d09d5ff0d3d7c397c241aa534b7fb9e1 100644 GIT binary patch literal 10741 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 diff --git a/scripting/l4d2_stats_recorder.sp b/scripting/l4d2_stats_recorder.sp index d0016f3..a1e01f2 100644 --- a/scripting/l4d2_stats_recorder.sp +++ b/scripting/l4d2_stats_recorder.sp @@ -80,16 +80,29 @@ public void OnPluginStart() HookEvent("infected_death", Event_InfectedDeath); RegConsoleCmd("sm_debug_stats", Command_DebugStats, "Debug stats"); + + CreateTimer(60.0, Timer_FlushStats, _, TIMER_REPEAT); } public void OnPluginEnd() { for(int i=1; i<=MaxClients;i++) { if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i) && steamidcache[i][0]) { - PushQueuedStats(i); + FlushQueuedStats(i); + } + } +} +////////////////////////////////// +// TIMER +///////////////////////////////// +public Action Timer_FlushStats(Handle timer) { + //Periodically flush the statistics + for(int i=1; i<=MaxClients;i++) { + if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i) && steamidcache[i][0]) { + FlushQueuedStats(i); } } } ///////////////////////////////// -//PLAYER AUTH +// PLAYER AUTH ///////////////////////////////// public void OnClientPutInServer(int client) { @@ -107,7 +120,7 @@ public void OnClientPutInServer(int client) { public void OnClientDisconnect(int client) { //Check if any pending stats to send. if(!IsFakeClient(client)) { - PushQueuedStats(client); + FlushQueuedStats(client); } } @@ -147,10 +160,12 @@ void IncrementStat(int client, const char[] name, int amount = 1, bool lowPriori PrintToServer("[Debug] Updated Stat %s (+%d) for %s", name, amount, steamidcache[client]); g_db.Query(DBC_Generic, query, _, lowPriority ? DBPrio_Low : DBPrio_Normal); }else{ + #if defined debug LogError("Incrementing stat (%s) for client %d failure: No steamid", name, client); + #endif } } -public void PushQueuedStats(int client) { +public void FlushQueuedStats(int client) { if(meleeKills[client] > 0) { IncrementStat(client, "melee_kills", meleeKills[client]); meleeKills[client] = 0; @@ -249,7 +264,7 @@ public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast public void Event_InfectedHurt(Event event, const char[] name, bool dontBroadcast) { int attacker = GetClientOfUserId(event.GetInt("attacker")); int dmg = event.GetInt("amount"); - if(!IsFakeClient(attacker)) { + if(attacker > 0 && !IsFakeClient(attacker)) { damageSurvivorGiven[attacker] += dmg; } }