X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fplayerstats.qc;h=7f20b92454db5084718d1ca79df4a4cef219fb76;hb=8ba8bed747f6303d3724c1aedb4be994b1e87455;hp=46490a1b6d4983704794f02d792b2514c3e8aa47;hpb=9a2efec7718c9dd4805a8982f475f86f05509979;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc index 46490a1b6..7f20b9245 100644 --- a/qcsrc/server/playerstats.qc +++ b/qcsrc/server/playerstats.qc @@ -226,15 +226,19 @@ void PlayerStats_Shutdown() bufstr_set(b, i++, sprintf("T %s.%06d", strftime(FALSE, "%s"), floor(random() * 1000000))); bufstr_set(b, i++, sprintf("G %s", GetGametype())); bufstr_set(b, i++, sprintf("M %s", GetMapname())); + bufstr_set(b, i++, sprintf("I %s", matchid)); bufstr_set(b, i++, sprintf("S %s", cvar_string("hostname"))); bufstr_set(b, i++, sprintf("C %d", cvar_purechanges_count)); for(p = playerstats_last; (pn = db_get(playerstats_db, sprintf("%s:*", p))) != ""; p = pn) { bufstr_set(b, i++, sprintf("P %s", p)); + nn = db_get(playerstats_db, sprintf("%s:_playerid", p)); + if(nn != "") + bufstr_set(b, i++, sprintf("i %s", nn)); nn = db_get(playerstats_db, sprintf("%s:_netname", p)); if(nn != "") bufstr_set(b, i++, sprintf("n %s", nn)); - if(teams_matter) + if(teamplay) { tt = db_get(playerstats_db, sprintf("%s:_team", p)); bufstr_set(b, i++, sprintf("t %s", tt)); @@ -280,18 +284,20 @@ void PlayerStats_AddGlobalInfo(entity p) // add global info! if(p.alivetime) + { PlayerStats_Event(p, PLAYERSTATS_ALIVETIME, time - p.alivetime); + p.alivetime = 0; + } - if(p.alivetime) - PlayerStats_Event(p, PLAYERSTATS_ALIVETIME, time - p.alivetime); + db_put(playerstats_db, sprintf("%s:_netname", p.playerstats_id), ftos(p.playerid)); if(p.cvar_cl_allow_uid2name == 1 || clienttype(p) == CLIENTTYPE_BOT) db_put(playerstats_db, sprintf("%s:_netname", p.playerstats_id), p.netname); - if(teams_matter) + if(teamplay) db_put(playerstats_db, sprintf("%s:_team", p.playerstats_id), ftos(p.team)); - if(p.alivetime > 0) + if(stof(db_get(playerstats_db, sprintf("%d:%s", p.playerstats_id, PLAYERSTATS_ALIVETIME))) > 0) PlayerStats_Event(p, PLAYERSTATS_JOINS, 1); strunzone(p.playerstats_id); @@ -322,7 +328,7 @@ void PlayerStats_EndMatch(float finished) { entity p, winner; winner = PlayerScore_Sort(score_dummyfield); - FOR_EACH_PLAYER(p) + FOR_EACH_PLAYER(p) // spectators intentionally not included { PlayerScore_PlayerStats(p); PlayerStats_Accuracy(p);