mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-08 22:31:36 -05:00
153 lines
4.0 KiB
Plaintext
153 lines
4.0 KiB
Plaintext
#include maps\mp\zombies\_zm_weapon_locker;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\_utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
#include maps\mp\zombies\_zm_magicbox;
|
|
#include maps\mp\zombies\_zm_weapons;
|
|
#include maps\mp\zombies\_zm_stats;
|
|
#include maps\mp\zombies\_zm_unitrigger;
|
|
#include maps\mp\zombies\_zm_audio;
|
|
|
|
triggerweaponslockerisvalidweaponpromptupdate( player, weaponname )
|
|
{
|
|
self thread show_current_weapon(player);
|
|
|
|
retrievingweapon = player wl_has_stored_weapondata();
|
|
|
|
if ( !retrievingweapon )
|
|
{
|
|
weaponname = player get_nonalternate_weapon( weaponname );
|
|
|
|
if ( !triggerweaponslockerisvalidweapon( weaponname ) )
|
|
self sethintstring( &"ZOMBIE_WEAPON_LOCKER_DENY" );
|
|
else
|
|
self sethintstring( &"ZOMBIE_WEAPON_LOCKER_STORE" );
|
|
}
|
|
else
|
|
{
|
|
weapondata = player wl_get_stored_weapondata();
|
|
|
|
if ( isdefined( level.remap_weapon_locker_weapons ) )
|
|
weapondata = remap_weapon( weapondata, level.remap_weapon_locker_weapons );
|
|
|
|
weapontogive = weapondata["name"];
|
|
primaries = player getweaponslistprimaries();
|
|
maxweapons = get_player_weapon_limit( player );
|
|
weaponname = player get_nonalternate_weapon( weaponname );
|
|
|
|
if ( isdefined( primaries ) && primaries.size >= maxweapons || weapontogive == weaponname )
|
|
{
|
|
if ( !triggerweaponslockerisvalidweapon( weaponname ) )
|
|
{
|
|
self sethintstring( &"ZOMBIE_WEAPON_LOCKER_DENY" );
|
|
return;
|
|
}
|
|
}
|
|
|
|
self sethintstring( &"ZOMBIE_WEAPON_LOCKER_GRAB" );
|
|
}
|
|
}
|
|
|
|
show_current_weapon(player)
|
|
{
|
|
stub = self.stub;
|
|
|
|
if (!isDefined(stub.weaponlockerhud))
|
|
{
|
|
stub.weaponlockerhud = [];
|
|
}
|
|
|
|
num = player getentitynumber();
|
|
|
|
displayname = "None";
|
|
if (player wl_has_stored_weapondata())
|
|
{
|
|
weapondata = player wl_get_stored_weapondata();
|
|
|
|
if ( isdefined( level.remap_weapon_locker_weapons ) )
|
|
weapondata = remap_weapon( weapondata, level.remap_weapon_locker_weapons );
|
|
|
|
displayname = getweapondisplayname( weapondata["name"] );
|
|
}
|
|
|
|
if (isDefined(stub.weaponlockerhud[num]))
|
|
{
|
|
stub.weaponlockerhud[num] settext( displayname );
|
|
return;
|
|
}
|
|
|
|
hud = newclienthudelem( player );
|
|
hud.alignx = "center";
|
|
hud.aligny = "middle";
|
|
hud.horzalign = "center";
|
|
hud.vertalign = "bottom";
|
|
hud.y = -100;
|
|
hud.foreground = 1;
|
|
hud.hidewheninmenu = 1;
|
|
hud.font = "default";
|
|
hud.fontscale = 1;
|
|
hud.alpha = 1;
|
|
hud.color = ( 1, 1, 1 );
|
|
hud.label = &"Placed Weapon: ";
|
|
hud settext( displayname );
|
|
stub.weaponlockerhud[num] = hud;
|
|
|
|
while ( isDefined( self ) )
|
|
{
|
|
if (!player isTouching(self) || !is_player_valid(player) || player isSprinting() || player isThrowingGrenade())
|
|
{
|
|
hud.alpha = 0;
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
hud.alpha = 1;
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
stub.weaponlockerhud[num] destroy();
|
|
stub.weaponlockerhud[num] = undefined;
|
|
}
|
|
|
|
wl_set_stored_weapondata( weapondata )
|
|
{
|
|
name = weapondata["name"];
|
|
dw_name = weaponDualWieldWeaponName(name);
|
|
alt_name = weaponAltWeaponName(name);
|
|
|
|
clip_missing = weaponClipSize(name) - weapondata["clip"];
|
|
if (clip_missing > weapondata["stock"])
|
|
{
|
|
clip_missing = weapondata["stock"];
|
|
}
|
|
weapondata["clip"] += clip_missing;
|
|
weapondata["stock"] -= clip_missing;
|
|
|
|
if (dw_name != "none")
|
|
{
|
|
clip_dualwield_missing = weaponClipSize(dw_name) - weapondata["lh_clip"];
|
|
if (clip_dualwield_missing > weapondata["stock"])
|
|
{
|
|
clip_dualwield_missing = weapondata["stock"];
|
|
}
|
|
weapondata["lh_clip"] += clip_dualwield_missing;
|
|
weapondata["stock"] -= clip_dualwield_missing;
|
|
}
|
|
|
|
if (alt_name != "none")
|
|
{
|
|
clip_alt_missing = weaponClipSize(alt_name) - weapondata["alt_clip"];
|
|
if (clip_alt_missing > weapondata["alt_stock"])
|
|
{
|
|
clip_alt_missing = weapondata["alt_stock"];
|
|
}
|
|
weapondata["alt_clip"] += clip_alt_missing;
|
|
weapondata["alt_stock"] -= clip_alt_missing;
|
|
}
|
|
|
|
if ( level.weapon_locker_online )
|
|
self set_stored_weapondata( weapondata, level.weapon_locker_map );
|
|
else
|
|
self.stored_weapon_data = weapondata;
|
|
} |