mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 07:08:06 -05:00
151 lines
4.7 KiB
Plaintext
151 lines
4.7 KiB
Plaintext
#include maps\mp\zombies\_zm_melee_weapon;
|
|
#include maps\mp\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
#include maps\mp\zombies\_zm_weapons;
|
|
|
|
change_melee_weapon( weapon_name, current_weapon )
|
|
{
|
|
current_melee_weapon = self get_player_melee_weapon();
|
|
if ( isDefined( current_melee_weapon ) && current_melee_weapon != weapon_name )
|
|
{
|
|
self takeweapon( current_melee_weapon );
|
|
unacquire_weapon_toggle( current_melee_weapon );
|
|
}
|
|
self set_player_melee_weapon( weapon_name );
|
|
had_ballistic = 0;
|
|
had_ballistic_upgraded = 0;
|
|
ballistic_was_primary = 0;
|
|
old_ballistic = undefined;
|
|
ballistic_ammo_clip = 0;
|
|
ballistic_ammo_stock = 0;
|
|
primaryweapons = self getweaponslistprimaries();
|
|
i = 0;
|
|
while ( i < primaryweapons.size )
|
|
{
|
|
primary_weapon = primaryweapons[ i ];
|
|
if ( issubstr( primary_weapon, "knife_ballistic_" ) )
|
|
{
|
|
had_ballistic = 1;
|
|
if ( primary_weapon == current_weapon )
|
|
{
|
|
ballistic_was_primary = 1;
|
|
}
|
|
old_ballistic = primary_weapon;
|
|
ballistic_ammo_clip = self getWeaponAmmoClip( primary_weapon );
|
|
ballistic_ammo_stock = self getWeaponAmmoStock( primary_weapon );
|
|
self notify( "zmb_lost_knife" );
|
|
self takeweapon( primary_weapon );
|
|
unacquire_weapon_toggle( primary_weapon );
|
|
if ( issubstr( primary_weapon, "upgraded" ) )
|
|
{
|
|
had_ballistic_upgraded = 1;
|
|
}
|
|
}
|
|
i++;
|
|
}
|
|
if ( had_ballistic )
|
|
{
|
|
if ( had_ballistic_upgraded )
|
|
{
|
|
new_ballistic = level.ballistic_upgraded_weapon_name[ weapon_name ];
|
|
if ( ballistic_was_primary )
|
|
{
|
|
current_weapon = new_ballistic;
|
|
}
|
|
self giveweapon( new_ballistic, 0, self maps\mp\zombies\_zm_weapons::get_pack_a_punch_weapon_options( new_ballistic ) );
|
|
}
|
|
else
|
|
{
|
|
new_ballistic = level.ballistic_weapon_name[ weapon_name ];
|
|
if ( ballistic_was_primary )
|
|
{
|
|
current_weapon = new_ballistic;
|
|
}
|
|
self giveweapon( new_ballistic, 0 );
|
|
}
|
|
self giveMaxAmmo( new_ballistic );
|
|
self seteverhadweaponall( 1 );
|
|
}
|
|
return current_weapon;
|
|
}
|
|
|
|
give_melee_weapon( vo_dialog_id, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, flourish_fn, trigger )
|
|
{
|
|
if ( isdefined( flourish_fn ) )
|
|
self thread [[ flourish_fn ]]();
|
|
|
|
self thread do_melee_weapon_change( weapon_name );
|
|
|
|
self.pre_temp_weapon = self do_melee_weapon_flourish_begin( flourish_weapon_name );
|
|
self maps\mp\zombies\_zm_audio::create_and_play_dialog( "weapon_pickup", vo_dialog_id );
|
|
self waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" );
|
|
self do_melee_weapon_flourish_end( self.pre_temp_weapon, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name );
|
|
|
|
if ( self maps\mp\zombies\_zm_laststand::player_is_in_laststand() || isdefined( self.intermission ) && self.intermission )
|
|
return;
|
|
|
|
self.pre_temp_weapon = undefined;
|
|
|
|
if ( !( isdefined( level._allow_melee_weapon_switching ) && level._allow_melee_weapon_switching ) )
|
|
{
|
|
if ( isdefined( trigger ) )
|
|
trigger setinvisibletoplayer( self );
|
|
|
|
self trigger_hide_all();
|
|
}
|
|
}
|
|
|
|
do_melee_weapon_change( weapon_name )
|
|
{
|
|
self endon( "disconnect" );
|
|
self endon( "death" );
|
|
self endon( "fake_death" );
|
|
self endon( "player_downed" );
|
|
|
|
self waittill_any( "weapon_change", "weapon_change_complete" );
|
|
|
|
self giveweapon( weapon_name );
|
|
self.pre_temp_weapon = change_melee_weapon( weapon_name, self.pre_temp_weapon );
|
|
}
|
|
|
|
do_melee_weapon_flourish_end( gun, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name )
|
|
{
|
|
assert( !is_zombie_perk_bottle( gun ) );
|
|
assert( gun != level.revive_tool );
|
|
self enable_player_move_states();
|
|
|
|
self takeweapon( flourish_weapon_name );
|
|
|
|
if ( self maps\mp\zombies\_zm_laststand::player_is_in_laststand() || isdefined( self.intermission ) && self.intermission )
|
|
{
|
|
self.lastactiveweapon = self.pre_temp_weapon;
|
|
return;
|
|
}
|
|
|
|
if ( self is_multiple_drinking() )
|
|
{
|
|
self decrement_is_drinking();
|
|
return;
|
|
}
|
|
else if ( is_melee_weapon( gun ) )
|
|
{
|
|
self switchtoweapon( weapon_name );
|
|
self decrement_is_drinking();
|
|
return;
|
|
}
|
|
else if ( gun != "none" && !is_placeable_mine( gun ) && !is_equipment( gun ) )
|
|
self switchtoweapon( gun );
|
|
else
|
|
{
|
|
primaryweapons = self getweaponslistprimaries();
|
|
|
|
if ( isdefined( primaryweapons ) && primaryweapons.size > 0 )
|
|
self switchtoweapon( primaryweapons[0] );
|
|
}
|
|
|
|
self waittill( "weapon_change_complete" );
|
|
|
|
if ( !self maps\mp\zombies\_zm_laststand::player_is_in_laststand() && !( isdefined( self.intermission ) && self.intermission ) )
|
|
self decrement_is_drinking();
|
|
} |