]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/playerstats.qc
Revert that last change, due to not working properly. It's not an urgent feature...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / playerstats.qc
index 2d1e2191203deb48ab93572a7f9b40f9b537ee6f..6b04eea9d6a06e648420feb83de200e4316fd529 100644 (file)
@@ -20,6 +20,19 @@ void PlayerStats_Init()
        PlayerStats_AddEvent(PLAYERSTATS_ALIVETIME);
        PlayerStats_AddEvent(PLAYERSTATS_WINS);
        PlayerStats_AddEvent(PLAYERSTATS_MATCHES);
+       PlayerStats_AddEvent(PLAYERSTATS_JOINS);
+       PlayerStats_AddEvent(PLAYERSTATS_SCOREBOARD_VALID);
+
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_15);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_20);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_25);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_30);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_BOTLIKE);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD);
+       PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM);
 }
 
 void PlayerStats_AddPlayer(entity e)
@@ -131,7 +144,8 @@ void PlayerStats_Shutdown()
                        {
                                float v;
                                v = stof(db_get(playerstats_db, sprintf("%s:%s", p, e)));
-                               bufstr_set(b, i++, sprintf("e %s %f", e, v));
+                               if(v != 0)
+                                       bufstr_set(b, i++, sprintf("e %s %g", e, v));
                        }
                }
                bufstr_set(b, i++, "");
@@ -175,6 +189,9 @@ void PlayerStats_AddGlobalInfo(entity p)
        if(p.cvar_cl_allow_uid2name == 1 || clienttype(p) == CLIENTTYPE_BOT)
                db_put(playerstats_db, sprintf("%s:_netname", p.playerstats_id), p.netname);
 
+       if(p.alivetime > 0)
+               PlayerStats_Event(p, PLAYERSTATS_JOINS, 1);
+
        strunzone(p.playerstats_id);
        p.playerstats_id = string_null;
 }
@@ -185,6 +202,7 @@ void PlayerStats_EndMatch(float finished)
        FOR_EACH_PLAYER(p)
        {
                PlayerScore_PlayerStats(p);
+               PlayerStats_Event(p, PLAYERSTATS_SCOREBOARD_VALID, 1);
                if(finished)
                {
                        PlayerStats_Event(p, PLAYERSTATS_WINS, p.winning);