X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_weapons.qc;h=0f65bb914c302d677c5cb1dc39fd2aee57a687a8;hp=ca1f83bfee910922d2f4d47c766bc23bc79dea35;hb=78776096e605e2cbcddeb7e4a022e4a38c8c67f6;hpb=40eb151be5ea5fca60d5919c7053848a2c7ba248;ds=sidebyside diff --git a/qcsrc/server/cl_weapons.qc b/qcsrc/server/cl_weapons.qc index ca1f83bfe..0f65bb914 100644 --- a/qcsrc/server/cl_weapons.qc +++ b/qcsrc/server/cl_weapons.qc @@ -301,10 +301,6 @@ float W_IsWeaponThrowable(float w) return 0; if (g_weaponarena) return 0; - if (g_lms) - return 0; - if (g_ca) - return 0; if (g_cts) return 0; if (g_nexball && w == WEP_GRENADE_LAUNCHER) @@ -356,7 +352,19 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) Send_Notification(NOTIF_ONE, self, MSG_MULTI, ITEM_WEAPON_DROP, a, w); } -// Bringed back weapon frame +float forbidWeaponUse() +{ + if(time < game_starttime && !autocvar_sv_ready_restart_after_countdown) + return 1; + if(round_handler_IsActive() && !round_handler_IsRoundStarted()) + return 1; + if(self.player_blocked) + return 1; + if(self.frozen) + return 1; + return 0; +} + void W_WeaponFrame() { vector fo, ri, up; @@ -364,15 +372,16 @@ void W_WeaponFrame() if (frametime) self.weapon_frametime = frametime; - if(((arena_roundbased || g_ca || g_freezetag) && time < warmup) || ((time < game_starttime) && !autocvar_sv_ready_restart_after_countdown)) - return; - - if(self.frozen) - return; - if (!self.weaponentity || self.health < 1) return; // Dead player can't use weapons and injure impulse commands + if(forbidWeaponUse()) + if(self.weaponentity.state != WS_CLEAR) + { + w_ready(); + return; + } + if(!self.switchweapon) { self.weapon = 0;