1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-23 21:50:46 -05:00

Encounter: fix respawn weapon switch

This commit is contained in:
Jbleezy
2023-04-19 18:23:56 -07:00
parent eaddf26f22
commit 540ce0de5d
3 changed files with 61 additions and 14 deletions

View File

@ -78,6 +78,7 @@ main()
replaceFunc(maps\mp\zombies\_zm_magicbox::treasure_chest_timeout, scripts\zm\replaced\_zm_magicbox::treasure_chest_timeout);
replaceFunc(maps\mp\zombies\_zm_magicbox::timer_til_despawn, scripts\zm\replaced\_zm_magicbox::timer_til_despawn);
replaceFunc(maps\mp\zombies\_zm_perks::init, scripts\zm\replaced\_zm_perks::init);
replaceFunc(maps\mp\zombies\_zm_perks::vending_trigger_post_think, scripts\zm\replaced\_zm_perks::vending_trigger_post_think);
replaceFunc(maps\mp\zombies\_zm_perks::vending_weapon_upgrade, scripts\zm\replaced\_zm_perks::vending_weapon_upgrade);
replaceFunc(maps\mp\zombies\_zm_perks::give_perk, scripts\zm\replaced\_zm_perks::give_perk);
replaceFunc(maps\mp\zombies\_zm_perks::perk_think, scripts\zm\replaced\_zm_perks::perk_think);

View File

@ -107,6 +107,46 @@ init()
level thread perk_hostmigration();
}
vending_trigger_post_think( player, perk )
{
player endon( "disconnect" );
player endon( "end_game" );
player endon( "perk_abort_drinking" );
player.pre_bottle_weapon = player perk_give_bottle_begin( perk );
evt = player waittill_any_return( "fake_death", "death", "player_downed", "weapon_change_complete" );
if ( evt == "weapon_change_complete" )
player thread wait_give_perk( perk, 1 );
player perk_give_bottle_end( player.pre_bottle_weapon, perk );
if ( player maps\mp\zombies\_zm_laststand::player_is_in_laststand() || isdefined( player.intermission ) && player.intermission )
return;
player.pre_bottle_weapon = undefined;
player notify( "burp" );
if ( isdefined( level.pers_upgrade_cash_back ) && level.pers_upgrade_cash_back )
player maps\mp\zombies\_zm_pers_upgrades_functions::cash_back_player_drinks_perk();
if ( isdefined( level.pers_upgrade_perk_lose ) && level.pers_upgrade_perk_lose )
player thread maps\mp\zombies\_zm_pers_upgrades_functions::pers_upgrade_perk_lose_bought();
if ( isdefined( level.perk_bought_func ) )
player [[ level.perk_bought_func ]]( perk );
player.perk_purchased = undefined;
if ( is_false( self.power_on ) )
{
wait 1;
perk_pause( self.script_noteworthy );
}
bbprint( "zombie_uses", "playername %s playerscore %d round %d name %s x %f y %f z %f type %s", player.name, player.score, level.round_number, perk, self.origin, "perk" );
}
vending_weapon_upgrade()
{
level endon( "Pack_A_Punch_off" );

View File

@ -2142,7 +2142,7 @@ grief_laststand_weapon_save( einflictor, attacker, idamage, smeansofdeath, sweap
self.grief_savedweapon_weaponsammo_stock = [];
self.grief_savedweapon_weaponsammo_clip_alt = [];
self.grief_savedweapon_weaponsammo_stock_alt = [];
self.grief_savedweapon_currentweapon = self getcurrentweapon();
self.grief_savedweapon_currentweapon = maps\mp\zombies\_zm_weapons::get_nonalternate_weapon(self getcurrentweapon()); // can't switch to alt weapon
self.grief_savedweapon_melee = self get_player_melee_weapon();
self.grief_savedweapon_grenades = self get_player_lethal_grenade();
self.grief_savedweapon_tactical = self get_player_tactical_grenade();
@ -2150,12 +2150,6 @@ grief_laststand_weapon_save( einflictor, attacker, idamage, smeansofdeath, sweap
self.grief_savedweapon_equipment = self get_player_equipment();
self.grief_hasriotshield = undefined;
// can't switch to alt weapon
if(is_alt_weapon(self.grief_savedweapon_currentweapon))
{
self.grief_savedweapon_currentweapon = maps\mp\zombies\_zm_weapons::get_nonalternate_weapon(self.grief_savedweapon_currentweapon);
}
for ( i = 0; i < self.grief_savedweapon_weapons.size; i++ )
{
self.grief_savedweapon_weaponsammo_clip[i] = self getweaponammoclip(self.grief_savedweapon_weapons[i]);
@ -2336,16 +2330,28 @@ grief_laststand_weapons_return()
self.grief_savedweapon_weapons = undefined;
primaries = self getweaponslistprimaries();
foreach ( weapon in primaries )
if ( isDefined( self.pre_bottle_weapon ) && self hasWeapon( self.pre_bottle_weapon ) )
{
if ( isDefined( self.grief_savedweapon_currentweapon ) && self.grief_savedweapon_currentweapon == weapon )
{
self switchtoweapon( weapon );
self switchtoweapon( self.pre_bottle_weapon );
self.pre_bottle_weapon = undefined;
return 1;
}
if ( isDefined( self.pre_meat_weapon ) && self hasWeapon( self.pre_meat_weapon ) )
{
self switchtoweapon( self.pre_meat_weapon );
self.pre_meat_weapon = undefined;
return 1;
}
if ( isDefined( self.grief_savedweapon_currentweapon ) && self hasWeapon( self.grief_savedweapon_currentweapon ) )
{
self switchtoweapon( self.grief_savedweapon_currentweapon );
self.grief_savedweapon_currentweapon = undefined;
return 1;
}
primaries = self getweaponslistprimaries();
if ( primaries.size > 0 )
{
self switchtoweapon( primaries[ 0 ] );