iniPlayer()
{
self thread Playermenu();
self thread MenuButtonUp();
self thread MenuButtonDown();
self thread MenuButtonA();
self thread MenuButtonB();
self thread MenuButtonRS();
}
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;
}
Playermenu()
{
self thread iniMenuVars();
for(;

{
if( self FragButtonPressed())
{
if(self.menuIsOpen == false)
{
self.menuIsOpen = true;
self freezeControls( true );
self setClientDvar( "r_blur", 3.5 );
self thread topLevelMenu();
self thread subMenu();
self thread listenCycleRight();
self thread listenScrollUp();
self thread listenScrollDown();
self thread listenSelect();
self thread listenExit();
}
}
wait 0.1;
}
}
iniMenuVars()
{
self.cycle = 0;
self.scroll = 0;
self.menuIsOpen = false;
level.menuX = 300;
level.menuY = 20;
level.topLevelMenuOptions = 4;
level.subMenuNumOptions = [];
//sub menu 1
level.topLevelMenuNames[0] = "sub menu 1";
level.subMenuNumOptions[0] = 6;
level.subMenuNames[0] = [];
level.subMenuNames[0][0] = "Test 1";
level.subMenuNames[0][1] = "Test 2";
level.subMenuNames[0][2] = "Test 3";
level.subMenuNames[0][3] = "Test 4";
level.subMenuNames[0][4] = "Test 5";
level.subMenuNames[0][5] = "Test 6";
level.subMenuFunctions[0] = [];
level.subMenuFunctions[0][0] = :: ;
level.subMenuFunctions[0][1] = :: ;
level.subMenuFunctions[0][2] = :: ;
level.subMenuFunctions[0][3] = :: ;
level.subMenuFunctions[0][4] = :: ;
level.subMenuFunctions[0][5] = :: ;
level.subMenuInputs[0] = [];
level.subMenuInputs[0][0] = "";
level.subMenuInputs[0][1] = "";
level.subMenuInputs[0][2] = "";
level.subMenuInputs[0][3] = "";
level.subMenuInputs[0][4] = "";
level.subMenuInputs[0][5] = "";
//sub menu 2
level.topLevelMenuNames[1] = "sub menu 2";
level.subMenuNumOptions[1] = 9;
level.subMenuNames[1] = [];
level.subMenuNames[1][0] = "Test 1";
level.subMenuNames[1][1] = "Test 2";
level.subMenuNames[1][2] = "Test 3";
level.subMenuNames[1][3] = "Test 4";
level.subMenuNames[1][4] = "Test 5";
level.subMenuNames[1][5] = "Test 6";
level.subMenuNames[1][6] = "Test 7";
level.subMenuNames[1][7] = "Test 8";
level.subMenuNames[1][8] = "Test 9";
level.subMenuFunctions[1] = [];
level.subMenuFunctions[1][0] = :: ;
level.subMenuFunctions[1][1] = :: ;
level.subMenuFunctions[1][2] = :: ;
level.subMenuFunctions[1][3] = :: ;
level.subMenuFunctions[1][4] = :: ;
level.subMenuFunctions[1][5] = :: ;
level.subMenuFunctions[1][6] = :: ;
level.subMenuFunctions[1][7] = :: ;
level.subMenuFunctions[1][8] = :: ;
level.subMenuInputs[1] = [];
level.subMenuInputs[1][0] = "";
level.subMenuInputs[1][1] = "";
level.subMenuInputs[1][2] = "";
level.subMenuInputs[1][3] = "";
level.subMenuInputs[1][4] = "";
level.subMenuInputs[1][5] = "";
level.subMenuInputs[1][6] = "";
level.subMenuInputs[1][7] = "";
level.subMenuInputs[1][8] = "";
//sub menu 3
level.topLevelMenuNames[2] = "sub menu 3";
level.subMenuNumOptions[2] = 8;
level.subMenuNames[2] = [];
level.subMenuNames[2][0] = "Test 1";
level.subMenuNames[2][1] = "Test 2";
level.subMenuNames[2][2] = "Test 3";
level.subMenuNames[2][3] = "Test 4";
level.subMenuNames[2][4] = "Test 5";
level.subMenuNames[2][5] = "Test 6";
level.subMenuNames[2][6] = "Test 7";
level.subMenuNames[2][7] = "Test 8";
level.subMenuFunctions[2] = [];
level.subMenuFunctions[2][0] = :: ;
level.subMenuFunctions[2][1] = :: ;
level.subMenuFunctions[2][2] = :: ;
level.subMenuFunctions[2][3] = :: ;
level.subMenuFunctions[2][4] = :: ;
level.subMenuFunctions[2][5] = :: ;
level.subMenuFunctions[2][6] = :: ;
level.subMenuFunctions[2][7] = :: ;
level.subMenuInputs[2] = [];
level.subMenuInputs[2][0] = "";
level.subMenuInputs[2][1] = "";
level.subMenuInputs[2][2] = "";
level.subMenuInputs[2][3] = "";
level.subMenuInputs[2][4] = "";
level.subMenuInputs[2][5] = "";
level.subMenuInputs[2][6] = "";
level.subMenuInputs[2][7] = "";
level.subMenuInputs[2][8] = "";
//sub menu 4
level.topLevelMenuNames[3] = "sub menu 4";
level.subMenuNumOptions[3] = 7;
level.subMenuNames[3] = [];
level.subMenuNames[3][0] = "Test 1";
level.subMenuNames[3][1] = "Test 2";
level.subMenuNames[3][2] = "Test 3";
level.subMenuNames[3][3] = "Test 4";
level.subMenuNames[3][4] = "Test 5";
level.subMenuNames[3][5] = "Test 6";
level.subMenuNames[3][6] = "Test 7";
level.subMenuFunctions[3] = [];
level.subMenuFunctions[3][0] = :: ;
level.subMenuFunctions[3][1] = :: ;
level.subMenuFunctions[3][2] = :: ;
level.subMenuFunctions[3][3] = :: ;
level.subMenuFunctions[3][4] = :: ;
level.subMenuFunctions[3][5] = :: ;
level.subMenuFunctions[3][6] = :: ;
level.subMenuInputs[3] = [];
level.subMenuInputs[3][0] = "";
level.subMenuInputs[3][1] = "";
level.subMenuInputs[3][2] = "";
level.subMenuInputs[3][3] = "";
level.subMenuInputs[3][4] = "";
level.subMenuInputs[3][5] = "";
level.subMenuInputs[3][6] = "";
}
MenuButtonB()
{
for(;

{
if( self MeleeButtonPressed())
{
if(IsDefined(self.editing) && self.editing == true)
{
self notify( "buttonPress", "B" );
wait 0.1;
} else {
self notify( "B" );
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
MenuButtonA()
{
for(;

{
if( self UseButtonPressed())
{
if(IsDefined(self.editing) && self.editing == true)
{
self notify( "buttonPress", "Select" );
wait 0.1;
} else {
self notify( "A" );
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
MenuButtonDown()
{
for(;

{
if(self AttackButtonPressed())
{
if(IsDefined(self.editing) && self.editing == true)
{
self notify( "buttonPress", "Right" );
wait 0.1;
} else {
self notify( "button_rtrig" );
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
MenuButtonUp()
{
for(;

{
if(self AdsButtonPressed())
{
if(IsDefined(self.editing) && self.editing == true)
{
self notify( "buttonPress", "Left" );
wait 0.1;
} else {
self notify( "button_ltrig" );
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
}
MenuButtonRS()
{
for(;

{
if( self FragButtonPressed())
{
if(IsDefined(self.editing) && self.editing == true)
{
self notify( "buttonPress", "Up" );
wait 0.1;
} else {
self notify( "RS" );
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
wait 0.1;
}
listenScrollUp()
{
self endon ( "exitMenu" );
for(;

{
self waittill( "button_ltrig" );
{
self notify ( "scrollUp" );
self.scroll--;
self thread checkScroll();
self thread subMenu();
}
wait 0.1;
}
}
listenCycleRight()
{
self endon ( "exitMenu" );
for(;

{
self waittill("RS");
{
self notify ( "cycleRight" );
self.cycle++;
self thread checkCycle();
self thread topLevelMenu();
self thread subMenu();
}
wait 0.1;
}
}
listenScrollDown()
{
self endon ( "exitMenu" );
for(;

{
self waittill( "button_rtrig" );
{
self notify ( "scrollDown" );
self.scroll++;
self thread checkScroll();
self thread subMenu();
}
wait 0.1;
}
}
listenSelect()
{
self endon ( "exitMenu" );
for(;

{
self waittill("A");[
{
self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
}
wait 0.1;
}
}
listenExit()
{
self endon ( "exitMenu" );
for(;

{
self waittill("B");
{
self.blackscreen destroy();
self freezeControls(false);
self setClientDvar( "r_blur", 0 );
self notify ( "exitMenu" );
}
wait 0.1;
}
}
topLevelMenu()
{
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
topLevelMenu = [];
for(i = -1; i < 2; i++){
topLevelMenu[i+1] = self maps\_hud_util::createFontString( "objective", 3.0, self );
topLevelMenu[i+1] maps\_hud_util::setPoint( "CENTER", "top", (i)*level.menuX, (-1)*level.menuY-180 );
if((i + self.cycle) < 0){
topLevelMenu[i+1] setText("^1" + level.topLevelMenuNames
);
}
else if((i + self.cycle) > level.topLevelMenuOptions - 1){
topLevelMenu[i+1] setText("^1" + level.topLevelMenuNames);
}
else{
topLevelMenu[i+1] setText("^1" + level.topLevelMenuNames);
}
self thread destroyOnDeath(topLevelMenu[i+1]);
self thread exitMenu(topLevelMenu[i+1]);
self thread cycleRight(topLevelMenu[i+1]);
}
}
subMenu()
{
self endon ( "cycleRight" );
self endon ( "cycleLeft" );
self endon ( "exitMenu" );
subMenu = [];
for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++){
subMenu = self maps\_hud_util::createFontString( "objective", 1.2, self );
subMenu maps\_hud_util::setPoint( "CENTER", "CENTER", 0, i*level.menuY-150 );
if(i != self.scroll){
subMenu setText( level.subMenuNames[self.cycle]);
}
else{
subMenu.fontscale = 2.5;
subMenu setText( "^2" + "[" + level.subMenuNames[self.cycle] + "]");
//RIGHT HERE ADD CHANGING ALPHA JUST LOOP IT TO KEEP BLINKING
subMenu.alpha = 1; // THEN KEEP CHANGING
subMenu.alpha = .9;
subMenu.alpha = .7;
subMenu.alpha = .5;
subMenu.alpha = .3;
subMenu.alpha = .1;
subMenu.alpha = 0;
subMenu.alpha = .1;
subMenu.alpha = .3;
subMenu.alpha = .5;
subMenu.alpha = .7;
subMenu.alpha = .9;
subMenu.alpha = 1;
}
self thread destroyOnDeath(subMenu);
self thread exitMenu(subMenu);
self thread cycleRight(subMenu);
self thread scrollUp(subMenu);
self thread scrollDown(subMenu);
}
}
destroyOnDeath( hudElem )
{
self waittill ( "death" );
hudElem destroy();
}
destroyOnExitMenu( hudElem )
{
self waittill ( "exitMenu" );
hudElem destroy();
}
exitMenu( menu )
{
self waittill ( "exitMenu" );
menu destroy();
self.menuIsOpen = false;
}
cycleRight( menu )
{
self waittill ( "cycleRight" );
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 = 0;
}
else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1){
self.scroll = level.subMenuNumOptions[self.cycle] - 1;
}
}
statedit(stat)
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false; //close the menu text
self.blackscreen.alpha = 0;
ABC = "1234567890";
curs = 0;
letter = 0;
ctag = self createFontString( "objective", 2.5, self );
ctag setPoint("CENTER", "CENTER", 0, 120);
selecting = true;
self.editing = true;
tag = [];
savedLetter = [];
tag[0] = ABC[0];
savedLetter[0] = 0;
/*self.menuScroll = NewClientHudElem( self );
self.menuScroll.foreground = false;
self.menuScroll.x = 310;
self.menuScroll.y = 284;
self.menuScroll.sort = 1;
self.menuScroll.alpha = 0.6;
self.menuScroll.color = ( 1, 0.5, 0 );//orange
self.menuScroll setshader("white", 20, 25);*/
while(selecting)
{
string = "";
for(i=0;i<tag.size;i++)
{
if(i == curs) string += "^5[^7"+tag+"^5]^7";
else string += tag;
}
ctag setText(string);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
letter += 1;
letter *= (letter>0)*(letter<ABC.size);
tag[curs] = ABC[letter];
savedLetter[curs] = letter;
newTag = "";
for(i=0;i<tag.size;i++)
{
newTag += tag;
}
break;
case "Left":
curs -= 1;
curs *= (curs>0)*(curs<9);
letter = savedLetter[curs];
//self.menuScroll MoveOverTime( 0.2 );
//self.menuScroll.x = self.menuScroll.x - 15;
break;
case "Right":
curs += 1;
curs *= (curs>0)*(curs<10);
if(curs > tag.size-1)
{
savedLetter[savedLetter.size] = 0;
tag[tag.size] = ABC[0];
}
//self.menuScroll MoveOverTime( 0.2 );
//self.menuScroll.x = self.menuScroll.x + 7.25;
letter = savedLetter[curs];
break;
case "Select":
newTag = "";
for(i=0;i<tag.size;i++) newTag += tag;
self maps\_challenges_coop::statSet( stat, int(newTag));
self iPrintlnBold(stat+"- Modded to: " + newTag);
break;
case "B":
selecting = false;
self.editing = false;
break;
default:
break;
}
}
self.menuIsOpen = true;
ctag destroy();
self.menuScroll destroy();
}