mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 21:59:49 -05:00
160 lines
3.8 KiB
Plaintext
160 lines
3.8 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 = &"MPUI_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 = &"ZOMBIE_HUD_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;
|
|
} |