From d17eaa6d6ed46e500a49bf04e336e1a4379a9457 Mon Sep 17 00:00:00 2001
From: Rudolf Polzer <divVerent@xonotic.org>
Date: Tue, 16 Aug 2011 14:46:41 +0200
Subject: [PATCH] put the kill matrix in the player stats data

currently only counts real kills, no teamkills or the like
---
 qcsrc/server/cl_client.qc   | 2 ++
 qcsrc/server/g_damage.qc    | 2 ++
 qcsrc/server/playerstats.qc | 5 +++++
 3 files changed, 9 insertions(+)

diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc
index c3adfe781..0cf0d9ea5 100644
--- a/qcsrc/server/cl_client.qc
+++ b/qcsrc/server/cl_client.qc
@@ -1637,6 +1637,8 @@ void ClientConnect (void)
 
 	self.playerid = (playerid_last = playerid_last + 1);
 
+	PlayerStats_AddEvent(sprintf("kills-%d", self.playerid));
+
     if(clienttype(self) == CLIENTTYPE_BOT)
         PlayerStats_AddPlayer(self);
 
diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc
index 5975adf8a..d6020bd34 100644
--- a/qcsrc/server/g_damage.qc
+++ b/qcsrc/server/g_damage.qc
@@ -124,6 +124,8 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype)
 	{
 		// regular frag
 		PlayerScore_Add(attacker, SP_KILLS, 1);
+		if(targ.playerid)
+			PlayerStats_Event(attacker, sprintf("kills-%d", targ.playerid), 1);
 	}
 
 	PlayerScore_Add(targ, SP_DEATHS, 1);
diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc
index 402930f89..c691d542b 100644
--- a/qcsrc/server/playerstats.qc
+++ b/qcsrc/server/playerstats.qc
@@ -232,6 +232,9 @@ void PlayerStats_Shutdown()
         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));
@@ -285,6 +288,8 @@ void PlayerStats_AddGlobalInfo(entity p)
 
 	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);
-- 
2.39.5