X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fw_minelayer.qc;h=2dac41e1badd5a236b30bba74ebddbb4c2b84930;hp=198097bfb903fa8a7420eac9ef64ced6e33ceb38;hb=a6a3b0cebd6928e3678ee4e97de4093f1b61c58b;hpb=a9b7572c2381856fa90ce31c68fb3cad71a9737c diff --git a/qcsrc/common/weapons/w_minelayer.qc b/qcsrc/common/weapons/w_minelayer.qc index 198097bfb9..2dac41e1ba 100644 --- a/qcsrc/common/weapons/w_minelayer.qc +++ b/qcsrc/common/weapons/w_minelayer.qc @@ -221,7 +221,7 @@ void W_MineLayer_Think(void) // our lifetime has expired, it's time to die - mine_time just allows us to play a sound for this // TODO: replace this mine_trigger.wav sound with a real countdown - if((time > self.cnt) && (!self.mine_time)) + if((time > self.cnt) && (!self.mine_time) && (self.cnt > 0)) { if(WEP_CVAR(minelayer, lifetime_countdown) > 0) spamsound(self, CH_SHOTS, "weapons/mine_trigger.wav", VOL_BASE, ATTN_NORM); @@ -231,7 +231,7 @@ void W_MineLayer_Think(void) // a player's mines shall explode if he disconnects or dies // TODO: Do this on team change too -- Samual: But isn't a player killed when they switch teams? - if(!IS_PLAYER(self.realowner) || self.realowner.deadflag != DEAD_NO || self.realowner.freezetag_frozen) + if(!IS_PLAYER(self.realowner) || self.realowner.deadflag != DEAD_NO || self.realowner.frozen) { other = world; self.projectiledeathtype |= HITTYPE_BOUNCE; @@ -243,7 +243,7 @@ void W_MineLayer_Think(void) head = findradius(self.origin, WEP_CVAR(minelayer, proximityradius)); while(head) { - if(IS_PLAYER(head) && head.deadflag == DEAD_NO && !head.freezetag_frozen) + if(IS_PLAYER(head) && head.deadflag == DEAD_NO && !head.frozen) if(head != self.realowner && DIFF_TEAM(head, self.realowner)) // don't trigger for team mates if(!self.mine_time) { @@ -318,7 +318,7 @@ void W_MineLayer_Attack(void) if(self.minelayer_mines >= WEP_CVAR(minelayer, limit)) { // the refire delay keeps this message from being spammed - sprint(self, strcat("minelayer: You cannot place more than ^2", ftos(WEP_CVAR(minelayer, limit)), " ^7mines at a time\n") ); + Send_Notification(NOTIF_ONE, self, MSG_MULTI, WEAPON_MINELAYER_LIMIT, WEP_CVAR(minelayer, limit)); play2(self, "weapons/unavailable.wav"); return; } @@ -357,10 +357,12 @@ void W_MineLayer_Attack(void) mine.touch = W_MineLayer_Touch; mine.think = W_MineLayer_Think; mine.nextthink = time; - mine.cnt = time + (WEP_CVAR(minelayer, lifetime) - WEP_CVAR(minelayer, lifetime_countdown)); + mine.cnt = (WEP_CVAR(minelayer, lifetime) - WEP_CVAR(minelayer, lifetime_countdown)); mine.flags = FL_PROJECTILE; mine.missile_flags = MIF_SPLASH | MIF_ARC | MIF_PROXY; + if(mine.cnt > 0) { mine.cnt += time; } + CSQCProjectile(mine, TRUE, PROJECTILE_MINE, TRUE); // muzzle flash for 1st person view