self thread MenuFuncs();
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
BuildMenu()
{
self AddMenuOpt("main","Option 1",::Test,"opt1",0);
self AddMenuOpt("main","Option 2",::Test,"opt2",1);
self AddMenuOpt("main","Option 3",::Test,"opt3",2);
self AddMenuOpt("main","Players",::LoadSub,"pmen",3);
//Player Options Menu
self AddPrevOpt("popts","pmen");
self AddMenuOpt("popts","Kick Player",::KickPlayer,"",0);
self AddMenuOpt("popts","Kill Player",::KillPlayer,"",1);
}
AddPrevOpt(sub,prev)
{
self.menu[sub]["prev"]=prev;
}
AddMenuOpt(sub,name,func,input,num)
{
self.menu[sub]["name"][num]=name;
self.menu[sub]["func"][num]=func;
if(isDefined(input)) self.menu[sub]["input"][num]=input;
}
LoadSub(sub)
{
if(isDefined(self.MenuText)) self.MenuText destroy();
if(self.menu[sub]["prev"]=="pmen") self.pNum=self.scroll;
self.scroll=0;
self.shaders[0] moveOverTime(0.5);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
str="";
self.MenuText=self CreateFontString("default",1.;
self.MenuText setPoint("TOP","TOP",0,20);
for(i=0;i<self.menu[sub]["name"].size;i++)
str+=self.menu[sub]["name"][i]+"\n";
self.MenuText setText(str);
self.MenuText.sort=15;
self.MenuText.alpha=0;
self.curMenu=sub;
self.MenuText fadeOverTime(0.5);
self.MenuText.alpha=1;
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
if(i!=5)self.shaders[i].alpha=1;
self.shaders[5].alpha=0.6;
}
}
MenuFuncs()
{
self endon("death");
self.inMenu=false;
self thread buildMenuShaders();
self thread BuildMenu();
self AddPrevOpt("pmen","main");
for(i=0;i<level.players.size;i++)
self AddMenuOpt("pmen",""+level.players[i].name+"",::LoadSub,"popts",i);
self freezeControls(false);
for(;
{
if(self FragButtonPressed()&&self.inMenu==false)
{
self.inMenu=true;
self freezeControls(true);
self.curMenu="main";
self thread LoadSub("main");
wait .15;
}
if(self AttackButtonPressed()&&self.inMenu==true)
{
if(self.scroll<=self.menu[self.curMenu]["name"].size)
{
self.scroll++;
if(self.scroll!=self.menu[self.curMenu]["name"].size) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
self.scroll=0; }
wait .2;
}
}
if(self AdsButtonPressed()&&self.inMenu==true)
{
if(self.scroll>=0)
{
self.scroll--;
if(self.scroll!=-1) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y-21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.58*(self.menu[self.curMenu]["name"].size-1));
self.scroll=self.menu[self.curMenu]["name"].size-1; }
wait .2;
}
}
if(self UseButtonPressed()&&self.inMenu==true)
{
self thread [[self.menu[self.curMenu]["func"][self.scroll]]](self.menu[self.curMenu]["input"][self.scroll]);
self playLocalSound("mouse_click");
wait .2;
}
if(self MeleeButtonPressed()&&self.inMenu==true)
{
if(self.curMenu == "main") self thread MenuClose();
else self thread LoadSub(self.menu[self.curMenu]["prev"]);
wait .15;
}
wait 0.05;
}
}
MenuClose()
{
self.MenuText destroy();
self.inMenu=false;
self freezeControls(false);
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
self.shaders[i].alpha=0;
}
}
buildMenuShaders()
{
self.shaders=[];
self.shaders[0]=self cR("TOP","TOP",0,0,250,17,(1,0,0),"gradient_center",5,0);
self.shaders[1]=self cR("TOP","TOP",0,0,250,1000,(0,0,0),"gradient_center",1,0);
self.shaders[2]=self cR("TOP","TOP",-125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[3]=self cR("TOP","TOP",125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[4]=self cR("TOP","TOP",0,0,1000,1000,(0,0,0),"gradient_center",6,0);
self.shaders[5]=self cR("TOP","TOP",0,0,1000,1000,(.5,.5,.5),"white",-1,0);
self waittill("death");
if(isDefined(self.MenuText)) self.MenuText destroy();
for(x=0;x<self.shaders.size;x++)
self.shaders[x] destroy();
}
cR(align,relative,x,y,width,height,color,shader,so rt,alpha)
{
r=newClientHudElem(self);
r.elemType="bar";
r.width=width;
r.height=height;
r.align=align;
r.relative=relative;
r.xOffset=0;
r.yOffset=0;
r.children=[];
r.sort=sort;
r.color=color;
r.alpha=alpha;
r setParent(level.uiParent);
r setShader(shader,width,height);
r.hidden=false;
r setPoint(align,relative,x,y);
return r;
}
Test(t)
{
self iPrintln(t);
}
KickPlayer()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillPlayer()
{
level.players[self.pNum] suicide();
}
//To add a submenu, use this:
self AddPrevOpt(<menuname>,<menu to return to>
//The syntax for adding options is like this:
self AddMenuOpt(<submenu>,<Name>,<function>,<input>,<number of option>
//To add an option that loads a submenu, use this:
self AddMenuOpt(<current submenu>,<Name>,::LoadSub,<new sub name>,<number of option>
self thread MenuFuncs();
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
BuildMenu()
{
self AddMenuOpt("main","Option 1",::Test,"opt1",0);
self AddMenuOpt("main","Option 2",::Test,"opt2",1);
self AddMenuOpt("main","Option 3",::Test,"opt3",2);
self AddMenuOpt("main","Players",::LoadSub,"pmen",3);
//Player Options Menu
self AddPrevOpt("popts","pmen");
self AddMenuOpt("popts","Kick Player",::KickPlayer,"",0);
self AddMenuOpt("popts","Kill Player",::KillPlayer,"",1);
}
AddPrevOpt(sub,prev)
{
self.menu[sub]["prev"]=prev;
}
AddMenuOpt(sub,name,func,input,num)
{
self.menu[sub]["name"][num]=name;
self.menu[sub]["func"][num]=func;
if(isDefined(input)) self.menu[sub]["input"][num]=input;
}
LoadSub(sub)
{
if(isDefined(self.MenuText)) self.MenuText destroy();
if(self.menu[sub]["prev"]=="pmen") self.pNum=self.scroll;
self.scroll=0;
self.shaders[0] moveOverTime(0.5);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
str="";
self.MenuText=self CreateFontString("default",1.;
self.MenuText setPoint("TOP","TOP",0,20);
for(i=0;i<self.menu[sub]["name"].size;i++)
str+=self.menu[sub]["name"][i]+"\n";
self.MenuText setText(str);
self.MenuText.sort=15;
self.MenuText.alpha=0;
self.curMenu=sub;
self.MenuText fadeOverTime(0.5);
self.MenuText.alpha=1;
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
if(i!=5)self.shaders[i].alpha=1;
self.shaders[5].alpha=0.6;
}
}
MenuFuncs()
{
self endon("death");
self.inMenu=false;
self thread buildMenuShaders();
self thread BuildMenu();
self AddPrevOpt("pmen","main");
for(i=0;i<level.players.size;i++)
self AddMenuOpt("pmen",""+level.players[i].name+"",::LoadSub,"popts",i);
self freezeControls(false);
for(;
{
if(self FragButtonPressed()&&self.inMenu==false)
{
self.inMenu=true;
self freezeControls(true);
self.curMenu="main";
self thread LoadSub("main");
wait .15;
}
if(self AttackButtonPressed()&&self.inMenu==true)
{
if(self.scroll<=self.menu[self.curMenu]["name"].size)
{
self.scroll++;
if(self.scroll!=self.menu[self.curMenu]["name"].size) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
self.scroll=0; }
wait .2;
}
}
if(self AdsButtonPressed()&&self.inMenu==true)
{
if(self.scroll>=0)
{
self.scroll--;
if(self.scroll!=-1) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y-21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.58*(self.menu[self.curMenu]["name"].size-1));
self.scroll=self.menu[self.curMenu]["name"].size-1; }
wait .2;
}
}
if(self UseButtonPressed()&&self.inMenu==true)
{
self thread [[self.menu[self.curMenu]["func"][self.scroll]]](self.menu[self.curMenu]["input"][self.scroll]);
self playLocalSound("mouse_click");
wait .2;
}
if(self MeleeButtonPressed()&&self.inMenu==true)
{
if(self.curMenu == "main") self thread MenuClose();
else self thread LoadSub(self.menu[self.curMenu]["prev"]);
wait .15;
}
wait 0.05;
}
}
MenuClose()
{
self.MenuText destroy();
self.inMenu=false;
self freezeControls(false);
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
self.shaders[i].alpha=0;
}
}
buildMenuShaders()
{
self.shaders=[];
self.shaders[0]=self cR("TOP","TOP",0,0,250,17,(1,0,0),"gradient_center",5,0);
self.shaders[1]=self cR("TOP","TOP",0,0,250,1000,(0,0,0),"gradient_center",1,0);
self.shaders[2]=self cR("TOP","TOP",-125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[3]=self cR("TOP","TOP",125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[4]=self cR("TOP","TOP",0,0,1000,1000,(0,0,0),"gradient_center",6,0);
self.shaders[5]=self cR("TOP","TOP",0,0,1000,1000,(.5,.5,.5),"white",-1,0);
self waittill("death");
if(isDefined(self.MenuText)) self.MenuText destroy();
for(x=0;x<self.shaders.size;x++)
self.shaders[x] destroy();
}
cR(align,relative,x,y,width,height,color,shader,sort,alpha)
{
r=newClientHudElem(self);
r.elemType="bar";
r.width=width;
r.height=height;
r.align=align;
r.relative=relative;
r.xOffset=0;
r.yOffset=0;
r.children=[];
r.sort=sort;
r.color=color;
r.alpha=alpha;
r setParent(level.uiParent);
r setShader(shader,width,height);
r.hidden=false;
r setPoint(align,relative,x,y);
return r;
}
Test(t)
{
self iPrintln(t);
}
KickPlayer()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillPlayer()
{
level.players[self.pNum] suicide();
}
//To add a submenu, use this:
self AddPrevOpt(<menuname>,<menu to return to>
//The syntax for adding options is like this:
self AddMenuOpt(<submenu>,<Name>,<function>,<input>,<number of option>
//To add an option that loads a submenu, use this:
self AddMenuOpt(<current submenu>,<Name>,::LoadSub,<new sub name>,<number of option>
self thread MenuFuncs();
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
BuildMenu()
{
self AddMenuOpt("main","Option 1",::Test,"opt1",0);
self AddMenuOpt("main","Option 2",::Test,"opt2",1);
self AddMenuOpt("main","Option 3",::Test,"opt3",2);
self AddMenuOpt("main","Players",::LoadSub,"pmen",3);
//Player Options Menu
self AddPrevOpt("popts","pmen");
self AddMenuOpt("popts","Kick Player",::KickPlayer,"",0);
self AddMenuOpt("popts","Kill Player",::KillPlayer,"",1);
}
AddPrevOpt(sub,prev)
{
self.menu[sub]["prev"]=prev;
}
AddMenuOpt(sub,name,func,input,num)
{
self.menu[sub]["name"][num]=name;
self.menu[sub]["func"][num]=func;
if(isDefined(input)) self.menu[sub]["input"][num]=input;
}
LoadSub(sub)
{
if(isDefined(self.MenuText)) self.MenuText destroy();
if(self.menu[sub]["prev"]=="pmen") self.pNum=self.scroll;
self.scroll=0;
self.shaders[0] moveOverTime(0.5);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
str="";
self.MenuText=self CreateFontString("default",1.;
self.MenuText setPoint("TOP","TOP",0,20);
for(i=0;i<self.menu[sub]["name"].size;i++)
str+=self.menu[sub]["name"][i]+"\n";
self.MenuText setText(str);
self.MenuText.sort=15;
self.MenuText.alpha=0;
self.curMenu=sub;
self.MenuText fadeOverTime(0.5);
self.MenuText.alpha=1;
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
if(i!=5)self.shaders[i].alpha=1;
self.shaders[5].alpha=0.6;
}
}
MenuFuncs()
{
self endon("death");
self.inMenu=false;
self thread buildMenuShaders();
self thread BuildMenu();
self AddPrevOpt("pmen","main");
for(i=0;i<level.players.size;i++)
self AddMenuOpt("pmen",""+level.players[i].name+"",::LoadSub,"popts",i);
self freezeControls(false);
for(;
{
if(self FragButtonPressed()&&self.inMenu==false)
{
self.inMenu=true;
self freezeControls(true);
self.curMenu="main";
self thread LoadSub("main");
wait .15;
}
if(self AttackButtonPressed()&&self.inMenu==true)
{
if(self.scroll<=self.menu[self.curMenu]["name"].size)
{
self.scroll++;
if(self.scroll!=self.menu[self.curMenu]["name"].size) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
self.scroll=0; }
wait .2;
}
}
if(self AdsButtonPressed()&&self.inMenu==true)
{
if(self.scroll>=0)
{
self.scroll--;
if(self.scroll!=-1) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y-21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.58*(self.menu[self.curMenu]["name"].size-1));
self.scroll=self.menu[self.curMenu]["name"].size-1; }
wait .2;
}
}
if(self UseButtonPressed()&&self.inMenu==true)
{
self thread [[self.menu[self.curMenu]["func"][self.scroll]]](self.menu[self.curMenu]["input"][self.scroll]);
self playLocalSound("mouse_click");
wait .2;
}
if(self MeleeButtonPressed()&&self.inMenu==true)
{
if(self.curMenu == "main") self thread MenuClose();
else self thread LoadSub(self.menu[self.curMenu]["prev"]);
wait .15;
}
wait 0.05;
}
}
MenuClose()
{
self.MenuText destroy();
self.inMenu=false;
self freezeControls(false);
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
self.shaders[i].alpha=0;
}
}
buildMenuShaders()
{
self.shaders=[];
self.shaders[0]=self cR("TOP","TOP",0,0,250,17,(1,0,0),"gradient_center",5,0);
self.shaders[1]=self cR("TOP","TOP",0,0,250,1000,(0,0,0),"gradient_center",1,0);
self.shaders[2]=self cR("TOP","TOP",-125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[3]=self cR("TOP","TOP",125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[4]=self cR("TOP","TOP",0,0,1000,1000,(0,0,0),"gradient_center",6,0);
self.shaders[5]=self cR("TOP","TOP",0,0,1000,1000,(.5,.5,.5),"white",-1,0);
self waittill("death");
if(isDefined(self.MenuText)) self.MenuText destroy();
for(x=0;x<self.shaders.size;x++)
self.shaders[x] destroy();
}
cR(align,relative,x,y,width,height,color,shader,sort,alpha)
{
r=newClientHudElem(self);
r.elemType="bar";
r.width=width;
r.height=height;
r.align=align;
r.relative=relative;
r.xOffset=0;
r.yOffset=0;
r.children=[];
r.sort=sort;
r.color=color;
r.alpha=alpha;
r setParent(level.uiParent);
r setShader(shader,width,height);
r.hidden=false;
r setPoint(align,relative,x,y);
return r;
}
Test(t)
{
self iPrintln(t);
}
KickPlayer()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillPlayer()
{
level.players[self.pNum] suicide();
}
//To add a submenu, use this:
self AddPrevOpt(<menuname>,<menu to return to>
//The syntax for adding options is like this:
self AddMenuOpt(<submenu>,<Name>,<function>,<input>,<number of option>
//To add an option that loads a submenu, use this:
self AddMenuOpt(<current submenu>,<Name>,::LoadSub,<new sub name>,<number of option>
self thread MenuFuncs();
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
BuildMenu()
{
self AddMenuOpt("main","Option 1",::Test,"opt1",0);
self AddMenuOpt("main","Option 2",::Test,"opt2",1);
self AddMenuOpt("main","Option 3",::Test,"opt3",2);
self AddMenuOpt("main","Players",::LoadSub,"pmen",3);
//Player Options Menu
self AddPrevOpt("popts","pmen");
self AddMenuOpt("popts","Kick Player",::KickPlayer,"",0);
self AddMenuOpt("popts","Kill Player",::KillPlayer,"",1);
}
AddPrevOpt(sub,prev)
{
self.menu[sub]["prev"]=prev;
}
AddMenuOpt(sub,name,func,input,num)
{
self.menu[sub]["name"][num]=name;
self.menu[sub]["func"][num]=func;
if(isDefined(input)) self.menu[sub]["input"][num]=input;
}
LoadSub(sub)
{
if(isDefined(self.MenuText)) self.MenuText destroy();
if(self.menu[sub]["prev"]=="pmen") self.pNum=self.scroll;
self.scroll=0;
self.shaders[0] moveOverTime(0.5);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
str="";
self.MenuText=self CreateFontString("default",1.;
self.MenuText setPoint("TOP","TOP",0,20);
for(i=0;i<self.menu[sub]["name"].size;i++)
str+=self.menu[sub]["name"][i]+"\n";
self.MenuText setText(str);
self.MenuText.sort=15;
self.MenuText.alpha=0;
self.curMenu=sub;
self.MenuText fadeOverTime(0.5);
self.MenuText.alpha=1;
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
if(i!=5)self.shaders[i].alpha=1;
self.shaders[5].alpha=0.6;
}
}
MenuFuncs()
{
self endon("death");
self.inMenu=false;
self thread buildMenuShaders();
self thread BuildMenu();
self AddPrevOpt("pmen","main");
for(i=0;i<level.players.size;i++)
self AddMenuOpt("pmen",""+level.players[i].name+"",::LoadSub,"popts",i);
self freezeControls(false);
for(;
{
if(self FragButtonPressed()&&self.inMenu==false)
{
self.inMenu=true;
self freezeControls(true);
self.curMenu="main";
self thread LoadSub("main");
wait .15;
}
if(self AttackButtonPressed()&&self.inMenu==true)
{
if(self.scroll<=self.menu[self.curMenu]["name"].size)
{
self.scroll++;
if(self.scroll!=self.menu[self.curMenu]["name"].size) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
self.scroll=0; }
wait .2;
}
}
if(self AdsButtonPressed()&&self.inMenu==true)
{
if(self.scroll>=0)
{
self.scroll--;
if(self.scroll!=-1) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y-21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.58*(self.menu[self.curMenu]["name"].size-1));
self.scroll=self.menu[self.curMenu]["name"].size-1; }
wait .2;
}
}
if(self UseButtonPressed()&&self.inMenu==true)
{
self thread [[self.menu[self.curMenu]["func"][self.scroll]]](self.menu[self.curMenu]["input"][self.scroll]);
self playLocalSound("mouse_click");
wait .2;
}
if(self MeleeButtonPressed()&&self.inMenu==true)
{
if(self.curMenu == "main") self thread MenuClose();
else self thread LoadSub(self.menu[self.curMenu]["prev"]);
wait .15;
}
wait 0.05;
}
}
MenuClose()
{
self.MenuText destroy();
self.inMenu=false;
self freezeControls(false);
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
self.shaders[i].alpha=0;
}
}
buildMenuShaders()
{
self.shaders=[];
self.shaders[0]=self cR("TOP","TOP",0,0,250,17,(1,0,0),"gradient_center",5,0);
self.shaders[1]=self cR("TOP","TOP",0,0,250,1000,(0,0,0),"gradient_center",1,0);
self.shaders[2]=self cR("TOP","TOP",-125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[3]=self cR("TOP","TOP",125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[4]=self cR("TOP","TOP",0,0,1000,1000,(0,0,0),"gradient_center",6,0);
self.shaders[5]=self cR("TOP","TOP",0,0,1000,1000,(.5,.5,.5),"white",-1,0);
self waittill("death");
if(isDefined(self.MenuText)) self.MenuText destroy();
for(x=0;x<self.shaders.size;x++)
self.shaders[x] destroy();
}
cR(align,relative,x,y,width,height,color,shader,so rt,alpha)
{
r=newClientHudElem(self);
r.elemType="bar";
r.width=width;
r.height=height;
r.align=align;
r.relative=relative;
r.xOffset=0;
r.yOffset=0;
r.children=[];
r.sort=sort;
r.color=color;
r.alpha=alpha;
r setParent(level.uiParent);
r setShader(shader,width,height);
r.hidden=false;
r setPoint(align,relative,x,y);
return r;
}
Test(t)
{
self iPrintln(t);
}
KickPlayer()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillPlayer()
{
level.players[self.pNum] suicide();
}
//To add a submenu, use this:
self AddPrevOpt(<menuname>,<menu to return to>
//The syntax for adding options is like this:
self AddMenuOpt(<submenu>,<Name>,<function>,<input>,<number of option>
//To add an option that loads a submenu, use this:
self AddMenuOpt(<current submenu>,<Name>,::LoadSub,<new sub name>,<number of option>
self thread MenuFuncs();
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
BuildMenu()
{
self AddMenuOpt("main","Option 1",::Test,"opt1",0);
self AddMenuOpt("main","Option 2",::Test,"opt2",1);
self AddMenuOpt("main","Option 3",::Test,"opt3",2);
self AddMenuOpt("main","Players",::LoadSub,"pmen",3);
//Player Options Menu
self AddPrevOpt("popts","pmen");
self AddMenuOpt("popts","Kick Player",::KickPlayer,"",0);
self AddMenuOpt("popts","Kill Player",::KillPlayer,"",1);
}
AddPrevOpt(sub,prev)
{
self.menu[sub]["prev"]=prev;
}
AddMenuOpt(sub,name,func,input,num)
{
self.menu[sub]["name"][num]=name;
self.menu[sub]["func"][num]=func;
if(isDefined(input)) self.menu[sub]["input"][num]=input;
}
LoadSub(sub)
{
if(isDefined(self.MenuText)) self.MenuText destroy();
if(self.menu[sub]["prev"]=="pmen") self.pNum=self.scroll;
self.scroll=0;
self.shaders[0] moveOverTime(0.5);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
str="";
self.MenuText=self CreateFontString("default",1.;
self.MenuText setPoint("TOP","TOP",0,20);
for(i=0;i<self.menu[sub]["name"].size;i++)
str+=self.menu[sub]["name"][i]+"\n";
self.MenuText setText(str);
self.MenuText.sort=15;
self.MenuText.alpha=0;
self.curMenu=sub;
self.MenuText fadeOverTime(0.5);
self.MenuText.alpha=1;
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
if(i!=5)self.shaders[i].alpha=1;
self.shaders[5].alpha=0.6;
}
}
MenuFuncs()
{
self endon("death");
self.inMenu=false;
self thread buildMenuShaders();
self thread BuildMenu();
self AddPrevOpt("pmen","main");
for(i=0;i<level.players.size;i++)
self AddMenuOpt("pmen",""+level.players[i].name+"",::LoadSub,"popts",i);
self freezeControls(false);
for(;
{
if(self FragButtonPressed()&&self.inMenu==false)
{
self.inMenu=true;
self freezeControls(true);
self.curMenu="main";
self thread LoadSub("main");
wait .15;
}
if(self AttackButtonPressed()&&self.inMenu==true)
{
if(self.scroll<=self.menu[self.curMenu]["name"].size)
{
self.scroll++;
if(self.scroll!=self.menu[self.curMenu]["name"].size) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,22.4);
self.scroll=0; }
wait .2;
}
}
if(self AdsButtonPressed()&&self.inMenu==true)
{
if(self.scroll>=0)
{
self.scroll--;
if(self.scroll!=-1) {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y-21.5; }
else {
self.shaders[0] moveOverTime(0.2);
self.shaders[0] setPoint("TOP","TOP",0,self.shaders[0].y+21.58*(self.menu[self.curMenu]["name"].size-1));
self.scroll=self.menu[self.curMenu]["name"].size-1; }
wait .2;
}
}
if(self UseButtonPressed()&&self.inMenu==true)
{
self thread [[self.menu[self.curMenu]["func"][self.scroll]]](self.menu[self.curMenu]["input"][self.scroll]);
self playLocalSound("mouse_click");
wait .2;
}
if(self MeleeButtonPressed()&&self.inMenu==true)
{
if(self.curMenu == "main") self thread MenuClose();
else self thread LoadSub(self.menu[self.curMenu]["prev"]);
wait .15;
}
wait 0.05;
}
}
MenuClose()
{
self.MenuText destroy();
self.inMenu=false;
self freezeControls(false);
for(i=0;i<self.shaders.size;i++)
{
self.shaders[i] fadeOverTime(0.5);
self.shaders[i].alpha=0;
}
}
buildMenuShaders()
{
self.shaders=[];
self.shaders[0]=self cR("TOP","TOP",0,0,250,17,(1,0,0),"gradient_center",5,0);
self.shaders[1]=self cR("TOP","TOP",0,0,250,1000,(0,0,0),"gradient_center",1,0);
self.shaders[2]=self cR("TOP","TOP",-125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[3]=self cR("TOP","TOP",125,0,5,1000,(1,0,0),"white",6,0);
self.shaders[4]=self cR("TOP","TOP",0,0,1000,1000,(0,0,0),"gradient_center",6,0);
self.shaders[5]=self cR("TOP","TOP",0,0,1000,1000,(.5,.5,.5),"white",-1,0);
self waittill("death");
if(isDefined(self.MenuText)) self.MenuText destroy();
for(x=0;x<self.shaders.size;x++)
self.shaders[x] destroy();
}
cR(align,relative,x,y,width,height,color,shader,so rt,alpha)
{
r=newClientHudElem(self);
r.elemType="bar";
r.width=width;
r.height=height;
r.align=align;
r.relative=relative;
r.xOffset=0;
r.yOffset=0;
r.children=[];
r.sort=sort;
r.color=color;
r.alpha=alpha;
r setParent(level.uiParent);
r setShader(shader,width,height);
r.hidden=false;
r setPoint(align,relative,x,y);
return r;
}
Test(t)
{
self iPrintln(t);
}
KickPlayer()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillPlayer()
{
level.players[self.pNum] suicide();
}
//To add a submenu, use this:
self AddPrevOpt(<menuname>,<menu to return to>
//The syntax for adding options is like this:
self AddMenuOpt(<submenu>,<Name>,<function>,<input>,<number of option>
//To add an option that loads a submenu, use this:
self AddMenuOpt(<current submenu>,<Name>,::LoadSub,<new sub name>,<number of option>
Copyright © 2024, NextGenUpdate.
All Rights Reserved.