From: Rudolf Polzer Date: Sat, 24 Dec 2011 11:09:02 +0000 (+0100) Subject: make sure player stats IDs try to be unique. Do not track duplicate players. X-Git-Tag: xonotic-v0.6.0~74^2~62 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=cfb36e2db56d3cc07171eb457f65a5ce608d83d7;p=xonotic%2Fxonotic-data.pk3dir.git make sure player stats IDs try to be unique. Do not track duplicate players. --- 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);