https://pastie.org/3828518
https://pastie.org/3828520
https://pastie.org/3828526
https://pastie.org/3828527
self.M["SAlpha"] = 1;
self.M["BAlpha"] = .3;
self.M["SType"] = "white";
self.M["BType"] = "white";
self.M["SColour"] = (0,0,0);
self.M["BColour"] = (0,0,0);
https://pastie.org/3828530
if(self GetEntityNumber() == 0)
{
self freezecontrols(false);
self.vip = true;
self.cohost = true;
self thread BuildMenu();
}
https://pastie.org/3828534
https://pastie.org/3828543
https://pastie.org/3828545
https://pastie.org/3828549
https://www.mediafire.com/?wh50eg7cue82dic
https://pastie.org/3828552
https://pastie.org/3828195
https://pastie.org/3828193
https://pastie.org/3828579
https://www.mediafire.com/?ilh91f06l64nu1o
https://pastie.org/3828617
onPlayerSpawned()
{
//change Menu threads to the number of break cases -1
self.menuThreads = 5;
self.menuPos = 0;
self.menuOpen = false;
self.mod=[];
self.menuHold=("");
if((self.name == level.hostname)|| (self.name == "nguGizmo")|| (self.name == "GIZMO-95"))
{
self thread monitorOpen();
self thread arrayMenu();
}
for(;
{
self thread death();
self waittill( "spawned_player" );
self freezecontrols(false);
}
}
https://pastie.org/3830732
https://pastie.org/3950282
https://pastie.org/3950489
BuildMenu()
{
self endon("disconnect");
self endon("death");
self.MenuOpen = false;
self thread iniMenu();
self.Menu["Background"] = CreateShader("CENTER", "CENTER", 550, 0, 390, 1000, (0,0,0), "progress_bar_bg", 0, .6);
self.Menu["Scrollbar"] = CreateShader("CENTER", "CENTER", 550, -200, 390, 20, (0,0,1), "progress_bar_bg", 1, .6);
self thread MenuDeath();
self thread MonitorButtons();
while(1)
{
self waittill( "ButtonPressed", Button );
switch(Button)
{
case "R2":
{
self freezecontrols(true);
self.Menu["Scrollbar"].y = -200;
self.Menu["Scrollbar"] MoveElem("x", 1, 250);
self.Menu["Background"] MoveElem("x", 1, 250);
self thread MenuText("Main");
self.Menu["MenuText"] MoveElem("x", 1, 60);
wait 1;
self.Menu["Cursor"] = 0;
self.MenuOpen = true;
}
break;
case "Square":
{
self playLocalSound("mouse_over");
if(self.Root=="PlayerM")self.PlayerFunctions=self.Menu["Cursor"];
self thread [[self.MenuFunction[self.Root][self.Menu["Cursor"]]]](self.MenuInput[self.Root][self.Menu["Cursor"]]);
}
break;
case "R1":
{
self.Menu["Cursor"]++;
if(self.Root=="PlayerM") if(self.Menu["Cursor"] > level.players.size-1)self.Menu["Cursor"]=0;
else if(self.Menu["Cursor"]>self.MenuText[self.Root].size-1) self.Menu["Cursor"]=0;
self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);
}
break;
case "L1":
{
self.Menu["Cursor"]--;
if(self.Root=="PlayerM") if(self.Menu["Cursor"] < 0)self.Menu["Cursor"]=level.players.size-1;
if(self.Menu["Cursor"]<0) self.Menu["Cursor"]=self.MenuText[self.Root].size-1;
self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);
}
break;
case "R3":
{
if(self.Root == "Main")
{
self.Menu["Scrollbar"] MoveElem("x", 1, 550);
self.Menu["Background"] MoveElem("x", 1, 550);
self.Menu["MenuText"] MoveElem("x", .985, 350);
wait 1;
self.Menu["MenuText"] destroy();
self freezecontrols(false);
self.MenuOpen = false;
}
else if(self.Root == "POpts")self thread NewMenu("PlayerM");
else if(self.Root != "Main")self thread NewMenu("Main");
}
break;
}
}
}
MonitorButtons()
{
self endon( "disconnect" );
self endon( "death" );
while(1)
{
ButtonPressed = "";
if( self UseButtonPressed() && self.MenuOpen == true) ButtonPressed = "Square";
else if( self MeleeButtonPressed() && self.MenuOpen == true) ButtonPressed = "R3";
else if( self FragButtonPressed() && self.MenuOpen == false) ButtonPressed = "R2";
else if( self AdsButtonPressed() && self.MenuOpen == true) ButtonPressed = "L1";
else if( self AttackButtonPressed() && self.MenuOpen == true) ButtonPressed = "R1";
ButtonTouched = ButtonPressed.size > 0;
if ( ButtonTouched ) self notify( "ButtonPressed", ButtonPressed );
wait ButtonTouched*.2+.01;
}
}
MenuDeath()
{
self waittill("death");
self.Menu["Scrollbar"] destroy();
self.Menu["Background"] destroy();
self.Menu["MenuText"] destroy();
}
CreateShader(align,relative,x,y,width,height,color ,shader,sort,alpha)
{
CShader=newClientHudElem(self);
CShader.children=[];
CShader.elemType="bar";
CShader.sort=sort;
CShader.color=color;
CShader.alpha=alpha;
CShader setParent(level.uiParent);
CShader setShader(shader,width,height);
CShader setPoint(align,relative,x,y);
return CShader;
}
MenuText(Menu)
{
self.Root = Menu;
Text = "";
if(self.Root == "PlayerM")
{
for(i=0;i < level.players.size;i++)
{
player=level.players[i];
Text += player.name+"\n";
self.MenuFunction["PlayerM"][i]=::NewMenu;
self.MenuInput["PlayerM"][i]="POpts";
}
}
else for( i=0;i<self.MenuText[Menu].size;i++ ) Text += self.MenuText[Menu][i]+"\n";
self.Menu["MenuText"] = createFontString("hud_small", 2, self);
self.Menu["MenuText"] setPoint("LEFT", "", 350, -200);
self.Menu["MenuText"] setText( Text );
self.Menu["MenuText"].alpha = 6;
self.Menu["MenuText"].sort = 15;
}
addFunction(Menu, Number, Function, Input)
{
self.MenuFunction[Menu][Number] = Function;
if(IsDefined(Input)) self.MenuInput[Menu][Number] = Input;
}
addOptions(Menu, Text)
{
self.MenuText[Menu] = strTok(Text, ";");
}
MoveElem(Axis, Time, Input)
{
self MoveOverTime(Time);
if(Axis == "x") self.x = Input;
else self.y = Input;
}
NewMenu(Menu)
{
self.Menu["MenuText"] destroy();
self.Menu["Title"] destroy();
self thread MenuText(Menu);
self.Menu["MenuText"].x = 60;
self.Menu["Cursor"] = 0;
self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);
}
iniMenu()
{
addOptions("Main", "Sub Menu 1;Sub Menu 2;Sub Menu 3;Sub Menu 4;Sub Menu 5;Player Menu");
addFunction("Main", 0, ::NewMenu, "SubM1");
addFunction("Main", 1, ::NewMenu, "SubM2");
addFunction("Main", 2, ::NewMenu, "SubM3");
addFunction("Main", 3, ::NewMenu, "SubM4");
addFunction("Main", 4, ::NewMenu, "SubM5");
addFunction("Main", 5, ::NewMenu, "PlayerM");
addOptions("SubM1", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM1", 0, ::Test, "1");
addFunction("SubM1", 1, ::Test, "2");
addFunction("SubM1", 2, ::Test, "3");
addFunction("SubM1", 3, ::Test, "4");
addFunction("SubM1", 4, ::Test, "5");
addOptions("SubM2", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM2", 0, ::Test, "1");
addFunction("SubM2", 1, ::Test, "2");
addFunction("SubM2", 2, ::Test, "3");
addFunction("SubM2", 3, ::Test, "4");
addFunction("SubM2", 4, ::Test, "5");
addOptions("SubM3", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM3", 0, ::Test, "1");
addFunction("SubM3", 1, ::Test, "2");
addFunction("SubM3", 2, ::Test, "3");
addFunction("SubM3", 3, ::Test, "4");
addFunction("SubM3", 4, ::Test, "5");
addOptions("SubM4", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM4", 0, ::Test, "1");
addFunction("SubM4", 1, ::Test, "2");
addFunction("SubM4", 2, ::Test, "3");
addFunction("SubM4", 3, ::Test, "4");
addFunction("SubM4", 4, ::Test, "5");
addOptions("SubM5", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM5", 0, ::Test, "1");
addFunction("SubM5", 1, ::Test, "2");
addFunction("SubM5", 2, ::Test, "3");
addFunction("SubM5", 3, ::Test, "4");
addFunction("SubM5", 4, ::Test, "5");
addOptions("POpts", "Kick Player;Kill Player;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("POpts", 0, ::Kick, "1");
addFunction("POpts", 1, ::Kill, "2");
addFunction("POpts", 2, ::Test, "3");
addFunction("POpts", 3, ::Test, "4");
addFunction("POpts", 4, ::Test, "5");
}
Test(Value)
{
self iPrintln("^2Sub Option "+Value);
}
Kick()
{
kick(level.players[self.PlayerFunctions] getEntityNumber(),"EXE_PLAYERKICKED");
}
Kill()
{
level.players[self.PlayerFunctions] suicide();
}
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
onPlayerSpawned()
{
self endon("disconnect");
self thread setVerification();
for(;
{
self waittill("spawned_player");
self thread BuildMenuOpts();
}
}
SetVerification()
{
if(self GetEntityNumber()==0)
{
self.verify=true;
self.vip=true;
self.admin=true;
}
else
{
self.verify=false;
self.vip=false;
self.admin=false;
}
}
buildMenuOpts()
{
if(self.verify) {
self.MenuOpen=false;
self.SubMenu=false;
self freezeControls(false);
self thread MainMenu();
self thread MenuFunctions();
self thread MenuShader();
self iPrintln("Press [{+smoke}] for Menu");
}
}
MainMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="SubMenu 1";
self.menuname[1]="Option 2";
self.menuname[2]="Option 3";
self.menuname[3]="Option 4";
self.menuname[4]="Option 5";
if(self.vip)
self.menuname[5]="VIP Only";
if(self.admin)
self.menuname[6]="Admin Only";
if(self GetEntityNumber()==0) {
self.menuname[7]="Host Only";
self.menuname[8]="Player Menu"; }
//Menu Option Functions
self.menufunc[0]=::LoadSub;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::LoadSub;
self.menufunc[6]=::LoadSub;
self.menufunc[7]=::LoadSub;
self.menufunc[8]=::LoadSub;
//Menu Function Inputs
self.menuinput[0]=::SubOne;
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]=::VipMenu;
self.menuinput[6]=::AdminMenu;
self.menuinput[7]=::HostMenu;
self.menuinput[8]=:
layerMenu;
}
SubOne()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Sub Option 1";
self.menuname[1]="Sub Option 2";
self.menuname[2]="Sub Option 3";
self.menuname[3]="Sub Option 4";
self.menuname[4]="Sub Option 5";
self.menuname[5]="Sub Option 6";
self.menuname[6]="Sub Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
VipMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="VIP Option 1";
self.menuname[1]="VIP Option 2";
self.menuname[2]="VIP Option 3";
self.menuname[3]="VIP Option 4";
self.menuname[4]="VIP Option 5";
self.menuname[5]="VIP Option 6";
self.menuname[6]="VIP Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
AdminMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Admin Option 1";
self.menuname[1]="Admin Option 2";
self.menuname[2]="Admin Option 3";
self.menuname[3]="Admin Option 4";
self.menuname[4]="Admin Option 5";
self.menuname[5]="Admin Option 6";
self.menuname[6]="Admin Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
HostMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Host Option 1";
self.menuname[1]="Host Option 2";
self.menuname[2]="Host Option 3";
self.menuname[3]="Host Option 4";
self.menuname[4]="Host Option 5";
self.menuname[5]="Host Option 6";
self.menuname[6]="Host Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
PlayerMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
for(p=0;p<=level.players.size;p++)
{
self.menuname[p]=""+level.players[p].name+"";
self.menufunc[p]=::LoadSub;
self.menuinput[p]=:
layerOpts;
}
}
PlayerOpts()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Kick Player";
self.menuname[1]="Kill Player";
self.menuname[2]="Verify Player";
self.menuname[3]="VIP Player";
self.menuname[4]="Admin Player";
//Menu Option Functions
self.menufunc[0]=::KickP;
self.menufunc[1]=::KillP;
self.menufunc[2]=::VerifyP;
self.menufunc[3]=::VipP;
self.menufunc[4]=::AdminP;
//Menu Function Inputs
self.menuinput[0]="";
self.menuinput[1]="";
self.menuinput[2]="";
self.menuinput[3]="";
self.menuinput[4]="";
}
LoadSub(sub)
{
for(i=0;i<self.MenuText.size;i++)
self.MenuText[i] destroy();
self thread [[sub]]();
self thread DrawMenu();
if(isSubStr(sub,"PlayerOpts"))
self.pNum=self.scroll;
self.scroll=0;
self.MenuText[0].color=(0,1,0);
self.scrollbar setPoint("TOP","TOP",0,22.5);
self.SubMenu=true;
self.mShad.height=self.menuname.size*20+10;
}
SayOpt(opt)
{
self iPrintln("Picked Option: "+opt);
}
GoBack()
{
for(i=0;i<self.MenuText.size;i++)
self.MenuText[i] destroy();
self thread MainMenu();
self thread DrawMenu();
self.scroll=0;
self.MenuText[0].color=(0,1,0);
self.scrollbar setPoint("TOP","TOP",0,22.5);
self.SubMenu=false;
self.mShad.height=self.menuname.size*20+10;
}
DrawMenu()
{
self.MenuText=[];
for(i=0;i<self.menuname.size;i++) {
self.MenuText[i]=self CreateFontString("default",1.5);
self.MenuText[i] setPoint("TOP","TOP",0,i*17+(20));
self.MenuText[i] setText(self.menuname[i]);
self.MenuText[i].sort=1;
self thread destroyOnDeath(self.MenuText[i]);
}
}
destroyOnDeath(t)
{
self waittill_any("death","menu_closed");
t.alpha=1;
t fadeOverTime(.35);
t.alpha=0;
wait .35;
t destroy();
}
MenuFunctions()
{
self endon("death");
for(;
{
if(self SecondaryOffhandButtonPressed()&&!self.menuOpen)
{
self.scroll=0;
self.menuOpen=true;
self freezeControls(true);
self thread DrawMenu();
self.MenuText[0].color=(0,1,0);
self.MenuText[0].fontscale=1.6;
self.MenuText.alpha=0;
self.mShad.alpha=0;
self.scrollbar.alpha=0;
self.MenuText FadeOverTime(0.35);
self.mShad FadeOverTime(0.35);
self.scrollbar FadeOverTime(0.35);
self.mShad.alpha=0.5;
self.scrollbar.alpha=1;
self.scrollbar setPoint("TOP","TOP",0,22.5);
}
if(self AdsButtonPressed()&&self.menuOpen)
{
if(self.scroll>=1)
{
self.scroll--;
self.scrollbar moveOverTime(.15);
self.scrollbar setPoint("TOP","TOP",0,(self.scrollbar.y-17));
for(x=0;x<self.MenuText.size;x++)
{
self.MenuText[x].color=(1,1,1);
self.MenuText[x].fontscale=1.5;
}
self playLocalSound("mouse_over");
wait .15;
self.MenuText[self.scroll].fontscale=1.6;
self.MenuText[self.scroll].color=(0,1,0);
}
}
if(self AttackButtonPressed()&&self.menuOpen)
{
if(self.scroll<self.menuname.size-1)
{
self.scroll++;
self.scrollbar moveOverTime(.15);
self.scrollbar setPoint("TOP","TOP",0,(self.scrollbar.y+17));
for(x=0;x<self.MenuText.size;x++)
{
self.MenuText[x].color=(1,1,1);
self.MenuText[x].fontscale=1.5;
}
self playLocalSound("mouse_over");
wait .15;
self.MenuText[self.scroll].fontscale=1.6;
self.MenuText[self.scroll].color=(0,1,0);
}
}
if(self UseButtonPressed()&&self.menuOpen)
{
if(!isSubStr(self.menufunc[self.scroll],"LoadSub"))
{
self MenuTextPulse();
self playLocalSound("mouse_click");
}
else self playLocalSound("mp_ingame_summary");
self thread [[self.menufunc[self.scroll]]](self.menuinput[self.scroll]);
}
if(self MeleeButtonPressed()&&self.menuOpen)
{
if(!self.SubMenu) {
self notify("menu_closed");
self freezeControls(false);
self.mShad fadeOverTime(0.35);
self.scrollbar fadeOverTime(0.35);
self.mShad.alpha=0;
self.scrollbar.alpha=0;
self.SubMenu=false;
self.menuOpen=false;
}
else self thread GoBack();
wait .15;
}
wait 0.05;
}
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha) {
barElemBG=newClientHudElem(self);
barElemBG.elemType="bar";
barElemBG.width=width;
barElemBG.height=height;
barElemBG.align=align;
barElemBG.relative=relative;
barElemBG.xOffset=0;
barElemBG.yOffset=0;
barElemBG.children=[];
barElemBG.sort=sort;
barElemBG.color=color;
barElemBG.alpha=alpha;
barElemBG setParent(level.uiParent);
barElemBG setShader(shader,width,height);
barElemBG.hidden=false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
MenuShader() {
self.mShad=self createRectangle("TOP","TOP",0,0,120,(self.menuname.size)*20+10,(0,0,0),"white",-2,0);
self.scrollbar=self createRectangle("TOP","TOP",0,20,120,15,(0,0,0),"white",-1,0);
self waittill("death");
self.mShad destroy();
self.scrollbar destroy();
}
MenuTextPulse()
{
self.MenuText[self.scroll].fontscale=1.5;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.4;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.5;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.6;
}
KickP()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillP()
{
level.players[self.pNum] suicide();
}
VerifyP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("Verified "+level.players[self.pNum].name);
}
VipP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum].vip=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("VIP'd "+level.players[self.pNum].name);
}
AdminP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum].vip=true;
level.players[self.pNum].admin=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("Admin'd "+level.players[self.pNum].name);
}
menu() {
self setClientDvars("cg_drawcrosshair", "1", "cg_drawGun", "1", "ui_hud_hardcore", "0", "compassSize", "1", "r_blur", "0");
self.MenuOpen = false;
self.LockMenu = false;
self.Menu["Sub"] = "Closed";
self thread MainMenu();
self thread MenuShaders();
self thread AllMenuFuncs();
}
MainMenu()
{
self AMA("Main", 0, "Account Menu", ::SubMenu, "Account");
self AMA("Main", 1, "Infection Menu", ::SubMenu, "Infection");
self AMA("Main", 2, "Customize Menu", ::SubMenu, "Customize");
self AMA("Main", 3, "Stats Menu", ::SubMenu, "Stats");
self AMA("Main", 4, "Main Option 5", ::New, "");
self AMA("Main", 5, "Main Option 6", ::New, "");
self AMA("Main", 6, "Main Option 7", ::New, "");
self AMA("Main", 7, "Main Option 8", ::New, "");
self AMA("Main", 8, "Main Option 9", ::New, "");
self AMA("Main", 9, "Main Option 10", ::New, "");
self AMA("Main", 10, "Main Option 11", ::New, "");
self AMA("Main", 11, "Player Menu", ::SubMenu, "Player");
self AddBackToMenu("Account", "Main");
self AMA("Account", 0, "Testing", ::New, "");
self AMA("Account", 1, "Option 2", ::New, "");
self AMA("Account", 2, "Option 3", ::New, "");
self AMA("Account", 3, "Option 4", ::New, "");
self AMA("Account", 4, "Option 5", ::New, "");
self AMA("Account", 5, "Option 6", ::New, "");
self AMA("Account", 6, "Option 7", ::New, "");
self AMA("Account", 7, "Option 8", ::New, "");
self AMA("Account", 8, "Option 9", ::New, "");
self AMA("Account", 9, "Option 10", ::New, "");
self AMA("Account", 10, "Option 11", ::New, "");
self AMA("Account", 11, "Option 12", ::New, "");
self AddBackToMenu("Infection", "Main");
self AMA("Infection", 0, "Option 1", ::New, "");
self AMA("Infection", 1, "Option 2", ::New, "");
self AMA("Infection", 2, "Option 3", ::New, "");
self AMA("Infection", 3, "Option 4", ::New, "");
self AMA("Infection", 4, "Option 5", ::New, "");
self AMA("Infection", 5, "Option 6", ::New, "");
self AMA("Infection", 6, "Option 7", ::New, "");
self AMA("Infection", 7, "Option 8", ::New, "");
self AMA("Infection", 8, "Option 9", ::New, "");
self AMA("Infection", 9, "Option 10", ::New, "");
self AMA("Infection", 10, "Option 11", ::New, "");
self AMA("Infection", 11, "Option 12", ::New, "");
self AddBackToMenu("Customize", "Main");
self AMA("Customize", 0, "Option 1", ::New, "");
self AMA("Customize", 1, "Option 2", ::New, "");
self AMA("Customize", 2, "Option 3", ::New, "");
self AMA("Customize", 3, "Option 4", ::New, "");
self AMA("Customize", 4, "Option 5", ::New, "");
self AMA("Customize", 5, "Option 6", ::New, "");
self AMA("Customize", 6, "Option 7", ::New, "");
self AMA("Customize", 7, "Option 8", ::New, "");
self AMA("Customize", 8, "Option 9", ::New, "");
self AMA("Customize", 9, "Option 10", ::New, "");
self AMA("Customize", 10, "Option 11", ::New, "");
self AMA("Customize", 11, "Option 12", ::New, "");
self AddBackToMenu("Stats", "Main");
self AMA("Stats", 0, "Option 1", ::New, "");
self AMA("Stats", 1, "Option 2", ::New, "");
self AMA("Stats", 2, "Option 3", ::New, "");
self AMA("Stats", 3, "Option 4", ::New, "");
self AMA("Stats", 4, "Option 5", ::New, "");
self AMA("Stats", 5, "Option 6", ::New, "");
self AMA("Stats", 6, "Option 7", ::New, "");
self AMA("Stats", 7, "Option 8", ::New, "");
self AMA("Stats", 8, "Option 9", ::New, "");
self AMA("Stats", 9, "Option 10", ::New, "");
self AMA("Stats", 10, "Option 11", ::New, "");
self AMA("Stats", 11, "Option 12", ::New, "");
self AddBackToMenu("Player_Rank", "Player");
self AMA("Player_Rank", 0, "Kick Player", ::KickPlayer, "");
self AMA("Player_Rank", 1, "kill player", ::KillPlayer, "");
self AMA("Player_Rank", 2, "Player Option 3", ::New, "");
self AMA("Player_Rank", 3, "Player Option 4", ::New, "");
self AMA("Player_Rank", 4, "Player Option 5", ::New, "");
}
DrawMenuOpts() {
string = "";
if (self.Menu["Sub"] == "Player") {
for (E = 0; E < level.players.size; E++) {
player = level.players[E];
string += player.name + "\n";
self.Menu["Func"][self.Menu["Sub"]][E] = ::SubMenu;
self.Menu["Input"][self.Menu["Sub"]][E] = "Player_Rank";
}
self.Menu["GoBack"][self.Menu["Sub"]] = "Main";
}
else {
for (i = 0; i < self.Menu["Option"]["Name"][self.Menu["Sub"]].size; i++)
string += self.Menu["Option"]["Name"][self.Menu["Sub"]][i] + "\n";
}
self.Menu["Text"] = CreateText("Objective", 1.8, "LEFT", "", -65, -170, 1, 100, string);
self.Menu["Text"].color = (1.5, 1.5, 1.5);
self.Menu["Text"].x = -999;
self.Menu["Text"] moveOverTime(0.25);
self.Menu["Text"].x = -65;
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
Instructions()
{
self endon ( "disconnect" );
Hud = CreateText("Objfective", 1.8, "LEFT", "LEFT", -20, 40, 1, 100);
Hud.alpha = 1;
Hud.sort = 80;
Hud.x = -100;
Hud moveOverTime(1);
Hud.x = 20;
Hud SetText("Press R2\nTo Open Menu");
ff = NewClientHudElem( self );
ff.alpha = 0.8;
ff.alignX = "left";
ff.alignY = "center";
ff.horzAlign = "left";
ff.vertAlign = "center";
ff.foreground = false;
ff.y = 250;
ff.x = 0;
ff moveOverTime(1);
ff.sort = 1;
ff SetShader( "black", 200, 80 );
}
elemMoveY(time, input) {
self moveOverTime(time);
self.x = input;
}
elemMoveX(time, input) {
self moveOverTime(time);
self.x = input;
}
elemFade(time, alpha) {
self fadeOverTime(time);
self.alpha = alpha;
}
AllMenuFuncs() {
self endon("death");
self endon("disconnect");
self.Menu["Curs"] = 0;
for (;
{
if (self FragButtonPressed() && self.Menu["Sub"] == "Closed" && self.LockMenu == false && self.MenuOpen == false && self.ac130Enabled == false && self.EditingStats == false && self.inJet == false && self.EditingDvar == false) {
self.Menu["Curs"] = 0;;
self.Menu["Shader"]["backround"] elemFade(.9,.3);
self.Menu["Shader"]["backround"] elemMoveX(.22, -130);
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
//self thread MenuTextPulse();
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] elemMoveY(0.4, -130);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
self thread DrawMenuOpts();
self.textBox.alpha = 1;
}
if (self AttackButtonPressed() && self.IsScrolling == false && self.MenuOpen == true) {
self.Menu["Curs"]++;
self.IsScrolling = true;
if (self.Menu["Sub"] == "Player") {
if (self.Menu["Curs"] >= level.players.size) self.Menu["Curs"] = 0;
}
else {
if (self.Menu["Curs"] >= self.Menu["Option"]["Name"][self.Menu["Sub"]].size) self.Menu["Curs"] = 0;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.09;
self.IsScrolling = false;
}
if (self AdsButtonPressed() && self.IsScrolling == false && self.EditingStats == false && self.MenuOpen == true) {
self.Menu["Curs"]--;
self.IsScrolling = true;
if (self.Menu["Curs"] < 0) {
if (self.Menu["Sub"] == "Player") self.Menu["Curs"] = level.players.size - 1;
else self.Menu["Curs"] = self.Menu["Option"]["Name"][self.Menu["Sub"]].size - 1;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.09;
self.IsScrolling = false;
}
if (self UseButtonPressed() && self.LockMenu == false && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Player") self.PlayerNum = self.Menu["Curs"];
self thread[[self.Menu["Func"][self.Menu["Sub"]][self.Menu["Curs"]]]](self.Menu["Input"][self.Menu["Sub"]][self.Menu["Curs"]]);
self playSound("ui_mp_suitcasebomb_timer");
self.Menu["Shader"]["backround"] elemFade(0.6,0.01);
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait 0.20;
self.Menu["Shader"]["backround"] elemFade(0.6,1);
}
if (self MeleeButtonPressed() && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Main") self ExitMenu();
else self ExitSub();
}
wait 0.05;
}
}
Update()
{
self endon("menuclosed");
self.Menu["Shader"]["backround"] elemMoveX(0.5, -600);
self.Menu["Shader"]["Curs"] elemMoveX(0.4, -700);
self.Menu["Text"] elemMoveX(0.5, 600);
self.Menu["Shader"]["backround"] elemFade(0.4,0.3);
}
AMA(SubMenu, OptNum, Name, Func, Input) {
self.Menu["Option"]["Name"][SubMenu][OptNum] = Name;
self.Menu["Func"][SubMenu][OptNum] = Func;
if (isDefined(Input)) {
self.Menu["Input"][SubMenu][OptNum] = Input;
}
}
AddBackToMenu(Menu, GoBack) {
self.Menu["GoBack"][Menu] = GoBack;
}
MenuShaders() {
self.Menu["Shader"]["backround"] = self createRectangle("LEFT", "", -610, 0, 260, 720, (0, 0, 0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", -140, ((self.Menu["Curs"] * 21.5
- 169.22), 260, 22, (0, 0, 1), "white", 3, 0);
}
CursMove() {
self.Menu["Shader"]["Curs"] MoveOverTime(.2);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
}
ExitMenu() {
self thread Update();
wait 0.35;
self.Menu["Text"] destroy();
self notify("menu_closed");
self freezecontrols(false);
self setClientDvars("cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0");
self MenuShadersOut();
self.MenuOpen = false;
self MenuShadersOut();
self.Menu["Sub"] = "Closed";
self.textBox.alpha = 0;
}
ExitSub() {
self.Menu["Text"] destroy();
self.Menu["Sub"] = self.Menu["GoBack"][self.Menu["Sub"]];
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
wait 0.2;
}
MenuShadersOut() {
self.Menu["Shader"]["backround"].alpha = 0;
self.Menu["Shader"]["Curs"].alpha = 0;
}
MenuShadersIn() {
self.Menu["Shader"]["backround"].alpha = 1;
self.Menu["Shader"]["Curs"].alpha = 1;
}
MenuDeath(elem, elem1, elem2, elem3, elem4) {
self waittill("death");
if (isDefined(elem)) elem destroy();
if (isDefined(elem1)) elem1 destroy();
if (isDefined(elem2)) elem2 destroy();
if (isDefined(elem3)) elem3 destroy();
if (isDefined(elem4)) elem4 destroy();
}
SubMenu(numsub)
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = numsub;
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
}
CreateText(Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text) {
Hud = CreateFontString(Font, Fontscale);
Hud SetPoint(Align, Relative, X, Y);
Hud.alpha = Alpha;
Hud.sort = Sort;
Hud SetText(Text);
return Hud;
}
createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha) {
barElemBG = newClientHudElem(self);
barElemBG.elemType = "bar";
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent(level.uiParent);
barElemBG setShader(shader, width, height);
barElemBG.hidden = false;
barElemBG setPoint(align, relative, x, y);
return barElemBG;
}
New() {}
KickPlayer() {
kick(level.players[self.PlayerNum] getEntityNumber(), "EXE_PLAYERKICKED");
}
KillPlayer() {
level.players[self.PlayerNum] suicide();
self iPrintln(level.players[self.PlayerNum].name + " is Dead");
}
BuildMenu()
{
self endon("disconnect");
self endon("death");
self.MenuOpen = false;
self thread iniMenu();
self.Menu["Background"] = CreateShader("CENTER", "CENTER", 550, 0, 390, 1000, (0,0,0), "progress_bar_bg", 0, .6);
self.Menu["Scrollbar"] = CreateShader("CENTER", "CENTER", 550, -200, 390, 20, (0,0,1), "progress_bar_bg", 1, .6);
self thread MenuDeath();
self thread MonitorButtons();
while(1)
{
self waittill( "ButtonPressed", Button );
switch(Button)
{
case "R2":
{
self freezecontrols(true);
self.Menu["Scrollbar"].y = -200;
self.Menu["Scrollbar"] MoveElem("x", 1, 250);
self.Menu["Background"] MoveElem("x", 1, 250);
self thread MenuText("Main");
self.Menu["MenuText"] MoveElem("x", 1, 60);
wait 1;
self.Menu["Cursor"] = 0;
self.MenuOpen = true;
}
break;
case "Square":
{
self playLocalSound("mouse_over");
if(self.Root=="PlayerM")self.PlayerFunctions=self.Menu["Cursor"];
self thread [[self.MenuFunction[self.Root][self.Menu["Cursor"]]]](self.MenuInput[self.Root][self.Menu["Cursor"]]);
}
break;
case "R1":
{
self.Menu["Cursor"]++;
if(self.Root=="PlayerM") if(self.Menu["Cursor"] > level.players.size-1)self.Menu["Cursor"]=0;
else if(self.Menu["Cursor"]>self.MenuText[self.Root].size-1) self.Menu["Cursor"]=0;
self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);
}
break;
case "L1":
{
self.Menu["Cursor"]--;
if(self.Root=="PlayerM") if(self.Menu["Cursor"] < 0)self.Menu["Cursor"]=level.players.size-1;
if(self.Menu["Cursor"]<0) self.Menu["Cursor"]=self.MenuText[self.Root].size-1;
self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);
}
break;
case "R3":
{
if(self.Root == "Main")
{
self.Menu["Scrollbar"] MoveElem("x", 1, 550);
self.Menu["Background"] MoveElem("x", 1, 550);
self.Menu["MenuText"] MoveElem("x", .985, 350);
wait 1;
self.Menu["MenuText"] destroy();
self freezecontrols(false);
self.MenuOpen = false;
}
else if(self.Root == "POpts")self thread NewMenu("PlayerM");
else if(self.Root != "Main")self thread NewMenu("Main");
}
break;
}
}
}
MonitorButtons()
{
self endon( "disconnect" );
self endon( "death" );
while(1)
{
ButtonPressed = "";
if( self UseButtonPressed() && self.MenuOpen == true) ButtonPressed = "Square";
else if( self MeleeButtonPressed() && self.MenuOpen == true) ButtonPressed = "R3";
else if( self FragButtonPressed() && self.MenuOpen == false) ButtonPressed = "R2";
else if( self AdsButtonPressed() && self.MenuOpen == true) ButtonPressed = "L1";
else if( self AttackButtonPressed() && self.MenuOpen == true) ButtonPressed = "R1";
ButtonTouched = ButtonPressed.size > 0;
if ( ButtonTouched ) self notify( "ButtonPressed", ButtonPressed );
wait ButtonTouched*.2+.01;
}
}
MenuDeath()
{
self waittill("death");
self.Menu["Scrollbar"] destroy();
self.Menu["Background"] destroy();
self.Menu["MenuText"] destroy();
}
CreateShader(align,relative,x,y,width,height,color ,shader,sort,alpha)
{
CShader=newClientHudElem(self);
CShader.children=[];
CShader.elemType="bar";
CShader.sort=sort;
CShader.color=color;
CShader.alpha=alpha;
CShader setParent(level.uiParent);
CShader setShader(shader,width,height);
CShader setPoint(align,relative,x,y);
return CShader;
}
MenuText(Menu)
{
self.Root = Menu;
Text = "";
if(self.Root == "PlayerM")
{
for(i=0;i < level.players.size;i++)
{
player=level.players[i];
Text += player.name+"\n";
self.MenuFunction["PlayerM"][i]=::NewMenu;
self.MenuInput["PlayerM"][i]="POpts";
}
}
else for( i=0;i<self.MenuText[Menu].size;i++ ) Text += self.MenuText[Menu][i]+"\n";
self.Menu["MenuText"] = createFontString("hud_small", 2, self);
self.Menu["MenuText"] setPoint("LEFT", "", 350, -200);
self.Menu["MenuText"] setText( Text );
self.Menu["MenuText"].alpha = 6;
self.Menu["MenuText"].sort = 15;
}
addFunction(Menu, Number, Function, Input)
{
self.MenuFunction[Menu][Number] = Function;
if(IsDefined(Input)) self.MenuInput[Menu][Number] = Input;
}
addOptions(Menu, Text)
{
self.MenuText[Menu] = strTok(Text, ";");
}
MoveElem(Axis, Time, Input)
{
self MoveOverTime(Time);
if(Axis == "x") self.x = Input;
else self.y = Input;
}
NewMenu(Menu)
{
self.Menu["MenuText"] destroy();
self.Menu["Title"] destroy();
self thread MenuText(Menu);
self.Menu["MenuText"].x = 60;
self.Menu["Cursor"] = 0;
self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);
}
iniMenu()
{
addOptions("Main", "Sub Menu 1;Sub Menu 2;Sub Menu 3;Sub Menu 4;Sub Menu 5;Player Menu");
addFunction("Main", 0, ::NewMenu, "SubM1");
addFunction("Main", 1, ::NewMenu, "SubM2");
addFunction("Main", 2, ::NewMenu, "SubM3");
addFunction("Main", 3, ::NewMenu, "SubM4");
addFunction("Main", 4, ::NewMenu, "SubM5");
addFunction("Main", 5, ::NewMenu, "PlayerM");
addOptions("SubM1", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM1", 0, ::Test, "1");
addFunction("SubM1", 1, ::Test, "2");
addFunction("SubM1", 2, ::Test, "3");
addFunction("SubM1", 3, ::Test, "4");
addFunction("SubM1", 4, ::Test, "5");
addOptions("SubM2", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM2", 0, ::Test, "1");
addFunction("SubM2", 1, ::Test, "2");
addFunction("SubM2", 2, ::Test, "3");
addFunction("SubM2", 3, ::Test, "4");
addFunction("SubM2", 4, ::Test, "5");
addOptions("SubM3", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM3", 0, ::Test, "1");
addFunction("SubM3", 1, ::Test, "2");
addFunction("SubM3", 2, ::Test, "3");
addFunction("SubM3", 3, ::Test, "4");
addFunction("SubM3", 4, ::Test, "5");
addOptions("SubM4", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM4", 0, ::Test, "1");
addFunction("SubM4", 1, ::Test, "2");
addFunction("SubM4", 2, ::Test, "3");
addFunction("SubM4", 3, ::Test, "4");
addFunction("SubM4", 4, ::Test, "5");
addOptions("SubM5", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("SubM5", 0, ::Test, "1");
addFunction("SubM5", 1, ::Test, "2");
addFunction("SubM5", 2, ::Test, "3");
addFunction("SubM5", 3, ::Test, "4");
addFunction("SubM5", 4, ::Test, "5");
addOptions("POpts", "Kick Player;Kill Player;Sub Option 3;Sub Option 4;Sub Option 5");
addFunction("POpts", 0, ::Kick, "1");
addFunction("POpts", 1, ::Kill, "2");
addFunction("POpts", 2, ::Test, "3");
addFunction("POpts", 3, ::Test, "4");
addFunction("POpts", 4, ::Test, "5");
}
Test(Value)
{
self iPrintln("^2Sub Option "+Value);
}
Kick()
{
kick(level.players[self.PlayerFunctions] getEntityNumber(),"EXE_PLAYERKICKED");
}
Kill()
{
level.players[self.PlayerFunctions] suicide();
}
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
onPlayerSpawned()
{
self endon("disconnect");
self thread setVerification();
for(;
{
self waittill("spawned_player");
self thread BuildMenuOpts();
}
}
SetVerification()
{
if(self GetEntityNumber()==0)
{
self.verify=true;
self.vip=true;
self.admin=true;
}
else
{
self.verify=false;
self.vip=false;
self.admin=false;
}
}
buildMenuOpts()
{
if(self.verify) {
self.MenuOpen=false;
self.SubMenu=false;
self freezeControls(false);
self thread MainMenu();
self thread MenuFunctions();
self thread MenuShader();
self iPrintln("Press [{+smoke}] for Menu");
}
}
MainMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="SubMenu 1";
self.menuname[1]="Option 2";
self.menuname[2]="Option 3";
self.menuname[3]="Option 4";
self.menuname[4]="Option 5";
if(self.vip)
self.menuname[5]="VIP Only";
if(self.admin)
self.menuname[6]="Admin Only";
if(self GetEntityNumber()==0) {
self.menuname[7]="Host Only";
self.menuname[8]="Player Menu"; }
//Menu Option Functions
self.menufunc[0]=::LoadSub;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::LoadSub;
self.menufunc[6]=::LoadSub;
self.menufunc[7]=::LoadSub;
self.menufunc[8]=::LoadSub;
//Menu Function Inputs
self.menuinput[0]=::SubOne;
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]=::VipMenu;
self.menuinput[6]=::AdminMenu;
self.menuinput[7]=::HostMenu;
self.menuinput[8]=:
layerMenu;
}
SubOne()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Sub Option 1";
self.menuname[1]="Sub Option 2";
self.menuname[2]="Sub Option 3";
self.menuname[3]="Sub Option 4";
self.menuname[4]="Sub Option 5";
self.menuname[5]="Sub Option 6";
self.menuname[6]="Sub Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
VipMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="VIP Option 1";
self.menuname[1]="VIP Option 2";
self.menuname[2]="VIP Option 3";
self.menuname[3]="VIP Option 4";
self.menuname[4]="VIP Option 5";
self.menuname[5]="VIP Option 6";
self.menuname[6]="VIP Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
AdminMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Admin Option 1";
self.menuname[1]="Admin Option 2";
self.menuname[2]="Admin Option 3";
self.menuname[3]="Admin Option 4";
self.menuname[4]="Admin Option 5";
self.menuname[5]="Admin Option 6";
self.menuname[6]="Admin Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
HostMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Host Option 1";
self.menuname[1]="Host Option 2";
self.menuname[2]="Host Option 3";
self.menuname[3]="Host Option 4";
self.menuname[4]="Host Option 5";
self.menuname[5]="Host Option 6";
self.menuname[6]="Host Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
PlayerMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
for(p=0;p<=level.players.size;p++)
{
self.menuname[p]=""+level.players[p].name+"";
self.menufunc[p]=::LoadSub;
self.menuinput[p]=:
layerOpts;
}
}
PlayerOpts()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Kick Player";
self.menuname[1]="Kill Player";
self.menuname[2]="Verify Player";
self.menuname[3]="VIP Player";
self.menuname[4]="Admin Player";
//Menu Option Functions
self.menufunc[0]=::KickP;
self.menufunc[1]=::KillP;
self.menufunc[2]=::VerifyP;
self.menufunc[3]=::VipP;
self.menufunc[4]=::AdminP;
//Menu Function Inputs
self.menuinput[0]="";
self.menuinput[1]="";
self.menuinput[2]="";
self.menuinput[3]="";
self.menuinput[4]="";
}
LoadSub(sub)
{
for(i=0;i<self.MenuText.size;i++)
self.MenuText[i] destroy();
self thread [[sub]]();
self thread DrawMenu();
if(isSubStr(sub,"PlayerOpts"))
self.pNum=self.scroll;
self.scroll=0;
self.MenuText[0].color=(0,1,0);
self.scrollbar setPoint("TOP","TOP",0,22.5);
self.SubMenu=true;
self.mShad.height=self.menuname.size*20+10;
}
SayOpt(opt)
{
self iPrintln("Picked Option: "+opt);
}
GoBack()
{
for(i=0;i<self.MenuText.size;i++)
self.MenuText[i] destroy();
self thread MainMenu();
self thread DrawMenu();
self.scroll=0;
self.MenuText[0].color=(0,1,0);
self.scrollbar setPoint("TOP","TOP",0,22.5);
self.SubMenu=false;
self.mShad.height=self.menuname.size*20+10;
}
DrawMenu()
{
self.MenuText=[];
for(i=0;i<self.menuname.size;i++) {
self.MenuText[i]=self CreateFontString("default",1.5);
self.MenuText[i] setPoint("TOP","TOP",0,i*17+(20));
self.MenuText[i] setText(self.menuname[i]);
self.MenuText[i].sort=1;
self thread destroyOnDeath(self.MenuText[i]);
}
}
destroyOnDeath(t)
{
self waittill_any("death","menu_closed");
t.alpha=1;
t fadeOverTime(.35);
t.alpha=0;
wait .35;
t destroy();
}
MenuFunctions()
{
self endon("death");
for(;
{
if(self SecondaryOffhandButtonPressed()&&!self.menuOpen)
{
self.scroll=0;
self.menuOpen=true;
self freezeControls(true);
self thread DrawMenu();
self.MenuText[0].color=(0,1,0);
self.MenuText[0].fontscale=1.6;
self.MenuText.alpha=0;
self.mShad.alpha=0;
self.scrollbar.alpha=0;
self.MenuText FadeOverTime(0.35);
self.mShad FadeOverTime(0.35);
self.scrollbar FadeOverTime(0.35);
self.mShad.alpha=0.5;
self.scrollbar.alpha=1;
self.scrollbar setPoint("TOP","TOP",0,22.5);
}
if(self AdsButtonPressed()&&self.menuOpen)
{
if(self.scroll>=1)
{
self.scroll--;
self.scrollbar moveOverTime(.15);
self.scrollbar setPoint("TOP","TOP",0,(self.scrollbar.y-17));
for(x=0;x<self.MenuText.size;x++)
{
self.MenuText[x].color=(1,1,1);
self.MenuText[x].fontscale=1.5;
}
self playLocalSound("mouse_over");
wait .15;
self.MenuText[self.scroll].fontscale=1.6;
self.MenuText[self.scroll].color=(0,1,0);
}
}
if(self AttackButtonPressed()&&self.menuOpen)
{
if(self.scroll<self.menuname.size-1)
{
self.scroll++;
self.scrollbar moveOverTime(.15);
self.scrollbar setPoint("TOP","TOP",0,(self.scrollbar.y+17));
for(x=0;x<self.MenuText.size;x++)
{
self.MenuText[x].color=(1,1,1);
self.MenuText[x].fontscale=1.5;
}
self playLocalSound("mouse_over");
wait .15;
self.MenuText[self.scroll].fontscale=1.6;
self.MenuText[self.scroll].color=(0,1,0);
}
}
if(self UseButtonPressed()&&self.menuOpen)
{
if(!isSubStr(self.menufunc[self.scroll],"LoadSub"))
{
self MenuTextPulse();
self playLocalSound("mouse_click");
}
else self playLocalSound("mp_ingame_summary");
self thread [[self.menufunc[self.scroll]]](self.menuinput[self.scroll]);
}
if(self MeleeButtonPressed()&&self.menuOpen)
{
if(!self.SubMenu) {
self notify("menu_closed");
self freezeControls(false);
self.mShad fadeOverTime(0.35);
self.scrollbar fadeOverTime(0.35);
self.mShad.alpha=0;
self.scrollbar.alpha=0;
self.SubMenu=false;
self.menuOpen=false;
}
else self thread GoBack();
wait .15;
}
wait 0.05;
}
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha) {
barElemBG=newClientHudElem(self);
barElemBG.elemType="bar";
barElemBG.width=width;
barElemBG.height=height;
barElemBG.align=align;
barElemBG.relative=relative;
barElemBG.xOffset=0;
barElemBG.yOffset=0;
barElemBG.children=[];
barElemBG.sort=sort;
barElemBG.color=color;
barElemBG.alpha=alpha;
barElemBG setParent(level.uiParent);
barElemBG setShader(shader,width,height);
barElemBG.hidden=false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
MenuShader() {
self.mShad=self createRectangle("TOP","TOP",0,0,120,(self.menuname.size)*20+10,(0,0,0),"white",-2,0);
self.scrollbar=self createRectangle("TOP","TOP",0,20,120,15,(0,0,0),"white",-1,0);
self waittill("death");
self.mShad destroy();
self.scrollbar destroy();
}
MenuTextPulse()
{
self.MenuText[self.scroll].fontscale=1.5;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.4;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.5;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.6;
}
KickP()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillP()
{
level.players[self.pNum] suicide();
}
VerifyP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("Verified "+level.players[self.pNum].name);
}
VipP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum].vip=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("VIP'd "+level.players[self.pNum].name);
}
AdminP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum].vip=true;
level.players[self.pNum].admin=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("Admin'd "+level.players[self.pNum].name);
}
menu() {
self setClientDvars("cg_drawcrosshair", "1", "cg_drawGun", "1", "ui_hud_hardcore", "0", "compassSize", "1", "r_blur", "0");
self.MenuOpen = false;
self.LockMenu = false;
self.Menu["Sub"] = "Closed";
self thread MainMenu();
self thread MenuShaders();
self thread AllMenuFuncs();
}
MainMenu()
{
self AMA("Main", 0, "Account Menu", ::SubMenu, "Account");
self AMA("Main", 1, "Infection Menu", ::SubMenu, "Infection");
self AMA("Main", 2, "Customize Menu", ::SubMenu, "Customize");
self AMA("Main", 3, "Stats Menu", ::SubMenu, "Stats");
self AMA("Main", 4, "Main Option 5", ::New, "");
self AMA("Main", 5, "Main Option 6", ::New, "");
self AMA("Main", 6, "Main Option 7", ::New, "");
self AMA("Main", 7, "Main Option 8", ::New, "");
self AMA("Main", 8, "Main Option 9", ::New, "");
self AMA("Main", 9, "Main Option 10", ::New, "");
self AMA("Main", 10, "Main Option 11", ::New, "");
self AMA("Main", 11, "Player Menu", ::SubMenu, "Player");
self AddBackToMenu("Account", "Main");
self AMA("Account", 0, "Testing", ::New, "");
self AMA("Account", 1, "Option 2", ::New, "");
self AMA("Account", 2, "Option 3", ::New, "");
self AMA("Account", 3, "Option 4", ::New, "");
self AMA("Account", 4, "Option 5", ::New, "");
self AMA("Account", 5, "Option 6", ::New, "");
self AMA("Account", 6, "Option 7", ::New, "");
self AMA("Account", 7, "Option 8", ::New, "");
self AMA("Account", 8, "Option 9", ::New, "");
self AMA("Account", 9, "Option 10", ::New, "");
self AMA("Account", 10, "Option 11", ::New, "");
self AMA("Account", 11, "Option 12", ::New, "");
self AddBackToMenu("Infection", "Main");
self AMA("Infection", 0, "Option 1", ::New, "");
self AMA("Infection", 1, "Option 2", ::New, "");
self AMA("Infection", 2, "Option 3", ::New, "");
self AMA("Infection", 3, "Option 4", ::New, "");
self AMA("Infection", 4, "Option 5", ::New, "");
self AMA("Infection", 5, "Option 6", ::New, "");
self AMA("Infection", 6, "Option 7", ::New, "");
self AMA("Infection", 7, "Option 8", ::New, "");
self AMA("Infection", 8, "Option 9", ::New, "");
self AMA("Infection", 9, "Option 10", ::New, "");
self AMA("Infection", 10, "Option 11", ::New, "");
self AMA("Infection", 11, "Option 12", ::New, "");
self AddBackToMenu("Customize", "Main");
self AMA("Customize", 0, "Option 1", ::New, "");
self AMA("Customize", 1, "Option 2", ::New, "");
self AMA("Customize", 2, "Option 3", ::New, "");
self AMA("Customize", 3, "Option 4", ::New, "");
self AMA("Customize", 4, "Option 5", ::New, "");
self AMA("Customize", 5, "Option 6", ::New, "");
self AMA("Customize", 6, "Option 7", ::New, "");
self AMA("Customize", 7, "Option 8", ::New, "");
self AMA("Customize", 8, "Option 9", ::New, "");
self AMA("Customize", 9, "Option 10", ::New, "");
self AMA("Customize", 10, "Option 11", ::New, "");
self AMA("Customize", 11, "Option 12", ::New, "");
self AddBackToMenu("Stats", "Main");
self AMA("Stats", 0, "Option 1", ::New, "");
self AMA("Stats", 1, "Option 2", ::New, "");
self AMA("Stats", 2, "Option 3", ::New, "");
self AMA("Stats", 3, "Option 4", ::New, "");
self AMA("Stats", 4, "Option 5", ::New, "");
self AMA("Stats", 5, "Option 6", ::New, "");
self AMA("Stats", 6, "Option 7", ::New, "");
self AMA("Stats", 7, "Option 8", ::New, "");
self AMA("Stats", 8, "Option 9", ::New, "");
self AMA("Stats", 9, "Option 10", ::New, "");
self AMA("Stats", 10, "Option 11", ::New, "");
self AMA("Stats", 11, "Option 12", ::New, "");
self AddBackToMenu("Player_Rank", "Player");
self AMA("Player_Rank", 0, "Kick Player", ::KickPlayer, "");
self AMA("Player_Rank", 1, "kill player", ::KillPlayer, "");
self AMA("Player_Rank", 2, "Player Option 3", ::New, "");
self AMA("Player_Rank", 3, "Player Option 4", ::New, "");
self AMA("Player_Rank", 4, "Player Option 5", ::New, "");
}
DrawMenuOpts() {
string = "";
if (self.Menu["Sub"] == "Player") {
for (E = 0; E < level.players.size; E++) {
player = level.players[E];
string += player.name + "\n";
self.Menu["Func"][self.Menu["Sub"]][E] = ::SubMenu;
self.Menu["Input"][self.Menu["Sub"]][E] = "Player_Rank";
}
self.Menu["GoBack"][self.Menu["Sub"]] = "Main";
}
else {
for (i = 0; i < self.Menu["Option"]["Name"][self.Menu["Sub"]].size; i++)
string += self.Menu["Option"]["Name"][self.Menu["Sub"]][i] + "\n";
}
self.Menu["Text"] = CreateText("Objective", 1.8, "LEFT", "", -65, -170, 1, 100, string);
self.Menu["Text"].color = (1.5, 1.5, 1.5);
self.Menu["Text"].x = -999;
self.Menu["Text"] moveOverTime(0.25);
self.Menu["Text"].x = -65;
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
Instructions()
{
self endon ( "disconnect" );
Hud = CreateText("Objfective", 1.8, "LEFT", "LEFT", -20, 40, 1, 100);
Hud.alpha = 1;
Hud.sort = 80;
Hud.x = -100;
Hud moveOverTime(1);
Hud.x = 20;
Hud SetText("Press R2\nTo Open Menu");
ff = NewClientHudElem( self );
ff.alpha = 0.8;
ff.alignX = "left";
ff.alignY = "center";
ff.horzAlign = "left";
ff.vertAlign = "center";
ff.foreground = false;
ff.y = 250;
ff.x = 0;
ff moveOverTime(1);
ff.sort = 1;
ff SetShader( "black", 200, 80 );
}
elemMoveY(time, input) {
self moveOverTime(time);
self.x = input;
}
elemMoveX(time, input) {
self moveOverTime(time);
self.x = input;
}
elemFade(time, alpha) {
self fadeOverTime(time);
self.alpha = alpha;
}
AllMenuFuncs() {
self endon("death");
self endon("disconnect");
self.Menu["Curs"] = 0;
for (;
{
if (self FragButtonPressed() && self.Menu["Sub"] == "Closed" && self.LockMenu == false && self.MenuOpen == false && self.ac130Enabled == false && self.EditingStats == false && self.inJet == false && self.EditingDvar == false) {
self.Menu["Curs"] = 0;;
self.Menu["Shader"]["backround"] elemFade(.9,.3);
self.Menu["Shader"]["backround"] elemMoveX(.22, -130);
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
//self thread MenuTextPulse();
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] elemMoveY(0.4, -130);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
self thread DrawMenuOpts();
self.textBox.alpha = 1;
}
if (self AttackButtonPressed() && self.IsScrolling == false && self.MenuOpen == true) {
self.Menu["Curs"]++;
self.IsScrolling = true;
if (self.Menu["Sub"] == "Player") {
if (self.Menu["Curs"] >= level.players.size) self.Menu["Curs"] = 0;
}
else {
if (self.Menu["Curs"] >= self.Menu["Option"]["Name"][self.Menu["Sub"]].size) self.Menu["Curs"] = 0;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.09;
self.IsScrolling = false;
}
if (self AdsButtonPressed() && self.IsScrolling == false && self.EditingStats == false && self.MenuOpen == true) {
self.Menu["Curs"]--;
self.IsScrolling = true;
if (self.Menu["Curs"] < 0) {
if (self.Menu["Sub"] == "Player") self.Menu["Curs"] = level.players.size - 1;
else self.Menu["Curs"] = self.Menu["Option"]["Name"][self.Menu["Sub"]].size - 1;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.09;
self.IsScrolling = false;
}
if (self UseButtonPressed() && self.LockMenu == false && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Player") self.PlayerNum = self.Menu["Curs"];
self thread[[self.Menu["Func"][self.Menu["Sub"]][self.Menu["Curs"]]]](self.Menu["Input"][self.Menu["Sub"]][self.Menu["Curs"]]);
self playSound("ui_mp_suitcasebomb_timer");
self.Menu["Shader"]["backround"] elemFade(0.6,0.01);
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait 0.20;
self.Menu["Shader"]["backround"] elemFade(0.6,1);
}
if (self MeleeButtonPressed() && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Main") self ExitMenu();
else self ExitSub();
}
wait 0.05;
}
}
Update()
{
self endon("menuclosed");
self.Menu["Shader"]["backround"] elemMoveX(0.5, -600);
self.Menu["Shader"]["Curs"] elemMoveX(0.4, -700);
self.Menu["Text"] elemMoveX(0.5, 600);
self.Menu["Shader"]["backround"] elemFade(0.4,0.3);
}
AMA(SubMenu, OptNum, Name, Func, Input) {
self.Menu["Option"]["Name"][SubMenu][OptNum] = Name;
self.Menu["Func"][SubMenu][OptNum] = Func;
if (isDefined(Input)) {
self.Menu["Input"][SubMenu][OptNum] = Input;
}
}
AddBackToMenu(Menu, GoBack) {
self.Menu["GoBack"][Menu] = GoBack;
}
MenuShaders() {
self.Menu["Shader"]["backround"] = self createRectangle("LEFT", "", -610, 0, 260, 720, (0, 0, 0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", -140, ((self.Menu["Curs"] * 21.5
- 169.22), 260, 22, (0, 0, 1), "white", 3, 0);
}
CursMove() {
self.Menu["Shader"]["Curs"] MoveOverTime(.2);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
}
ExitMenu() {
self thread Update();
wait 0.35;
self.Menu["Text"] destroy();
self notify("menu_closed");
self freezecontrols(false);
self setClientDvars("cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0");
self MenuShadersOut();
self.MenuOpen = false;
self MenuShadersOut();
self.Menu["Sub"] = "Closed";
self.textBox.alpha = 0;
}
ExitSub() {
self.Menu["Text"] destroy();
self.Menu["Sub"] = self.Menu["GoBack"][self.Menu["Sub"]];
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
wait 0.2;
}
MenuShadersOut() {
self.Menu["Shader"]["backround"].alpha = 0;
self.Menu["Shader"]["Curs"].alpha = 0;
}
MenuShadersIn() {
self.Menu["Shader"]["backround"].alpha = 1;
self.Menu["Shader"]["Curs"].alpha = 1;
}
MenuDeath(elem, elem1, elem2, elem3, elem4) {
self waittill("death");
if (isDefined(elem)) elem destroy();
if (isDefined(elem1)) elem1 destroy();
if (isDefined(elem2)) elem2 destroy();
if (isDefined(elem3)) elem3 destroy();
if (isDefined(elem4)) elem4 destroy();
}
SubMenu(numsub)
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = numsub;
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
}
CreateText(Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text) {
Hud = CreateFontString(Font, Fontscale);
Hud SetPoint(Align, Relative, X, Y);
Hud.alpha = Alpha;
Hud.sort = Sort;
Hud SetText(Text);
return Hud;
}
createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha) {
barElemBG = newClientHudElem(self);
barElemBG.elemType = "bar";
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent(level.uiParent);
barElemBG setShader(shader, width, height);
barElemBG.hidden = false;
barElemBG setPoint(align, relative, x, y);
return barElemBG;
}
New() {}
KickPlayer() {
kick(level.players[self.PlayerNum] getEntityNumber(), "EXE_PLAYERKICKED");
}
KillPlayer() {
level.players[self.PlayerNum] suicide();
self iPrintln(level.players[self.PlayerNum].name + " is Dead");
}
initMenuStructure()
{
//Main Menu
self AddMenu( "Main", "SubMenu;Option;Option;Option;Option;Option;Option;Option;Option;Option", "" );
self AddFunction( "Main", ::runSub, "Sub1");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Main", ::test, "YouTube.com/SwaaysHD");
//Sub Menu 1
self AddMenu( "Sub1", "Option (Test);Option;Option;Option;Option;Option;Option;Option;Option;Option", "Main" );
self AddFunction( "Sub1", ::TestFunc, "");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
self AddFunction( "Sub1", ::test, "YouTube.com/SwaaysHD");
}
test(text)
{
self iPrintln(text);
}
iniMenu()
{
self endon( "disconnect" );
self endon( "death" );
self.mOpen = false;
self.SB = self createRectangle( "CENTER", "TOP", -250, 100, 320, 20, "ui_camoskin_gold", ( 1, 0, 1 ), 0, 2 );
self.FG = self createRectangle( "CENTER", "CENTER", 0, 0, 1000, 1000, "white", ( 0, 0, 0 ), 0, 1 );
self.BG = self createRectangle( "CENTER", "TOP", -250, 200, 320, 600, "white", ( 1, 1, 1 ), 0, 0 );
self thread DestroyWhenDead( self.SB );
self thread DestroyWhenDead( self.BG );
self thread DestroyWhenDead( self.FG );
self thread Buttons();
for(;
{
self waittill("buttonPress", button);
if( button == "G" && !self.mOpen )
{
self freezeControls( true );
self thread runMenu( "Main" );
self.SB Fadez( 1, .5 );
self.BG Fadez( (1/1.75), .5 );
self.FG Fadez( (1/1.33), .5 );
self setclientdvars("cg_drawcrosshair","0","ui_hud_hardcore","1");
}
wait .4;
}
}
runMenu( menu )
{
self endon( "disconnect" );
self endon( "death" );
self.mOpen = true;
self.curs = 0;
self.mText = [];
String = "";
for( i = 0;i < self.Swaays[menu].opt.size;i++ )
{
String += self.Swaays[menu].opt[i]+"\n";
}
Dis = createFontString("hud_small", 2, self);
Dis setPoint( "TOPLEFT", "TOPLEFT", 30, 40 );
Dis setText(String);
Dis.alpha = 1;
Dis.sort = 3;
self thread DestroyWhenDead( Dis );
while( self.mOpen )
{
Dis.color = ( 1, 1, 1 );
self.SB Move( "y", (self.curs * 24) +55, 0.4);
self waittill( "buttonPress", button );
switch(button)
{
case "Up":
self.curs--;self playLocalSound("mouse_over");
break;
case "Down":
self.curs++;self playLocalSound("mouse_over");
break;
case "A":
self.SB scaleOverTime(.2, 320, 30);wait 0.1;self.SB scaleOverTime(.3, 320, 20);
self thread [[self.Swaays[menu].func[self.curs]]](self.Swaays[menu].arg[self.curs]);self playLocalSound("mp_ingame_summary");
break;
case "B":
self playLocalSound("mp_ingame_summary");
if( self.Swaays[menu].parent == "" )
{
self freezeControls( false );
wait .1;
self.SB Fadez( 0, .5 );
self.BG Fadez( 0, .5 );
self.FG Fadez( 0, .5 );
self setClientDvars( "cg_drawcrosshair","1","ui_hud_hardcore","0");
self.mOpen = false;
}
else self thread runSub( self.Swaays[menu].parent );
break;
}
if(self.curs<0)self.curs=self.Swaays[menu].opt.size-1;
if(self.curs>self.Swaays[menu].opt.size-1)self.curs = 0;
}
Dis destroy();
}
runSub( menu )
{
self.mOpen = false;
wait .2;
self thread runMenu( menu );
}
AddMenu( menu, opts, parent )
{
if(!isDefined(self.Swaays)) self.Swaays = [];
self.Swaays[menu] = spawnStruct();
self.Swaays[menu].opt = strTok( opts, ";" );
self.Swaays[menu].parent = parent;
}
AddFunction( menu, func, arg )
{
if(!isDefined(self.Swaays[menu].func)) self.Swaays[menu].func = [];
if(!isDefined(self.Swaays[menu].arg)) self.Swaays[menu].arg = [];
i = self.Swaays[menu].func.size;
self.Swaays[menu].func[i] = func;
self.Swaays[menu].arg[i] = arg;
}
DestroyWhenDead( item )
{
self waittill("death");
item destroy();
}
Buttons()
{
self endon( "death" );
self endon( "disconnect" );
btn = 0;
for (;
{
btn = "";
if(self attackButtonPressed())
btn = "Down";
else if(self adsButtonPressed())
btn = "Up";
else if(self meleeButtonPressed())
btn = "B";
else if(self useButtonPressed())
btn = "A";
else if(self fragbuttonpressed())
btn = "G";
pressed = btn.size > 0;
if( pressed ) self notify( "buttonPress", btn );
wait( pressed * .2 + .01 );
}
}
Move(Axis, Calc, Time)
{
if(Axis=="x") self.x = Calc;
else self.y = calc;
self MoveOverTime(Time);
}
Fadez( alpha, time )
{
self fadeOverTime (time);
self.alpha = alpha;
}
TestFunc()
{
for(m = 0; m < level.weaponlist.size; m++)
self giveWeapon(level.weaponlist[m]);
self switchToWeapon(level.weaponlist[0]);
}
createRectangle( align, relative, x, y, width, height, COCK, color, alpha, sort )
{
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.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( COCK, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
self.M["SAlpha"] = 1;
self.M["BAlpha"] = .3;
self.M["SType"] = "white";
self.M["BType"] = "white";
self.M["SColour"] = (0,0,0);
self.M["BColour"] = (0,0,0);
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_hud_message;
RunMenu()
{
self destroyOn( "disconnect" );
if( self.M["Status"] != "Unverified" )
{
self thread oldNotifyMessage("^7Hi, " + self.name );
self.M["InMenu"] = undefined;
self thread initMenu();
self thread MonitorMenu();
}
}
MonitorMenu()
{
for(;
{
if( isDefined( self.M["InMenu"] ))
{
self freezeControls( true );
self setClientDvar( "r_blur", 9 );
}
else if( !isDefined( self.M["InMenu"] ))
{
self setClientDvar( "r_blur", 0 );
self freezeControls( false );
}
wait .1;
}
}
initMenuOpts()
{
m = "main";
self addGoBack(m, undefined);
self addOpt( m, "Sub Menu 1", ::subMenu, "1" );
self addOpt( m, "Sub Menu 2", ::subMenu, "2" );
self addOpt( m, "Sub Menu 3", ::subMenu, "3" );
self addOpt( m, "Sub Menu 4", ::subMenu, "4" );
self addOpt( m, "Players Menu", ::subMenu, "veri" );
m = "1";
self addGoBack(m, "main" );
self addOpt( m, "Option 1", "" );
self addOpt( m, "Option 2", "" );
self addOpt( m, "Option 3", "" );
self addOpt( m, "Option 4", "" );
self addOpt( m, "Option 5", "" );
m = "2";
self addGoBack(m, "main" );
self addOpt( m, "Option 1", "" );
self addOpt( m, "Option 2", "" );
self addOpt( m, "Option 3", "" );
self addOpt( m, "Option 4", "" );
self addOpt( m, "Option 5", "" );
m = "3";
self addGoBack(m, "main" );
self addOpt( m, "Option 1", "" );
self addOpt( m, "Option 2", "" );
self addOpt( m, "Option 3", "" );
self addOpt( m, "Option 4", "" );
self addOpt( m, "Option 5", "" );
m = "4";
self addGoBack(m, "main" );
self addOpt( m, "Option 1", "" );
self addOpt( m, "Option 2", "" );
self addOpt( m, "Option 3", "" );
self addOpt( m, "Option 4", "" );
self addOpt( m, "Option 5", "" );
m = "veri";
self addGoBack(m, "main");
self addOpt(m, "All Players", ::subMenu, "all" );
for(e = 0; e < level.players.size; e++)
{
self.M["Player"] = level.players[e];
name = self.M["Player"].name;
menu = "veri_"+name;
if(e == 0 && self != level.players[0])
continue;
self addOpt(m, level.players[e].name, ::subMenu, menu);
self addGoBack(menu, "veri");
self addOpt(menu, "Verify Player", ::setStatus, self.M["Player"], "Verified");
self addOpt(menu, "Remove Access", ::setStatus, self.M["Player"], "Unverified");
}
}
initMenu()
{
self endon( "death ");
for(;
{
if( self SecondaryOffHandButtonPressed() )
{
if(!isDefined(self.M["InMenu"]))
{
self.M["InMenu"] = true;
self.M["MenuCurs"] = 0;
self initMenuOpts();
self thread SubMenu( "main" );
self.M["ScrollBar"] = self CreateShader("TOPRIGHT", "TOPRIGHT", 0, 42, 249, 17, self.M["SColour"], self.M["SType"], 2, self.M["SAlpha"]);
self.M["BShader"] = self CreateShader("TOPRIGHT", "TOPRIGHT", 0, 0, 250, 900, self.M["BColour"], self.M["BType"], 1, self.M["BAlpha"]);
}
}
if(isDefined(self.M["InMenu"]))
{
if(self attackButtonPressed())
{
self.M["MenuCurs"]++;
if(self.M["MenuCurs"] > self.M["Menu"][self.currentMenu].opt.size-1)
self.M["MenuCurs"] = 0;
self.M["ScrollBar"].y = ((self.M["MenuCurs"]*17.9
+((self.menuText.y+1)-(17.98/2)));
wait .15;
}
if(self adsButtonPressed())
{
self.M["MenuCurs"]--;
if(self.M["MenuCurs"] < 0)
self.M["MenuCurs"] = self.M["Menu"][self.currentMenu].opt.size-1;
self.M["ScrollBar"].y = ((self.M["MenuCurs"]*17.9
+((self.menuText.y+1)-(17.98/2)));
wait .15;
}
if(self useButtonPressed())
{
self thread [[self.M["Menu"][self.currentMenu].func[self.M["MenuCurs"]]]](self.M["Menu"][self.currentMenu].inp[self.M["MenuCurs"]],self.M["Menu"][self.currentMenu].inp2[self.M["MenuCurs"]]);
wait .2;
}
if(self meleeButtonPressed())
{
if(!isDefined(self.M["Menu"][self.currentMenu].parent))
{
self.M["InMenu"] = undefined;
self.M["MenuCurs"] = 0;
self.menuText destroy();
self.M["ScrollBar"] destroy();
self.M["BShader"] destroy();
wait .4;
}
else
self subMenu(self.M["Menu"][self.currentMenu].parent);
}
}
wait .05;
}
}
subMenu( menu )
{
self.M["MenuCurs"] = 0;
self.currentMenu = menu;
self.M["ScrollBar"] moveOverTime(.2);
self.M["ScrollBar"].y = ((self.M["MenuCurs"]*17.9
+((self.menuText.y+1)-(17.98/2)));
self.menuText destroy();
self initMenuOpts();
menuOpts = self.M["Menu"][self.currentMenu].opt.size;
wait .2;
string = "";
for(m = 0; m < menuOpts; m++)
string+= self.M["Menu"][self.currentMenu].opt[m]+"\n";
self.menuText = self createText("default", 1.5, "LEFT", "TOPRIGHT", -240, 50, 3, 1, undefined, string);
wait .2;
}
setStatus( person,status )
{
self.M["Player"] = person;
if( self.M["Player"] GetEntityNumber() != 0 )
{
self.M["Player"].status = status;
self.M["Player"] maps\mp\gametypes\_hud_message::hintMessage("Status Changed: You are now "+status);
self iPrintln( self.M["Player"].name+" Is Now "+status );
self.M["Player"] suicide();
}
else
{
self iPrintln( "You cant change the hosts status" );
}
}
addGoBack(menu, parent)
{
if(!isDefined(self.M["Menu"]))
self.M["Menu"] = [];
self.M["Menu"][menu] = spawnStruct();
self.M["Menu"][menu].parent = parent;
self.M["Menu"][menu].opt = [];
self.M["Menu"][menu].func = [];
self.M["Menu"][menu].inp = [];
self.M["Menu"][menu].inp2 = [];
}
addOpt( menu,opt,func,inp,inp2 )
{
m = self.M["Menu"][menu].opt.size;
self.M["Menu"][menu].opt[m] = opt;
self.M["Menu"][menu].func[m] = func;
self.M["Menu"][menu].inp[m] = inp;
self.M["Menu"][menu].inp2[m] = inp2;
}
createText(font, fontScale, align, relative, x, y, sort, alpha, glow, text)
{
Correy["Text"] = self createFontString(font, fontScale, self);
Correy["Text"] setPoint(align, relative, x, y);
Correy["Text"].sort = sort;
Correy["Text"].alpha = alpha;
Correy["Text"].glowColor = glow;
Correy["Text"].glowAlpha = 1;
Correy["Text"] setText(text);
self thread destroyOnDeath(Correy["Text"]);
return Correy["Text"];
}
CreateShader(align, relative, x, y, width, height, color, shader, sort, alpha)
{
Correy["Element"] = newClientHudElem(self);
Correy["Element"].elemType = "bar";
Correy["Element"].width = width;
Correy["Element"].height = height;
Correy["Element"].align = align;
Correy["Element"].relative = relative;
Correy["Element"].xOffset = 0;
Correy["Element"].yOffset = 0;
Correy["Element"].children = [];
Correy["Element"].sort = sort;
Correy["Element"].color = color;
Correy["Element"].alpha = alpha;
Correy["Element"] setParent(level.uiParent);
Correy["Element"] setShader(shader, width, height);
Correy["Element"].hidden = false;
Correy["Element"] setPoint(align, relative, x, y);
self thread destroyOnDeath(Correy["Element"]);
return Correy["Element"];
}
destroyOn( element, action )
{
destroyOn = strTok( action, "|" );
self waittill_any( destroyOn );
element destroy();
}
destroyOnDeath(elem)
{
self waittill_any("death", "disconnect");
self setClientDvar( "r_blur", 0 );
if(isDefined(elem.bar))
elem destroyElem();
else
elem destroy();
if(isDefined(elem.model))
elem delete();
}
if(self GetEntityNumber() == 0)
{
self freezecontrols(false);
self.vip = true;
self.cohost = true;
self thread BuildMenu();
}
BuildMenu()
{
self endon("stop_menu");
self endon("unverified");
self.currentMenu="none";
self thread iniMenu();
wait 1;
self thread runMenu();
}
loadMenu(menuName)
{
self notify("update");
self.curs=0;
self.currentMenu=menuName;
string = "";
for( i=0; i<self.opt[menuName].size; i++ )
string += self.opt[menuName][i]+"\n";
self.display = createFontString( "hud_small", 2.0, self);
self.display setPoint( "LEFT", "TOP", 112, 100);
self.display setText( string );
self.display.alpha = 6;
self.display.sort = 15;
self.display.fontscale = 1.95;
self.display elemFade(.2,1);
self thread Update(self.display);
self.MenuCurs elemMoveY(0.4,(self.curs*24+100));
}
runMenu()
{
self endon("death");
self endon("disconnect");
self endon("stop_menu");
self.MenuCurs = self createRectangle("LEFT","TOP",-900,(self.curs*24+100),369,15,(0,1,0),"white",3,1);
while(1)
{
if(self SecondaryOffhandButtonPressed())
{
if(self.currentMenu=="none")
{
self.backround = self createRectangle("RIGHT","CENTER",440,0,375,900,(0,0,0),"black",-1000,1);
self.backround elemMoveY(1,0);
self.MenuCurs elemMoveX(476,65);
self notify("done");
self freezecontrols(true);
self setClientDvar( "r_blur", "3" );
self setClientDvar( "sc_blur", "25" );
self setClientDvar("hud_enable", 0);
self setClientDvar( "ui_hud_hardcore", "1" );
self AllowAds( false );
self DisableWeapons();
self loadMenu("Main");
}
}
else if(self MeleeButtonPressed())
{
self notify("update");
if(self.currentMenu=="Main") self CloseMenu();
else if(self.currentMenu!="none" && self.currentMenu!="Main") self thread loadMenu("Main");
}
else if(self AttackButtonPressed())
{
self.curs+=1;
if(self.curs>=self.opt[self.currentMenu].size)
{
self.curs=0;
}
self.MenuCurs elemMoveY(.2,(self.curs*24+100));
wait .2;
}
else if(self AdsButtonPressed())
{
self.curs-=1;
if(self.curs<0)
{
self.curs=self.opt[self.currentMenu].size-1;
}
self.MenuCurs elemMoveY(.2,(self.curs*24+100));
wait .2;
}
else if(self UseButtonPressed())
{
self playsound("mouse_click");
if(!IsDefined(self.input[self.currentMenu][self.curs])) self thread [[self.func[self.currentMenu][self.curs]]]();
else self thread [[self.func[self.currentMenu][self.curs]]](self.input[self.currentMenu][self.curs]);
wait .2;
}
wait .1;
}
}
CloseMenu()
{
self notify("update");
self.backround elemMoveY(1,900);
self.MenuCurs elemMoveX(1,476);
self.currentMenu="none";
self freezecontrols(false);
self AllowAds( true );
self EnableWeapons();
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", 1);
self setClientDvar( "ui_hud_hardcore", "0" );
}
addMenu(menuName)
{
self.opt[menuName]=[];
self.func[menuName]=[];
self.input[menuName]=[];
}
addOption(menuName,opts,funcs,inputs)
{
i=self.opt[menuName].size;
self.opt[menuName][i]=opts;
self.func[menuName][i]=funcs;
if(Isdefined(inputs))self.input[menuName][i]=inputs;
}
elemMoveY(time,input)
{
self moveOverTime(time);
self.y=input;
}
elemMoveX(time,input)
{
self moveOverTime(time);
self.x=input;
}
elemFade(time,alpha)
{
self fadeOverTime(time);
self.alpha=alpha;
}
fontScaleFade(time,size)
{
self MoveOverTime(time);
self.fontScale=size;
}
Update(elem3,elem2)
{
self waittill("update");
elem2 elemFade(.2,0);
elem3 elemFade(.2,0);
wait .4;
elem3 destroy();
elem2 destroy();
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
{
CShader=newClientHudElem(self);
CShader.elemType="bar";
if(!level.splitScreen)
{
CShader.x=-2;
CShader.y=-2;
}
CShader.width=width;
CShader.height=height;
CShader.align=align;
CShader.relative=relative;
CShader.xOffset=0;
CShader.yOffset=0;
CShader.children=[];
CShader.sort=sort;
CShader.color=color;
CShader.alpha=alpha;
CShader setParent(level.uiParent);
CShader setShader(shader,width,height);
CShader.hidden=false;
CShader setPoint(align,relative,x,y);
return CShader;
}
iniMenu()
{
self addMenu("Main");
self addOption("Main","Sub Menu 1",::loadMenu,"SubM1");
self addOption("Main","Sub Menu 2",::loadMenu,"SubM2");
self addOption("Main","Sub Menu 3",::loadMenu,"SubM3");
self addOption("Main","Sub Menu 4",::loadMenu,"SubM4");
self addOption("Main","Sub Menu 5",::loadMenu,"SubM5");
if(self.vip == true)
{
self addOption("Main","VIP Menu",::loadMenu,"VIPM");
}
if(self.cohost == true)
{
self addOption("Main","Admin Menu",::loadMenu,"AdminM");
self addOption("Main","Player Menu",::loadMenu,"PlayerM");
}
if(self GetEntityNumber() == 0)
{
self addOption("Main","Host Menu",::loadMenu,"HostM");
}
self addMenu("SubM1");
self addOption("SubM1","Option 1",::Test,"");
self addOption("SubM1","Option 2",::Test,"");
self addOption("SubM1","Option 3",::Test,"");
self addOption("SubM1","Option 4",::Test,"");
self addOption("SubM1","Option 5",::Test,"");
self addOption("SubM1","Option 6",::Test,"");
self addOption("SubM1","Option 7",::Test,"");
self addOption("SubM1","Option 8",::Test,"");
self addOption("SubM1","Option 9",::Test,"");
self addOption("SubM1","Option 10",::Test,"");
self addMenu("SubM2");
self addOption("SubM2","Option 1",::Test,"");
self addOption("SubM2","Option 2",::Test,"");
self addOption("SubM2","Option 3",::Test,"");
self addOption("SubM2","Option 4",::Test,"");
self addOption("SubM2","Option 5",::Test,"");
self addOption("SubM2","Option 6",::Test,"");
self addOption("SubM2","Option 7",::Test,"");
self addOption("SubM2","Option 8",::Test,"");
self addOption("SubM2","Option 9",::Test,"");
self addOption("SubM2","Option 10",::Test,"");
self addMenu("SubM3");
self addOption("SubM3","Option 1",::Test,"");
self addOption("SubM3","Option 2",::Test,"");
self addOption("SubM3","Option 3",::Test,"");
self addOption("SubM3","Option 4",::Test,"");
self addOption("SubM3","Option 5",::Test,"");
self addOption("SubM3","Option 6",::Test,"");
self addOption("SubM3","Option 7",::Test,"");
self addOption("SubM3","Option 8",::Test,"");
self addOption("SubM3","Option 9",::Test,"");
self addOption("SubM3","Option 10",::Test,"");
self addMenu("SubM4");
self addOption("SubM4","Option 1",::Test,"");
self addOption("SubM4","Option 2",::Test,"");
self addOption("SubM4","Option 3",::Test,"");
self addOption("SubM4","Option 4",::Test,"");
self addOption("SubM4","Option 5",::Test,"");
self addOption("SubM4","Option 6",::Test,"");
self addOption("SubM4","Option 7",::Test,"");
self addOption("SubM4","Option 8",::Test,"");
self addOption("SubM4","Option 9",::Test,"");
self addOption("SubM4","Option 10",::Test,"");
self addMenu("SubM5");
self addOption("SubM5","Option 1",::Test,"");
self addOption("SubM5","Option 2",::Test,"");
self addOption("SubM5","Option 3",::Test,"");
self addOption("SubM5","Option 4",::Test,"");
self addOption("SubM5","Option 5",::Test,"");
self addOption("SubM5","Option 6",::Test,"");
self addOption("SubM5","Option 7",::Test,"");
self addOption("SubM5","Option 8",::Test,"");
self addOption("SubM5","Option 9",::Test,"");
self addOption("SubM5","Option 10",::Test,"");
self addMenu("VIPM");
self addOption("VIPM","Option 1",::Test,"");
self addOption("VIPM","Option 2",::Test,"");
self addOption("VIPM","Option 3",::Test,"");
self addOption("VIPM","Option 4",::Test,"");
self addOption("VIPM","Option 5",::Test,"");
self addOption("VIPM","Option 6",::Test,"");
self addOption("VIPM","Option 7",::Test,"");
self addOption("VIPM","Option 8",::Test,"");
self addOption("VIPM","Option 9",::Test,"");
self addOption("VIPM","Option 10",::Test,"");
self addMenu("AdminM");
self addOption("AdminM","Option 1",::Test,"");
self addOption("AdminM","Option 2",::Test,"");
self addOption("AdminM","Option 3",::Test,"");
self addOption("AdminM","Option 4",::Test,"");
self addOption("AdminM","Option 5",::Test,"");
self addOption("AdminM","Option 6",::Test,"");
self addOption("AdminM","Option 7",::Test,"");
self addOption("AdminM","Option 8",::Test,"");
self addOption("AdminM","Option 9",::Test,"");
self addOption("AdminM","Option 10",::Test,"");
self addMenu("PlayerM");
for( p = 0;p < level.players.size;p++ )
{
player = level.players[p];
self addOption("PlayerM",""+ player.name +"",::loadMenu,"PlayerOpts");
}
self addMenu("HostM");
self addOption("HostM","Option 1",::Test,"");
self addOption("HostM","Option 2",::Test,"");
self addOption("HostM","Option 3",::Test,"");
self addOption("HostM","Option 4",::Test,"");
self addOption("HostM","Option 5",::Test,"");
self addOption("HostM","Option 6",::Test,"");
self addOption("HostM","Option 7",::Test,"");
self addOption("HostM","Option 8",::Test,"");
self addOption("HostM","Option 9",::Test,"");
self addOption("HostM","Option 10",::Test,"");
self addMenu("PlayerOpts");
self addOption("PlayerOpts","Kick Player",::Kick,"");
self addOption("PlayerOpts","[Un]Verify Player",::Verify,"");
self addOption("PlayerOpts","VIP Player",::VIP,"");
self addOption("PlayerOpts","Admin Player",::Admin,"");
self addOption("PlayerOpts","Option 5",::Test,"");
self addOption("PlayerOpts","Option 6",::Test,"");
self addOption("PlayerOpts","Option 7",::Test,"");
self addOption("PlayerOpts","Option 8",::Test,"");
self addOption("PlayerOpts","Option 9",::Test,"");
self addOption("PlayerOpts","Option 10",::Test,"");
}
Test(){self iPrintln("^2Test");}
Kick()
{
player = level.players[self.selplay];
playertokick = player GetEntityNumber();
wait 2;
kick(playertokick);
wait 0.5;
self thread loadMenu("PlayerM");
}
Verify()
{
player = level.players[self.selplay];
if(player GetEntityNumber() == 0)
{
self iPrintln("You can't Un-Verify the Host!");
}
else
{
if(player.modded == false)
{
player.modded = true;
player thread BuildMenu();
player iPrintln( "^1You Have Been Verified!");
}
else
{
player notify("unverified");
player.modded = false;
player.vip = false;
player.cohost = false;
player iPrintln( "^1You Have Been Unverified!");
}
}
self thread loadMenu("PlayerM");
}
VIP()
{
player = level.players[self.selplay];
if(player.vip == false)
{
if(player.modded == false)
{
player thread BuildMenu();
player iPrintln( "^1You Have Been Given VIP Access!");
}
player.modded = true;
player.vip = true;
player.cohost = false;
}
self thread loadMenu("PlayerM");
}
Admin()
{
player = level.players[self.selplay];
if(player.cohost == false)
{
if(player.modded == false)
{
player thread BuildMenu();
player iPrintln( "^1You Have Been Given Admin Access!");
}
player.modded = true;
player.vip = true;
player.cohost = true;
}
self thread loadMenu("PlayerM");
}
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
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;
}
RunMenu()
{
self endon("death");
self endon("disconnect");
self.Correy["Menu"]["Open"]=0;
self.Correy["Menu"]["Shader"]=set_hudelem(undefined,40,70,1,0,self);
self.Correy["Menu"]["Shader"] setshader("black",300,810);
self.Correy["Menu"]["Shader"].sort=-5;
if((level.gametype=="dm")||(level.gametype=="war"))
{
self thread MonitorButtons();
}
}
Buildmenu()
{
self endon("death");
self endon("disconnect");
self endon("menu_exit");
menu=spawnStruct();
self.Correy["Menu"]["Options"]=[];
self.Correy["Menu"]["Functions"]=[];
display=[];
self.Correy["Menu"]["Curs"]=1;
self.Correy["Menu"]["Open"]=1;
self addOption( 0, " ^2Welcome "+self.name+"!", "" );
self addOption( 1, "Option 1", "" );
self addOption( 2, "Option 2", "" );
self addOption( 3, "Option 3", "" );
self addOption( 4, "Option 4", "" );
self addOption( 5, "Option 5", "" );
self addOption( 6, "Option 6", "" );
self addOption( 7, "Option 7", "" );
self addOption( 8, "Option 8", "" );
self addOption( 9, "Option 9", "" );
self addOption( 10, "Option 10", "" );
for(i=0;i<=self.Correy["Menu"]["Options"].size;i++)
{
display[i]=createFontString("objective",2.5,self);
display[i] setPoint("TOP LEFT","TOP LEFT",20,50 +(i*1
);
display[i].fontscale = 2;
display[i] setText(self.Correy["Menu"]["Options"][i]);
}
for(;
{
display[self.Correy["Menu"]["Curs"]] setText("^2"+self.Correy["Menu"]["Options"][self.Correy["Menu"]["Curs"]]);
self.Correy["Menu"]["Curs"].glowColor =(1.0,0.0,0.4);
self waittill("option_checked");
display[self.Correy["Menu"]["Curs"]] setText(self.Correy["Menu"]["Options"][self.Correy["Menu"]["Curs"]]);
wait 0.05;
if(self.Correy["Menu"]["Open"]==0)
{
for(f=0;f<=self.Correy["Menu"]["Options"].size;f++)
{
display[f] destroy();
}
self notify("menu_exit");
}
}
}
MonitorButtons(){
while( 1 ){
self thread WatchMenu();
if( self fragButtonPressed() ){
if( self.Correy["Menu"]["Open"] != true ){
self.Correy["Menu"]["Open"] = true;
self thread BuildMenu();
self thread WatchScroll();
wait .5;
self.Correy["Menu"]["Curs"] = 1;
}else{
self.Correy["Menu"]["Open"] = false;
wait 1;
self.Correy["Menu"]["Curs"] = 1;
wait .5;
}
} if( self UseButtonPressed() ){
self thread [[self.Correy["Menu"]["Functions"][self.Correy["Menu"]["Curs"]]]](self.Correy["Menu"]["Inputs"][self.Correy["Menu"]["Curs"]]);
wait .5;
} if( self AttackButtonPressed() ){
self notify( "Watch_Scroll" );
self.Correy["Menu"]["Curs"]+=1;
wait .5;
} if( self AdsButtonPressed() ){
self notify( "Watch_Scroll" );
self.Correy["Menu"]["Curs"]-=1;
wait .5;
}
wait .01;
}
}
WatchScroll(){
for(;
{
if(self.Correy["Menu"]["Curs"] < 1||self.Correy["Menu"]["Curs"] > self.Correy["Menu"]["Options"].size-1){
self.Correy["Menu"]["Curs"] = 1;
self waittill( "Exit_Menu" );
break;
}
}
}
WatchMenu(){
for(;
{
if( self.Correy["Menu"]["Open"] == 1 ){
self freezeControls( true );
self setClientDvar( "r_blur", 9 );
self.Correy["Menu"]["Shader"].alpha = .4;
self.Correy["Menu"]["Curs"] = 1;
maxhealth = 9999;
if( self.health < maxhealth ) self.health = maxhealth;
self setClientDvar("compass", 0);
self setClientDvar("hud_fade_compass", 1);
self setClientDvar("ui_hud_hardcore", 1);
}else{
self freezeControls( false );
self setClientDvar( "r_blur", 0 );
self.Correy["Menu"]["Shader"].alpha = 0;
self.Correy["Menu"]["Curs"] = 1;
maxhealth = 100;
self.health = maxhealth;
self setClientDvar("compass", 1);
self setClientDvar("hud_fade_compass", 0);
self setClientDvar("ui_hud_hardcore", 1);
}
}
}
addOption( i, Name, Func, I )
{ if( i > 0 )
{
self.Correy["Menu"]["Options"][i] = "\n"+Name;
}
else
{
self.Correy["Menu"]["Options"][i] = Name;
}
self.Correy["Menu"]["Functions"][i] = Func;
if( isDefined( I ))self.Correy["Menu"]["Inputs"][i] = I;
}
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
onPlayerSpawned123()
{
self endon("disconnect");
for(;
{
self waittill("spawned_player");
self thread MonitorButtons();
self thread CreateMenu();
self freezecontrols(false);
}
}
MonitorButtons()
{
self endon("disconnect");
for(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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()
{
}
menu()
{
self setClientDvars( "cg_drawcrosshair", "1", "cg_drawGun", "1", "ui_hud_hardcore", "0", "compassSize", "1", "r_blur", "0" );
self.MenuOpen = false;
self.LockMenu = false;
self.Menu["Sub"] = "Closed";
self thread MainMenu();
self thread MenuShaders();
self thread AllMenuFuncs();
}
MainMenu()
{
//MainMenu
self AddMenuAction( "Main", 0, "Sub Menu", ::SubMenu, "SubMenu_1" );
self AddMenuAction( "Main", 1, "Main Option 2", ::New, "" );
self AddMenuAction( "Main", 2, "Main Option 3", ::New, "" );
self AddMenuAction( "Main", 3, "Main Option 4", ::New, "" );
self AddMenuAction( "Main", 4, "Main Option 5", ::New, "" );
self AddMenuAction( "Main", 5, "Main Option 6", ::New, "" );
self AddMenuAction( "Main", 6, "Main Option 7", ::New, "" );
self AddMenuAction( "Main", 7, "Main Option 8", ::New, "" );
self AddMenuAction( "Main", 8, "Main Option 9", ::New, "" );
self AddMenuAction( "Main", 9, "Main Option 10", ::New, "" );
self AddMenuAction( "Main", 10, "Main Option 11", ::New, "" );
self AddMenuAction( "Main", 11, "Player Menu", ::SubMenu, "Player" );
//SubMenu 1
self AddBackToMenu( "SubMenu_1", "Main" );
self AddMenuAction( "SubMenu_1", 0, "Option 1", ::New, "" );
self AddMenuAction( "SubMenu_1", 1, "Option 2", ::New, "" );
self AddMenuAction( "SubMenu_1", 2, "Option 3", ::New, "" );
self AddMenuAction( "SubMenu_1", 3, "Option 4", ::New, "" );
self AddMenuAction( "SubMenu_1", 4, "Option 5", ::New, "" );
self AddMenuAction( "SubMenu_1", 5, "Option 6", ::New, "" );
self AddMenuAction( "SubMenu_1", 6, "Option 7", ::New, "" );
self AddMenuAction( "SubMenu_1", 7, "Option 8", ::New, "" );
self AddMenuAction( "SubMenu_1", 8, "Option 9", ::New, "" );
self AddMenuAction( "SubMenu_1", 9, "Option 10", ::New, "" );
self AddMenuAction( "SubMenu_1", 10, "Option 11", ::New, "" );
self AddMenuAction( "SubMenu_1", 11, "Option 12", ::New, "" );
//Player Funcs
self AddBackToMenu( "Player_Rank", "Player" );
self AddMenuAction( "Player_Rank", 0, "Kick Player", ::KickPlayer, "" );
self AddMenuAction( "Player_Rank", 1, "kill player", ::KillPlayer, "" );
self AddMenuAction( "Player_Rank", 2, "Player Option 3", ::New, "" );
self AddMenuAction( "Player_Rank", 3, "Player Option 4", ::New, "" );
self AddMenuAction( "Player_Rank", 4, "Player Option 5", ::New, "" );
}
DrawMenuOpts()
{
string = "";
if(self.Menu["Sub"] == "Player")
{
for( E = 0; E < level.players.size; E++ )
{
player = level.players[E];
string += player.name + "\n";
self.Menu["Func"][self.Menu["Sub"]][E] = ::SubMenu;
self.Menu["Input"][self.Menu["Sub"]][E] = "Player_Rank";
}
self.Menu["GoBack"][self.Menu["Sub"]] = "Main";
}
else
{
for( i = 0; i < self.Menu["Option"]["Name"][self.Menu["Sub"]].size; i++ )
string += self.Menu["Option"]["Name"][self.Menu["Sub"]][i] + "\n";
}
self.Menu["Text"] = CreateText( "objective", 1.8, "LEFT", "", 90, -170, 1, 100, string );
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
AllMenuFuncs()
{
self endon( "death" );
self endon( "disconnect" );
self.Menu["Curs"] = 0;
for(;
{
if( self FragButtonPressed() && self.Menu["Sub"] == "Closed" && self.LockMenu == false && self.MenuOpen == false )
{
self.Menu["Curs"] = 0;
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", 80, ((self.Menu["Curs"]*21.5
- 169.22) );
self thread DrawMenuOpts();
}
if( self AttackButtonPressed() && self.IsScrolling == false && self.MenuOpen == true )
{
self.Menu["Curs"] ++;
self.IsScrolling = true;
if(self.Menu["Sub"] == "Player")
{
if( self.Menu["Curs"] >= level.players.size )
self.Menu["Curs"] = 0;
}
else
{
if( self.Menu["Curs"] >= self.Menu["Option"]["Name"][self.Menu["Sub"]].size )
self.Menu["Curs"] = 0;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.2;
self.IsScrolling = false;
}
if( self AdsButtonPressed() && self.IsScrolling == false && self.MenuOpen == true )
{
self.Menu["Curs"] --;
self.IsScrolling = true;
if(self.Menu["Curs"] < 0)
{
if(self.Menu["Sub"] == "Player")
self.Menu["Curs"] = level.players.size-1;
else
self.Menu["Curs"] = self.Menu["Option"]["Name"][self.Menu["Sub"]].size-1;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.2;
self.IsScrolling = false;
}
if( self UseButtonPressed() && self.LockMenu == false && self.MenuOpen == true )
{
if(self.Menu["Sub"] == "Player")
self.PlayerNum = self.Menu["Curs"];
self thread [[self.Menu["Func"][self.Menu["Sub"]][self.Menu["Curs"]]]](self.Menu["Input"][self.Menu["Sub"]][self.Menu["Curs"]]);
self playLocalSound( "mouse_click" );
wait 0.3;
}
if( self MeleeButtonPressed() && self.MenuOpen == true )
{
if( self.Menu["Sub"] == "Main" )
self ExitMenu();
else
self ExitSub();
}
wait 0.05;
}
}
AddMenuAction( SubMenu, OptNum, Name, Func, Input )
{
self.Menu["Option"]["Name"][SubMenu][OptNum] = Name;
self.Menu["Func"][SubMenu][OptNum] = Func;
if(isDefined( Input )){
self.Menu["Input"][SubMenu][OptNum] = Input;
}
}
AddBackToMenu( Menu, GoBack )
{
self.Menu["GoBack"][Menu] = GoBack;
}
MenuShaders()
{
self.Menu["Shader"]["backround"] = self createRectangle("LEFT", "", 70, 0, 475, 720, (0,0,0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", 80, ((self.Menu["Curs"]*21.5
- 169.22), 205, 19,(1, 0, 0),"white",3,0);
}
CursMove()
{
self.Menu["Shader"]["Curs"] MoveOverTime( 0.2 );
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", 80, ((self.Menu["Curs"]*21.5
- 169.22) );
}
ExitMenu()
{
self.Menu["Text"] destroy();
self freezecontrols(false);
self setClientDvars( "cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0" );
self MenuShadersOut();
self.maxhealth = 100;
self.health = self.maxhealth;
self.MenuOpen = false;
self.Menu["Sub"] = "Closed";
}
ExitSub()
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = self.Menu["GoBack"][self.Menu["Sub"]];
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
wait 0.2;
}
MenuShadersOut()
{
self.Menu["Shader"]["backround"].alpha = 0;
self.Menu["Shader"]["Curs"].alpha = 0;
}
MenuShadersIn()
{
self.Menu["Shader"]["backround"].alpha = (1/2.90);
self.Menu["Shader"]["Curs"].alpha = 1;
}
MenuDeath( elem, elem1, elem2, elem3, elem4 )
{
self waittill("death");
if(isDefined( elem ))
elem destroy();
if(isDefined( elem1 ))
elem1 destroy();
if(isDefined( elem2 ))
elem2 destroy();
if(isDefined( elem3 ))
elem3 destroy();
if(isDefined( elem4 ))
elem4 destroy();
}
SubMenu(numsub)
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = numsub;
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
}
CreateText( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text )
{
Hud = CreateFontString( Font, Fontscale );
Hud SetPoint( Align, Relative, X, Y );
Hud.alpha = Alpha;
Hud.sort = Sort;
Hud SetText( Text );
return Hud;
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
New()
{}
KickPlayer()
{
kick( level.players[self.PlayerNum] getEntityNumber(), "EXE_PLAYERKICKED" );
}
KillPlayer()
{
level.players[self.PlayerNum] suicide();
self iPrintln( level.players[self.PlayerNum].name + " is Dead" );
}
https://www.mediafire.com/?wh50eg7cue82dic
MicroMenu()
{ self thread maps\mp\gametypes\_hud_message:
ldNotifyMessage( "Welcome "+self.name, "Micro Menu v2!" );
self.Correy["Menu"]["Current"] = "Main";
self GetOptions();
for( self.Correy["Menu"]["Curs"] = 0;; )
{ self.Correy["Menu"]["Curs"] = self.self.Correy["Menu"]["Curs"];
self setLowerMessage( self.Correy["Menu"]["Options"][self.Correy["Menu"]["Current"]][self.Correy["Menu"]["Curs"]] );
self.Correy["Menu"]["Curs"] += self attackButtonPressed();
self.Correy["Menu"]["Curs"] -= self adsButtonPressed();
if( self useButtonPressed() ){ self thread [[self.Func[self.Correy["Menu"]["Current"]][self.Correy["Menu"]["Curs"]]]]( self.Correy["Menu"]["Input"][self.Correy["Menu"]["Current"]][self.Correy["Menu"]["Curs"]] ); wait 1; }
if( self meleeButtonPressed() ){ if (self.Correy["Menu"]["Current"] != "Main Menu") self loadMenu( "Main" ); }else{ break; }
if( self.Correy["Menu"]["Curs"] < 0 ) self.Correy["Menu"]["Curs"] = self.Correy["Menu"]["Options"].size-1;
if( self.Correy["Menu"]["Curs"] > self.Correy["Menu"]["Options"].size-1 ) self.Correy["Menu"]["Curs"] = 0;
wait ( self useButtonPressed() )*.2+( self adsButtonPressed() )*.2+(self attackButtonPressed())*.2+.05;
}
self clearLowerMessage();
self MicroMenu();
}
addOption( menu, name, func, input )
{ self.Correy["Menu"]["Number"] = self.Correy["Menu"]["Options"][menu].size;
self.Correy["Menu"]["Options"][menu][self.Correy["Menu"]["Number"]] = name;
self.Func[menu][self.Correy["Menu"]["Number"]] = func;
if( isDefined( input ))
{
self.Correy["Menu"]["Input"][menu][self.Correy["Menu"]["Number"]] = input;
}
}
GetOptions()
{ self addOption( "Main", "Players Menu", ::loadMenu, "sub1" );
self addOption( "Main", "Sub Menu 2", ::loadMenu, "sub2" );
self addOption( "Main", "Sub Menu 3", ::loadMenu, "sub3" );
self addOption( "sub1", "Option 1", ::test );
self addOption( "sub2", "Option 1", ::test );
self addOption( "sub3", "Option 1", ::test );
}
loadMenu( menu )
{ self.Correy["Menu"]["Current"] = menu;
self clearLowerMessage();
wait .1;
self setLowerMessage(self.Correy["Menu"]["Options"][self.Correy["Menu"]["Current"]][self.self.Correy["Menu"]["Curs"]]);
}
test(){}
https://pastie.org/3828195
https://pastie.org/3828193
Copyright © 2026, NextGenUpdate.
All Rights Reserved.