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-04-2011, 05:39 PM #11
INSAN3LY_D34TH
INSAN3LY GAMING
Originally posted by xYARDSALEx View Post
LoL k thanks


get on msn when you can
12-04-2011, 05:54 PM #12
TheFallen
Former Dark Night
Originally posted by xYARDSALEx View Post
no dont release the overflow fix 1, i made mine overflow fix!

I did that.... stare
12-04-2011, 07:52 PM #13
Originally posted by xYARDSALEx View Post
no dont release the overflow fix 1, i made mine overflow fix!
COD4 is so old, keeping stuff secret is pretty pointless..

The following 3 users say thank you to x_DaftVader_x for this useful post:

247Yamato, Blackstorm, INSAN3LY_D34TH
12-04-2011, 09:12 PM #14
INSAN3LY_D34TH
INSAN3LY GAMING
Originally posted by x. View Post
COD4 is so old, keeping stuff secret is pretty pointless..


I know haha. Everyone tries to act like what they made(edited) is so awesome and not to share is pointless because most of it has been done before and if not it should be released for others.
12-05-2011, 01:04 AM #15
Taylor
Former Black Knight.
Originally posted by ITheFallenI View Post
I did that.... stare


Yeah, I Know, I Typed That This Morning, Wasn't Thinking I Guess, Want Me 2 Chat It?
12-07-2011, 11:01 PM #16
Jacob-And-Britt
I’m too L33T
Is this all on 1 string.. I don't exactly know what that means but i heard if its on 2 strings or more it will overflow.
12-07-2011, 11:06 PM #17
Taylor
Former Black Knight.
Originally posted by jbglitching View Post
Is this all on 1 string.. I don't exactly know what that means but i heard if its on 2 strings or more it will overflow.


Its Not even Using Strings There, Just setText, There's Just A Shitload Of Lines

---------- Post added at 06:06 PM ---------- Previous post was at 06:05 PM ----------

Originally posted by x. View Post
COD4 is so old, keeping stuff secret is pretty pointless..


The Only Reason Im Keeping To Myself And A Few Friends Atm Is Cuz It Has Some, How You Say? Problems/Bugs atm, Doesn't Overflow, But The Text Disappears After You Exit And Re-Enter The Menu Like 6-7 Times, I Need To Work On It More
12-08-2011, 01:17 AM #18
INSAN3LY_D34TH
INSAN3LY GAMING
Originally posted by xYARDSALEx View Post
Its Not even Using Strings There, Just setText, There's Just A Shitload Of Lines

---------- Post added at 06:06 PM ---------- Previous post was at 06:05 PM ----------



The Only Reason Im Keeping To Myself And A Few Friends Atm Is Cuz It Has Some, How You Say? Problems/Bugs atm, Doesn't Overflow, But The Text Disappears After You Exit And Re-Enter The Menu Like 6-7 Times, I Need To Work On It More


haha i loved watching it dissapear on your screen
12-08-2011, 01:20 AM #19
Taylor
Former Black Knight.
Originally posted by D34TH View Post
haha i loved watching it dissapear on your screen


stare...............

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo