#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);
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.