WaTcH HoW i MoD
Enthusiast
This is something killingdyl and I made a while ago and i dont mod really anymore so i decided that im gonna release everything i have left
Video
i added instructions they are not shown in the video
Left and Right Triggers to scroll up and down X to select option and grenade to switch sub menus and Melee to exit
.IWD download
http://www.mediafire.com/?y7ds179mdumd2f3
Menu Code
If you dont want the menu to close after you chose something replace
with
and then remove this from the sub menus
How To Use Menu
Video
i added instructions they are not shown in the video
Left and Right Triggers to scroll up and down X to select option and grenade to switch sub menus and Melee to exit
.IWD download
http://www.mediafire.com/?y7ds179mdumd2f3
Menu Code
Code:
onPlayerSpawned()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
self SetClientDvar( "loc_warnings", "0" );
self SetClientDvar( "loc_warningsAsErrors", "0" );
self EnableInvulnerability();
self thread MenuOpenControl();
self thread doBlack();
}
}
MenuOpenControl()
{
self endon("disconnect");
self endon("death");
self.inmenu = 0;
self.menu = 0;
while(1)
{
if(self MeleeButtonPressed()){
if(self.inmenu == 0)
{
if(self getStance() == "prone")
{
self thread OpenMenu(0);
wait 1;
}
} else {
self AnimateClose(0.15);
self thread CloseMenu();
wait 1;
}
}
wait .05;
}
}
MenuControl()
{
self notify("stopmenucontrol");
self endon("stopmenucontrol");
self endon("closemenu");
self endon("disconnect");
y = 0;
self freezeControls(true);
self thread DestroyDisplayText();
wait 0.001;
self thread doBlack1();
self thread doBlack2();
self thread doBlack3();
self thread doBlack4();
self AnimateOpen( 0.15 );
self.freeze = spawn("script_model", self.origin);
self linkTo(self.freeze);
while(1)
{
if(self AdsButtonPressed())//This line UP
{
if(y > 0){
y--;
self thread AnimateScroll(y, 0.10);
}
}
if(self AttackButtonPressed())//This line DOWN
{
if(y < self.Using[self.menu]["text"].size - 1){
y++;
self thread AnimateScroll(y, 0.10);
}
}
/*if(self SecondaryOffHandButtonPressed())//This line LEFT
{
self.menu++;
if(self.menu > self.Using.size - 1) self.menu = 0;
self AnimateMenu(0.40, "left");
y = 0;
self AnimateScroll(y, 0.10);
}*/
if(self FragButtonPressed())//This line RIGHT
{
self.menu--;
if(self.menu < 0) self.menu = self.Using.size - 1;
self AnimateMenu(0.40, "right");
y = 0;
self AnimateScroll(y, 0.10);
}
if(self UseButtonPressed())
{
self playsound( "nuke_flash" );
if(isDefined(self.Using[self.menu]["function"][y])){
self AnimateClose(0.15);
self thread [[self.Using[self.menu]["function"][y]]](self.Using[self.menu]["input"][y]);
}
if(isDefined(self.Using[self.menu]["option"][y])) if(self.Using[self.menu]["option"][y] == "close") self thread CloseMenu();
}
wait .25;
}
}
AnimateOpen(speed)
{
self.menudisplay[0] MoveOverTime( speed );
self.menuname MoveOverTime( speed );
self.menuselecter MoveOverTime( speed );
self.menubg MoveOverTime( speed );
self.menudisplay[0] setPoint( "CENTER", "CENTER", 0, -120 );
self.menuname.y = -140;
self.menuselecter.y = -120;
self.menubg.y = 0;
wait speed;
}
AnimateClose(speed)
{
self.menudisplay[0] MoveOverTime( speed );
self.menuname MoveOverTime( speed );
self.menuselecter MoveOverTime( speed );
self.menubg MoveOverTime( speed );
self.menudisplay[0] setPoint( "CENTER", "CENTER", 0, 1000);
self.menuname.y = 1000;
self.menuselecter.y = 1000;
self.menubg.y = 1000;
wait speed;
}
AnimateScroll(y, speed)
{
self notify("Scroll");
self endon("Scroll");
self.menuselecter MoveOverTime( speed );
self.menuselecter.y = -120 + (y * 12);
wait speed;
}
AnimateMenu(speed, direction)
{
if(direction == "right") offset = 1; else offset = -1;
self.menudisplay[0] MoveOverTime( speed/2 );
self.menuname MoveOverTime( speed/2 );
self.menuselecter MoveOverTime( speed/2 );
self.menubg MoveOverTime( speed/2 );
self.menudisplay[0] setPoint( "CENTER", "CENTER", 1000 * offset, -120 );
self.menuname.x += 1000 * offset;
self.menuselecter.x += 1000 * offset;
self.menubg.x += 1000 * offset;
wait speed/2;
for(i = 0; i < self.menudisplay[0].children.size; i++)
{
self.menudisplay[0].children[i] destroy();
}
self.menudisplay[0] destroy();
self.menuname.x = -1000 * offset;
self.menuselecter.x = -1000 * offset;
self.menubg.x = -1000 * offset;
for(i = 0; i < self.Using[self.menu]["text"].size; i++)
{
self.menudisplay[i] = self createFontString( "default", 1 );
self.menudisplay[i].color = (0, 0, 0);
self.menudisplay[i] setPoint( "CENTER", "CENTER", 0, (i * 12) );
self.menudisplay[i].sort = 0;
self.menudisplay[i] setText(self.Using[self.menu]["text"][i]);
if(i != 0) self.menudisplay[i] setParent(self.menudisplay[0]);
}
self.menudisplay[0] setPoint( "CENTER", "CENTER", -1000 * offset, -120 );
self.menuname setText(self.Using[self.menu]["name"]);
self.menudisplay[0] MoveOverTime( speed/2 );
self.menuname MoveOverTime( speed/2 );
self.menuselecter MoveOverTime( speed/2 );
self.menubg MoveOverTime( speed/2 );
self.menudisplay[0] setPoint( "CENTER", "CENTER", 0, -120 );
self.menuname.x = 0;
self.menuselecter.x = 0;
self.menubg.x = 0;
wait speed/2;
}
OpenMenu(input)
{
self.inmenu = 1;
if(!isDefined(input)) self.menu = 0;
else self.menu = input;
self.Using = self getMenu();
if(isDefined(self.Using[self.menu])) self thread DrawMenu(self.Using[self.menu]);
else self.inmenu = 0;
}
UpdateMenu(newmenu)
{
self CloseMenu();
wait 0.1;
self thread OpenMenu(newmenu);
}
getMenu()
{
menu = [];
menu[1] = Menu2();
menu[2] = Menu3();
menu[3] = Menu4();
menu[4] = Menu5();
players = get_players();
if( self == players[0] )
{
menu[0] = Menu1();
menu[5] = Menu6();
}
return menu;
}
DrawMenu(menu)
{
if(isDefined(self.menudisplay[0])){
for(i = 0; i < self.menudisplay[0].children.size; i++)
{
self.menudisplay[0].children[i] destroy();
}
self.menudisplay[0] destroy();
}
if(isDefined(self.menuname)) self.menuname destroy();
if(isDefined(self.menuselecter)) self.menuselecter destroy();
if(isDefined(self.menubg)) self.menubg destroy();
if(isDefined(self.menubbg)) self.menubbg destroy();
self.menuname = self createFontString( "default", 1.5 );
self.menuname setPoint( "CENTER", "CENTER", 0, -140 );
self.menuname.color = (0, 0, 0);
self.menuname.sort = 1;
self.menuname setText(menu["name"]);
self.menudisplay = [];
self.menuselecter = self createIcon( "white", 290, 14 );
self.menuselecter setPoint( "CENTER", "CENTER", 0, -120 );
self.menuselecter.color = (0, .5, 0);
self.menuselecter.sort = -1;
self.menubg = self createIcon( "white", 300, 300 );
self.menubg setPoint( "CENTER", "CENTER", 0, 0 );
self.menubg.sort = -2;
self.menubbg = self createIcon( "black", 640, 480 );
self.menubbg.x = 0;
self.menubbg.y = 0;
self.menubbg.horzAlign = "fullscreen";
self.menubbg.vertAlign = "fullscreen";
self.menubbg.sort = -50;
self.menuname.y = -1000;
self.menuselecter.y = -1000;
self.menubg.y = -1000;
for(i = 0; i < menu["text"].size; i++)
{
self.menudisplay[i] = self createFontString( "default", 1 );
self.menudisplay[i].color = (0, 0, 0);
self.menudisplay[i] setPoint( "CENTER", "CENTER", 0, (i * 12) );
self.menudisplay[i].sort = 0;
self.menudisplay[i] setText(menu["text"][i]);
if(i != 0) self.menudisplay[i] setParent(self.menudisplay[0]);
}
self.menudisplay[0] setPoint( "CENTER", "CENTER", 0, -1000 );
wait .05;
self thread MenuControl();
}
CloseMenu()
{
self notify("closemenu");
self.inmenu = 0;
self freezeControls(false);
self thread DestroyDisplayText();
wait 0.001;
self thread doBlack();
self unlink();
self.freeze delete();
if(isDefined(self.menudisplay[0])){
for(i = 0; i < self.menudisplay[0].children.size; i++)
{
self.menudisplay[0].children[i] destroy();
}
self.menudisplay[0] destroy();
}
if(isDefined(self.menuname)) self.menuname destroy();
if(isDefined(self.menuselecter)) self.menuselecter destroy();
if(isDefined(self.menubg)) self.menubg destroy();
if(isDefined(self.menubbg)) self.menubbg destroy();
}
Menu1()
{
menu = [];
menu["name"] = "Menu 1";
menu["text"][0] = "Player1";
menu["text"][1] = "Player2";
menu["text"][2] = "Player3";
menu["text"][3] = "Player 4";
menu["text"][4] = "This Player Menu Is Not Set Up";
return menu;
}
Menu2()
{
menu = [];
menu["name"] = "Menu 2";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
menu["text"][1] = "Test Option 2";
menu["function"][1] = ::Test;
menu["input"][1] = "";
menu["option"][1] = "close";
menu["text"][2] = "Test Option 3";
menu["function"][2] = ::Test;
menu["input"][2] = "";
menu["option"][2] = "close";
menu["text"][3] = "Test Option 4";
menu["function"][3] = ::Test;
menu["input"][3] = "";
menu["option"][3] = "close";
menu["text"][4] = "Test Option 5";
menu["function"][4] = ::Test;
menu["input"][4] = "";
menu["option"][4] = "close";
return menu;
}
Menu3()
{
menu = [];
menu["name"] = "Menu 3";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
menu["text"][1] = "Test Option 2";
menu["function"][1] = ::Test;
menu["input"][1] = "";
menu["option"][1] = "close";
menu["text"][2] = "Test Option 3";
menu["function"][2] = ::Test;
menu["input"][2] = "";
menu["option"][2] = "close";
menu["text"][3] = "Test Option 4";
menu["function"][3] = ::Test;
menu["input"][3] = "";
menu["option"][3] = "close";
menu["text"][4] = "Test Option 5";
menu["function"][4] = ::Test;
menu["input"][4] = "";
menu["option"][4] = "close";
return menu;
}
Menu4()
{
menu = [];
menu["name"] = "Menu 4";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
menu["text"][1] = "Test Option 2";
menu["function"][1] = ::Test;
menu["input"][1] = "";
menu["option"][1] = "close";
menu["text"][2] = "Test Option 3";
menu["function"][2] = ::Test;
menu["input"][2] = "";
menu["option"][2] = "close";
menu["text"][3] = "Test Option 4";
menu["function"][3] = ::Test;
menu["input"][3] = "";
menu["option"][3] = "close";
menu["text"][4] = "Test Option 5";
menu["function"][4] = ::Test;
menu["input"][4] = "";
menu["option"][4] = "close";
return menu;
}
Menu5()
{
menu = [];
menu["name"] = "Menu 5";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
menu["text"][1] = "Test Option 2";
menu["function"][1] = ::Test;
menu["input"][1] = "";
menu["option"][1] = "close";
menu["text"][2] = "Test Option 3";
menu["function"][2] = ::Test;
menu["input"][2] = "";
menu["option"][2] = "close";
menu["text"][3] = "Test Option 4";
menu["function"][3] = ::Test;
menu["input"][3] = "";
menu["option"][3] = "close";
menu["text"][4] = "Test Option 5";
menu["function"][4] = ::Test;
menu["input"][4] = "";
menu["option"][4] = "close";
return menu;
}
Menu6()//Host Menu 1
{
menu = [];
menu["name"] = "Host Menu 1";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
menu["text"][1] = "Test Option 2";
menu["function"][1] = ::Test;
menu["input"][1] = "";
menu["option"][1] = "close";
menu["text"][2] = "Test Option 3";
menu["function"][2] = ::Test;
menu["input"][2] = "";
menu["option"][2] = "close";
menu["text"][3] = "Test Option 4";
menu["function"][3] = ::Test;
menu["input"][3] = "";
menu["option"][3] = "close";
menu["text"][4] = "Test Option 5";
menu["function"][4] = ::Test;
menu["input"][4] = "";
menu["option"][4] = "close";
return menu;
}
Test()
{
iprintln("^6This Is Where You Thread The Functions");
}
DestroyDisplayText()
{
self.displayhud5 destroy();
self.displayhud6 destroy();
self.displayhud7 destroy();
self.displayhud8 destroy();
self.displayhud9 destroy();
}
doBlack()
{
self.displayhud6 = newHudElem();
self.displayhud6.foreground = true;
self.displayhud6.sort = 1;
self.displayhud6.hidewheninmenu = false;
self.displayhud6.alignX = "left";
self.displayhud6.alignY = "top";
self.displayhud6.horzAlign = "left";
self.displayhud6.vertAlign = "top";
self.displayhud6.x = 0;
self.displayhud6.y = 0;
self.displayhud6.alpha = 1;
self.displayhud6.fontscale = 1.25;
self.displayhud6.color = ( 1, 1, 1 );
while(true)
{
self.displayhud6 settext( "^7Go Prone And Hold [{+melee}] To Enter Menu" );
wait .5;
}
wait 10;
}
doBlack1()
{
self.displayhud7 = newHudElem();
self.displayhud7.foreground = true;
self.displayhud7.sort = 1;
self.displayhud7.hidewheninmenu = false;
self.displayhud7.alignX = "left";
self.displayhud7.alignY = "top";
self.displayhud7.horzAlign = "left";
self.displayhud7.vertAlign = "top";
self.displayhud7.x = 0;
self.displayhud7.y = 15;
self.displayhud7.alpha = 1;
self.displayhud7.fontscale = 1.25;
self.displayhud7.color = ( 1, 1, 1 );
while(true)
{
self.displayhud7 settext( "^7Press [{+frag}] To Switch Sub Menus" );
wait .5;
}
wait 10;
}
doBlack2()
{
self.displayhud8 = newHudElem();
self.displayhud8.foreground = true;
self.displayhud8.sort = 1;
self.displayhud8.hidewheninmenu = false;
self.displayhud8.alignX = "left";
self.displayhud8.alignY = "top";
self.displayhud8.horzAlign = "left";
self.displayhud8.vertAlign = "top";
self.displayhud8.x = 0;
self.displayhud8.y = 30;
self.displayhud8.alpha = 1;
self.displayhud8.fontscale = 1.25;
self.displayhud8.color = ( 1, 1, 1 );
while(true)
{
self.displayhud8 settext( "^7Press[{+usereload}] To Select Option" );
wait .5;
}
wait 10;
}
doBlack3()
{
self.displayhud9 = newHudElem();
self.displayhud9.foreground = true;
self.displayhud9.sort = 1;
self.displayhud9.hidewheninmenu = false;
self.displayhud9.alignX = "left";
self.displayhud9.alignY = "top";
self.displayhud9.horzAlign = "left";
self.displayhud9.vertAlign = "top";
self.displayhud9.x = 0;
self.displayhud9.y = 45;
self.displayhud9.alpha = 1;
self.displayhud9.fontscale = 1.25;
self.displayhud9.color = ( 1, 1, 1 );
while(true)
{
self.displayhud9 settext( "^7Press [{+melee}] To Exit Menu" );
wait .5;
}
wait 10;
}
doBlack4()
{
self.displayhud5 = newHudElem();
self.displayhud5.foreground = true;
self.displayhud5.sort = 1;
self.displayhud5.hidewheninmenu = false;
self.displayhud5.alignX = "left";
self.displayhud5.alignY = "top";
self.displayhud5.horzAlign = "left";
self.displayhud5.vertAlign = "top";
self.displayhud5.x = 0;
self.displayhud5.y = 0;
self.displayhud5.alpha = 1;
self.displayhud5.fontscale = 1.25;
self.displayhud5.color = ( 1, 1, 1 );
while(true)
{
self.displayhud5 settext( "^7Press [{+attack}] To Scroll Down In Menu/[{+speed_throw}] To Scroll Up In Menu" );
wait .5;
}
wait 10;
}
If you dont want the menu to close after you chose something replace
Code:
if(self UseButtonPressed())
{
self playsound( "nuke_flash" );
if(isDefined(self.Using[self.menu]["function"][y])){
self AnimateClose(0.15);
self thread [[self.Using[self.menu]["function"][y]]](self.Using[self.menu]["input"][y]);
}
if(isDefined(self.Using[self.menu]["option"][y])) if(self.Using[self.menu]["option"][y] == "close") self thread CloseMenu();
}
wait .25;
}
}
with
Code:
if(self UseButtonPressed())
{
self playsound("cha_ching");
if(isDefined(self.Using[self.menu]["function"][y])){
self thread [[self.Using[self.menu]["function"][y]]](self.Using[self.menu]["input"][y]);
}
}
and then remove this from the sub menus
Code:
menu["option"][0] = "close";
How To Use Menu
Code:
This is what you begin with
menu["name"] = "Menu 3";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
Lets break that down now..
menu["name"] = "Menu 3";
This is the submenus main title pretty simple to understand
Next is the options titles
menu["text"][0] = "Test Option 1";
Also pretty simple to understand just change the name to how you want it
Next is probably the hardest part of this menu lol and its not hard at all
menu["function"][0] = ::Test;
this is where you thread the function
EX
menu["function"][0] = ::Test; --- Test should be the functions name and then put the actual function somewhere else which for this example would be the Test function
Test()
{
iprintln("^6This Is Where You Thread The Functions");
}
now that will run the test function
Next is
menu["input"][0] = "";
this is for inputs only needed if a function would check the input
and finally after everything put
menu["option"][0] = "close";
you need this is will close the menu
now after you have finished everything you should get this
menu["name"] = "Menu 3";
menu["text"][0] = "Test Option 1";
menu["function"][0] = ::Test;
menu["input"][0] = "";
menu["option"][0] = "close";
and then put the function somewhere else
Test()
{
iprintln("^6This Is Where You Thread The Functions");
}
This tutorial is kinda bad if you need help just post as a comment and i will help