From: Mario Date: Sun, 12 Mar 2017 03:13:00 +0000 (+1000) Subject: Merge branch 'master' into Mario/killsound X-Git-Tag: xonotic-v0.8.2~69^2~2 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=905ec2fbd2b610eeb2591cdddbf71ce24b7bb3ab;hp=4d66fbb3a2351be319dd6fc0e481a3dd24e182d4 Merge branch 'master' into Mario/killsound --- diff --git a/qcsrc/client/view.qc b/qcsrc/client/view.qc index 104405b397..65df30fd89 100644 --- a/qcsrc/client/view.qc +++ b/qcsrc/client/view.qc @@ -875,6 +875,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 4394e17406..7462239f77 100644 --- a/qcsrc/common/sounds/all.inc +++ b/qcsrc/common/sounds/all.inc @@ -266,6 +266,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 afde743241..44efee885e 100644 --- a/qcsrc/common/stats.qh +++ b/qcsrc/common/stats.qh @@ -118,6 +118,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 bool autocvar_g_ctf_leaderboard; diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index 3f1867758d..ccb361ea69 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -94,7 +94,7 @@ const float MAX_DAMAGEEXTRARADIUS = 16; .float dmgtime; .float killcount; -.float damage_dealt, typehitsound; +.float damage_dealt, typehitsound, killsound; .float watersound_finished; .float iscreature; @@ -317,6 +317,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 a8f365cbc2..7f5ffaf79b 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -375,6 +375,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 2e7ae5fa75..71c731a308 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -2086,6 +2086,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); @@ -2100,6 +2102,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, diff --git a/sound/misc/kill.ogg b/sound/misc/kill.ogg new file mode 100644 index 0000000000..7ef2babe25 Binary files /dev/null and b/sound/misc/kill.ogg differ