X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_weapons.qc;h=0014e9182d4f4c864559af9f5982902dbc37efcb;hp=cdc6ea36d088fa90f23c5806a4b4bb9629af7ad6;hb=94a967120c8bfe0d4ffd95690b97e5af297dfc05;hpb=b2dc1d0a1c73a6eeb47df5092be173db37da1f7d diff --git a/qcsrc/server/cl_weapons.qc b/qcsrc/server/cl_weapons.qc index cdc6ea36d..0014e9182 100644 --- a/qcsrc/server/cl_weapons.qc +++ b/qcsrc/server/cl_weapons.qc @@ -158,16 +158,6 @@ float weapon_action(float wpn, float wrequest) return (get_weaponinfo(wpn)).weapon_func(wrequest); } -string W_Name(float weaponid) -{ - return (get_weaponinfo(weaponid)).message; -} - -float W_AmmoItemCode(float wpn) -{ - return (get_weaponinfo(wpn)).items & IT_AMMO; -} - .float savenextthink; void thrown_wep_think() { @@ -311,8 +301,6 @@ float W_IsWeaponThrowable(float w) return 0; if (g_weaponarena) return 0; - if (g_lms) - return 0; if (g_cts) return 0; if (g_nexball && w == WEP_GRENADE_LAUNCHER) @@ -357,15 +345,24 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) W_SwitchWeapon_Force(self, w_getbestweapon(self)); a = W_ThrowNewWeapon(self, w, doreduce, self.origin + delta, velo); - if not(a) - return; - if(a == "") - sprint(self, strcat("You dropped the ^2", W_Name(w), "\n")); - else - sprint(self, strcat("You dropped the ^2", W_Name(w), " with ", a, "\n")); + + if not(a) return; + Send_Notification(NOTIF_ONE, self, MSG_MULTI, ITEM_WEAPON_DROP, a, w); +} + +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.freezetag_frozen) + return 1; + return 0; } -// Bringed back weapon frame void W_WeaponFrame() { vector fo, ri, up; @@ -373,21 +370,16 @@ void W_WeaponFrame() if (frametime) self.weapon_frametime = frametime; - if(time < game_starttime && !autocvar_sv_ready_restart_after_countdown) - return; - - if(round_handler_IsActive() && !round_handler_IsRoundStarted()) - return; - - if(self.player_blocked) - return; - - if(self.freezetag_frozen == 1) - 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;