From 933a9fccf0f3c135bf99b576d665b1802065455d Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 8 Dec 2016 01:11:48 +1000 Subject: [PATCH] Add support for a kill sound (still need a sound file for it) --- qcsrc/client/view.qc | 8 ++++++++ qcsrc/common/sounds/all.inc | 1 + qcsrc/common/stats.qh | 1 + qcsrc/server/defs.qh | 3 ++- qcsrc/server/g_damage.qc | 2 ++ qcsrc/server/g_world.qc | 3 +++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/qcsrc/client/view.qc b/qcsrc/client/view.qc index 2ca531166a..95e3a7b7dc 100644 --- a/qcsrc/client/view.qc +++ b/qcsrc/client/view.qc @@ -854,6 +854,14 @@ void HitSound() sound(NULL, CH_INFO, SND_TYPEHIT, VOL_BASE, ATTN_NONE); typehit_time_prev = typehit_time; } + + static float kill_time_prev = 0; + float kill_time = STAT(KILL_TIME); + if (COMPARE_INCREASING(kill_time, kill_time_prev) > autocvar_cl_hitsound_antispam_time) + { + sound(NULL, CH_INFO, SND_KILL, VOL_BASE, ATTN_NONE); + kill_time_prev = kill_time; + } } vector crosshair_getcolor(entity this, float health_stat) diff --git a/qcsrc/common/sounds/all.inc b/qcsrc/common/sounds/all.inc index 69a95be0cc..99e377e646 100644 --- a/qcsrc/common/sounds/all.inc +++ b/qcsrc/common/sounds/all.inc @@ -265,6 +265,7 @@ Sound SND_GIB_SPLAT_RANDOM() { SOUND(HIT, "misc/hit"); SOUND(TYPEHIT, "misc/typehit"); +SOUND(KILL, "misc/kill"); SOUND(SPAWN, "misc/spawn"); diff --git a/qcsrc/common/stats.qh b/qcsrc/common/stats.qh index 82398aa56b..5816d5ad19 100644 --- a/qcsrc/common/stats.qh +++ b/qcsrc/common/stats.qh @@ -125,6 +125,7 @@ REGISTER_STAT(CAPTURE_PROGRESS, float) REGISTER_STAT(ENTRAP_ORB, float) REGISTER_STAT(ENTRAP_ORB_ALPHA, float) REGISTER_STAT(ITEMSTIME, int, autocvar_sv_itemstime) +REGISTER_STAT(KILL_TIME, float) #ifdef SVQC int autocvar_g_multijump; diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index 52153fcd7e..42cf15db4c 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -96,7 +96,7 @@ const float MAX_DAMAGEEXTRARADIUS = 16; .float dmgtime; .float killcount; -.float damage_dealt, typehitsound; +.float damage_dealt, typehitsound, killsound; .float watersound_finished; .float iscreature; @@ -320,6 +320,7 @@ string matchid; .float hit_time = _STAT(HIT_TIME); .float typehit_time = _STAT(TYPEHIT_TIME); +.float kill_time = _STAT(KILL_TIME); .float damage_dealt_total = _STAT(DAMAGE_DEALT_TOTAL); diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index a604a2bade..ab487eac20 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -370,6 +370,8 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) attacker.taunt_soundtime = time + 1; attacker.killcount = attacker.killcount + 1; + attacker.killsound += 1; + #define SPREE_ITEM(counta,countb,center,normal,gentle) \ case counta: \ { \ diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index 8edcf3b8f5..c9d2535323 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -2072,6 +2072,8 @@ void EndFrame() entity e = IS_SPEC(it) ? it.enemy : it; if (e.typehitsound) { it.typehit_time = time; + } else if (e.killsound) { + it.kill_time = time; } else if (e.damage_dealt) { it.hit_time = time; it.damage_dealt_total += ceil(e.damage_dealt); @@ -2086,6 +2088,7 @@ void EndFrame() FOREACH_CLIENT(true, { it.typehitsound = false; it.damage_dealt = 0; + it.killsound = false; antilag_record(it, CS(it), altime); }); IL_EACH(g_monsters, true, -- 2.39.2