From abfe0d3a11f71e9302d7409712174604bb5a230e Mon Sep 17 00:00:00 2001 From: FruitieX Date: Mon, 18 Apr 2011 19:05:12 +0300 Subject: [PATCH] add frags per weapon into playerstats (e acc-weapon-frags) --- qcsrc/server/accuracy.qc | 1 - qcsrc/server/cl_player.qc | 12 ++++++++++++ qcsrc/server/playerstats.qc | 32 ++++++++++++++++++++++++++++++++ qcsrc/server/playerstats.qh | 16 ++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/qcsrc/server/accuracy.qc b/qcsrc/server/accuracy.qc index bc638d614..a0a557c3c 100644 --- a/qcsrc/server/accuracy.qc +++ b/qcsrc/server/accuracy.qc @@ -1,4 +1,3 @@ -.entity accuracy; .float accuracy_hit[WEP_MAXCOUNT]; .float accuracy_fired[WEP_MAXCOUNT]; .float accuracy_cnt_hit[WEP_MAXCOUNT]; diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index 3426c4ce5..f7f60e62a 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -1,3 +1,7 @@ +.entity accuracy; +.float accuracy_frags[WEP_MAXCOUNT]; +FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(accuracy_frags); + float weaponstats_buffer; void WeaponStats_Init() @@ -615,6 +619,14 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht race_PreDie(); DropAllRunes(self); + // increment frag counter for used weapon type + float w; + w = DEATH_WEAPONOF(deathtype); + if(WEP_VALID(w)) + if(self.classname == "player") + if(self != attacker) + attacker.accuracy.(accuracy_frags[w-1]) += 1; + if(deathtype == DEATH_HURTTRIGGER && g_freezetag) { PutClientInServer(); diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc index 67a51ad44..71d15d5d6 100644 --- a/qcsrc/server/playerstats.qc +++ b/qcsrc/server/playerstats.qc @@ -87,6 +87,22 @@ void PlayerStats_Init() PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_CNT_HIT); PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_CNT_FIRED); + PlayerStats_AddEvent(PLAYERSTATS_ACC_LASER_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_SHOTGUN_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_UZI_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_GRENADE_LAUNCHER_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_ELECTRO_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_CRYLINK_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_NEX_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_HAGAR_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_ROCKET_LAUNCHER_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_MINSTANEX_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_SNIPERRIFLE_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_FIREBALL_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_MINE_LAYER_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_SEEKER_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACC_TUBA_FRAGS); + PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3); PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5); PlayerStats_AddEvent(PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_10); @@ -433,6 +449,22 @@ void PlayerStats_Accuracy(entity p) 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]); + + PlayerStats_Event(p, PLAYERSTATS_ACC_LASER_FRAGS, a.accuracy_frags[WEP_LASER-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_SHOTGUN_FRAGS, a.accuracy_frags[WEP_SHOTGUN-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_UZI_FRAGS, a.accuracy_frags[WEP_UZI-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_GRENADE_LAUNCHER_FRAGS, a.accuracy_frags[WEP_GRENADE_LAUNCHER-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_ELECTRO_FRAGS, a.accuracy_frags[WEP_ELECTRO-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_CRYLINK_FRAGS, a.accuracy_frags[WEP_CRYLINK-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_NEX_FRAGS, a.accuracy_frags[WEP_NEX-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_HAGAR_FRAGS, a.accuracy_frags[WEP_HAGAR-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_ROCKET_LAUNCHER_FRAGS, a.accuracy_frags[WEP_ROCKET_LAUNCHER-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_MINSTANEX_FRAGS, a.accuracy_frags[WEP_MINSTANEX-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_SNIPERRIFLE_FRAGS, a.accuracy_frags[WEP_SNIPERRIFLE-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_FIREBALL_FRAGS, a.accuracy_frags[WEP_FIREBALL-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_MINE_LAYER_FRAGS, a.accuracy_frags[WEP_MINE_LAYER-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_SEEKER_FRAGS, a.accuracy_frags[WEP_SEEKER-1]); + PlayerStats_Event(p, PLAYERSTATS_ACC_TUBA_FRAGS, a.accuracy_frags[WEP_TUBA-1]); } void PlayerStats_EndMatch(float finished) diff --git a/qcsrc/server/playerstats.qh b/qcsrc/server/playerstats.qh index d02a8f23c..bd1900f8e 100644 --- a/qcsrc/server/playerstats.qh +++ b/qcsrc/server/playerstats.qh @@ -68,6 +68,22 @@ 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_ACC_LASER_FRAGS = "acc-laser-frags"; +string PLAYERSTATS_ACC_SHOTGUN_FRAGS = "acc-sg-frags"; +string PLAYERSTATS_ACC_UZI_FRAGS = "acc-uzi-frags"; +string PLAYERSTATS_ACC_GRENADE_LAUNCHER_FRAGS = "acc-gl-frags"; +string PLAYERSTATS_ACC_ELECTRO_FRAGS = "acc-electro-frags"; +string PLAYERSTATS_ACC_CRYLINK_FRAGS = "acc-crylink-frags"; +string PLAYERSTATS_ACC_NEX_FRAGS = "acc-nex-frags"; +string PLAYERSTATS_ACC_HAGAR_FRAGS = "acc-hagar-frags"; +string PLAYERSTATS_ACC_ROCKET_LAUNCHER_FRAGS = "acc-rl-frags"; +string PLAYERSTATS_ACC_MINSTANEX_FRAGS = "acc-minstanex-frags"; +string PLAYERSTATS_ACC_SNIPERRIFLE_FRAGS = "acc-rifle-frags"; +string PLAYERSTATS_ACC_FIREBALL_FRAGS = "acc-fireball-frags"; +string PLAYERSTATS_ACC_MINE_LAYER_FRAGS = "acc-minelayer-frags"; +string PLAYERSTATS_ACC_SEEKER_FRAGS = "acc-seeker-frags"; +string PLAYERSTATS_ACC_TUBA_FRAGS = "acc-tuba-frags"; + string PLAYERSTATS_TOTAL = "total-"; string PLAYERSTATS_SCOREBOARD = "scoreboard-"; -- 2.39.2