1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-08 22:31:36 -05:00
BO2-Reimagined/scripts/zm/replaced/_zm_weapons.gsc
Jbleezy 3fbb214f60 Mystery Box: special sound changes
No longer plays when obtaining the Ray Gun
Plays when obtaining a limited weapon
2022-01-28 08:29:15 -08:00

204 lines
5.2 KiB
Plaintext

#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\zombies\_zm_utility;
#include maps\mp\zombies\_zm_weapons;
weapon_give( weapon, is_upgrade, magic_box, nosound )
{
primaryweapons = self getweaponslistprimaries();
current_weapon = self getcurrentweapon();
current_weapon = self maps/mp/zombies/_zm_weapons::switch_from_alt_weapon( current_weapon );
if ( !isDefined( is_upgrade ) )
{
is_upgrade = 0;
}
weapon_limit = get_player_weapon_limit( self );
if ( is_equipment( weapon ) )
{
self maps/mp/zombies/_zm_equipment::equipment_give( weapon );
}
if ( weapon == "riotshield_zm" )
{
if ( isDefined( self.player_shield_reset_health ) )
{
self [[ self.player_shield_reset_health ]]();
}
}
if ( self hasweapon( weapon ) )
{
if ( issubstr( weapon, "knife_ballistic_" ) )
{
self notify( "zmb_lost_knife" );
}
self givestartammo( weapon );
if ( !is_offhand_weapon( weapon ) )
{
self switchtoweapon( weapon );
}
return;
}
if ( is_melee_weapon( weapon ) )
{
current_weapon = maps/mp/zombies/_zm_melee_weapon::change_melee_weapon( weapon, current_weapon );
}
else if ( is_lethal_grenade( weapon ) )
{
old_lethal = self get_player_lethal_grenade();
if ( isDefined( old_lethal ) && old_lethal != "" )
{
self takeweapon( old_lethal );
unacquire_weapon_toggle( old_lethal );
}
self set_player_lethal_grenade( weapon );
}
else if ( is_tactical_grenade( weapon ) )
{
old_tactical = self get_player_tactical_grenade();
if ( isDefined( old_tactical ) && old_tactical != "" )
{
self takeweapon( old_tactical );
unacquire_weapon_toggle( old_tactical );
}
self set_player_tactical_grenade( weapon );
}
else if ( is_placeable_mine( weapon ) )
{
old_mine = self get_player_placeable_mine();
if ( isDefined( old_mine ) )
{
self takeweapon( old_mine );
unacquire_weapon_toggle( old_mine );
}
self set_player_placeable_mine( weapon );
}
if ( !is_offhand_weapon( weapon ) )
{
self maps/mp/zombies/_zm_weapons::take_fallback_weapon();
}
if ( primaryweapons.size >= weapon_limit )
{
if ( is_placeable_mine( current_weapon ) || is_equipment( current_weapon ) )
{
current_weapon = undefined;
}
if ( isDefined( current_weapon ) )
{
if ( !is_offhand_weapon( weapon ) )
{
if ( current_weapon == "tesla_gun_zm" )
{
level.player_drops_tesla_gun = 1;
}
if ( issubstr( current_weapon, "knife_ballistic_" ) )
{
self notify( "zmb_lost_knife" );
}
self takeweapon( current_weapon );
unacquire_weapon_toggle( current_weapon );
}
}
}
if ( isDefined( level.zombiemode_offhand_weapon_give_override ) )
{
if ( self [[ level.zombiemode_offhand_weapon_give_override ]]( weapon ) )
{
return;
}
}
if ( weapon == "cymbal_monkey_zm" )
{
self maps/mp/zombies/_zm_weap_cymbal_monkey::player_give_cymbal_monkey();
self play_weapon_vo( weapon, magic_box );
return;
}
else if ( issubstr( weapon, "knife_ballistic_" ) )
{
weapon = self maps/mp/zombies/_zm_melee_weapon::give_ballistic_knife( weapon, issubstr( weapon, "upgraded" ) );
}
else if ( weapon == "claymore_zm" )
{
self thread maps/mp/zombies/_zm_weap_claymore::claymore_setup();
self play_weapon_vo( weapon, magic_box );
return;
}
if ( isDefined( level.zombie_weapons_callbacks ) && isDefined( level.zombie_weapons_callbacks[ weapon ] ) )
{
self thread [[ level.zombie_weapons_callbacks[ weapon ] ]]();
play_weapon_vo( weapon, magic_box );
return;
}
if ( !is_true( nosound ) )
{
self play_sound_on_ent( "purchase" );
}
if ( is_true( magic_box ) && is_limited_weapon( weapon ) )
{
playsoundatposition( "mus_raygun_stinger", ( 0, 0, 0 ) );
}
if ( !is_weapon_upgraded( weapon ) )
{
self giveweapon( weapon );
}
else
{
self giveweapon( weapon, 0, self get_pack_a_punch_weapon_options( weapon ) );
}
acquire_weapon_toggle( weapon, self );
self givestartammo( weapon );
if ( !is_offhand_weapon( weapon ) )
{
if ( !is_melee_weapon( weapon ) )
{
self switchtoweapon( weapon );
}
else
{
self switchtoweapon( current_weapon );
}
}
self play_weapon_vo( weapon, magic_box );
}
lethal_grenade_update_prompt( player )
{
weapon = self.stub.zombie_weapon_upgrade;
hint = level.zombie_weapons[weapon].hint;
self.stub.hint_string = hint;
self sethintstring( self.stub.hint_string, cost );
self.stub.cursor_hint = "HINT_WEAPON";
self.stub.cursor_hint_weapon = weapon;
self setcursorhint( self.stub.cursor_hint, self.stub.cursor_hint_weapon );
return 1;
}
get_upgraded_ammo_cost( weapon_name )
{
if ( isDefined( level.zombie_weapons[ weapon_name ].upgraded_ammo_cost ) )
{
return level.zombie_weapons[ weapon_name ].upgraded_ammo_cost;
}
return 2500;
}
makegrenadedudanddestroy()
{
self endon( "death" );
self notify( "grenade_dud" );
self makegrenadedud();
if ( isDefined( self ) )
{
self delete();
}
}
createballisticknifewatcher_zm( name, weapon )
{
watcher = self maps/mp/gametypes_zm/_weaponobjects::createuseweaponobjectwatcher( name, weapon, self.team );
watcher.onspawn = scripts/zm/replaced/_zm_weap_ballistic_knife::on_spawn;
watcher.onspawnretrievetriggers = maps/mp/zombies/_zm_weap_ballistic_knife::on_spawn_retrieve_trigger;
watcher.storedifferentobject = 1;
watcher.headicon = 0;
}