1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 15:17:57 -05:00

Encounter: fix weapon restore

This commit is contained in:
Jbleezy
2023-04-23 01:20:08 -07:00
parent e98d1db7a1
commit 1ec53cc6b7
3 changed files with 71 additions and 58 deletions

View File

@ -51,6 +51,7 @@ main()
replaceFunc(maps\mp\zombies\_zm_audio_announcer::playleaderdialogonplayer, scripts\zm\replaced\_zm_audio_announcer::playleaderdialogonplayer);
replaceFunc(maps\mp\zombies\_zm_stats::set_global_stat, scripts\zm\replaced\_zm_stats::set_global_stat);
replaceFunc(maps\mp\zombies\_zm_playerhealth::playerhealthregen, scripts\zm\replaced\_zm_playerhealth::playerhealthregen);
replaceFunc(maps\mp\zombies\_zm_utility::init_player_offhand_weapons, scripts\zm\replaced\_zm_utility::init_player_offhand_weapons);
replaceFunc(maps\mp\zombies\_zm_utility::is_headshot, scripts\zm\replaced\_zm_utility::is_headshot);
replaceFunc(maps\mp\zombies\_zm_utility::shock_onpain, scripts\zm\replaced\_zm_utility::shock_onpain);
replaceFunc(maps\mp\zombies\_zm_utility::create_zombie_point_of_interest_attractor_positions, scripts\zm\replaced\_zm_utility::create_zombie_point_of_interest_attractor_positions);

View File

@ -2,6 +2,23 @@
#include common_scripts\utility;
#include maps\mp\zombies\_zm_utility;
init_player_offhand_weapons()
{
if ( !is_true( self.init_player_offhand_weapons_override ) )
{
if ( is_gametype_active( "zgrief" ) && is_true( self.player_initialized ) )
{
return;
}
}
init_player_lethal_grenade();
init_player_tactical_grenade();
init_player_placeable_mine();
init_player_melee_weapon();
init_player_equipment();
}
is_headshot( sweapon, shitloc, smeansofdeath )
{
if ( smeansofdeath == "MOD_MELEE" || smeansofdeath == "MOD_BAYONET" || smeansofdeath == "MOD_IMPACT" || smeansofdeath == "MOD_UNKNOWN" || smeansofdeath == "MOD_IMPACT" )
@ -241,7 +258,12 @@ get_current_zone( return_zone )
is_temporary_zombie_weapon( str_weapon )
{
return is_zombie_perk_bottle( str_weapon ) || str_weapon == level.revive_tool || str_weapon == "zombie_builder_zm" || str_weapon == "chalk_draw_zm" || str_weapon == "no_hands_zm" || str_weapon == level.machine_assets["packapunch"].weapon || issubstr( str_weapon, "_flourish" );
if ( isdefined( level.machine_assets["packapunch"] ) && isdefined( level.machine_assets["packapunch"].weapon ) && str_weapon == level.machine_assets["packapunch"].weapon )
{
return 1;
}
return is_zombie_perk_bottle( str_weapon ) || str_weapon == level.revive_tool || str_weapon == "zombie_builder_zm" || str_weapon == "chalk_draw_zm" || str_weapon == "no_hands_zm" || issubstr( str_weapon, "_flourish" );
}
wait_network_frame()

View File

@ -878,6 +878,9 @@ on_player_bleedout()
if(level.scr_zm_ui_gametype_obj == "zsnr")
{
self.grief_savedweapon_weapons = undefined;
self.init_player_offhand_weapons_override = 1;
self init_player_offhand_weapons();
self.init_player_offhand_weapons_override = undefined;
self bleedout_feed();
self add_grief_bleedout_score();
level thread update_players_on_bleedout( self );
@ -2213,17 +2216,6 @@ grief_laststand_weapons_return()
continue;
}
if ( isweaponprimary( self.grief_savedweapon_weapons[ i ] ) )
{
if ( primary_weapons_returned >= get_player_weapon_limit( self ) )
{
i++;
continue;
}
primary_weapons_returned++;
}
if ( is_temporary_zombie_weapon( self.grief_savedweapon_weapons[ i ] ) )
{
i++;
@ -2236,6 +2228,17 @@ grief_laststand_weapons_return()
continue;
}
if ( isweaponprimary( self.grief_savedweapon_weapons[ i ] ) )
{
if ( primary_weapons_returned >= get_player_weapon_limit( self ) )
{
i++;
continue;
}
primary_weapons_returned++;
}
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;
@ -2301,52 +2304,6 @@ grief_laststand_weapons_return()
i++;
}
self thread grief_laststand_items_return();
self.grief_savedweapon_weapons = undefined;
if ( isDefined( self.pre_temp_weapon ) && self hasWeapon( self.pre_temp_weapon ) )
{
self switchtoweapon( self.pre_temp_weapon );
self.pre_temp_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 ] );
return 1;
}
self maps\mp\zombies\_zm_weapons::give_fallback_weapon();
return 1;
}
grief_laststand_items_return()
{
self endon("disconnect");
if(is_respawn_gamemode())
{
// needs a wait or some items aren't given back on respawn
wait 0.05;
}
if ( isDefined( self.grief_savedweapon_melee ) )
{
self set_player_melee_weapon( self.grief_savedweapon_melee );
@ -2421,6 +2378,39 @@ grief_laststand_items_return()
self [[ self.player_shield_reset_health ]]();
}
}
self.grief_savedweapon_weapons = undefined;
if ( isDefined( self.pre_temp_weapon ) && self hasWeapon( self.pre_temp_weapon ) )
{
self switchtoweapon( self.pre_temp_weapon );
self.pre_temp_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 ] );
return 1;
}
self maps\mp\zombies\_zm_weapons::give_fallback_weapon();
return 1;
}
sudden_death()