1.)How to Start
2.)Button Handling Start
3.)Menu Structure
4.)Menu Hud(Background,Scrollbar,Menu Title)
5.)Menu Loading + Menu Text
6.)Cursor Update + Scrollbar Position
7.)Button Handling Finish
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_hud_message;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread onPlayerSpawned();
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;
{
self waittill("spawned_player");
}
}
createText(font, fontscale, align, relative, x, y, sort, color, alpha, glowColor, glowAlpha, text)
{
textElem = CreateFontString( font, fontscale );
textElem setPoint( align, relative, x, y );
textElem.sort = sort;
textElem.type = "text";
textElem setText(text);
textElem.color = color;
textElem.alpha = alpha;
textElem.glowColor = glowColor;
textElem.glowAlpha = glowAlpha;
textElem.hideWhenInMenu = true;
return textElem;
}
createRectangle(align, relative, x, y, width, height, color, alpha, sorting, shadero)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
if ( !level.splitScreen )
{
barElemBG.x = -2;
barElemBG.y = -2;
}
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.color = color;
if(isDefined(alpha))
barElemBG.alpha = alpha;
else
barElemBG.alpha = 1;
barElemBG setShader( shadero, width , height );
barElemBG.hidden = false;
barElemBG.sort = sorting;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
initMenu()
{
self.Menu = spawnStruct();
self.Hud = spawnStruct();
self.Menu.Opened = false;
}
onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread onPlayerSpawned();
if(player isHost())
{
player thread initMenu();
}
}
}
menuButtons()
{
self endon("disconnect");
for(;
{
wait 0.05;
}
}
menuButtons()
{
self endon("disconnect");
for(;
{
if(self FragButtonPressed())
{
wait .3;
}
if(self AdsButtonPressed())
{
wait .1;
}
if(self AttackButtonPressed())
{
wait .1;
}
if(self UseButtonPressed())
{
wait .3;
}
if(self MeleeButtonPressed())
{
wait .3;
}
wait 0.05;
}
}
menuButtons()
{
self endon("disconnect");
for(;
{
if(self FragButtonPressed() && self.Menu.Opened==false)
{
wait .3;
}
if(self AdsButtonPressed() && self.Menu.Opened==true)
{
wait .1;
}
if(self AttackButtonPressed()&& self.Menu.Opened==true)
{
wait .1;
}
if(self UseButtonPressed()&& self.Menu.Opened==true)
{
wait .3;
}
if(self MeleeButtonPressed()&& self.Menu.Opened==true)
{
wait .3;
}
wait 0.05;
}
}
menuStructure()
{
}
CreateMenu(menu,title,parent)
{
self.Menu.title[menu] = title;
self.Menu.parent[menu] = parent;
}
addOption(menu,index,text,func,input)
{
self.Menu.Text[menu][index] = text;
self.Menu.Func[menu][index] = func;
self.Menu.Input[menu][index] = input;
}
Test()
{
self iprintln("^1TEST");
}
menuStructure()
{
self CreateMenu("main","Main Menu","Exit");
self addOption("main",0,"Option 1",::Test,"");
self addOption("main",1,"Option 2",::Test,"");
self addOption("main",2,"Option 3",::Test,"");
self addOption("main",3,"Option 4",::Test,"");
self addOption("main",4,"Option 5",::Test,"");
self addOption("main",5,"Option 6",::Test,"");
self addOption("main",6,"Option 7",::Test,"");
self addOption("main",7,"Option 8",::Test,"");
self addOption("main",8,"Option 9",::Test,"");
self addOption("main",9,"Option 10",::Test,"");
self addOption("main",10,"Option 11",::Test,"");
self addOption("main",11,"Option 12",::Test,"");
self addOption("main",12,"Option 13",::Test,"");
self addOption("main",13,"Option 14",::Test,"");
self addOption("main",14,"Option 15",::Test,"");
}
createHud()
{
}
destroyHud()
{
}
createHud()
{
self.Hud.Title = createText("default",2.0,"CENTER","TOP",0,10,0,(1,1,1),1,(0,0,0),0,"");
self.Hud.Title.foreground = true;
self.Hud.Background = createRectangle("CENTER","CENTER",0,0,200,1000,(0,0,0),.5,0,"white");
self.Hud.Scrollbar = createRectangle("CENTER","TOP",0,40,200,20,(0,0,0),1,0,"white");
}
destroyHud()
{
self.Hud.Title destroy();
self.Hud.Background destroy();
self.Hud.Scrollbar destroy();
}
_loadMenu(menu)
{
self.Menu.CurrentMenu = menu;
self.Scroller = 0;
self.Hud.Title setText(self.Menu.title[self.Menu.CurrentMenu]);
}
createMenuText()
{
for(i=0;i<self.Menu.Text[self.Menu.CurrentMenu].size;i++)
{
self.Hud.Text[i] = createText("default",1.5,"CENTER","TOP",0,40+(18*i),0,(1,1,1),1,(0,0,0),0,self.Menu.Text[self.Menu.CurrentMenu][i]);
self.Hud.Text[i].foreground = true;
}
}
destroyMenuText()
{
if(isDefined(self.Hud.Text))
{
for(i=0;i<self.Hud.Text.size;i++)
{
self.Hud.Text[i] destroy();
}
}
}
createMenuText()
{
string = "";
for(i=0;i<self.Menu.Text[self.Menu.CurrentMenu].size;i++)
{
string += self.Menu.Text[self.Menu.CurrentMenu][i]+"\n";
}
self.Hud.Text = createText("default",1.5,"CENTER","TOP",0,40,0,(1,1,1),1,(0,0,0),0,string);
self.Hud.Text.foreground = true;
}
destroyMenuText()
{
if(isDefined(self.Hud.Text))
{
self.Hud.Text destroy();
}
}
_loadMenu(menu)
{
self destroyMenuText();
self.Menu.CurrentMenu = menu;
self.Scroller = 0;
self.Hud.Title setText(self.Menu.title[self.Menu.CurrentMenu]);
self createMenuText();
}
_scrollUpdate()
{
}
_scrollUpdate()
{
if(self.Scroller<0)
{
self.Scroller = self.Menu.Text[self.Menu.CurrentMenu].size-1;
}
if(self.Scroller>self.Menu.Text[self.Menu.CurrentMenu].size-1)
{
self.Scroller = 0;
}
}
_scrollUpdate()
{
if(self.Scroller<0)
{
self.Scroller = self.Menu.Text[self.Menu.CurrentMenu].size-1;
}
if(self.Scroller>self.Menu.Text[self.Menu.CurrentMenu].size-1)
{
self.Scroller = 0;
}
self.Hud.Scrollbar.y = 40+(18*self.Scroller);
}
_loadMenu(menu)
{
self destroyMenuText();
self.Menu.CurrentMenu = menu;
self.Scroller = 0;
self.Hud.Title setText(self.Menu.title[self.Menu.CurrentMenu]);
self createMenuText();
self _scrollUpdate();
}
if(self FragButtonPressed() && self.Menu.Opened==false)
{
self.Menu.Opened = true;
self freezeControls(true);
self thread createHud();
self _loadMenu("main");
wait .3;
}
if(self AdsButtonPressed() && self.Menu.Opened==true)
{
self.Scroller --;
self _scrollUpdate();
wait .1;
}
if(self AttackButtonPressed() && self.Menu.Opened==true)
{
self.Scroller ++;
self _scrollUpdate();
wait .1;
}
if(self UseButtonPressed() && self.Menu.Opened==true)
{
self thread [[self.Menu.Func[self.Menu.CurrentMenu][self.Scroller]]](self.Menu.Input[self.Menu.CurrentMenu][self.Scroller]);
wait .3;
}
doIt()
{
self MainFunction:printSomething,"Hello");
}
MainFunction(function,input)
{
self thread [[function]](input);
}
printSomething(text)
{
self iprintln(text);
}
if(self MeleeButtonPressed() && self.Menu.Opened==true)
{
if(self.Menu.parent[self.Menu.CurrentMenu]=="Exit")
{
self.Menu.Opened = false;
self freezeControls(false);
self thread destroyMenuText();
self thread destroyHud();
}
else
{
self _loadMenu(self.Menu.parent[self.Menu.CurrentMenu]);
}
wait .3;
}
menuStructure()
{
self CreateMenu("main","Main Menu","Exit");
self addOption("main",0,"Open Sub Menu",::_loadMenu,"sub");
self addOption("main",1,"Option 2",::Test,"");
self addOption("main",2,"Option 3",::Test,"");
self addOption("main",3,"Option 4",::Test,"");
self addOption("main",4,"Option 5",::Test,"");
self addOption("main",5,"Option 6",::Test,"");
self addOption("main",6,"Option 7",::Test,"");
self addOption("main",7,"Option 8",::Test,"");
self addOption("main",8,"Option 9",::Test,"");
self addOption("main",9,"Option 10",::Test,"");
self addOption("main",10,"Option 11",::Test,"");
self addOption("main",11,"Option 12",::Test,"");
self addOption("main",12,"Option 13",::Test,"");
self addOption("main",13,"Option 14",::Test,"");
self addOption("main",14,"Option 15",::Test,"");
self CreateMenu("sub","Sub Menu","main");
self addOption("sub",0,"Sub Menu Option 1",::Test,"");
self addOption("sub",1,"Sub Menu Option 2",::Test,"");
self addOption("sub",2,"Sub Menu Option 3",::Test,"");
self addOption("sub",3,"Sub Menu Option 4",::Test,"");
self addOption("sub",4,"Sub Menu Option 5",::Test,"");
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.