Post: [RELEASE] IVI40A3Fusionz's Menu Base
04-01-2012, 07:16 PM #1
IVI40A3Fusionz
Former Gaming Squad Member
(adsbygoogle = window.adsbygoogle || []).push({});
Menu Base made by IVI40A3Fusionz from scratch, except for the button handling, credits to the given parties below when due.

Downloads:
PC: You must login or register to view this content.
PS3: You must login or register to view this content.

Video:


Script
    
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();
}


Credits:
Blackstorm: For Button Handling.
QuickSilver: For Overflow Fix.

NOTE:
- There is now a player menu but still no verification as of yet as i couldn't be bothered to add one, however i am willing to add a player menu and verification if it is requested alot.
(adsbygoogle = window.adsbygoogle || []).push({});

The following 4 users say thank you to IVI40A3Fusionz for this useful post:

|ManiaC|, Correy, iPROFamily, xMrSuperMoDzZ--
04-02-2012, 04:27 PM #20
Originally posted by Correy View Post
    
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;
}


this was custom made by myself, CShader - CorreyShader :p


That was written by IW :carling:

The following user thanked x_DaftVader_x for this useful post:

Blackstorm
04-02-2012, 04:46 PM #21
IVI40A3Fusionz
Former Gaming Squad Member
Originally posted by x. View Post
That was written by IW :carling:


Ohhh Vader you're just like your character so evil Winky Winky.
04-02-2012, 05:34 PM #22
Correy
I'm the Original
Originally posted by x. View Post
That was written by IW :carling:


i used my rip methods Enzo
04-02-2012, 05:37 PM #23
Originally posted by Correy View Post
i used my rip methods Enzo
I use my mw_cod4_mod_tools methods :evil:
04-03-2012, 12:16 AM #24
Harry
Former Staff
Um Fusionz i tried to put this menu base into a patch_mp but i must of done it wrong lmfao xD It got a bad syntax /:

Help me out when you're next on skype please, thankss<3
04-03-2012, 01:58 AM #25
Blackstorm
Veni. Vidi. Vici.
Originally posted by Correy View Post
this was custom made by myself, CShader - CorreyShader


lolwut, this function has been around for years. In fact it's in _hud_util. xD

You just changed the variable name :p
04-03-2012, 10:41 AM #26
IVI40A3Fusionz
Former Gaming Squad Member
Originally posted by Hxrry View Post
Um Fusionz i tried to put this menu base into a patch_mp but i must of done it wrong lmfao xD It got a bad syntax /:

Help me out when you're next on skype please, thankss<3


Updated the thread with 2 downloads (PC and PS3) both have Amandas overflow fix already implemented to save time Smile.
04-03-2012, 10:51 AM #27
Very nice Smile
04-03-2012, 04:53 PM #28
Harry
Former Staff
Originally posted by IVI40A3Fusionz View Post
Updated the thread with 2 downloads (PC and PS3) both have Amandas overflow fix already implemented to save time Smile.



Thanks alot, sorry for being a noob:wah:

---------- Post added at 05:53 PM ---------- Previous post was at 03:37 PM ----------

Heres a video of the base on PS3. <3



<3

The following user thanked Harry for this useful post:

IVI40A3Fusionz

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo