From 6df897659d69089c48d6c2e7d426c10843ded04d Mon Sep 17 00:00:00 2001 From: FruitieX Date: Mon, 18 Apr 2011 18:24:45 +0300 Subject: [PATCH] add counts to the accuracy system (amount of shots fired, amount of shots hit) but only send them to the playerstats system. What is sent to CSQC remains unchanged. --- qcsrc/server/accuracy.qc | 14 +++++++++ qcsrc/server/playerstats.qc | 62 +++++++++++++++++++++++++++++++++++++ qcsrc/server/playerstats.qh | 31 +++++++++++++++++++ 3 files changed, 107 insertions(+) diff --git a/qcsrc/server/accuracy.qc b/qcsrc/server/accuracy.qc index 4d63fd820..bc638d614 100644 --- a/qcsrc/server/accuracy.qc +++ b/qcsrc/server/accuracy.qc @@ -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); diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc index 0620a072b..67a51ad44 100644 --- a/qcsrc/server/playerstats.qc +++ b/qcsrc/server/playerstats.qc @@ -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) diff --git a/qcsrc/server/playerstats.qh b/qcsrc/server/playerstats.qh index fe9514270..d02a8f23c 100644 --- a/qcsrc/server/playerstats.qh +++ b/qcsrc/server/playerstats.qh @@ -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-"; -- 2.39.2