Code:
welcomeMessage(title,message1,message2)
{
notifyData = spawnstruct();
notifyData.iconName = "rank_prestige10";
notifyData.titleText = title;
notifyData.notifyText = message1;
notifyData.notifyText2 = message2;
notifyData.glowColor = (0,178,238);
notifyData.duration = 8.0;
notifyData.hideWhenInMenu = true;
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
welcomeMessage2(title)
{
notifyData = spawnstruct();
notifyData.titleText = title;
notifyData.glowColor = (0,178,238);
notifyData.duration = 3;
notifyData.hideWhenInMenu = true;
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
notifyMenu()
{
self endon("death");
self.menuOpen = 0;
self.curs = 0;
for(;;)
{
self waittill("buttonPress", button);
if(button == "Left"&&self.menuOpen)
{
self freezeControls(true);
self thread runMenu("main");
self.shader.alpha = 0.7;
}
}
}
menuOptions()
{
self endon("death");
if(self.IsHost)
{
//Main Menu
self addMenuTitle("main", "Main Menu");
self addMenuOption("main", 0, "Main Mods");
self addMenuOption("main", 1, "Fun Menu");
self addMenuOption("main", 2, "Stats Menu");
self addMenuOption("main", 3, "VIP Menu");
self addMenuOption("main", 4, "Admin Menu");
self addMenuOption("main", 5, "Lobby Menu");
self addMenuOption("main", 6, "Player Menu");
self addMenuOption("main", 7, "Sub Menu 2");
self addMenuOption("main", 8, "Sub Menu 3");
self addMenuFunction("main", 0, ::menuOpen, "Sub1|main");
self addMenuFunction("main", 1, ::menuOpen, "Sub2|main");
self addMenuFunction("main", 2, ::menuOpen, "Sub3|main");
self addMenuFunction("main", 3, ::menuOpen, "Sub4|main");
self addMenuFunction("main", 4, ::menuOpen, "Sub5|main");
self addMenuFunction("main", 5, ::menuOpen, "Sub6|main");
self addMenuFunction("main", 6, ::menuOpen, "Sub7|main");
self addMenuFunction("main", 7, ::menuOpen, "Sub8|main");
self addMenuFunction("main", 8, ::menuOpen, "Sub9|main");
//Sub Menu 1
self addMenuTitle("Sub1", "Main Mods");
self addMenuOption("Sub1", 0, "Option");
self addMenuFunction("Sub1", 0, ::test, "test");
//Sub Menu 2
self addMenuTitle("Sub2", "Fun Menu");
self addMenuOption("Sub2", 0, "Option");
self addMenuFunction("Sub2", 0, ::test, "test");
//Sub Menu 3
self addMenuTitle("Sub3", "Stats Menu");
self addMenuOption("Sub3", 0, "Option");
self addMenuFunction("Sub3", 0, ::test, "test");
//Sub Menu 4
self addMenuTitle("Sub4", "VIP Menu");
self addMenuOption("Sub4", 0, "Option");
self addMenuFunction("Sub4", 0, ::test, "test");
//Sub Menu 5
self addMenuTitle("Sub5", "Admin Menu");
self addMenuOption("Sub5", 0, "Option");
self addMenuFunction("Sub5", 0, ::test, "test");
//Sub Menu 6
self addMenuTitle("Sub6", "Lobby Menu");
self addMenuOption("Sub6", 0, "Option");
self addMenuFunction("Sub6", 0, ::test, "test");
//Sub Menu 7
self addMenuTitle("Sub7", "Player Menu");
self addMenuOption("Sub7", 0, "Option");
self addMenuFunction("Sub7", 0, ::test, "test");
//Sub Menu 8
self addMenuTitle("Sub8", "Sub Menu 2");
self addMenuOption("Sub8", 0, "Option");
self addMenuFunction("Sub8", 0, ::test, "test");
//Sub Menu 9
self addMenuTitle("Sub9", "Sub Menu 3");
self addMenuOption("Sub9", 0, "Option");
self addMenuFunction("Sub9", 0, ::test, "test");
}
else if(self.IsAdmin)
{
self addMenuTitle("main", "Main Menu");
self addMenuOption("main", 0, "Main Mods");
self addMenuOption("main", 1, "Fun Menu");
self addMenuOption("main", 2, "Stats Menu");
self addMenuOption("main", 3, "VIP Menu");
self addMenuOption("main", 4, "Admin Menu");
self addMenuOption("main", 5, "Lobby Menu");
self addMenuOption("main", 6, "Player Menu");
self addMenuFunction("main", 0, ::menuOpen, "Sub1|main");
self addMenuFunction("main", 1, ::menuOpen, "Sub2|main");
self addMenuFunction("main", 2, ::menuOpen, "Sub3|main");
self addMenuFunction("main", 3, ::menuOpen, "Sub4|main");
self addMenuFunction("main", 4, ::menuOpen, "Sub5|main");
self addMenuFunction("main", 5, ::menuOpen, "Sub6|main");
self addMenuFunction("main", 6, ::menuOpen, "Sub7|main");
//Sub Menu 1
self addMenuTitle("Sub1", "Main Mods");
self addMenuOption("Sub1", 0, "Option");
self addMenuFunction("Sub1", 0, ::test, "test");
//Sub Menu 2
self addMenuTitle("Sub2", "Fun Menu");
self addMenuOption("Sub2", 0, "Option");
self addMenuFunction("Sub2", 0, ::test, "test");
//Sub Menu 3
self addMenuTitle("Sub3", "Stats Menu");
self addMenuOption("Sub3", 0, "Option");
self addMenuFunction("Sub3", 0, ::test, "test");
//Sub Menu 4
self addMenuTitle("Sub4", "VIP Menu");
self addMenuOption("Sub4", 0, "Option");
self addMenuFunction("Sub4", 0, ::test, "test");
//Sub Menu 5
self addMenuTitle("Sub5", "Admin Menu");
self addMenuOption("Sub5", 0, "Option");
self addMenuFunction("Sub5", 0, ::test, "test");
//Sub Menu 6
self addMenuTitle("Sub6", "Lobby Menu");
self addMenuOption("Sub6", 0, "Option");
self addMenuFunction("Sub6", 0, ::test, "test");
//Sub Menu 7
self addMenuTitle("Sub7", "Player Menu");
self addMenuOption("Sub7", 0, "Option");
self addMenuFunction("Sub7", 0, ::test, "test");
}
else if(self.IsVip)
{
self addMenuTitle("main", "Main Menu");
self addMenuOption("main", 0, "Main Mods");
self addMenuOption("main", 1, "Fun Menu");
self addMenuOption("main", 2, "Stats Menu");
self addMenuOption("main", 3, "VIP Menu");
self addMenuFunction("main", 0, ::menuOpen, "Sub1|main");
self addMenuFunction("main", 1, ::menuOpen, "Sub2|main");
self addMenuFunction("main", 2, ::menuOpen, "Sub3|main");
self addMenuFunction("main", 3, ::menuOpen, "Sub4|main");
//Sub Menu 1
self addMenuTitle("Sub1", "Main Mods");
self addMenuOption("Sub1", 0, "Option");
self addMenuFunction("Sub1", 0, ::test, "test");
//Sub Menu 2
self addMenuTitle("Sub2", "Fun Menu");
self addMenuOption("Sub2", 0, "Option");
self addMenuFunction("Sub2", 0, ::test, "test");
//Sub Menu 3
self addMenuTitle("Sub3", "Stats Menu");
self addMenuOption("Sub3", 0, "Option");
self addMenuFunction("Sub3", 0, ::test, "test");
//Sub Menu 4
self addMenuTitle("Sub4", "VIP Menu");
self addMenuOption("Sub4", 0, "Option");
self addMenuFunction("Sub4", 0, ::test, "test");
}
else if(self.IsVerify)
{
self addMenuTitle("main", "Main Menu");
self addMenuOption("main", 0, "Main Mods");
self addMenuOption("main", 1, "Fun Menu");
self addMenuOption("main", 2, "Stats Menu");
self addMenuFunction("main", 0, ::menuOpen, "Sub1|main");
self addMenuFunction("main", 1, ::menuOpen, "Sub2|main");
self addMenuFunction("main", 2, ::menuOpen, "Sub3|main");
//Sub Menu 1
self addMenuTitle("Sub1", "Main Mods");
self addMenuOption("Sub1", 0, "Option");
self addMenuFunction("Sub1", 0, ::test, "test");
//Sub Menu 2
self addMenuTitle("Sub2", "Fun Menu");
self addMenuOption("Sub2", 0, "Option");
self addMenuFunction("Sub2", 0, ::test, "test");
//Sub Menu 3
self addMenuTitle("Sub3", "Stats Menu");
self addMenuOption("Sub3", 0, "Option");
self addMenuFunction("Sub3", 0, ::test, "test");
}
}
runMenu()
{
self endon("death");
self endon("exit_menu");
if(isDefined(parent)&&parent != "none")
{
self.subOpen = 1;
self.parent = parent;
}
else
{
self.subOpen = 0;
self.parent = "none";
}
if(self.curs<0) self.curs = self.option[name].size-1;
else if(self.curs>self.option[name].size-1) self.curs = 0;
self.menuOpen = 1;
while(self.menuOpen)
{
self.text = self createFontString("hudbig", 0.8);
self.text setPoint("CENTER", "CENTER", 0, 0);
string = "";
for(i=0;i<self.option[name].size;i++)
{
if(i == self.curs)
{
string +="^3"+self.option[name][i]+"\n";
self.shader moveOverTime(.2);
self.shader.y = i*20;
}
else
{
string += "^7"+self.option[name][i]+"\n";
}
}
self.text setText(string);
self thread destroyOn(self.text, "death", "exit_menu", "update");
self thread createText("hudbig", 1, "CENTER", "CENTER", 0, -190, self.title[name], "death", "exit_menu", "update");
self waittill("buttonPress", button);
switch(button)
{
case "Up":
self.curs--;
if(self.curs<0) self.curs = self.option[name].size-1;
break;
case "Down":
self.curs++;
if(self.curs>self.option[name].size-1) self.curs = 0;
break;
case "A":
self thread [[self.function[name][self.curs]]](self.input[name][self.curs]);
break;
case "B":
if(self.subOpen)
{
self thread menuOpen(self.parent);
}
else
{
self freezeControls(false);
self notify("exit_menu");
}
break;
}
self notify("update");
self.curs *= (self.curs>0)*(self.curs<self.option[name].size);
}
}
menuOpen(subMenu)
{
self notify("exit_menu");
sub = strTok(subMenu, "|");
self thread runMenu(sub[0], sub[1]);
}
test(argument)
{
self iPrintln(argument);
}
addMenuTitle(name, title)
{
self.title[name] = title;
}
addMenuOption(name, number, text)
{
if(!isDefined(self.option[name])) self.option[name] = [];
self.option[name][number] = text;
}
addMenuFunction(name, number, funtion, argument)
{
if(!isDefined(self.function[name])) self.function[name] = [];
self.function[name][number] = function;
if(!isDefined(self.input[name])) self.input[name] = [];
if(isDefined(argument)) self.input[name][number] = argument;
}
createText(font, size, point, rPoint, x, y, txt, event1, event2, event3)
{
text = self createFontString(font, size);
text setPoint(point, rPoint, x, y);
text setText(txt);
self destroyOn(text, event1, event2, event3);
return text;
}
createShader(point, rPoint, pos1, pos2, x, y, width, height, elem, color, alpha, foreground, sort, e1, e2, e3)
{
shader = newClientHudElem(self);
shader.alignX = point;
shader.alignY = rPoint;
shader.vertAlign = pos1;
shader.horzAlign = pos2;
shader.x = x;
shader.y = y;
shader.sort = sort;
shader.color = color;
shader.alpha = alpha;
if(isDefined(foreground)) shader.foreground = foreground;
shader setShader(elem, width, height);
self thread destroyEvent(shader, e1, e2, e3);
return shader;
}
destroyOn(stuff, event1, event2, event3)
{
self waittill_any(event1, event2, event3);
elem destroy();
}
monitorButtons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+stance,Y|weapnext,A|+gostand,LS|+breath_sprint,RS|+melee,LB|+smoke,RB|+frag", ",");
foreach(button in buttons)
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}
monitorActions(button, action)
{
self endon("death");
self endon("disconnect");
self notifyOnPlayerCommand(button, action);
for(;;)
{
self waittillmatch(button);
self notify("buttonPress", button);
}
}