From: Jakob MG Date: Tue, 31 Jul 2012 23:00:12 +0000 (+0200) Subject: BlaXpirits patch for http://dev.xonotic.org/issues/1255 X-Git-Tag: xonotic-v0.7.0~296 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=0bf8c513d709819cfed1c9aa07687f6751448c90;p=xonotic%2Fxonotic-data.pk3dir.git BlaXpirits patch for http://dev.xonotic.org/issues/1255 --- diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 715bdab45..5972c06f5 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -472,6 +472,7 @@ void PutObserverInServer (void) self.invincible_finished = 0; self.superweapons_finished = 0; self.pushltime = 0; + self.istypefrag = 0; self.think = SUB_Null; self.nextthink = 0; self.hook_time = 0; diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index fd14d42b8..b57c18a17 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -123,6 +123,7 @@ void WeaponStats_LogKill(float awep, float abot, float vwep, float vbot) .entity pusher; .float pushltime; +.float istypefrag; .float CopyBody_nextthink; .void(void) CopyBody_think; @@ -580,11 +581,13 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht // don't reset pushltime for self damage as it may be an attempt to // escape a lava pit or similar //self.pushltime = 0; + self.istypefrag = 0; } else if(attacker.classname == "player") { self.pusher = attacker; self.pushltime = time + autocvar_g_maxpushtime; + self.istypefrag = self.BUTTON_CHAT; } else if(time < self.pushltime) { @@ -592,7 +595,10 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht self.pushltime = max(self.pushltime, time + 0.6); } else + { self.pushltime = 0; + self.istypefrag = 0; + } float abot, vbot, awep; abot = (clienttype(attacker) == CLIENTTYPE_BOT); diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index ac7c3cd2a..741dc6b75 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -55,6 +55,7 @@ float damage_headshotbonus; // bonus multiplier for head shots, set to 0 after u .float teamkill_soundtime; .entity teamkill_soundsource; .entity pusher; +.float istypefrag; .float taunt_soundtime; @@ -420,7 +421,7 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) PlayerStats_Event(targ, PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM, 1); } - if(targ.BUTTON_CHAT) { + if(targ.istypefrag) { Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_TYPEFRAG, MSG_KILL); Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_TYPEFRAGGED, MSG_KILL); } else { diff --git a/qcsrc/server/g_hook.qc b/qcsrc/server/g_hook.qc index 370f2fb98..8867d0725 100644 --- a/qcsrc/server/g_hook.qc +++ b/qcsrc/server/g_hook.qc @@ -213,6 +213,7 @@ void GrapplingHookThink() self.aiment.flags &~= FL_ONGROUND; self.aiment.pusher = self.realowner; self.aiment.pushltime = time + autocvar_g_maxpushtime; + self.aiment.istypefrag = self.aiment.BUTTON_CHAT; } } @@ -285,6 +286,7 @@ void GrapplingHook_Damage (entity inflictor, entity attacker, float damage, floa { self.realowner.pusher = attacker; self.realowner.pushltime = time + autocvar_g_maxpushtime; + self.realowner.istypefrag = self.realowner.BUTTON_CHAT; } RemoveGrapplingHook(self.realowner); } diff --git a/qcsrc/server/t_jumppads.qc b/qcsrc/server/t_jumppads.qc index eef4d28b8..8923c19f1 100644 --- a/qcsrc/server/t_jumppads.qc +++ b/qcsrc/server/t_jumppads.qc @@ -2,6 +2,7 @@ float PUSH_ONCE = 1; float PUSH_SILENT = 2; .float pushltime; +.float istypefrag; .float height; void() SUB_UseTargets; @@ -213,6 +214,7 @@ void trigger_push_touch() // reset tracking of who pushed you into a hazard (for kill credit) other.pushltime = 0; + other.istypefrag = 0; } if(self.enemy.target) diff --git a/qcsrc/server/t_teleporters.qc b/qcsrc/server/t_teleporters.qc index 1705d8f8e..25dc837f9 100644 --- a/qcsrc/server/t_teleporters.qc +++ b/qcsrc/server/t_teleporters.qc @@ -131,10 +131,12 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle { player.pusher = teleporter.owner; player.pushltime = time + autocvar_g_maxpushtime; + player.istypefrag = player.BUTTON_CHAT; } else { player.pushltime = 0; + player.istypefrag = 0; } player.lastteleporttime = time;