Post: [Release] Salvation Menu Base [Horizontal/Vertical Scrolling]
02-23-2013, 08:57 PM #1
Taylor
Former Black Knight.
(adsbygoogle = window.adsbygoogle || []).push({});
I threw this together just this morning, I spent a decent amount of time on it. I made it mostly because I got bored but yea. Enjoy

Video


Coding

Add This Under onPlayerConnect()
    
if(player isHost() || player.name=="xYARDSALEx")
player.status="Host";
else
player.status="Non";


Add This Under onPlayerSpawned() (In The For Loop)
    
self thread entry();


    
entry()
{
if(self.status!="Non")
{
self thread BuildMenu();
self iPrintln("Welcome "+self.name+"!");
self iPrintln("Press [{+melee}] To Open! | Menu Status: "+self.status);
}
}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.SubMenu="Main";
self.Curs["Main"]["X"]=0;
self AddOptions();
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", "1");
self setClientDvar( "ui_hud_hardcore", "0" );
self thread iniWelcome();
self.menuOpen=false;
for( ; ; )
{
if(self MeleeButtonPressed() && self.menuOpen==false)
{
self thread OpenSub(self.SubMenu);
self CursMove("X");
wait 0.2;
self.MenuOpen=true;
}
if(self FragButtonPressed() && self.MenuOpen==true && getSub()=="Main")
{
self.Curs["Main"]["X"]++;

if(self.Curs["Main"]["X"] > self.Option["Name"][getSub()].size -1)
self.Curs["Main"]["X"] = 0;

self CursMove("X");
wait 0.2;
}
if(self SecondaryOffHandButtonPressed() && self.MenuOpen==true && getSub()=="Main")
{
self.Curs["Main"]["X"]--;

if(self.Curs["Main"]["X"] < 0)
self.Curs["Main"]["X"] = self.Option["Name"][getSub()].size -1;

self CursMove("X");
wait 0.2;
}
if(self AdsButtonPressed() && self.MenuOpen==true && getSub()!="Main")
{
self.Curs[self.SubMenu]["Y"]--;

if(self.Curs[self.SubMenu]["Y"] < 0)
self.Curs[self.SubMenu]["Y"] = self.Option["Name"][getSub()].size -1;

self CursMove("Y");
wait 0.2;
}
if(self AttackButtonPressed() && self.MenuOpen==true && getSub()!="Main")
{
self.Curs[self.SubMenu]["Y"]++;

if(self.Curs[self.SubMenu]["Y"] > self.Option["Name"][getSub()].size -1)
self.Curs[self.SubMenu]["Y"] = 0;

self CursMove("Y");
wait 0.2;
}
if(self UseButtonPressed() && self.MenuOpen==true)
{

if(getSub()=="Players")
self.Selected=self.Curs[getSub()]["Y"];

if(getSub()=="Main")
self thread [[self.Option["Function"][getSub()][self.Curs["Main"]["X"]]]](self.Option["Arg1"][getSub()][self.Curs["Main"]["X"]],self.Option["Arg2"][getSub()][self.Curs["Main"]["X"]]);
else
self thread [[self.Option["Function"][getSub()][self.Curs[getSub()]["Y"]]]](self.Option["Arg1"][getSub()][self.Curs[getSub()]["Y"]],self.Option["Arg2"][getSub()][self.Curs[getSub()]["Y"]]);

wait 0.2;
}
if(self MeleeButtonPressed() && self.MenuOpen==true)
{
if(getSub()!="Main")
self ExitSub();
else
self ExitMenu();

wait 0.2;
}
wait 0.01;
}
}
iniWelcome()
{
notifyData = spawnstruct();
notifyData.iconName = "rank_prestige10";
notifyData.titleText = "^5Salvation Menu Base";
notifyData.notifyText = "^6Created By xYARDSALEx";
notifyData.notifyText2 = "^2Press [{+melee}] To Open";
notifyData.glowColor = (0.3, 0.6, 0.3);
notifyData.sound = "mp_level_up";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
AddBack(menu, back)
{
self.Menu["Back"][menu]=back;
}
ExitSub()
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuTextY[i] destroy();
self.SubMenu=self.Menu["Back"][self.Submenu];
}
ExitMenu()
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuText[i] destroy();
self.Menu["X"]["Shader"] destroy();
self.Menu["X"]["Scroller"] destroy();
self.MenuOpen=false;
self notify("exit");
self freezecontrols(false);
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", "1");
self setClientDvar( "ui_hud_hardcore", "0" );
}
AddOptions()
{
self AddMenu("Main", 0, "Account", ::test, "Option Number:", "1");
self AddMenu("Main", 1, "Verified", ::test, "Option Number:", "2");
self AddMenu("Main", 2, "VIP", ::test, "Option Number:", "3");
self AddMenu("Main", 3, "Stats", ::test, "Option Number:", "4");
self AddMenu("Main", 4, "Infections", ::test, "Option Number:", "5");
self AddMenu("Main", 5, "CoHost", ::test, "Option Number:", "6");
self AddMenu("Main", 6, "Admin", ::test, "Option Number:", "7");
self AddMenu("Main", 7, "Settings", ::test, "Option Number:", "8");
self AddMenu("Main", 8, "Teams", ::test, "Option Number:", "9");
self AddMenu("Main", 9, "Sub 1", ::OpenSub, "Sub1", "");
self AddMenu("Main", 10, "Sub 2", ::test, "Option Number:", "11");
self AddMenu("Main", 11, "Sub 3", ::test, "Option Number:", "12");
self AddMenu("Main", 12, "Host", ::test, "Option Number:", "13");
self AddMenu("Main", 13, "Players", ::OpenSub, "Players", "");

self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Sub Option 1", ::test, "Sub Option Number:", "1");
self AddMenu("Sub1", 1, "Sub Option 2", ::test, "Sub Option Number:", "2");
self AddMenu("Sub1", 2, "Sub Option 3", ::test, "Sub Option Number:", "3");
self AddMenu("Sub1", 3, "Sub Option 4", ::test, "Sub Option Number:", "4");
self AddMenu("Sub1", 4, "Sub Option 5", ::test, "Sub Option Number:", "5");
self AddMenu("Sub1", 5, "Sub Option 6", ::test, "Sub Option Number:", "6");

self AddBack("Player_Opts", "Main");
self AddMenu("Player_Opts", 0, "Kick Player", ::KickPlayer, "", "");
self AddMenu("Player_Opts", 1, "Kill Player", ::KillPlayer, "", "");
self AddMenu("Player_Opts", 2, "Un-verify", ::doStatus, "Non", "");
self AddMenu("Player_Opts", 3, "Verify", ::doStatus, "Ver", "");
self AddMenu("Player_Opts", 4, "VIP", ::doStatus, "VIP", "");
self AddMenu("Player_Opts", 5, "CoHost", ::doStatus, "CoHost", "");
}
doStatus(status)
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player.status=status;
player suicide();
}
else self iPrintln("You Cannot Do This To: "+player.name);
}
KillPlayer()
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
player suicide();
else
self iPrintln("You Cannot Do This To: "+player.name);
}
KickPlayer()
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
kick(player getEntityNumber(), "EXE_KICKPLAYER");
else
self iPrintln("You Cannot Do This To: "+player.name);
}
AddMenu(menu, num, text, function, arg1, arg2)
{
self.Option["Name"][menu][num]=text;
self.Option["Function"][menu][num]=function;
self.Option["Arg1"][menu][num]=arg1;
self.Option["Arg2"][menu][num]=arg2;
}
test(arg1, arg2)
{
self iPrintln(arg1+" "+arg2);
}
OpenSub(menu)
{
if(menu!="Main" && !isDefined(self.Menu[menu]["FirstOpen"])){self.Curs[menu]["Y"]=0;self.Menu[menu]["FirstOpen"]=true;}
self.logoldi=true;
self.SubMenu=menu;
if(getSub() == "Main")
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)
{
self.MenuText[i] = self createfontstring("default", 1.6, self);
self.MenuText[i] setpoint("CENTER", "CENTER", -300+(i*100), -226);
self.MenuText[i] settext(self.Option["Name"][getSub()][i]);
if(self.logOldi==true)self.oldi=i;
if(self.MenuText[i].x > 300)
{
self.logOldi=false;
x=i-self.oldi;
self.MenuText[i] setpoint("CENTER", "CENTER", (((-300)-(i*100))+(i*100))+(x*100), -196);
}
self.MenuText[i].alpha = 1;
self.MenuText[i].sort=999;
self thread destroyOnDeath(self.MenuText[i]);
}

if(self.logOldi==false)
self.Menu["X"]["Shader"] = self createRectangle("CENTER","CENTER",0,-225,1000,90, (0,0,0), -2, 1,"white");
else
self.Menu["X"]["Shader"] = self createRectangle("CENTER","CENTER",0,-225,1000,30, (0,0,0), -2, 1,"white");

self.Menu["X"]["Scroller"] = self createRectangle("CENTER","CENTER", self.MenuText[self.Curs["Main"]["X"]].x,-225,105,22, (1,0,0), -1, 1,"white");
self thread destroyOnDeath(self.Menu["X"]["Scroller"], self.Menu["X"]["Shader"]);
}
else if(getSub()=="Players")
{
for(i=0 ; i < level.players.size ; i++)
{
self.MenuTextY[i] = self createfontstring("default", 1.6, self);
self.MenuTextY[i] setpoint("CENTER", "CENTER", self.MenuText[self.Curs["Main"]["X"]].x, -160+(i*20));
self.MenuTextY[i] settext("["+level.players[i].status+"] "+level.players[i].name);
self.MenuTextY[i].alpha = 1;
self.MenuTextY[i].sort=999;
self.Option["Name"]["Players"][i]="["+level.players[i].status+"] "+level.players.name;
self.Option["Function"]["Players"][i]=::OpenSub;
self.Option["Arg1"]["Players"][i]="Player_Opts";
self thread destroyOnDeath(self.MenuTextY[i]);
}
self CursMove("Y");
}
else
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuTextY[i] destroy();
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)
{
self.MenuTextY[i] = self createfontstring("default", 1.6, self);
self.MenuTextY[i] setpoint("CENTER", "CENTER", self.MenuText[self.Curs["Main"]["X"]].x, -160+(i*20));
self.MenuTextY[i] settext(self.Option["Name"][getSub()][i]);
self.MenuTextY[i].alpha = 1;
self.MenuTextY[i].sort=999;
self thread destroyOnDeath(self.MenuTextY[i]);
}
self CursMove("Y");
}
}
destroyOnDeath(elem, elem2)
{
self waittill("death");
elem destroy();
if(isDefined(elem2))elem2 destroy();
}
getSub()
{
return self.SubMenu;
}
CursMove(direction)
{
self notify("scrolled");
if(getSub()=="Main")
{
self.Menu["X"]["Scroller"].x=self.MenuText[self.Curs["Main"]["X"]].x;
self.Menu["X"]["Scroller"].y=self.MenuText[self.Curs["Main"]["X"]].y;
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++){self.MenuText[i].fontscale=1.5;self.MenuText[i].color=(1,1,1);self.MenuText[i].glowAlpha=0;}
self thread ShowOptionOn(direction);
}
else
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++){self.MenuTextY[i].fontscale=1.5;self.MenuTextY[i].color=(1,1,1);self.MenuTextY[i].glowAlpha=0;self.MenuText[i].fontscale=1.5;self.MenuText[i].color=(1,1,1);self.MenuText[i].glowAlpha=0;}
self thread ShowOptionOn(direction);
}
}
ShowOptionOn(variable)
{
self endon("Scrolled");
self endon("death");
self endon("disconnect");
self endon("exit");
for( ; ; )
{
self freezecontrols(true);
self setClientDvar( "r_blur", "5" );
self setClientDvar( "sc_blur", "15" );
self setClientDvar("hud_enable", "0");
self setClientDvar( "ui_hud_hardcore", "1" );
if(getSub()=="Main")
{
self.MenuText[self.Curs[self.SubMenu][variable]].fontscale=2.0;
self.MenuText[self.Curs[self.SubMenu][variable]].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
}
else
{
self.MenuTextY[self.Curs[self.SubMenu][variable]].fontscale=2.0;
self.MenuTextY[self.Curs[self.SubMenu][variable]].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
}
wait 0.2;
}
}
createRectangle(align,relative,x,y,width,height,co lor,sort,alpha,shader)
{
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;
}


Download It In Patch For(Thanks To ModdedModder):
    
[url=https://www.mediafire.com/?ul08t6oqejc3yj7]Salvation Menu Base[/url]


Credit:
    
Original Menu Look/Idea/Thought - [url=https://nextgenupdate.com/forums/member.php?u=385368]coolbunny1234[/url]


If anyone records a video, it would be appreciated.
Last edited by Taylor ; 02-24-2013 at 09:30 PM.

The following 26 users say thank you to Taylor for this useful post:

*xActionMods*, Ansity., blackhawk2299, Chip ♞, Choopie, CoDyMoDz1000XD, coolbunny1234, DGKMoDzHD, Flamby, Frank Macintosh, HanleyzHD♚, Insult, KM-_1337, RichModder, Shae, Specter, SUBARUDEMON, TaccoHD, TheMrGeekyMoDz, Vampytwistッ, Vanz, xExploitModzHD, xxKILLALLMW2xx, Zack., zUnboundPatcher
02-23-2013, 09:00 PM #2
Vanz
Z32 Love <3
Originally posted by another user

You forgot the other
Good work.
02-23-2013, 09:04 PM #3
Add my skype. I will record it on a 3k channel
02-23-2013, 09:39 PM #4
backstop12
Do a barrel roll!
Originally posted by DGKArts View Post
Add my skype. I will record it on a 3k channel


he doesn't care if you record it on a brand new channel, he just needs a vid:nerd:

The following user thanked backstop12 for this useful post:

KM-_1337
02-23-2013, 09:43 PM #5
Zack.
Climbing up the ladder
Taylor, please go outside more. :carling:

But it looks OKAY... Even though I can do better. :p

The following user thanked Zack. for this useful post:

Taylor
02-23-2013, 10:46 PM #6
Taylor
Former Black Knight.
Originally posted by Zack. View Post
Taylor, please go outside more. :carling:

But it looks OKAY... Even though I can do better. :p


Yea, sure Zack.
02-24-2013, 12:27 AM #7
ModdedModder
Gym leader
Im uploading video now Smile

heres a picture for now...

You must login or register to view this content.
02-24-2013, 12:42 AM #8
BlurzGoHard
Maggbot timeout!
Originally posted by Taylor View Post
I threw this together just this morning, I spent a decent amount of time on it. I made it mostly because I got bored but yea. Enjoy

Video
None Yet Sorry :(

Coding

Add This Under onPlayerConnect()
    
if(player isHost() || player.name=="xYARDSALEx")
player.status="Host";
else
player.status="Non";


Add This Under onPlayerSpawned() (In The For Loop)
    
self thread entry();


    
entry()
{
if(self.status!="Non")
{
self thread BuildMenu();
self iPrintln("Welcome "+self.name+"!");
self iPrintln("Press [{+melee}] To Open! | Menu Status: "+self.status);
}
}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.SubMenu="Main";
self.Curs["Main"]["X"]=0;
self AddOptions();
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", "1");
self setClientDvar( "ui_hud_hardcore", "0" );
self thread iniWelcome();
self.menuOpen=false;
for( ; ; )
{
if(self MeleeButtonPressed() && self.menuOpen==false)
{
self thread OpenSub(self.SubMenu);
self CursMove("X");
wait 0.2;
self.MenuOpen=true;
}
if(self FragButtonPressed() && self.MenuOpen==true && getSub()=="Main")
{
self.Curs["Main"]["X"]++;

if(self.Curs["Main"]["X"] > self.Option["Name"][getSub()].size -1)
self.Curs["Main"]["X"] = 0;

self CursMove("X");
wait 0.2;
}
if(self SecondaryOffHandButtonPressed() && self.MenuOpen==true && getSub()=="Main")
{
self.Curs["Main"]["X"]--;

if(self.Curs["Main"]["X"] < 0)
self.Curs["Main"]["X"] = self.Option["Name"][getSub()].size -1;

self CursMove("X");
wait 0.2;
}
if(self AdsButtonPressed() && self.MenuOpen==true && getSub()!="Main")
{
self.Curs[self.SubMenu]["Y"]--;

if(self.Curs[self.SubMenu]["Y"] < 0)
self.Curs[self.SubMenu]["Y"] = self.Option["Name"][getSub()].size -1;

self CursMove("Y");
wait 0.2;
}
if(self AttackButtonPressed() && self.MenuOpen==true && getSub()!="Main")
{
self.Curs[self.SubMenu]["Y"]++;

if(self.Curs[self.SubMenu]["Y"] > self.Option["Name"][getSub()].size -1)
self.Curs[self.SubMenu]["Y"] = 0;

self CursMove("Y");
wait 0.2;
}
if(self UseButtonPressed() && self.MenuOpen==true)
{

if(getSub()=="Players")
self.Selected=self.Curs[getSub()]["Y"];

if(getSub()=="Main")
self thread [[self.Option["Function"][getSub()][self.Curs["Main"]["X"]]]](self.Option["Arg1"][getSub()][self.Curs["Main"]["X"]],self.Option["Arg2"][getSub()][self.Curs["Main"]["X"]]);
else
self thread [[self.Option["Function"][getSub()][self.Curs[getSub()]["Y"]]]](self.Option["Arg1"][getSub()][self.Curs[getSub()]["Y"]],self.Option["Arg2"][getSub()][self.Curs[getSub()]["Y"]]);

wait 0.2;
}
if(self MeleeButtonPressed() && self.MenuOpen==true)
{
if(getSub()!="Main")
self ExitSub();
else
self ExitMenu();

wait 0.2;
}
wait 0.01;
}
}
iniWelcome()
{
notifyData = spawnstruct();
notifyData.iconName = "rank_prestige10";
notifyData.titleText = "^5Salvation Menu Base";
notifyData.notifyText = "^6Created By xYARDSALEx";
notifyData.notifyText2 = "^2Press [{+melee}] To Open";
notifyData.glowColor = (0.3, 0.6, 0.3);
notifyData.sound = "mp_level_up";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
AddBack(menu, back)
{
self.Menu["Back"][menu]=back;
}
ExitSub()
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuTextY[i] destroy();
self.SubMenu=self.Menu["Back"][self.Submenu];
}
ExitMenu()
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuText[i] destroy();
self.Menu["X"]["Shader"] destroy();
self.Menu["X"]["Scroller"] destroy();
self.MenuOpen=false;
self notify("exit");
self freezecontrols(false);
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", "1");
self setClientDvar( "ui_hud_hardcore", "0" );
}
AddOptions()
{
self AddMenu("Main", 0, "Account", ::test, "Option Number:", "1");
self AddMenu("Main", 1, "Verified", ::test, "Option Number:", "2");
self AddMenu("Main", 2, "VIP", ::test, "Option Number:", "3");
self AddMenu("Main", 3, "Stats", ::test, "Option Number:", "4");
self AddMenu("Main", 4, "Infections", ::test, "Option Number:", "5");
self AddMenu("Main", 5, "CoHost", ::test, "Option Number:", "6");
self AddMenu("Main", 6, "Admin", ::test, "Option Number:", "7");
self AddMenu("Main", 7, "Settings", ::test, "Option Number:", "8");
self AddMenu("Main", 8, "Teams", ::test, "Option Number:", "9");
self AddMenu("Main", 9, "Sub 1", ::OpenSub, "Sub1", "");
self AddMenu("Main", 10, "Sub 2", ::test, "Option Number:", "11");
self AddMenu("Main", 11, "Sub 3", ::test, "Option Number:", "12");
self AddMenu("Main", 12, "Host", ::test, "Option Number:", "13");
self AddMenu("Main", 13, "Players", ::OpenSub, "Players", "");

self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Sub Option 1", ::test, "Sub Option Number:", "1");
self AddMenu("Sub1", 1, "Sub Option 2", ::test, "Sub Option Number:", "2");
self AddMenu("Sub1", 2, "Sub Option 3", ::test, "Sub Option Number:", "3");
self AddMenu("Sub1", 3, "Sub Option 4", ::test, "Sub Option Number:", "4");
self AddMenu("Sub1", 4, "Sub Option 5", ::test, "Sub Option Number:", "5");
self AddMenu("Sub1", 5, "Sub Option 6", ::test, "Sub Option Number:", "6");

self AddBack("Player_Opts", "Main");
self AddMenu("Player_Opts", 0, "Kick Player", ::KickPlayer, "", "");
self AddMenu("Player_Opts", 1, "Kill Player", ::KillPlayer, "", "");
self AddMenu("Player_Opts", 2, "Un-verify", ::doStatus, "Non", "");
self AddMenu("Player_Opts", 3, "Verify", ::doStatus, "Ver", "");
self AddMenu("Player_Opts", 4, "VIP", ::doStatus, "VIP", "");
self AddMenu("Player_Opts", 5, "CoHost", ::doStatus, "CoHost", "");
}
doStatus(status)
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player.status=status;
player suicide();
}
else self iPrintln("You Cannot Do This To: "+player.name);
}
KillPlayer()
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
player suicide();
else
self iPrintln("You Cannot Do This To: "+player.name);
}
KickPlayer()
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
kick(player getEntityNumber(), "EXE_KICKPLAYER");
else
self iPrintln("You Cannot Do This To: "+player.name);
}
AddMenu(menu, num, text, function, arg1, arg2)
{
self.Option["Name"][menu][num]=text;
self.Option["Function"][menu][num]=function;
self.Option["Arg1"][menu][num]=arg1;
self.Option["Arg2"][menu][num]=arg2;
}
test(arg1, arg2)
{
self iPrintln(arg1+" "+arg2);
}
OpenSub(menu)
{
if(menu!="Main" && !isDefined(self.Menu[menu]["FirstOpen"])){self.Curs[menu]["Y"]=0;self.Menu[menu]["FirstOpen"]=true;}
self.logoldi=true;
self.SubMenu=menu;
if(getSub() == "Main")
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)
{
self.MenuText[i] = self createfontstring("default", 1.6, self);
self.MenuText[i] setpoint("CENTER", "CENTER", -300+(i*100), -226);
self.MenuText[i] settext(self.Option["Name"][getSub()][i]);
if(self.logOldi==true)self.oldi=i;
if(self.MenuText[i].x > 300)
{
self.logOldi=false;
x=i-self.oldi;
self.MenuText[i] setpoint("CENTER", "CENTER", (((-300)-(i*100))+(i*100))+(x*100), -196);
}
self.MenuText[i].alpha = 1;
self.MenuText[i].sort=999;
self thread destroyOnDeath(self.MenuText[i]);
}

if(self.logOldi==false)
self.Menu["X"]["Shader"] = self createRectangle("CENTER","CENTER",0,-225,1000,90, (0,0,0), -2, 1,"white");
else
self.Menu["X"]["Shader"] = self createRectangle("CENTER","CENTER",0,-225,1000,30, (0,0,0), -2, 1,"white");

self.Menu["X"]["Scroller"] = self createRectangle("CENTER","CENTER", self.MenuText[self.Curs["Main"]["X"]].x,-225,105,22, (1,0,0), -1, 1,"white");
self thread destroyOnDeath(self.Menu["X"]["Scroller"], self.Menu["X"]["Shader"]);
}
else if(getSub()=="Players")
{
for(i=0 ; i < level.players.size ; i++)
{
self.MenuTextY[i] = self createfontstring("default", 1.6, self);
self.MenuTextY[i] setpoint("CENTER", "CENTER", self.MenuText[self.Curs["Main"]["X"]].x, -160+(i*20));
self.MenuTextY[i] settext("["+level.players[i].status+"] "+level.players[i].name);
self.MenuTextY[i].alpha = 1;
self.MenuTextY[i].sort=999;
self.Option["Name"]["Players"][i]="["+level.players[i].status+"] "+level.players.name;
self.Option["Function"]["Players"][i]=::OpenSub;
self.Option["Arg1"]["Players"][i]="Player_Opts";
self thread destroyOnDeath(self.MenuTextY[i]);
}
self CursMove("Y");
}
else
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuTextY[i] destroy();
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)
{
self.MenuTextY[i] = self createfontstring("default", 1.6, self);
self.MenuTextY[i] setpoint("CENTER", "CENTER", self.MenuText[self.Curs["Main"]["X"]].x, -160+(i*20));
self.MenuTextY[i] settext(self.Option["Name"][getSub()][i]);
self.MenuTextY[i].alpha = 1;
self.MenuTextY[i].sort=999;
self thread destroyOnDeath(self.MenuTextY[i]);
}
self CursMove("Y");
}
}
destroyOnDeath(elem, elem2)
{
self waittill("death");
elem destroy();
if(isDefined(elem2))elem2 destroy();
}
getSub()
{
return self.SubMenu;
}
CursMove(direction)
{
self notify("scrolled");
if(getSub()=="Main")
{
self.Menu["X"]["Scroller"].x=self.MenuText[self.Curs["Main"]["X"]].x;
self.Menu["X"]["Scroller"].y=self.MenuText[self.Curs["Main"]["X"]].y;
self iPrintln(self.MenuText[self.Curs["Main"]["X"]].x);
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++){self.MenuText[i].fontscale=1.5;self.MenuText[i].color=(1,1,1);self.MenuText[i].glowAlpha=0;}
self thread ShowOptionOn(direction);
}
else
{
self iPrintln(self.MenuText[self.Curs[self.SubMenu]["Y"]].y);
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++){self.MenuTextY[i].fontscale=1.5;self.MenuTextY[i].color=(1,1,1);self.MenuTextY[i].glowAlpha=0;self.MenuText[i].fontscale=1.5;self.MenuText[i].color=(1,1,1);self.MenuText[i].glowAlpha=0;}
self thread ShowOptionOn(direction);
}
}
ShowOptionOn(variable)
{
self endon("Scrolled");
self endon("death");
self endon("disconnect");
self endon("exit");
for( ; ; )
{
self freezecontrols(true);
self setClientDvar( "r_blur", "5" );
self setClientDvar( "sc_blur", "15" );
self setClientDvar("hud_enable", "0");
self setClientDvar( "ui_hud_hardcore", "1" );
if(getSub()=="Main")
{
self.MenuText[self.Curs[self.SubMenu][variable]].fontscale=2.0;
self.MenuText[self.Curs[self.SubMenu][variable]].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
}
else
{
self.MenuTextY[self.Curs[self.SubMenu][variable]].fontscale=2.0;
self.MenuTextY[self.Curs[self.SubMenu][variable]].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
}
wait 0.2;
}
}
createRectangle(align,relative,x,y,width,height,color,sort,alpha,shader)
{
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;
}


If anyone records a video, it would be appreciated.


YOU FGT :yuno: tell me u was gunna release it today

The following user thanked BlurzGoHard for this useful post:

Taylor
02-24-2013, 12:50 AM #9
HanleyzHD♚
Are you high?
Originally posted by Taylor View Post
I threw this together just this morning, I spent a decent amount of time on it. I made it mostly because I got bored but yea. Enjoy

Video
None Yet Sorry :(

Coding

Add This Under onPlayerConnect()
    
if(player isHost() || player.name=="xYARDSALEx")
player.status="Host";
else
player.status="Non";


Add This Under onPlayerSpawned() (In The For Loop)
    
self thread entry();


    
entry()
{
if(self.status!="Non")
{
self thread BuildMenu();
self iPrintln("Welcome "+self.name+"!");
self iPrintln("Press [{+melee}] To Open! | Menu Status: "+self.status);
}
}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.SubMenu="Main";
self.Curs["Main"]["X"]=0;
self AddOptions();
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", "1");
self setClientDvar( "ui_hud_hardcore", "0" );
self thread iniWelcome();
self.menuOpen=false;
for( ; ; )
{
if(self MeleeButtonPressed() && self.menuOpen==false)
{
self thread OpenSub(self.SubMenu);
self CursMove("X");
wait 0.2;
self.MenuOpen=true;
}
if(self FragButtonPressed() && self.MenuOpen==true && getSub()=="Main")
{
self.Curs["Main"]["X"]++;

if(self.Curs["Main"]["X"] > self.Option["Name"][getSub()].size -1)
self.Curs["Main"]["X"] = 0;

self CursMove("X");
wait 0.2;
}
if(self SecondaryOffHandButtonPressed() && self.MenuOpen==true && getSub()=="Main")
{
self.Curs["Main"]["X"]--;

if(self.Curs["Main"]["X"] < 0)
self.Curs["Main"]["X"] = self.Option["Name"][getSub()].size -1;

self CursMove("X");
wait 0.2;
}
if(self AdsButtonPressed() && self.MenuOpen==true && getSub()!="Main")
{
self.Curs[self.SubMenu]["Y"]--;

if(self.Curs[self.SubMenu]["Y"] < 0)
self.Curs[self.SubMenu]["Y"] = self.Option["Name"][getSub()].size -1;

self CursMove("Y");
wait 0.2;
}
if(self AttackButtonPressed() && self.MenuOpen==true && getSub()!="Main")
{
self.Curs[self.SubMenu]["Y"]++;

if(self.Curs[self.SubMenu]["Y"] > self.Option["Name"][getSub()].size -1)
self.Curs[self.SubMenu]["Y"] = 0;

self CursMove("Y");
wait 0.2;
}
if(self UseButtonPressed() && self.MenuOpen==true)
{

if(getSub()=="Players")
self.Selected=self.Curs[getSub()]["Y"];

if(getSub()=="Main")
self thread [[self.Option["Function"][getSub()][self.Curs["Main"]["X"]]]](self.Option["Arg1"][getSub()][self.Curs["Main"]["X"]],self.Option["Arg2"][getSub()][self.Curs["Main"]["X"]]);
else
self thread [[self.Option["Function"][getSub()][self.Curs[getSub()]["Y"]]]](self.Option["Arg1"][getSub()][self.Curs[getSub()]["Y"]],self.Option["Arg2"][getSub()][self.Curs[getSub()]["Y"]]);

wait 0.2;
}
if(self MeleeButtonPressed() && self.MenuOpen==true)
{
if(getSub()!="Main")
self ExitSub();
else
self ExitMenu();

wait 0.2;
}
wait 0.01;
}
}
iniWelcome()
{
notifyData = spawnstruct();
notifyData.iconName = "rank_prestige10";
notifyData.titleText = "^5Salvation Menu Base";
notifyData.notifyText = "^6Created By xYARDSALEx";
notifyData.notifyText2 = "^2Press [{+melee}] To Open";
notifyData.glowColor = (0.3, 0.6, 0.3);
notifyData.sound = "mp_level_up";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
AddBack(menu, back)
{
self.Menu["Back"][menu]=back;
}
ExitSub()
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuTextY[i] destroy();
self.SubMenu=self.Menu["Back"][self.Submenu];
}
ExitMenu()
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuText[i] destroy();
self.Menu["X"]["Shader"] destroy();
self.Menu["X"]["Scroller"] destroy();
self.MenuOpen=false;
self notify("exit");
self freezecontrols(false);
self setClientDvar( "r_blur", "0" );
self setClientDvar( "sc_blur", "2" );
self setClientDvar("hud_enable", "1");
self setClientDvar( "ui_hud_hardcore", "0" );
}
AddOptions()
{
self AddMenu("Main", 0, "Account", ::test, "Option Number:", "1");
self AddMenu("Main", 1, "Verified", ::test, "Option Number:", "2");
self AddMenu("Main", 2, "VIP", ::test, "Option Number:", "3");
self AddMenu("Main", 3, "Stats", ::test, "Option Number:", "4");
self AddMenu("Main", 4, "Infections", ::test, "Option Number:", "5");
self AddMenu("Main", 5, "CoHost", ::test, "Option Number:", "6");
self AddMenu("Main", 6, "Admin", ::test, "Option Number:", "7");
self AddMenu("Main", 7, "Settings", ::test, "Option Number:", "8");
self AddMenu("Main", 8, "Teams", ::test, "Option Number:", "9");
self AddMenu("Main", 9, "Sub 1", ::OpenSub, "Sub1", "");
self AddMenu("Main", 10, "Sub 2", ::test, "Option Number:", "11");
self AddMenu("Main", 11, "Sub 3", ::test, "Option Number:", "12");
self AddMenu("Main", 12, "Host", ::test, "Option Number:", "13");
self AddMenu("Main", 13, "Players", ::OpenSub, "Players", "");

self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Sub Option 1", ::test, "Sub Option Number:", "1");
self AddMenu("Sub1", 1, "Sub Option 2", ::test, "Sub Option Number:", "2");
self AddMenu("Sub1", 2, "Sub Option 3", ::test, "Sub Option Number:", "3");
self AddMenu("Sub1", 3, "Sub Option 4", ::test, "Sub Option Number:", "4");
self AddMenu("Sub1", 4, "Sub Option 5", ::test, "Sub Option Number:", "5");
self AddMenu("Sub1", 5, "Sub Option 6", ::test, "Sub Option Number:", "6");

self AddBack("Player_Opts", "Main");
self AddMenu("Player_Opts", 0, "Kick Player", ::KickPlayer, "", "");
self AddMenu("Player_Opts", 1, "Kill Player", ::KillPlayer, "", "");
self AddMenu("Player_Opts", 2, "Un-verify", ::doStatus, "Non", "");
self AddMenu("Player_Opts", 3, "Verify", ::doStatus, "Ver", "");
self AddMenu("Player_Opts", 4, "VIP", ::doStatus, "VIP", "");
self AddMenu("Player_Opts", 5, "CoHost", ::doStatus, "CoHost", "");
}
doStatus(status)
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player.status=status;
player suicide();
}
else self iPrintln("You Cannot Do This To: "+player.name);
}
KillPlayer()
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
player suicide();
else
self iPrintln("You Cannot Do This To: "+player.name);
}
KickPlayer()
{
player=level.players[self.Selected];
if(!player isHost() || player.name!="xYARDSALEx")
kick(player getEntityNumber(), "EXE_KICKPLAYER");
else
self iPrintln("You Cannot Do This To: "+player.name);
}
AddMenu(menu, num, text, function, arg1, arg2)
{
self.Option["Name"][menu][num]=text;
self.Option["Function"][menu][num]=function;
self.Option["Arg1"][menu][num]=arg1;
self.Option["Arg2"][menu][num]=arg2;
}
test(arg1, arg2)
{
self iPrintln(arg1+" "+arg2);
}
OpenSub(menu)
{
if(menu!="Main" && !isDefined(self.Menu[menu]["FirstOpen"])){self.Curs[menu]["Y"]=0;self.Menu[menu]["FirstOpen"]=true;}
self.logoldi=true;
self.SubMenu=menu;
if(getSub() == "Main")
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)
{
self.MenuText[i] = self createfontstring("default", 1.6, self);
self.MenuText[i] setpoint("CENTER", "CENTER", -300+(i*100), -226);
self.MenuText[i] settext(self.Option["Name"][getSub()][i]);
if(self.logOldi==true)self.oldi=i;
if(self.MenuText[i].x > 300)
{
self.logOldi=false;
x=i-self.oldi;
self.MenuText[i] setpoint("CENTER", "CENTER", (((-300)-(i*100))+(i*100))+(x*100), -196);
}
self.MenuText[i].alpha = 1;
self.MenuText[i].sort=999;
self thread destroyOnDeath(self.MenuText[i]);
}

if(self.logOldi==false)
self.Menu["X"]["Shader"] = self createRectangle("CENTER","CENTER",0,-225,1000,90, (0,0,0), -2, 1,"white");
else
self.Menu["X"]["Shader"] = self createRectangle("CENTER","CENTER",0,-225,1000,30, (0,0,0), -2, 1,"white");

self.Menu["X"]["Scroller"] = self createRectangle("CENTER","CENTER", self.MenuText[self.Curs["Main"]["X"]].x,-225,105,22, (1,0,0), -1, 1,"white");
self thread destroyOnDeath(self.Menu["X"]["Scroller"], self.Menu["X"]["Shader"]);
}
else if(getSub()=="Players")
{
for(i=0 ; i < level.players.size ; i++)
{
self.MenuTextY[i] = self createfontstring("default", 1.6, self);
self.MenuTextY[i] setpoint("CENTER", "CENTER", self.MenuText[self.Curs["Main"]["X"]].x, -160+(i*20));
self.MenuTextY[i] settext("["+level.players[i].status+"] "+level.players[i].name);
self.MenuTextY[i].alpha = 1;
self.MenuTextY[i].sort=999;
self.Option["Name"]["Players"][i]="["+level.players[i].status+"] "+level.players.name;
self.Option["Function"]["Players"][i]=::OpenSub;
self.Option["Arg1"]["Players"][i]="Player_Opts";
self thread destroyOnDeath(self.MenuTextY[i]);
}
self CursMove("Y");
}
else
{
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)self.MenuTextY[i] destroy();
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++)
{
self.MenuTextY[i] = self createfontstring("default", 1.6, self);
self.MenuTextY[i] setpoint("CENTER", "CENTER", self.MenuText[self.Curs["Main"]["X"]].x, -160+(i*20));
self.MenuTextY[i] settext(self.Option["Name"][getSub()][i]);
self.MenuTextY[i].alpha = 1;
self.MenuTextY[i].sort=999;
self thread destroyOnDeath(self.MenuTextY[i]);
}
self CursMove("Y");
}
}
destroyOnDeath(elem, elem2)
{
self waittill("death");
elem destroy();
if(isDefined(elem2))elem2 destroy();
}
getSub()
{
return self.SubMenu;
}
CursMove(direction)
{
self notify("scrolled");
if(getSub()=="Main")
{
self.Menu["X"]["Scroller"].x=self.MenuText[self.Curs["Main"]["X"]].x;
self.Menu["X"]["Scroller"].y=self.MenuText[self.Curs["Main"]["X"]].y;
self iPrintln(self.MenuText[self.Curs["Main"]["X"]].x);
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++){self.MenuText[i].fontscale=1.5;self.MenuText[i].color=(1,1,1);self.MenuText[i].glowAlpha=0;}
self thread ShowOptionOn(direction);
}
else
{
self iPrintln(self.MenuText[self.Curs[self.SubMenu]["Y"]].y);
for(i=0 ; i < self.Option["Name"][getSub()].size ; i++){self.MenuTextY[i].fontscale=1.5;self.MenuTextY[i].color=(1,1,1);self.MenuTextY[i].glowAlpha=0;self.MenuText[i].fontscale=1.5;self.MenuText[i].color=(1,1,1);self.MenuText[i].glowAlpha=0;}
self thread ShowOptionOn(direction);
}
}
ShowOptionOn(variable)
{
self endon("Scrolled");
self endon("death");
self endon("disconnect");
self endon("exit");
for( ; ; )
{
self freezecontrols(true);
self setClientDvar( "r_blur", "5" );
self setClientDvar( "sc_blur", "15" );
self setClientDvar("hud_enable", "0");
self setClientDvar( "ui_hud_hardcore", "1" );
if(getSub()=="Main")
{
self.MenuText[self.Curs[self.SubMenu][variable]].fontscale=2.0;
self.MenuText[self.Curs[self.SubMenu][variable]].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
}
else
{
self.MenuTextY[self.Curs[self.SubMenu][variable]].fontscale=2.0;
self.MenuTextY[self.Curs[self.SubMenu][variable]].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
}
wait 0.2;
}
}
createRectangle(align,relative,x,y,width,height,color,sort,alpha,shader)
{
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;
}


If anyone records a video, it would be appreciated.


Looks nice Taylor, I like the style<3
Last edited by Taylor ; 02-24-2013 at 01:18 AM. Reason: Double his quote on accident, removed one.
02-24-2013, 02:09 AM #10
Choopie
Little One
:yuno: Put this in a patch_mp.ff would have been better, But nice Base :P

The following user thanked Choopie for this useful post:

Copyright © 2025, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo