From 6f0d05e0606dcf5e68ca760bbe2166d33c3e00ff Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Sun, 26 Sep 2010 03:57:44 +0300 Subject: [PATCH] Make the final changes I can think of at the moment. There's still a TODO list (will post it on the forum) and things I might have missed, but other than that it should be ready for testing. --- qcsrc/server/w_minelayer.qc | 28 ++++++++++++---------------- sound/weapons/mine_exp.ogg | Bin 0 -> 18564 bytes 2 files changed, 12 insertions(+), 16 deletions(-) create mode 100644 sound/weapons/mine_exp.ogg diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index cf6f31116..984fc71b3 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -90,7 +90,7 @@ void W_Mine_Think (void) return; } - // detect players around the mine and explode if the player should detonate it + // detect players who are close the mine and explode if the player should detonate it entity head; head = findradius(self.origin, cvar("g_balance_minelayer_detectionradius")); @@ -98,11 +98,8 @@ void W_Mine_Think (void) { if(head.classname == "player" && head.deadflag == DEAD_NO) if(head != self.owner) - if not(teams_matter && head.team == self.owner.team) // don't detonate for team mates - { - W_Mine_Unregister(); + if(IsDifferentTeam(head, self.owner)) // don't detonate for team mates W_Mine_Explode(); - } head = head.chain; } @@ -121,7 +118,7 @@ void W_Mine_Touch (void) PROJECTILE_TOUCH; spamsound (self, CHAN_PROJECTILE, "weapons/mine_stick.wav", VOL_BASE, ATTN_NORM); self.movetype = MOVETYPE_NONE; // lock the mine in place - // TODO: make sure this doesn't cause the mine to get stuck in the air if it falls over a team mate (doesn't explode) and the team mate leaves + // TODO: make sure this doesn't cause the mine to get stuck in the air if it falls over a moving entity } void W_Mine_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) @@ -144,9 +141,8 @@ void W_Mine_Attack (void) { entity mine; self.mine_number = 0; - for(mine = world; (mine = find(mine, classname, "mine")); ) - if(mine.owner == self) - self.mine_number += 1; + for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.owner == self) + self.mine_number += 1; if(self.mine_number >= cvar("g_balance_minelayer_limit")) { @@ -160,7 +156,7 @@ void W_Mine_Attack (void) if not(self.items & IT_UNLIMITED_WEAPON_AMMO) self.ammo_rockets = self.ammo_rockets - cvar("g_balance_minelayer_ammo"); - W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/mine_fire.wav", cvar("g_balance_minelayer_damage")); + W_SetupShot_ProjectileSize (self, '-6 -6 -6', '6 6 6', FALSE, 5, "weapons/mine_fire.wav", cvar("g_balance_minelayer_damage")); pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); mine = WarpZone_RefSys_SpawnSameRefSys(self); @@ -172,7 +168,7 @@ void W_Mine_Attack (void) mine.spawnshieldtime = -1; mine.classname = "mine"; mine.bot_dodge = TRUE; - mine.bot_dodgerating = cvar("g_balance_minelayer_damage") * 2; // * 2 because it can be detonated inflight which makes it even more dangerous + mine.bot_dodgerating = cvar("g_balance_minelayer_damage") * 2; // * 2 because it can detonate inflight which makes it even more dangerous mine.takedamage = DAMAGE_YES; mine.damageforcescale = cvar("g_balance_minelayer_damageforcescale"); @@ -194,7 +190,7 @@ void W_Mine_Attack (void) mine.cnt = time + cvar("g_balance_minelayer_lifetime"); mine.flags = FL_PROJECTILE; - CSQCProjectile(mine, FALSE, PROJECTILE_MINE, FALSE); + CSQCProjectile(mine, FALSE, PROJECTILE_MINE, TRUE); // muzzle flash for 1st person view flash = spawn (); @@ -285,7 +281,7 @@ float w_minelayer(float req) }else{ local float distance; distance= bound(300,vlen(self.origin-self.enemy.origin),30000); //As the distance gets larger, a correct detonation gets near imposible - //Bots are assumed to use the rocket spawnfunc_light to see if the rocket gets near a player + //Bots are assumed to use the mine spawnfunc_light to see if the mine gets near a player if(v_forward * normalize(mine.origin - self.enemy.origin)< 0.1) if(self.enemy.classname == "player") if(desirabledamage >= 0.1*coredamage) @@ -368,11 +364,11 @@ float w_minelayer(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, CHAN_PROJECTILE, "weapons/mine_exp.wav", VOL_BASE, ATTN_NORM); } else if(req == WR_PRECACHE) { - precache_sound("weapons/rocket_impact.wav"); + precache_sound("weapons/mine_exp.wav"); } else if (req == WR_SUICIDEMESSAGE) w_deathtypestring = "%s exploded"; @@ -383,7 +379,7 @@ float w_minelayer(float req) else if(w_deathtype & HITTYPE_SPLASH) w_deathtypestring = "%s almost dodged %s's mine"; else - w_deathtypestring = "%s ate %s's mine"; + w_deathtypestring = "%s stepped on %s's mine"; } return TRUE; } diff --git a/sound/weapons/mine_exp.ogg b/sound/weapons/mine_exp.ogg new file mode 100644 index 0000000000000000000000000000000000000000..664c4440a4426d481abc1de7a4301ce2c3675ca5 GIT binary patch literal 18564 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�ncsQ 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 literal 0 HcmV?d00001 -- 2.39.2