X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_rocketlauncher.qc;h=4abfa0d5000d19b173039a2c44dc8d761cf374bd;hb=41ebfacea1dcc35c5b8c7e2bce80c3b3b4dcd717;hp=0269fd18fc8bff348f1e6e168f595a88270e4673;hpb=4d89135c486ca6d2b04118cf861c28f557ab4d30;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_rocketlauncher.qc b/qcsrc/server/w_rocketlauncher.qc index 0269fd18f..4abfa0d50 100644 --- a/qcsrc/server/w_rocketlauncher.qc +++ b/qcsrc/server/w_rocketlauncher.qc @@ -209,7 +209,7 @@ void W_Rocket_Think (void) { pointparticles(particleeffectnum("rocket_guide"), self.origin, self.velocity, 1); // TODO add a better sound here - sound (self.realowner, CHAN_WEAPON2, "weapons/rocket_mode.wav", VOL_BASE, ATTN_NORM); + sound (self.realowner, CH_WEAPON_B, "weapons/rocket_mode.wav", VOL_BASE, ATTN_NORM); self.count = 1; } } @@ -238,8 +238,13 @@ void W_Rocket_Damage (entity inflictor, entity attacker, float damage, float dea { 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; self.angles = vectoangles(self.velocity); + if (self.health <= 0) W_PrepareExplosionByDamage(attacker, W_Rocket_Explode); } @@ -251,7 +256,7 @@ void W_Rocket_Attack (void) W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_rocketlauncher_ammo, autocvar_g_balance_rocketlauncher_reload_ammo); - W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav", CHAN_WEAPON, autocvar_g_balance_rocketlauncher_damage); + W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav", CH_WEAPON_A, autocvar_g_balance_rocketlauncher_damage); pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); missile = WarpZone_RefSys_SpawnSameRefSys(self); @@ -270,6 +275,7 @@ void W_Rocket_Attack (void) missile.damageforcescale = autocvar_g_balance_rocketlauncher_damageforcescale; missile.health = autocvar_g_balance_rocketlauncher_health; missile.event_damage = W_Rocket_Damage; + missile.damagedbycontents = TRUE; missile.movetype = MOVETYPE_FLY; PROJECTILE_MAKETRIGGER(missile); @@ -433,7 +439,7 @@ float w_rlauncher(float req) } } if(rockfound) - sound (self, CHAN_WEAPON2, "weapons/rocket_det.wav", VOL_BASE, ATTN_NORM); + sound (self, CH_WEAPON_B, "weapons/rocket_det.wav", VOL_BASE, ATTN_NORM); } } } @@ -461,7 +467,7 @@ float w_rlauncher(float req) { if(autocvar_g_balance_rocketlauncher_reload_ammo) { - if(self.ammo_rockets < autocvar_g_balance_rocketlauncher_ammo && self.weapon_load[WEP_ROCKET_LAUNCHER] < autocvar_g_balance_rocketlauncher_ammo) + if(self.ammo_rockets < autocvar_g_balance_rocketlauncher_ammo && self.(weapon_load[WEP_ROCKET_LAUNCHER]) < autocvar_g_balance_rocketlauncher_ammo) ammo_amount = TRUE; } else if(self.ammo_rockets < autocvar_g_balance_rocketlauncher_ammo) @@ -491,7 +497,7 @@ float w_rlauncher(float req) org2 = w_org + w_backoff * 12; pointparticles(particleeffectnum("rocket_explode"), org2, '0 0 0', 1); if(!w_issilent) - sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + sound(self, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); } else if(req == WR_PRECACHE) {