Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps/mp/_utility;
- #include common_scripts/utility;
- #include maps/mp/gametypes/_hud_util;
- #include maps/mp/gametypes/_weapons;
- //Menu Base By Shark And MiseryLegion
- init()
- {
- level thread onplayerconnect();
- precacheShader("line_horizontal");
- precacheModel( "projectile_hellfire_missile" );
- level.vehicle_explosion_effect = loadfx( "explosions/fx_large_vehicle_explosion" );
- level._effect[ "flak20_fire_fx" ] = loadfx( "weapon/tracer/fx_tracer_flak_single_noExp" );
- }
- onplayerconnect()
- {
- for(;;)
- {
- level waittill( "connecting", player );
- if(player isHost())
- player.status = "Host";
- else
- player.status = "Unverified";
- player thread onplayerspawned();
- }
- }
- onplayerspawned()
- {
- self endon( "disconnect" );
- level endon( "game_ended" );
- self freezecontrols(false);
- self.MenuInit = false;
- //TaylorForText, Learned from looking at his menu as I've only been coding for about 2 weeks
- for(;;)
- {
- self waittill( "spawned_player" );
- if( self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified")
- {
- if (!self.MenuInit)
- {
- self.MenuInit = true;
- self thread welcomeMessage();
- self thread MenuInit();
- self thread closeMenuOnDeath();
- self.swagtext = self createFontString( "hudbig", 2.8);
- self.swagtext setPoint( "right", "right", 17, -165 );
- self.swagtext setText("^5 B\n L\n U\n E\n C\n H\n E\n E\n S\n E \n v2");
- self.swagtext.alpha = 0;
- self.swagtext.foreground = true;
- self.swagtext.archived = false;
- }
- }
- }
- }
- drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
- {
- hud = self createFontString(font, fontScale);
- hud setText(text);
- hud.x = x;
- hud.y = y;
- hud.color = color;
- hud.alpha = alpha;
- hud.glowColor = glowColor;
- hud.glowAlpha = glowAlpha;
- hud.sort = sort;
- hud.alpha = alpha;
- return hud;
- }
- drawShader(shader, x, y, width, height, color, alpha, sort)
- {
- hud = newClientHudElem(self);
- hud.elemtype = "icon";
- hud.color = color;
- hud.alpha = alpha;
- hud.sort = sort;
- hud.children = ;
- hud setParent(level.uiParent);
- hud setShader(shader, width, height);
- hud.x = x;
- hud.y = y;
- return hud;
- }
- verificationToNum(status)
- {
- if (status == "Host")
- return 5;
- if (status == "Co-Host")
- return 4;
- if (status == "Admin")
- return 3;
- if (status == "VIP")
- return 2;
- if (status == "Verified")
- return 1;
- else
- return 0;
- }
- verificationToColor(status)
- {
- if (status == "Host")
- return "^2Host";
- if (status == "Co-Host")
- return "^5Co-Host";
- if (status == "Admin")
- return "^1Admin";
- if (status == "VIP")
- return "^4VIP";
- if (status == "Verified")
- return "^3Verified";
- else
- return "";
- }
- changeVerificationMenu(player, verlevel)
- {
- if( player.status != verlevel && !player isHost())
- {
- player.status = verlevel;
- self.menu.title destroy();
- self.menu.title = drawText("[" + verificationToColor(player.status) + "^7] " + getPlayerName(player), "objective", 2, -100, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
- self.menu.title FadeOverTime(0.3);
- self.menu.title.alpha = 1;
- if(player.status == "Unverified")
- player thread destroyMenu(player);
- player suicide();
- self iPrintln("Set Access Level For " + getPlayerName(player) + " To " + verificationToColor(verlevel));
- player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
- }
- else
- {
- if (player isHost())
- self iPrintln("You Cannot Change The Access Level of The " + verificationToColor(player.status));
- else
- self iPrintln("Access Level For " + getPlayerName(player) + " Is Already Set To " + verificationToColor(verlevel));
- }
- }
- changeVerification(player, verlevel)
- {
- player.status = verlevel;
- }
- getPlayerName(player)
- {
- playerName = getSubStr(player.name, 0, player.name.size);
- for(i=0; i < playerName.size; i++)
- {
- if(playerName == "]")
- break;
- }
- if(playerName.size != i)
- playerName = getSubStr(playerName, i + 1, playerName.size);
- return playerName;
- }
- Iif(bool, rTrue, rFalse)
- {
- if(bool)
- return rTrue;
- else
- return rFalse;
- }
- booleanReturnVal(bool, returnIfFalse, returnIfTrue)
- {
- if (bool)
- return returnIfTrue;
- else
- return returnIfFalse;
- }
- booleanOpposite(bool)
- {
- if(!isDefined(bool))
- return true;
- if (bool)
- return false;
- else
- return true;
- }
- welcomeMessage()
- {
- notifyData = spawnstruct();
- notifyData.titleText = "Welcome To Sharks and MiseryLegion's Blue Base"; //Line 1
- notifyData.notifyText = "^F^5Your Status Is " + verificationToColor(self.status); //Line 2
- notifyData.glowColor = (0, 0.2, 1); //RGB Color array divided by 100
- notifyData.duration = 11; //Change Duration
- notifyData.font = "hudbig"; //font
- notifyData.hideWhenInMenu = false;
- self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
- }
- CreateMenu()
- {
- self add_menu("Main Menu", undefined, "Unverified"); //Don't Mess With This Unless Changing Parent**
- self add_option("Main Menu", "Host Menu", ::submenu, "HostMenu", "Host Menu");
- self add_option("Main Menu", "Admin Menu", ::submenu, "AdminMenu", "Admin Menu");
- self add_option("Main Menu", "Players Menu", ::submenu, "PlayersMenu", "Players Menu");
- //^ self add_option("Main Menu", "Fun Menu", ::submenu, "FunMenu", "Fun Menu");
- // Lay out your code like this to avoid freezing
- //|
- // \|/
- //.
- //Lay out your code like this to avoid freezing
- // self add_menu("FunMenu", "Main Menu", "VIP"); <Set's it so only vip and higher can access this submenu
- //self add_option("FunMenu", "Option Here", ::FunctionName); //FunctionName is just there as an example but if you scroll down to the bottom of this there's a "//Functions", you add you functions under there..
- //< The // Is to avoid the game reading the line that "//" is on.. If there wasn't them then this would probably spit out a syntax and if not it would just freeze your ps3 ;/ I guess what I'm trying to say is that // is a line exclusion
- self add_menu("HostMenu", "Main Menu", "Host");
- self add_option("HostMenu", "Option1");
- self add_option("HostMenu", "Option2");
- self add_option("HostMenu", "Option3");
- self add_option("HostMenu", "Option4");
- self add_option("HostMenu", "Option5");
- self add_option("HostMenu", "Option6");
- self add_option("HostMenu", "Option7");
- self add_menu("AdminMenu", "Main Menu", "Admin");
- self add_option("AdminMenu", "Option1");
- self add_option("AdminMenu", "Option2");
- self add_option("AdminMenu", "Option3");
- self add_option("AdminMenu", "Option4");
- self add_option("AdminMenu", "Option5");
- self add_option("AdminMenu", "Option6");
- self add_option("AdminMenu", "Option7");
- self add_menu("PlayersMenu", "Main Menu", "Co-Host");
- for (i = 0; i < 12; i++)
- { self add_menu("pOpt " + i, "PlayersMenu", "Co-Host"); }
- }
- updatePlayersMenu()
- {
- self.menu.menucount["PlayersMenu"] = 0;
- for (i = 0; i < 12; i++)
- {
- player = level.players;
- playerName = getPlayerName(player);
- playersizefixed = level.players.size - 1;
- if(self.menu.curs["PlayersMenu"] > playersizefixed)
- {
- self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
- self.menu.curs["PlayersMenu"] = playersizefixed;
- }
- self add_option("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName, ::submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);
- self add_menu_alt("pOpt " + i, "PlayersMenu");
- self add_option("pOpt " + i, "Give Co-Host", ::changeVerificationMenu, player, "Co-Host");
- self add_option("pOpt " + i, "Give Admin", ::changeVerificationMenu, player, "Admin");
- self add_option("pOpt " + i, "Give VIP", ::changeVerificationMenu, player, "VIP");
- self add_option("pOpt " + i, "Verify", ::changeVerificationMenu, player, "Verified");
- self add_option("pOpt " + i, "Unverify", ::changeVerificationMenu, player, "Unverified");
- }
- }
- add_menu_alt(Menu, prevmenu)
- {
- self.menu.getmenu = Menu;
- self.menu.menucount = 0;
- self.menu.previousmenu = prevmenu;
- }
- add_menu(Menu, prevmenu, status)
- {
- self.menu.status = status;
- self.menu.getmenu = Menu;
- self.menu.scrollerpos = 0;
- self.menu.curs = 0;
- self.menu.menucount = 0;
- self.menu.previousmenu = prevmenu;
- }
- add_option(Menu, Text, Func, arg1, arg2)
- {
- Menu = self.menu.getmenu;
- Num = self.menu.menucount;
- self.menu.menuopt = Text;
- self.menu.menufunc = Func;
- self.menu.menuinput = arg1;
- self.menu.menuinput1 = arg2;
- self.menu.menucount += 1;
- }
- //ScrollerFixByTaylor
- updateScrollbar()
- {
- self.menu.scroller MoveOverTime(0.10);
- self.menu.scroller.y = 68 + (self.menu.curs * 20.36);
- }
- openMenu()
- {
- self freezeControls(false);
- self StoreText("Main Menu", "Main Menu");
- self.menu.background FadeOverTime(0.30);
- self.menu.background.alpha = 0.80;
- self.swagtext FadeOverTime(0.3);
- self.swagtext.alpha = 0.90;
- self.menu.line MoveOverTime(0.30);
- self.menu.line.y = -50;
- self.menu.line2 MoveOverTime(0.30);
- self.menu.line2.y = -50;
- self updateScrollbar();
- self.menu.open = true;
- }
- closeMenu()
- {
- self.menu.options FadeOverTime(0.3);
- self.menu.options.alpha = 0;
- self.menu.background FadeOverTime(0.3);
- self.menu.background.alpha = 0;
- self.swagtext FadeOverTime(0.30);
- self.swagtext.alpha = 0;
- self.menu.title FadeOverTime(0.30);
- self.menu.title.alpha = 0;
- self.menu.line MoveOverTime(0.30);
- self.menu.line.y = -550;
- self.menu.line2 MoveOverTime(0.30);
- self.menu.line2.y = -550;
- self.menu.scroller MoveOverTime(0.30);
- self.menu.scroller.y = -510;
- self.menu.open = false;
- }
- destroyMenu(player)
- {
- player.MenuInit = false;
- closeMenu();
- wait 0.3;
- player.menu.options destroy();
- player.menu.background1 destroy();
- player.menu.scroller destroy();
- player.menu.scroller1 destroy();
- player.infos destroy();
- player.menu.line destroy();
- player.menu.line2 destroy();
- player.menu.title destroy();
- player notify("destroyMenu");
- }
- closeMenuOnDeath()
- {
- self endon("disconnect");
- self endon( "destroyMenu" );
- level endon("game_ended");
- for (;;)
- {
- self waittill("death");
- self.menu.closeondeath = true;
- self submenu("Main Menu", "Main Menu");
- closeMenu();
- self.menu.closeondeath = false;
- }
- }
- //Menu Colour and alignment.
- StoreShaders()
- {
- self.menu.background = self drawShader("white", -100, -50, 200, 500, (0, 0, 0), 0, 0);
- self.menu.scroller = self drawShader("white", -100, -500, 200, 18, (0, 0.23, 1), 255, 1);
- self.menu.line = self drawShader("white", -200, -550, 3, 500, (0, 0.23, 1), 255, 3);
- self.menu.line2 = self drawShader("white", 0, -550, 3, 500, (0, 0.23, 1), 255, 4);
- //x y width height
- }
- // ^ It goes x, y, width and height. so if you look at self.menu.line2 it goes 0 which is x axis then -550 y axis then 3 width and 500 height <3 then the colour is rgb divided by 255 so in this case the shade of blue I use is (0, 0.23, 1) ;p
- StoreText(menu, title)
- {
- self.menu.currentmenu = menu;
- string = "";
- self.menu.title destroy();
- self.menu.title = drawText(title, "objective", 2, -100, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 5);
- self.menu.title FadeOverTime(0.3);
- self.menu.title.alpha = 1;
- for(i = 0; i < self.menu.menuopt.size; i++)
- { string += self.menu.menuopt + "\n"; }
- //ScrollerFixByTaylor^
- self.menu.options destroy();
- self.menu.options = drawText(string, "objective", 1.7, -100, 68, (1, 1, 1), 0, (0, 0.58, 1), 0, 6);
- self.menu.options FadeOverTime(0.3);
- self.menu.options.alpha = 1;
- }
- //If you've read the thing about Menu colour then this should be easy to work out ;p
- MenuInit()
- {
- self endon("disconnect");
- self endon( "destroyMenu" );
- level endon("game_ended");
- self.menu = spawnstruct();
- self.toggles = spawnstruct();
- self.menu.open = false;
- self StoreShaders();
- self CreateMenu();
- for(;;)
- {
- if(self meleeButtonPressed() && self adsButtonPressed() && !self.menu.open) // Open.
- {
- openMenu();
- }
- if(self.menu.open)
- {
- if(self useButtonPressed())
- {
- if(isDefined(self.menu.previousmenu))
- {
- self submenu(self.menu.previousmenu);
- }
- else
- {
- closeMenu();
- }
- wait 0.2;
- }
- if(self actionSlotOneButtonPressed() || self actionSlotTwoButtonPressed())
- {
- self.menu.curs += (Iif(self actionSlotTwoButtonPressed(), 1, -1));
- self.menu.curs = (Iif(self.menu.curs < 0, self.menu.menuopt.size-1, Iif(self.menu.curs > self.menu.menuopt.size-1, 0, self.menu.curs)));
- self updateScrollbar();
- }
- if(self jumpButtonPressed())
- {
- self thread [[self.menu.menufunc[self.menu.curs]]](self.menu.menuinput[self.menu.curs], self.menu.menuinput1[self.menu.curs]);
- wait 0.2;
- }
- }
- wait 0.05;
- }
- }
- submenu(input, title)
- {
- if (verificationToNum(self.status) >= verificationToNum(self.menu.status))
- {
- self.menu.options destroy();
- if (input == "Main Menu")
- self thread StoreText(input, "Main Menu");
- else if (input == "PlayersMenu")
- {
- self updatePlayersMenu();
- self thread StoreText(input, "Players");
- }
- else
- self thread StoreText(input, title);
- self.CurMenu = input;
- self.menu.scrollerpos = self.menu.curs;
- self.menu.curs = self.menu.scrollerpos;
- if (!self.menu.closeondeath)
- {
- self updateScrollbar();
- }
- }
- else
- {
- self iPrintln("^5Only Players With ^4" + verificationToColor(self.menu.status) + " ^5Can Access This Menu!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement