1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-12 08:08:00 -05:00

Encounter: ammo used in last stand is removed on respawn

This commit is contained in:
Jbleezy
2023-03-21 17:33:05 -07:00
parent 4a08dcee3f
commit 215bc1496e
3 changed files with 60 additions and 4 deletions

View File

@ -1839,6 +1839,8 @@ last_stand_pistol_swap()
amt = self.stored_weapon_info[self.laststandpistol].total_amt; amt = self.stored_weapon_info[self.laststandpistol].total_amt;
} }
self.stored_weapon_info[self.laststandpistol].total_given_amt = amt;
amt -= (self.stored_weapon_info[self.laststandpistol].clip_amt + self.stored_weapon_info[self.laststandpistol].left_clip_amt); amt -= (self.stored_weapon_info[self.laststandpistol].clip_amt + self.stored_weapon_info[self.laststandpistol].left_clip_amt);
self setWeaponAmmoStock(self.laststandpistol, amt); self setWeaponAmmoStock(self.laststandpistol, amt);
@ -1852,6 +1854,8 @@ last_stand_pistol_swap()
amt = self.stored_weapon_info[self.laststandpistol].total_amt; amt = self.stored_weapon_info[self.laststandpistol].total_amt;
} }
self.stored_weapon_info[self.laststandpistol].total_given_amt = amt;
amt -= (self.stored_weapon_info[self.laststandpistol].clip_amt + self.stored_weapon_info[self.laststandpistol].left_clip_amt); amt -= (self.stored_weapon_info[self.laststandpistol].clip_amt + self.stored_weapon_info[self.laststandpistol].left_clip_amt);
self setweaponammostock( self.laststandpistol, amt ); self setweaponammostock( self.laststandpistol, amt );
@ -1861,13 +1865,14 @@ last_stand_pistol_swap()
self switchtoweapon( self.laststandpistol ); self switchtoweapon( self.laststandpistol );
} }
last_stand_restore_pistol_ammo() last_stand_restore_pistol_ammo(only_store_info = false)
{ {
self.weapon_taken_by_losing_specialty_additionalprimaryweapon = undefined; self.weapon_taken_by_losing_specialty_additionalprimaryweapon = undefined;
if ( !isDefined( self.stored_weapon_info ) ) if ( !isDefined( self.stored_weapon_info ) )
{ {
return; return;
} }
weapon_inventory = self getweaponslist( 1 ); weapon_inventory = self getweaponslist( 1 );
weapon_to_restore = getarraykeys( self.stored_weapon_info ); weapon_to_restore = getarraykeys( self.stored_weapon_info );
i = 0; i = 0;
@ -1879,12 +1884,14 @@ last_stand_restore_pistol_ammo()
i++; i++;
continue; continue;
} }
for ( j = 0; j < weapon_to_restore.size; j++ ) for ( j = 0; j < weapon_to_restore.size; j++ )
{ {
check_weapon = weapon_to_restore[ j ]; check_weapon = weapon_to_restore[ j ];
if ( weapon == check_weapon ) if ( weapon == check_weapon )
{ {
dual_wield_name = weapondualwieldweaponname( weapon_to_restore[ j ] ); dual_wield_name = weapondualwieldweaponname( weapon_to_restore[ j ] );
if ( weapon != level.default_laststandpistol ) if ( weapon != level.default_laststandpistol )
{ {
last_clip = self getweaponammoclip( weapon ); last_clip = self getweaponammoclip( weapon );
@ -1896,6 +1903,13 @@ last_stand_restore_pistol_ammo()
last_stock = self getweaponammostock( weapon ); last_stock = self getweaponammostock( weapon );
last_total = last_clip + last_left_clip + last_stock; last_total = last_clip + last_left_clip + last_stock;
used_amt = self.stored_weapon_info[ weapon ].given_amt - last_total; used_amt = self.stored_weapon_info[ weapon ].given_amt - last_total;
self.stored_weapon_info[ weapon ].total_used_amt = self.stored_weapon_info[ weapon ].total_given_amt - last_total;
if (only_store_info)
{
break;
}
if ( used_amt >= self.stored_weapon_info[ weapon ].stock_amt ) if ( used_amt >= self.stored_weapon_info[ weapon ].stock_amt )
{ {
used_amt = used_amt - self.stored_weapon_info[weapon].stock_amt; used_amt = used_amt - self.stored_weapon_info[weapon].stock_amt;
@ -1915,6 +1929,7 @@ last_stand_restore_pistol_ammo()
} }
} }
} }
self setweaponammostock( weapon_to_restore[ j ], self.stored_weapon_info[weapon_to_restore[ j ] ].stock_amt ); self setweaponammostock( weapon_to_restore[ j ], self.stored_weapon_info[weapon_to_restore[ j ] ].stock_amt );
break; break;
} }

View File

@ -149,11 +149,14 @@ onplayerspawned()
{ {
self [[ level.givecustomcharacters ]](); self [[ level.givecustomcharacters ]]();
} }
self giveweapon( "knife_zm" );
if ( isDefined( level.onplayerspawned_restore_previous_weapons ) ) if ( isDefined( level.onplayerspawned_restore_previous_weapons ) )
{ {
weapons_restored = self [[ level.onplayerspawned_restore_previous_weapons ]](); weapons_restored = self [[ level.onplayerspawned_restore_previous_weapons ]]();
} }
else
{
self giveweapon( "knife_zm" );
}
if ( isDefined( weapons_restored ) && !weapons_restored || !isDefined( weapons_restored ) ) if ( isDefined( weapons_restored ) && !weapons_restored || !isDefined( weapons_restored ) )
{ {
self give_start_weapon( 1 ); self give_start_weapon( 1 );

View File

@ -882,6 +882,11 @@ on_player_bleedout()
self.statusicon = "hud_status_dead"; self.statusicon = "hud_status_dead";
self.player_waypoint.alpha = 0; self.player_waypoint.alpha = 0;
if(isDefined(level.zombie_last_stand_ammo_return))
{
self [[level.zombie_last_stand_ammo_return]](1);
}
if(level.scr_zm_ui_gametype_obj == "zgrief") if(level.scr_zm_ui_gametype_obj == "zgrief")
{ {
increment_score(getOtherTeam(self.team)); increment_score(getOtherTeam(self.team));
@ -2154,8 +2159,6 @@ grief_laststand_weapons_return()
return 0; return 0;
} }
self takeAllWeapons(); // fixes player always having knife_zm
primary_weapons_returned = 0; primary_weapons_returned = 0;
i = 0; i = 0;
while ( i < self.grief_savedweapon_weapons.size ) while ( i < self.grief_savedweapon_weapons.size )
@ -2183,6 +2186,41 @@ grief_laststand_weapons_return()
continue; continue;
} }
if (isDefined(self.stored_weapon_info[self.grief_savedweapon_weapons[i]]) && isDefined(self.stored_weapon_info[self.grief_savedweapon_weapons[i]].total_used_amt))
{
used_amt = self.stored_weapon_info[self.grief_savedweapon_weapons[i]].total_used_amt;
if (used_amt >= self.grief_savedweapon_weaponsammo_stock[i])
{
used_amt = used_amt - self.grief_savedweapon_weaponsammo_stock[i];
self.grief_savedweapon_weaponsammo_stock[i] = 0;
if (used_amt >= self.grief_savedweapon_weaponsammo_clip[i])
{
used_amt -= self.grief_savedweapon_weaponsammo_clip[i];
self.grief_savedweapon_weaponsammo_clip[i] = 0;
if (used_amt >= self.grief_savedweapon_weaponsammo_clip_dualwield[i])
{
used_amt -= self.grief_savedweapon_weaponsammo_clip_dualwield[i];
self.grief_savedweapon_weaponsammo_clip_dualwield[i] = 0;
}
else
{
self.grief_savedweapon_weaponsammo_clip_dualwield[i] -= used_amt;
}
}
else
{
self.grief_savedweapon_weaponsammo_clip[i] -= used_amt;
}
}
else
{
self.grief_savedweapon_weaponsammo_stock[i] -= used_amt;
}
}
self giveweapon( self.grief_savedweapon_weapons[ i ], 0, self maps\mp\zombies\_zm_weapons::get_pack_a_punch_weapon_options( self.grief_savedweapon_weapons[ i ] ) ); self giveweapon( self.grief_savedweapon_weapons[ i ], 0, self maps\mp\zombies\_zm_weapons::get_pack_a_punch_weapon_options( self.grief_savedweapon_weapons[ i ] ) );
if ( isdefined( self.grief_savedweapon_weaponsammo_clip[ i ] ) ) if ( isdefined( self.grief_savedweapon_weaponsammo_clip[ i ] ) )