Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\_utility;
- #include maps\_hud_util;
- init()
- {
- self thread onPlayerConnect();
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill("connected", player);
- player thread onPlayerSpawned();
- }
- }
- onPlayerSpawned()
- {
- player = get_players();
- for(;;)
- {
- self waittill("spawned_player");
- self thread Playermenu();
- }
- }
- Playermenu()
- {
- self thread iniMenuVars(0,0,false,300,20,3);
- for(;;)
- {
- if( self FragButtonPressed())
- {
- if(self.menuIsOpen == false)
- {
- self.menuIsOpen = true;
- self thread topLevelMenu();
- self thread subMenu();
- self thread MonitorButtons();
- self thread listenAll();
- }
- }
- wait 0.1;
- }
- }
- iniMenuVars(cycle,scroll,z,x,y,menu)
- {
- self.cycle = cycle;
- self.scroll = scroll;
- self.menuIsOpen = z;
- level.menuX = x;
- level.menuY = y;
- level.topLevelMenuOptions = menu;
- level.subMenuNumOptions = [];
- //sub menu 1
- self addBlank(0,"Test",6);
- self addMenu(0,0,"Close",::Close,"");
- self addMenu(0,1,"Test",::test,2);
- self addMenu(0,2,"Test",::test,3);
- self addMenu(0,3,"Test",::test,1);
- self addMenu(0,4,"Test",::test,2);
- self addMenu(0,5,"Test",::test,3);
- //sub menu 2
- self addBlank(1,"Test 2",3);
- self addMenu(1,0,"Test",::test,1);
- self addMenu(1,1,"Test",::test,2);
- self addMenu(1,2,"Test",::test,3);
- //sub menu 3
- self addBlank(2,"Test 3",3);
- self addMenu(2,0,"Test",::test,1);
- self addMenu(2,1,"Test",::test,2);
- self addMenu(2,2,"Test",::test,3);
- }
- listenAll(){
- self endon("exitMenu");
- for(;;)
- {
- button = self waittill_any_return("button_ltrig", "button_rtrig", "A", "RS", "B");
- if(button == "button_ltrig")
- {
- self notify ( "scrollUp" );
- self.scroll--;
- self thread checkScroll();
- self thread subMenu();
- wait .1;
- }
- else if(button == "button_rtrig")
- {
- self notify ( "scrollDown" );
- self.scroll++;
- if(self.scroll<0)
- self.scroll=level.subMenuNames[self.cycle][self.scroll].size-1;
- if(self.scroll > level.subMenuNames[self.cycle].size-1)
- self.scroll = 0;
- self thread checkScroll();
- self thread subMenu();
- wait .1;
- }
- else if(button == "A")
- {
- self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
- wait .1;
- }
- else if(button == "RS")
- {
- self notify ( "cycleRight" );
- self.cycle++;
- self thread checkCycle();
- self thread topLevelMenu();
- self thread subMenu();
- wait .1;
- }
- else if(button == "B")
- {
- self Close();
- }
- }
- }
- addBlank(menu,title,options){
- level.topLevelMenuNames[menu] = title;
- level.subMenuNumOptions[menu] = options;
- level.subMenuNames[menu] = [];
- level.subMenuFunctions[menu] = [];
- level.subMenuInputs[menu] = [];
- }
- addMenu(menu,sub,text,func,input){
- level.subMenuNames[menu][sub] = text;
- level.subMenuFunctions[menu][sub] = func;
- level.subMenuInputs[menu][sub] = input;
- }
- MonitorButtons()
- {
- for(;;)
- {
- if(self UseButtonPressed()) self notify("A");
- if(self AttackButtonPressed()) self notify("button_rtrig");
- if(self AdsButtonPressed()) self notify("button_ltrig");
- if(self FragButtonPressed()) self notify("RS");
- if(self MeleeButtonPressed()) self notify("B");
- wait .05;
- }
- }
- Close(){
- self freezeControls(false);
- self notify ( "exitMenu" );
- }
- 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("" + level.topLevelMenuNames[i + self.cycle + level.topLevelMenuOptions]);
- topLevelMenu[i+1].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- }
- else if((i + self.cycle) > level.topLevelMenuOptions - 1){
- topLevelMenu[i+1] setText("" + level.topLevelMenuNames[i + self.cycle - level.topLevelMenuOptions]);
- topLevelMenu[i+1].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- }
- else{
- topLevelMenu[i+1] setText("" + level.topLevelMenuNames[i + self.cycle]);
- topLevelMenu[i+1].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- }
- 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[i] = self maps\_hud_util::createFontString( "objective", 1.2, self );
- subMenu[i] maps\_hud_util::setPoint( "CENTER", "CENTER", 0, i*level.menuY-150 );
- if(i != self.scroll){
- subMenu[i] setText( level.subMenuNames[self.cycle][i]);
- }
- else{
- subMenu[i].fontscale = 2.0;
- subMenu[i] setText( "" + "[" + level.subMenuNames[self.cycle][i] + "]");
- subMenu[i].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- }
- self thread destroyOnDeath(subMenu[i]);
- self thread exitMenu(subMenu[i]);
- self thread cycleRight(subMenu[i]);
- self thread scrollUp(subMenu[i]);
- self thread scrollDown(subMenu[i]);
- }
- }
- 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;
- }
- }
- test(i){
- self iprintln(i);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement