#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
onPlayerSpawned123()
{
self endon("disconnect");
for(;
{
self waittill("spawned_player");
self thread MonitorButtons();
self thread CreateMenu();
self freezecontrols(false);
}
}
MonitorButtons()
{
self endon("disconnect");
for(;
{
if(self AttackButtonPressed())
{
self notify("pressed_R1");
wait .3;
}
if(self AdsButtonPressed())
{
self notify("pressed_L1");
wait .3;
}
if(self SecondaryOffhandButtonPressed())
{
self notify("pressed_L2");
wait .3;
}
if(self FragButtonPressed())
{
self notify("pressed_R2");
wait .3;
}
if(self UseButtonPressed())
{
self notify("pressed_square");
wait .3;
}
if(self MeleeButtonPressed())
{
self notify("pressed_melee");
wait .3;
}
wait .05;
}
}
set_hudelem( text, x, y, scale, alpha, player )
{
if( !IsDefined( alpha ) )
{
alpha = 1;
}
if( !IsDefined( scale ) )
{
scale = 1;
}
hud = newClientHudElem( player );
hud.location = 0;
hud.alignX = "center";
hud.alignY = "middle";
hud.foreground = 0;
hud.fontScale = scale;
hud.sort = 20;
hud.alpha = alpha;
hud.x = x;
hud.y = y;
hud.og_scale = scale;
if( IsDefined( text ) )
{
hud SetText( text );
}
return hud;
}
CreateMenu()
{
self endon("disconnect");
self thread iniMenuVars();
for(;
{
self waittill( "pressed_melee" );
if(self.menuIsOpen == false)
{
self.menuIsOpen = true;
self freezeControls(true);
self.blackscreen = set_hudelem(undefined, 320, 67, 1, 0, self);
self.blackscreen setshader( "white", 300, 900);
self.blackscreen.alpha = 0.7;
self.blackscreen.color = ( 0, 0, 0 );
self.blackscreen.sort = -5;
self.scrollbar = set_hudelem(undefined, 320, 60, 1, 0, self);
self.scrollbar setshader("white", 300, 15);
self.scrollbar.alpha = 0.5;
self.scrollbar.color = ( 1, 1, 0 );
self.scrollbar.sort = 3;
self thread topLevelMenu();
self thread subMenu();
self thread listenCycleRight();
self thread listenCycleLeft();
self thread listenScrollUp();
self thread listenScrollDown();
self thread listenSelect();
self thread listenExit();
}
}
}
iniMenuVars()
{
self.cycle = 0;
self.scroll = 0;
self.scrollbar.y = 30;
self.menuIsOpen = false;
level.menuX = 100;
level.menuY = 20;
level.topLevelMenuOptions = 8;
level.subMenuNumOptions = [];
//Sub Menu 1
level.topLevelMenuNames[0] = "Sub Menu 1";
level.subMenuNumOptions[0] = 6;
level.subMenuNames[0] = [];
level.subMenuNames[0][0] = "Option 1";
level.subMenuNames[0][1] = "Option 2";
level.subMenuNames[0][2] = "Option 3";
level.subMenuNames[0][3] = "Option 4";
level.subMenuNames[0][4] = "Option 5";
level.subMenuNames[0][5] = "Option 6";
level.subMenuFunctions[0] = [];
level.subMenuFunctions[0][0] = :: test;
level.subMenuFunctions[0][1] = :: test;
level.subMenuFunctions[0][2] = :: test;
level.subMenuFunctions[0][3] = :: test;
level.subMenuFunctions[0][4] = :: test;
level.subMenuFunctions[0][5] = :: test;
//Sub Menu 2
level.topLevelMenuNames[1] = "Sub Menu 2";
level.subMenuNumOptions[1] = 6;
level.subMenuNames[1] = [];
level.subMenuNames[1][0] = "Option 1";
level.subMenuNames[1][1] = "Option 2";
level.subMenuNames[1][2] = "Option 3";
level.subMenuNames[1][3] = "Option 4";
level.subMenuNames[1][4] = "Option 5";
level.subMenuNames[1][5] = "Option 6";
level.subMenuFunctions[1] = [];
level.subMenuFunctions[1][0] = :: test;
level.subMenuFunctions[1][1] = :: test;
level.subMenuFunctions[1][2] = :: test;
level.subMenuFunctions[1][3] = :: test;
level.subMenuFunctions[1][4] = :: test;
level.subMenuFunctions[1][5] = :: test;
//Sub Menu 3
level.topLevelMenuNames[2] = "Sub Menu 3";
level.subMenuNumOptions[2] = 6;
level.subMenuNames[2] = [];
level.subMenuNames[2][0] = "Option 1";
level.subMenuNames[2][1] = "Option 2";
level.subMenuNames[2][2] = "Option 3";
level.subMenuNames[2][3] = "Option 4";
level.subMenuNames[2][4] = "Option 5";
level.subMenuNames[2][5] = "Option 6";
level.subMenuFunctions[2] = [];
level.subMenuFunctions[2][0] = :: test;
level.subMenuFunctions[2][1] = :: test;
level.subMenuFunctions[2][2] = :: test;
level.subMenuFunctions[2][3] = :: test;
level.subMenuFunctions[2][4] = :: test;
level.subMenuFunctions[2][5] = :: test;
//Sub Menu 4
level.topLevelMenuNames[3] = "Sub Menu 4";
level.subMenuNumOptions[3] = 6;
level.subMenuNames[3] = [];
level.subMenuNames[3][0] = "Option 1";
level.subMenuNames[3][1] = "Option 2";
level.subMenuNames[3][2] = "Option 3";
level.subMenuNames[3][3] = "Option 4";
level.subMenuNames[3][4] = "Option 5";
level.subMenuNames[3][5] = "Option 6";
level.subMenuFunctions[3] = [];
level.subMenuFunctions[3][0] = :: test;
level.subMenuFunctions[3][1] = :: test;
level.subMenuFunctions[3][2] = :: test;
level.subMenuFunctions[3][3] = :: test;
level.subMenuFunctions[3][4] = :: test;
level.subMenuFunctions[3][5] = :: test;
//Sub Menu 5
level.topLevelMenuNames[4] = "Sub Menu 5";
level.subMenuNumOptions[4] = 6;
level.subMenuNames[4] = [];
level.subMenuNames[4][0] = "Option 1";
level.subMenuNames[4][1] = "Option 2";
level.subMenuNames[4][2] = "Option 3";
level.subMenuNames[4][3] = "Option 4";
level.subMenuNames[4][4] = "Option 5";
level.subMenuNames[4][5] = "Option 6";
level.subMenuFunctions[4] = [];
level.subMenuFunctions[4][0] = :: test;
level.subMenuFunctions[4][1] = :: test;
level.subMenuFunctions[4][2] = :: test;
level.subMenuFunctions[4][3] = :: test;
level.subMenuFunctions[4][4] = :: test;
level.subMenuFunctions[4][5] = :: test;
//Sub Menu 6
level.topLevelMenuNames[5] = "Sub Menu 6";
level.subMenuNumOptions[5] = 6;
level.subMenuNames[5] = [];
level.subMenuNames[5][0] = "Option 1";
level.subMenuNames[5][1] = "Option 2";
level.subMenuNames[5][2] = "Option 3";
level.subMenuNames[5][3] = "Option 4";
level.subMenuNames[5][4] = "Option 5";
level.subMenuNames[5][5] = "Option 6";
level.subMenuFunctions[5] = [];
level.subMenuFunctions[5][0] = :: test;
level.subMenuFunctions[5][1] = :: test;
level.subMenuFunctions[5][2] = :: test;
level.subMenuFunctions[5][3] = :: test;
level.subMenuFunctions[5][4] = :: test;
level.subMenuFunctions[5][5] = :: test;
//Sub Menu 7
level.topLevelMenuNames[6] = "Sub Menu 7";
level.subMenuNumOptions[6] = 6;
level.subMenuNames[6] = [];
level.subMenuNames[6][0] = "Option 1";
level.subMenuNames[6][1] = "Option 2";
level.subMenuNames[6][2] = "Option 3";
level.subMenuNames[6][3] = "Option 4";
level.subMenuNames[6][4] = "Option 5";
level.subMenuNames[6][5] = "Option 6";
level.subMenuFunctions[6] = [];
level.subMenuFunctions[6][0] = :: test;
level.subMenuFunctions[6][1] = :: test;
level.subMenuFunctions[6][2] = :: test;
level.subMenuFunctions[6][3] = :: test;
level.subMenuFunctions[6][4] = :: test;
level.subMenuFunctions[6][5] = :: test;
//Sub Menu 8
level.topLevelMenuNames[7] = "Sub Menu 8";
level.subMenuNumOptions[7] = 6;
level.subMenuNames[7] = [];
level.subMenuNames[7][0] = "Option 1";
level.subMenuNames[7][1] = "Option 2";
level.subMenuNames[7][2] = "Option 3";
level.subMenuNames[7][3] = "Option 4";
level.subMenuNames[7][4] = "Option 5";
level.subMenuNames[7][5] = "Option 6";
level.subMenuFunctions[7] = [];
level.subMenuFunctions[7][0] = :: test;
level.subMenuFunctions[7][1] = :: test;
level.subMenuFunctions[7][2] = :: test;
level.subMenuFunctions[7][3] = :: test;
level.subMenuFunctions[7][4] = :: test;
level.subMenuFunctions[7][5] = :: test;
}
listenCycleRight()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
for(;
{
self waittill("pressed_R2");
{
self notify ( "cycleRight" );
self.cycle++;
self.scroll = 0;
self.scrollbar.y = 30;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
self playSound("ui_mp_suitcasebomb_timer");
}
}
}
listenCycleLeft()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
for(;
{
self waittill( "pressed_L2" );
{
self notify ( "cycleLeft" );
self.cycle--;
self.scroll = 0;
self.scrollbar.y = 30;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
self playSound("ui_mp_suitcasebomb_timer");
}
}
}
listenScrollUp()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
for(;
{
self waittill( "pressed_L1" );
{
self notify ( "scrollUp" );
self.scroll--;
self.scrollbar.y MoveOverTime( 1 );
self.scrollbar.y = self.scrollbar.y - 19.5;
self thread checkScroll();
self thread subMenu();
self playSound("ui_mp_suitcasebomb_timer");
}
}
}
listenScrollDown()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
for(;
{
self waittill( "pressed_R1" );
{
self notify ( "scrollDown" );
self.scroll++;
self.scrollbar.y MoveOverTime( 1 );
self.scrollbar.y = self.scrollbar.y + 19.5;
self thread checkScroll();
self thread subMenu();
self playSound("ui_mp_suitcasebomb_timer");
}
}
}
listenSelect()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
for(;
{
self waittill("pressed_square");
{
self.scrollbar.alpha = .9;
self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
wait .07;
self.scrollbar.alpha = .5;
}
wait .001;
}
}
listenExit()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu" );
for(;
{
self waittill("pressed_melee");
{
self freezeControls(false);
self.blackscreen.alpha = 0;
self.scrollbar.alpha = 0;
self.scroll = 0;
self notify ( "exitMenu" );
}
}
}
topLevelMenu()
{
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
topLevelMenu = [];
for(i = -1; i < 2; i++)
{
topLevelMenu[i+1] = self createFontString( "DaStacks", 1.9 );
topLevelMenu[i+1] setPoint( "CENTER", "TOP", (i)*level.menuX, 15 );
if((i + self.cycle) < 0)
{
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + level.topLevelMenuOptions]);
}
else if((i + self.cycle) > level.topLevelMenuOptions - 1)
{
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - level.topLevelMenuOptions]);
}
else
{
topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
}
self thread destroyOnDeath(topLevelMenu[i+1]);
self thread exitMenu(topLevelMenu[i+1]);
self thread cycleRight(topLevelMenu[i+1]);
self thread cycleLeft(topLevelMenu[i+1]);
}
}
subMenu()
{
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
subMenu = [];
for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++)
{
subMenu[i] = self createFontString( "DaStacks", 1.8 );
subMenu[i] setPoint( "CENTER", "TOP", 0, i*level.menuY+30 );
if(i != self.scroll)
{
subMenu[i] setText(level.subMenuNames[self.cycle][i]);
}
else
{
subMenu[i] setText("^1" + level.subMenuNames[self.cycle][i]);
}
self thread destroyOnDeath(subMenu[i]);
self thread exitMenu(subMenu[i]);
self thread cycleRight(subMenu[i]);
self thread cycleLeft(subMenu[i]);
self thread scrollUp(subMenu[i]);
self thread scrollDown(subMenu[i]);
}
}
destroyOnDeath( hudElem )
{
self waittill ( "death" );
hudElem destroy();
}
destroyOnExitMenu( hudElem )
{
self waittill ( "exitMenu" );
self.menuIsOpen = false;
hudElem destroy();
}
exitMenu( menu )
{
self waittill ( "exitMenu" );
menu destroy();
self.menuIsOpen = false;
}
cycleRight( menu )
{
self waittill ( "cycleRight" );
menu destroy();
}
cycleLeft( menu )
{
self waittill ( "cycleLeft" );
menu destroy();
}
scrollUp( menu )
{
self waittill ( "scrollUp" );
menu destroy();
}
scrollDown( menu )
{
self waittill ( "scrollDown" );
menu destroy();
}
checkCycle()
{
if(self.cycle > level.topLevelMenuOptions - 1)
{
self.cycle = self.cycle - level.topLevelMenuOptions;
}
else if(self.cycle < 0)
{
self.cycle = self.cycle + level.topLevelMenuOptions;
}
}
checkScroll()
{
if(self.scroll < 0)
{
self.scroll = (level.subMenuNumOptions[self.cycle] - 1);
self.scrollbar.y = 30 + ((level.subMenuNumOptions[self.cycle] - 1) * 19.5);
}
if(self.scroll > (level.subMenuNumOptions[self.cycle] - 1))
{
self.scroll = 0;
self.scrollbar.y = 30;
}
}
test()
{
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.