X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_grenadelauncher.qc;h=352ce883bd255fb49c9ebf0ff95bdb9bf40c06f1;hb=1846e8f66dba1522a83fec1b79c02f1c0da570d6;hp=a9d1246448f784661490a2d176c1e2635d5eed3d;hpb=46efdcf8bf523f3e1fd9a7850204f4fec661d724;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_grenadelauncher.qc b/qcsrc/server/w_grenadelauncher.qc index a9d124644..352ce883b 100644 --- a/qcsrc/server/w_grenadelauncher.qc +++ b/qcsrc/server/w_grenadelauncher.qc @@ -49,11 +49,14 @@ void W_Grenade_Damage (entity inflictor, entity attacker, float damage, float de { if (self.health <= 0) return; + + if (!W_CheckProjectileDamage(inflictor.realowner, self.realowner, deathtype, -1)) // no exceptions + return; // g_projectiles_damage says to halt + self.health = self.health - damage; + if (self.health <= 0) - { - W_PrepareExplosionByDamage(attacker, self.think); - } + W_PrepareExplosionByDamage(attacker, self.use); } void W_Grenade_Think1 (void) @@ -164,7 +167,7 @@ void W_Grenade_Touch2 (void) void W_Grenade_Attack (void) { - local entity gren; + entity gren; W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_reload_ammo); @@ -196,6 +199,7 @@ void W_Grenade_Attack (void) gren.health = autocvar_g_balance_grenadelauncher_primary_health; gren.damageforcescale = autocvar_g_balance_grenadelauncher_primary_damageforcescale; gren.event_damage = W_Grenade_Damage; + gren.damagedbycontents = TRUE; W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_primary); gren.angles = vectoangles (gren.velocity); @@ -211,7 +215,7 @@ void W_Grenade_Attack (void) void W_Grenade_Attack2 (void) { - local entity gren; + entity gren; W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_grenadelauncher_secondary_ammo, autocvar_g_balance_grenadelauncher_reload_ammo); @@ -242,6 +246,7 @@ void W_Grenade_Attack2 (void) gren.health = autocvar_g_balance_grenadelauncher_secondary_health; gren.damageforcescale = autocvar_g_balance_grenadelauncher_secondary_damageforcescale; gren.event_damage = W_Grenade_Damage; + gren.damagedbycontents = TRUE; W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_secondary); gren.angles = vectoangles (gren.velocity); @@ -360,7 +365,7 @@ float w_glauncher(float req) W_Reload(min(autocvar_g_balance_grenadelauncher_primary_ammo, autocvar_g_balance_grenadelauncher_secondary_ammo), autocvar_g_balance_grenadelauncher_reload_ammo, autocvar_g_balance_grenadelauncher_reload_time, "weapons/reload.wav"); } return TRUE; -}; +} #endif #ifdef CSQC float w_glauncher(float req) @@ -380,9 +385,9 @@ float w_glauncher(float req) else if (req == WR_SUICIDEMESSAGE) { if(w_deathtype & HITTYPE_SECONDARY) - w_deathtypestring = _("%s tried out his own grenade"); + w_deathtypestring = _("%s didn't see their own grenade"); else - w_deathtypestring = _("%s detonated"); + w_deathtypestring = _("%s blew themself up with their grenadelauncher"); } else if (req == WR_KILLMESSAGE) {