From 4fdc6b72375c3abbd32a7ba39d6f0885569ac8e1 Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Thu, 16 Mar 2023 22:43:55 -0700 Subject: [PATCH] Wallbuys: purchasing ammo refills clip ammo Wallbuys: ammo can be purchased if only alt weapon ammo has been used --- README.md | 2 ++ scripts/zm/replaced/_zm_weapons.gsc | 30 +++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 0ae0496b..d3e1ca34 100644 --- a/README.md +++ b/README.md @@ -212,8 +212,10 @@ * Max ammo no longer fills clip ammo ## Wallbuys +* Purchasing ammo refills clip ammo * Increased trigger radius * Decreased upgraded ammo cost from 4500 to 2500 +* Ammo can be purchased if only alt weapon ammo has been used * Lethal grenade hint string no longer displays "ammo" after purchasing ## Mystery Box diff --git a/scripts/zm/replaced/_zm_weapons.gsc b/scripts/zm/replaced/_zm_weapons.gsc index 77ce4f30..dc01518e 100644 --- a/scripts/zm/replaced/_zm_weapons.gsc +++ b/scripts/zm/replaced/_zm_weapons.gsc @@ -171,15 +171,25 @@ ammo_give( weapon ) if ( isdefined( weapon ) ) { - stockmax = 0; stockmax = weaponstartammo( weapon ); - clipcount = self getweaponammoclip( weapon ); - currstock = self getammocount( weapon ); + clipmax = weaponclipsize( weapon ); + ammocount = self getammocount( weapon ); - if ( currstock - clipcount >= stockmax ) - give_ammo = 0; - else - give_ammo = 1; + give_ammo = ammocount < (stockmax + clipmax); + + if (!give_ammo) + { + alt_weap = weaponaltweaponname( weapon ); + + if ( "none" != alt_weap ) + { + stockmax = weaponstartammo( alt_weap ); + clipmax = weaponclipsize( alt_weap ); + ammocount = self getammocount( alt_weap ); + + give_ammo = ammocount < (stockmax + clipmax); + } + } } } else if ( self has_weapon_or_upgrade( weapon ) ) @@ -192,10 +202,14 @@ ammo_give( weapon ) { self play_sound_on_ent( "purchase" ); self givemaxammo( weapon ); + self setWeaponAmmoClip( weapon, weaponClipSize(weapon) ); alt_weap = weaponaltweaponname( weapon ); if ( "none" != alt_weap ) - self givemaxammo( alt_weap ); + { + self givemaxammo( alt_weap ); + self setWeaponAmmoClip( alt_weap, weaponClipSize(alt_weap) ); + } self scripts\zm\_zm_reimagined::change_weapon_ammo(weapon);