]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Playerstats: fix higher average ping for players who disconnect and reconnect
authorterencehill <piuntn@gmail.com>
Wed, 18 May 2022 00:42:24 +0000 (02:42 +0200)
committerterencehill <piuntn@gmail.com>
Wed, 18 May 2022 00:42:24 +0000 (02:42 +0200)
qcsrc/common/playerstats.qc

index f8aa2b514059884b5ed43020a06740ece5a6fc37..e83305886cee1522ddbb5b8db4c11388ee59e0e7 100644 (file)
@@ -207,7 +207,13 @@ void PlayerStats_GameReport_FinalizePlayer(entity p)
                {
                        float latency = max(0, CS(p).latency_sum / CS(p).latency_cnt);
                        if(latency)
-                               PlayerStats_GameReport_Event_Player(p, PLAYERSTATS_AVGLATENCY, latency);
+                       {
+                               // if previous average latency exists (player disconnected and reconnected)
+                               // make the average of previous and current average latency
+                               float prev_latency = PlayerStats_GameReport_Event_Player(p, PLAYERSTATS_AVGLATENCY, 0);
+                               float new_latency = !prev_latency ? latency : (prev_latency + latency) / 2;
+                               PlayerStats_GameReport_Event_Player(p, PLAYERSTATS_AVGLATENCY, -prev_latency + new_latency);
+                       }
                }
 
                db_put(PS_GR_OUT_DB, sprintf("%s:_ranked", p.playerstats_id), ftos(CS_CVAR(p).cvar_cl_allow_uidranking));