Post: [RELEASE]Scrolling Left and Right Menu Base
12-04-2011, 01:24 AM #1
INSAN3LY_D34TH
INSAN3LY GAMING
(adsbygoogle = window.adsbygoogle || []).push({}); On another thread here, someone posted a base for this menu. What I did was go through and added a working scrollbar, and fixed a few bugs in the menu. I did not fix the overflow error though.

I do not take credit for this base.

    #include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

onPlayerSpawned123()
{
self endon("disconnect");
for(;Winky Winky
{
self waittill("spawned_player");
self thread MonitorButtons();
self thread CreateMenu();
self freezecontrols(false);
}
}
MonitorButtons()
{
self endon("disconnect");
for(;Winky Winky
{
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(;Winky Winky
{
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(;Winky Winky
{
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(;Winky Winky
{
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(;Winky Winky
{
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(;Winky Winky
{
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(;Winky Winky
{
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(;Winky Winky
{
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()
{

}
(adsbygoogle = window.adsbygoogle || []).push({});
12-08-2011, 01:23 AM #20
Originally posted by xYARDSALEx View Post
I Was About TO Be Pissed For A Second, Cuz If It Had Overflow Fix, And A Working Scrollbar, OMG I Wud Have Been Pissed, Cuz Me and iReset are working on a menu like this and it's gunna be sick


lmfao a scroll bar isn't the hard to make, and it's not really needed anyway, unless your shit goes off the screen.
12-08-2011, 11:35 AM #21
Taylor
Former Black Knight.
Originally posted by Team
lmfao a scroll bar isn't the hard to make, and it's not really needed anyway, unless your shit goes off the screen.


I Know It's Not Hard To make, That Was Easy Part, But It Kept Scrolling Past Options, Elietmodz Helped Me
12-08-2011, 01:26 PM #22
Originally posted by xYARDSALEx View Post
I Know It's Not Hard To make, That Was Easy Part, But It Kept Scrolling Past Options, Elietmodz Helped Me


I had the same problem when I came up with my own coding for a menu..

it kept going like 2 instead of 1, and then it worked the other way. I was like :FU:,but then I figured it out after a little bit.
12-08-2011, 01:43 PM #23
INSAN3LY_D34TH
INSAN3LY GAMING
Originally posted by xYARDSALEx View Post
I Know It's Not Hard To make, That Was Easy Part, But It Kept Scrolling Past Options, Elietmodz Helped Me


lol, the whole thing was easy. Took me not even 5 min to code the scrollbar all over again and get the scroll functions correct to the base coding. But if you need any more help YARDSALE just pm me or if im on msn hit me up

The following user thanked INSAN3LY_D34TH for this useful post:

Taylor
12-08-2011, 08:15 PM #24
Taylor
Former Black Knight.
Originally posted by D34TH View Post
lol, the whole thing was easy. Took me not even 5 min to code the scrollbar all over again and get the scroll functions correct to the base coding. But if you need any more help YARDSALE just pm me or if im on msn hit me up


You Mak eMe Feel Stupid, But Anyway, i Know How To Do Everything Basically Except Overflow Fix And Scrollbar Stuff Liek That I Was Having The Problems With
12-08-2011, 08:42 PM #25
IVI40A3Fusionz
Former Gaming Squad Member
Originally posted by xYARDSALEx View Post
You Mak eMe Feel Stupid, But Anyway, i Know How To Do Everything Basically Except Overflow Fix And Scrollbar Stuff Liek That I Was Having The Problems With


Overflow fix is the most basic thing you can do :L.
12-08-2011, 08:55 PM #26
Taylor
Former Black Knight.
Originally posted by IVI40A3Fusionz View Post
Overflow fix is the most basic thing you can do :L.


I Never Done Before, So Thats WHy I Dont Know How To Do It
12-08-2011, 09:35 PM #27
IVI40A3Fusionz
Former Gaming Squad Member
Originally posted by xYARDSALEx View Post
I Never Done Before, So Thats WHy I Dont Know How To Do It


I never done it before and i got it done in like under 30 secs Winky Winky.
12-08-2011, 10:20 PM #28
Originally posted by IVI40A3Fusionz View Post
I never done it before and i got it done in like under 30 secs Winky Winky.
i got it done in 2 secs :dance: lolz

The following user thanked IELIITEMODZX for this useful post:

INSAN3LY_D34TH

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo