]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
add counts to the accuracy system (amount of shots fired, amount of shots hit) but...
authorFruitieX <fruitiex@gmail.com>
Mon, 18 Apr 2011 15:24:45 +0000 (18:24 +0300)
committerFruitieX <fruitiex@gmail.com>
Mon, 18 Apr 2011 15:24:45 +0000 (18:24 +0300)
qcsrc/server/accuracy.qc
qcsrc/server/playerstats.qc
qcsrc/server/playerstats.qh

index 4d63fd82002dcb9ea176cfabdedd43f3d4bd5db1..bc638d61464b96a91575ce9d2b515ae63ffd2aac 100644 (file)
@@ -1,8 +1,12 @@
 .entity accuracy;
 .float accuracy_hit[WEP_MAXCOUNT];
 .float accuracy_fired[WEP_MAXCOUNT];
+.float accuracy_cnt_hit[WEP_MAXCOUNT];
+.float accuracy_cnt_fired[WEP_MAXCOUNT];
 FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(accuracy_hit);
 FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(accuracy_fired);
+FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(accuracy_cnt_hit);
+FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(accuracy_cnt_fired);
 
 float accuracy_byte(float n, float d)
 {
@@ -74,6 +78,11 @@ void accuracy_set(entity e, float w, float fired, float hit)
        b = accuracy_byte(a.(accuracy_hit[w]), a.(accuracy_fired[w]));
        a.(accuracy_hit[w]) = hit;
        a.(accuracy_fired[w]) = fired;
+
+    if(hit)
+        a.(accuracy_cnt_hit[w]) = 1;
+       a.(accuracy_cnt_fired[w]) = 1;
+
        if(b == accuracy_byte(hit, fired))
                return;
        w = pow(2, w);
@@ -97,6 +106,11 @@ void accuracy_add(entity e, float w, float fired, float hit)
                a.(accuracy_hit[w]) += hit;
        if(fired)
                a.(accuracy_fired[w]) += fired;
+
+    if(hit)
+        a.(accuracy_cnt_hit[w]) += 1;
+       a.(accuracy_cnt_fired[w]) += 1;
+
        if(b == accuracy_byte(a.(accuracy_hit[w]), a.(accuracy_fired[w])))
                return;
        w = pow(2, w);
index 0620a072b804959c7e66fd090b2a0815c5793219..67a51ad44812992002524665a146e270fae6e5f6 100644 (file)
@@ -56,6 +56,37 @@ void PlayerStats_Init()
        PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_HIT);
        PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_FIRED);
 
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_LASER_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_LASER_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_SHOTGUN_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_SHOTGUN_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_UZI_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_UZI_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_GRENADE_LAUNCHER_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_GRENADE_LAUNCHER_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_ELECTRO_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_ELECTRO_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_CRYLINK_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_CRYLINK_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_NEX_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_NEX_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_HAGAR_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_HAGAR_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_ROCKET_LAUNCHER_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_ROCKET_LAUNCHER_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_MINSTANEX_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_MINSTANEX_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_SNIPERRIFLE_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_SNIPERRIFLE_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_FIREBALL_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_FIREBALL_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_MINE_LAYER_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_MINE_LAYER_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_SEEKER_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_SEEKER_CNT_FIRED);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_CNT_HIT);
+       PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_CNT_FIRED);
+
        PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3);
        PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5);
        PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10);
@@ -371,6 +402,37 @@ void PlayerStats_Accuracy(entity p)
     PlayerStats_Event(p, PLAYERSTATS_ACC_SEEKER_FIRED, a.accuracy_fired[WEP_SEEKER-1]);
     PlayerStats_Event(p, PLAYERSTATS_ACC_TUBA_HIT, a.accuracy_hit[WEP_TUBA-1]);
     PlayerStats_Event(p, PLAYERSTATS_ACC_TUBA_FIRED, a.accuracy_fired[WEP_TUBA-1]);
+
+    PlayerStats_Event(p, PLAYERSTATS_ACC_LASER_CNT_HIT, a.accuracy_cnt_hit[WEP_LASER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_LASER_CNT_FIRED, a.accuracy_cnt_fired[WEP_LASER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_SHOTGUN_CNT_HIT, a.accuracy_cnt_hit[WEP_SHOTGUN-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_SHOTGUN_CNT_FIRED, a.accuracy_cnt_fired[WEP_SHOTGUN-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_UZI_CNT_HIT, a.accuracy_cnt_hit[WEP_UZI-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_UZI_CNT_FIRED, a.accuracy_cnt_fired[WEP_UZI-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_GRENADE_LAUNCHER_CNT_HIT, a.accuracy_cnt_hit[WEP_GRENADE_LAUNCHER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_GRENADE_LAUNCHER_CNT_FIRED, a.accuracy_cnt_fired[WEP_GRENADE_LAUNCHER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_ELECTRO_CNT_HIT, a.accuracy_cnt_hit[WEP_ELECTRO-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_ELECTRO_CNT_FIRED, a.accuracy_cnt_fired[WEP_ELECTRO-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_CRYLINK_CNT_HIT, a.accuracy_cnt_hit[WEP_CRYLINK-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_CRYLINK_CNT_FIRED, a.accuracy_cnt_fired[WEP_CRYLINK-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_NEX_CNT_HIT, a.accuracy_cnt_hit[WEP_NEX-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_NEX_CNT_FIRED, a.accuracy_cnt_fired[WEP_NEX-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_HAGAR_CNT_HIT, a.accuracy_cnt_hit[WEP_HAGAR-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_HAGAR_CNT_FIRED, a.accuracy_cnt_fired[WEP_HAGAR-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_ROCKET_LAUNCHER_CNT_HIT, a.accuracy_cnt_hit[WEP_ROCKET_LAUNCHER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_ROCKET_LAUNCHER_CNT_FIRED, a.accuracy_cnt_fired[WEP_ROCKET_LAUNCHER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_MINSTANEX_CNT_HIT, a.accuracy_cnt_hit[WEP_MINSTANEX-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_MINSTANEX_CNT_FIRED, a.accuracy_cnt_fired[WEP_MINSTANEX-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_SNIPERRIFLE_CNT_HIT, a.accuracy_cnt_hit[WEP_SNIPERRIFLE-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_SNIPERRIFLE_CNT_FIRED, a.accuracy_cnt_fired[WEP_SNIPERRIFLE-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_FIREBALL_CNT_HIT, a.accuracy_cnt_hit[WEP_FIREBALL-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_FIREBALL_CNT_FIRED, a.accuracy_cnt_fired[WEP_FIREBALL-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_MINE_LAYER_CNT_HIT, a.accuracy_cnt_hit[WEP_MINE_LAYER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_MINE_LAYER_CNT_FIRED, a.accuracy_cnt_fired[WEP_MINE_LAYER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_SEEKER_CNT_HIT, a.accuracy_cnt_hit[WEP_SEEKER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_SEEKER_CNT_FIRED, a.accuracy_cnt_fired[WEP_SEEKER-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_TUBA_CNT_HIT, a.accuracy_cnt_hit[WEP_TUBA-1]);
+    PlayerStats_Event(p, PLAYERSTATS_ACC_TUBA_CNT_FIRED, a.accuracy_cnt_fired[WEP_TUBA-1]);
 }
 
 void PlayerStats_EndMatch(float finished)
index fe9514270c7367623fa3ad85e32e62aa2415775d..d02a8f23c9b4d2bbab0c9958828b99355eb167d3 100644 (file)
@@ -37,6 +37,37 @@ string PLAYERSTATS_ACC_SEEKER_FIRED = "acc-seeker-fired";
 string PLAYERSTATS_ACC_TUBA_HIT = "acc-tuba-hit";
 string PLAYERSTATS_ACC_TUBA_FIRED = "acc-tuba-fired";
 
+string PLAYERSTATS_ACC_LASER_CNT_HIT = "acc-laser-cnt-hit";
+string PLAYERSTATS_ACC_LASER_CNT_FIRED = "acc-laser-cnt-fired";
+string PLAYERSTATS_ACC_SHOTGUN_CNT_HIT = "acc-sg-cnt-hit";
+string PLAYERSTATS_ACC_SHOTGUN_CNT_FIRED = "acc-sg-cnt-fired";
+string PLAYERSTATS_ACC_UZI_CNT_HIT = "acc-uzi-cnt-hit";
+string PLAYERSTATS_ACC_UZI_CNT_FIRED = "acc-uzi-cnt-fired";
+string PLAYERSTATS_ACC_GRENADE_LAUNCHER_CNT_HIT = "acc-gl-cnt-hit";
+string PLAYERSTATS_ACC_GRENADE_LAUNCHER_CNT_FIRED = "acc-gl-cnt-fired";
+string PLAYERSTATS_ACC_ELECTRO_CNT_HIT = "acc-electro-cnt-hit";
+string PLAYERSTATS_ACC_ELECTRO_CNT_FIRED = "acc-electro-cnt-fired";
+string PLAYERSTATS_ACC_CRYLINK_CNT_HIT = "acc-crylink-cnt-hit";
+string PLAYERSTATS_ACC_CRYLINK_CNT_FIRED = "acc-crylink-cnt-fired";
+string PLAYERSTATS_ACC_NEX_CNT_HIT = "acc-nex-cnt-hit";
+string PLAYERSTATS_ACC_NEX_CNT_FIRED = "acc-nex-cnt-fired";
+string PLAYERSTATS_ACC_HAGAR_CNT_HIT = "acc-hagar-cnt-hit";
+string PLAYERSTATS_ACC_HAGAR_CNT_FIRED = "acc-hagar-cnt-fired";
+string PLAYERSTATS_ACC_ROCKET_LAUNCHER_CNT_HIT = "acc-rl-cnt-hit";
+string PLAYERSTATS_ACC_ROCKET_LAUNCHER_CNT_FIRED = "acc-rl-cnt-fired";
+string PLAYERSTATS_ACC_MINSTANEX_CNT_HIT = "acc-minstanex-cnt-hit";
+string PLAYERSTATS_ACC_MINSTANEX_CNT_FIRED = "acc-minstanex-cnt-fired";
+string PLAYERSTATS_ACC_SNIPERRIFLE_CNT_HIT = "acc-rifle-cnt-hit";
+string PLAYERSTATS_ACC_SNIPERRIFLE_CNT_FIRED = "acc-rifle-cnt-fired";
+string PLAYERSTATS_ACC_FIREBALL_CNT_HIT = "acc-fireball-cnt-hit";
+string PLAYERSTATS_ACC_FIREBALL_CNT_FIRED = "acc-fireball-cnt-fired";
+string PLAYERSTATS_ACC_MINE_LAYER_CNT_HIT = "acc-minelayer-cnt-hit";
+string PLAYERSTATS_ACC_MINE_LAYER_CNT_FIRED = "acc-minelayer-cnt-fired";
+string PLAYERSTATS_ACC_SEEKER_CNT_HIT = "acc-seeker-cnt-hit";
+string PLAYERSTATS_ACC_SEEKER_CNT_FIRED = "acc-seeker-cnt-fired";
+string PLAYERSTATS_ACC_TUBA_CNT_HIT = "acc-tuba-cnt-hit";
+string PLAYERSTATS_ACC_TUBA_CNT_FIRED = "acc-tuba-cnt-fired";
+
 string PLAYERSTATS_TOTAL = "total-";
 string PLAYERSTATS_SCOREBOARD = "scoreboard-";