From cfb36e2db56d3cc07171eb457f65a5ce608d83d7 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sat, 24 Dec 2011 12:09:02 +0100 Subject: [PATCH] make sure player stats IDs try to be unique. Do not track duplicate players. --- qcsrc/server/playerstats.qc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc index 2eeb5682a..71d70225c 100644 --- a/qcsrc/server/playerstats.qc +++ b/qcsrc/server/playerstats.qc @@ -56,17 +56,28 @@ void PlayerStats_Init() void PlayerStats_AddPlayer(entity e) { + string s; + if(playerstats_db < 0) return; if(e.playerstats_id) return; + s = string_null; if(e.crypto_idfp != "" && e.cvar_cl_allow_uidtracking == 1) - e.playerstats_id = strzone(e.crypto_idfp); + s = e.crypto_idfp; else if(clienttype(e) == CLIENTTYPE_BOT) - e.playerstats_id = strzone(sprintf("bot#%d", e.playerid)); - else - e.playerstats_id = strzone(sprintf("player#%d", e.playerid)); + s = sprintf("bot#%g#%s", skill, e.netname); + + if(!s || find(world, playerstats_id, s)) // already have one of the ID - next one can't be tracked then! + { + if(clienttype(e) == CLIENTTYPE_BOT) + s = sprintf("bot#%d", e.playerid); + else + s = sprintf("player#%d", e.playerid); + } + + e.playerstats_id = strzone(s); string key; key = sprintf("%s:*", e.playerstats_id); -- 2.39.2