X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_impulse.qc;h=76610f4c3e57da54d79fc73dcbb1ebcb9aabe0a9;hb=e4cd1dc7bcfe2a96e058c9d5e8a414c613609e06;hp=529567a3b407cc7118590aa59c451fb3444798ac;hpb=fcbf9538330960b989dbe84e7188349d7e8b109f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_impulse.qc b/qcsrc/server/cl_impulse.qc index 529567a3b..76610f4c3 100644 --- a/qcsrc/server/cl_impulse.qc +++ b/qcsrc/server/cl_impulse.qc @@ -46,15 +46,20 @@ void ImpulseCommands (void) return; self.impulse = 0; + // allow only weapon change impulses when not in round time + if(round_handler_IsActive() && !round_handler_IsRoundStarted()) + if(imp == 17 || (imp >= 20 && imp < 200) || imp > 253) + return; + if (timeout_status == TIMEOUT_ACTIVE) //don't allow any impulses while the game is paused return; - + if(self.vehicle) if(self.vehicle.deadflag == DEAD_NO) - if(self.vehicle.vehicles_impusle) - if(self.vehicle.vehicles_impusle(imp)) + if(self.vehicle.vehicles_impulse) + if(self.vehicle.vehicles_impulse(imp)) return; - + if(CheatImpulse(imp)) { } @@ -63,8 +68,8 @@ void ImpulseCommands (void) // weapon switching impulses if(self.deadflag == DEAD_NO) W_NextWeaponOnImpulse(imp); - else - self.impulse = imp; // retry in next frame + //else + // self.impulse = imp; // retry in next frame } else if(imp >= 10 && imp <= 20) { @@ -73,38 +78,37 @@ void ImpulseCommands (void) switch(imp) { case 10: - W_NextWeapon (0); + W_NextWeapon(0); break; case 11: W_LastWeapon(); break; case 12: - W_PreviousWeapon (0); + W_PreviousWeapon(0); break; case 13: - W_SwitchWeapon (w_getbestweapon(self)); + W_SwitchWeapon(w_getbestweapon(self)); break; case 14: W_NextWeaponOnImpulse(0); break; case 15: - W_NextWeapon (2); + W_NextWeapon(2); break; case 16: - W_PreviousWeapon (2); + W_PreviousWeapon(2); break; case 17: - if (!g_minstagib) - W_ThrowWeapon(W_CalculateProjectileVelocity(self.velocity, v_forward * 750, FALSE), '0 0 0', TRUE); + W_ThrowWeapon(W_CalculateProjectileVelocity(self.velocity, v_forward * 750, FALSE), '0 0 0', TRUE); break; case 18: - W_NextWeapon (1); + W_NextWeapon(1); break; case 19: - W_PreviousWeapon (1); + W_PreviousWeapon(1); break; case 20: - W_TriggerReload (); + if(!forbidWeaponUse()) { WEP_ACTION(self.weapon, WR_RELOAD); } break; } } @@ -165,7 +169,7 @@ void ImpulseCommands (void) case 33: if(self.deadflag == DEAD_NO && teamplay) { - if not(MUTATOR_CALLHOOK(HelpMePing)) + if (!MUTATOR_CALLHOOK(HelpMePing)) { wp = WaypointSprite_Attach("helpme", TRUE, RADARICON_HELPME, '1 0.5 0'); if(!wp) @@ -253,7 +257,7 @@ void ImpulseCommands (void) case 104: e = navigation_findnearestwaypoint(self, FALSE); if (e) - if not(e.wpflags & WAYPOINTFLAG_GENERATED) + if (!(e.wpflags & WAYPOINTFLAG_GENERATED)) { bprint(strcat("Waypoint removed at ",vtos(e.origin),"\n")); waypoint_remove(e); @@ -269,7 +273,7 @@ void ImpulseCommands (void) for(e = findchain(classname, "waypoint"); e; e = e.chain) { e.colormod = '0.5 0.5 0.5'; - e.effects &~= EF_NODEPTHTEST | EF_RED | EF_BLUE; + e.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE); } e2 = navigation_findnearestwaypoint(self, FALSE); navigation_markroutes(e2); @@ -296,7 +300,7 @@ void ImpulseCommands (void) { print("cannot reach me: ", etos(e), " ", vtos(e.origin), "\n"); e.colormod_x = 8; - if not(e.effects & EF_NODEPTHTEST) // not already reported before + if(!(e.effects & EF_NODEPTHTEST)) // not already reported before ++m; e.effects |= EF_NODEPTHTEST | EF_RED; ++i; @@ -315,7 +319,7 @@ void ImpulseCommands (void) if(navigation_findnearestwaypoint(e, FALSE)) { setorigin(e, org); - e.effects &~= EF_NODEPTHTEST; + e.effects &= ~EF_NODEPTHTEST; e.model = ""; } else @@ -338,7 +342,7 @@ void ImpulseCommands (void) start = findchainflags(flags, FL_ITEM); for(e = start; e; e = e.chain) { - e.effects &~= EF_NODEPTHTEST | EF_RED | EF_BLUE; + e.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE); e.colormod = '0.5 0.5 0.5'; } for(e = start; e; e = e.chain)