X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_uzi.qc;h=2f5b9bc7833badd1167a4205bc32c940e7550a1c;hb=a417525a41a93eb6df571b00c13a32d36a8e93cd;hp=0482f43772918bcc7525899ec304bf3b384d8eaf;hpb=1deb0bcb992f6b3b00b20438bcf6beba11f89ab3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_uzi.qc b/qcsrc/server/w_uzi.qc index 0482f4377..2f5b9bc78 100644 --- a/qcsrc/server/w_uzi.qc +++ b/qcsrc/server/w_uzi.qc @@ -1,31 +1,8 @@ #ifdef REGISTER_WEAPON -REGISTER_WEAPON(UZI, w_uzi, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "uzi", "uzi", _("Machine Gun")) +REGISTER_WEAPON(UZI, w_uzi, IT_NAILS, 3, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID, "uzi", "uzi", _("Machine Gun")) #else #ifdef SVQC -void W_UZI_SetAmmoCounter() -{ - // set clip_load to the weapon we have switched to, if the gun uses reloading - if(!autocvar_g_balance_uzi_reload_ammo) - self.clip_load = 0; // also keeps crosshair ammo from displaying - else - { - self.clip_load = self.weapon_load[WEP_UZI]; - self.clip_size = autocvar_g_balance_uzi_reload_ammo; // for the crosshair ammo display - } -} - -void W_UZI_Reload() -{ - self.reload_ammo_player = ammo_nails; - self.reload_ammo_min = min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo); - self.reload_ammo_amount = autocvar_g_balance_uzi_reload_ammo; - self.reload_time = autocvar_g_balance_uzi_reload_time; - self.reload_sound = "weapons/reload.wav"; - - W_Reload(); -} - // leilei's fancy muzzleflash stuff void UZI_Flash_Go() { @@ -89,25 +66,10 @@ void W_UZI_Attack (float deathtype) if (autocvar_g_casings >= 2) SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self); - // if this weapon is reloadable, decrease its load. Else decrease the player's ammo - if not(self.items & IT_UNLIMITED_WEAPON_AMMO) - { - if(autocvar_g_balance_uzi_reload_ammo) - { - if (self.misc_bulletcounter == 1) - self.clip_load -= autocvar_g_balance_uzi_first_ammo; - else - self.clip_load -= autocvar_g_balance_uzi_sustained_ammo; - self.weapon_load[WEP_UZI] = self.clip_load; - } - else - { - if (self.misc_bulletcounter == 1) - self.ammo_nails -= autocvar_g_balance_uzi_first_ammo; - else - self.ammo_nails -= autocvar_g_balance_uzi_sustained_ammo; - } - } + if (self.misc_bulletcounter == 1) + W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_first_ammo, autocvar_g_balance_uzi_reload_ammo); + else + W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo); } // weapon frames @@ -121,6 +83,7 @@ void uzi_fire1_02() if (self.BUTTON_ATCK) { if (!weapon_action(self.weapon, WR_CHECKAMMO2)) + if not(self.items & IT_UNLIMITED_WEAPON_AMMO) { W_SwitchWeapon_Force(self, w_getbestweapon(self)); w_ready(); @@ -139,17 +102,7 @@ void uzi_mode1_fire_auto() { float uzi_spread; - // if this weapon is reloadable, decrease its load. Else decrease the player's ammo - if not(self.items & IT_UNLIMITED_WEAPON_AMMO) - { - if(autocvar_g_balance_uzi_reload_ammo) - { - self.clip_load -= autocvar_g_balance_uzi_sustained_ammo; - self.weapon_load[WEP_UZI] = self.clip_load; - } - else - self.ammo_nails -= autocvar_g_balance_uzi_sustained_ammo; - } + W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo); if (self.BUTTON_ATCK) weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_uzi_sustained_refire, uzi_mode1_fire_auto); @@ -161,6 +114,7 @@ void uzi_mode1_fire_auto() } if (!weapon_action(self.weapon, WR_CHECKAMMO1)) + if not(self.items & IT_UNLIMITED_WEAPON_AMMO) { W_SwitchWeapon_Force(self, w_getbestweapon(self)); w_ready(); @@ -238,7 +192,7 @@ float w_uzi(float req) else if (req == WR_THINK) { if(autocvar_g_balance_uzi_reload_ammo && self.clip_load < min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo)) // forced reload - W_UZI_Reload(); + weapon_action(self.weapon, WR_RELOAD); else if(autocvar_g_balance_uzi_mode == 1) { if (self.BUTTON_ATCK) @@ -258,17 +212,7 @@ float w_uzi(float req) return FALSE; } - // if this weapon is reloadable, decrease its load. Else decrease the player's ammo - if not(self.items & IT_UNLIMITED_WEAPON_AMMO) - { - if(autocvar_g_balance_uzi_reload_ammo) - { - self.clip_load -= autocvar_g_balance_uzi_burst_ammo; - self.weapon_load[WEP_UZI] = self.clip_load; - } - else - self.ammo_nails -= autocvar_g_balance_uzi_burst_ammo; - } + W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_burst_ammo, autocvar_g_balance_uzi_reload_ammo); self.misc_bulletcounter = autocvar_g_balance_uzi_burst * -1; uzi_mode1_fire_burst(); @@ -301,12 +245,12 @@ float w_uzi(float req) precache_model ("models/weapons/v_uzi.md3"); precache_model ("models/weapons/h_uzi.iqm"); precache_sound ("weapons/uzi_fire.wav"); - precache_sound ("weapons/reload.wav"); + //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else } else if (req == WR_SETUP) { weapon_setup(WEP_UZI); - W_UZI_SetAmmoCounter(); + self.current_ammo = ammo_nails; } else if (req == WR_CHECKAMMO1) { @@ -340,14 +284,9 @@ float w_uzi(float req) } return ammo_amount; } - else if (req == WR_RESETPLAYER) - { - // all weapons must be fully loaded when we spawn - self.weapon_load[WEP_UZI] = autocvar_g_balance_uzi_reload_ammo; - } else if (req == WR_RELOAD) { - W_UZI_Reload(); + W_Reload(min(max(autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_first_ammo), autocvar_g_balance_uzi_burst_ammo), autocvar_g_balance_uzi_reload_ammo, autocvar_g_balance_uzi_reload_time, "weapons/reload.wav"); } return TRUE; };