Advertisement
Guest User

Test

a guest
Sep 30th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.86 KB | None | 0 0
  1. #include maps/mp/_utility;
  2.  
  3. #include common_scripts/utility;
  4.  
  5. #include maps/mp/gametypes/_hud_util;
  6.  
  7. #include maps/mp/gametypes/_weapons;
  8.  
  9.  
  10.  
  11.  
  12.  
  13. //Menu Base By Shark And MiseryLegion
  14.  
  15.  
  16.  
  17.  
  18.  
  19. init()
  20.  
  21. {
  22.  
  23. level thread onplayerconnect();
  24.  
  25. precacheShader("line_horizontal");
  26.  
  27. precacheModel( "projectile_hellfire_missile" );
  28.  
  29. level.vehicle_explosion_effect = loadfx( "explosions/fx_large_vehicle_explosion" );
  30.  
  31. level._effect[ "flak20_fire_fx" ] = loadfx( "weapon/tracer/fx_tracer_flak_single_noExp" );
  32.  
  33. }
  34.  
  35.  
  36.  
  37. onplayerconnect()
  38.  
  39. {
  40.  
  41. for(;;)
  42.  
  43. {
  44.  
  45. level waittill( "connecting", player );
  46.  
  47. if(player isHost())
  48.  
  49. player.status = "Host";
  50.  
  51. else
  52.  
  53. player.status = "Unverified";
  54.  
  55.  
  56.  
  57. player thread onplayerspawned();
  58.  
  59. }
  60.  
  61. }
  62.  
  63.  
  64.  
  65. onplayerspawned()
  66.  
  67. {
  68.  
  69. self endon( "disconnect" );
  70.  
  71. level endon( "game_ended" );
  72.  
  73. self freezecontrols(false);
  74.  
  75. self.MenuInit = false;
  76.  
  77. //TaylorForText, Learned from looking at his menu as I've only been coding for about 2 weeks
  78.  
  79. for(;;)
  80.  
  81. {
  82.  
  83. self waittill( "spawned_player" );
  84.  
  85. if( self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified")
  86.  
  87. {
  88.  
  89. if (!self.MenuInit)
  90.  
  91. {
  92.  
  93. self.MenuInit = true;
  94.  
  95. self thread welcomeMessage();
  96.  
  97. self thread MenuInit();
  98.  
  99. self thread closeMenuOnDeath();
  100.  
  101. self.swagtext = self createFontString( "hudbig", 2.8);
  102.  
  103. self.swagtext setPoint( "right", "right", 17, -165 );
  104.  
  105. 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");
  106.  
  107. self.swagtext.alpha = 0;
  108.  
  109. self.swagtext.foreground = true;
  110.  
  111. self.swagtext.archived = false;
  112.  
  113. }
  114.  
  115. }
  116.  
  117. }
  118.  
  119. }
  120.  
  121.  
  122.  
  123. drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
  124.  
  125. {
  126.  
  127. hud = self createFontString(font, fontScale);
  128.  
  129. hud setText(text);
  130.  
  131. hud.x = x;
  132.  
  133. hud.y = y;
  134.  
  135. hud.color = color;
  136.  
  137. hud.alpha = alpha;
  138.  
  139. hud.glowColor = glowColor;
  140.  
  141. hud.glowAlpha = glowAlpha;
  142.  
  143. hud.sort = sort;
  144.  
  145. hud.alpha = alpha;
  146.  
  147. return hud;
  148.  
  149. }
  150.  
  151.  
  152.  
  153. drawShader(shader, x, y, width, height, color, alpha, sort)
  154.  
  155. {
  156.  
  157. hud = newClientHudElem(self);
  158.  
  159. hud.elemtype = "icon";
  160.  
  161. hud.color = color;
  162.  
  163. hud.alpha = alpha;
  164.  
  165. hud.sort = sort;
  166.  
  167. hud.children = ;
  168.  
  169. hud setParent(level.uiParent);
  170.  
  171. hud setShader(shader, width, height);
  172.  
  173. hud.x = x;
  174.  
  175. hud.y = y;
  176.  
  177. return hud;
  178.  
  179. }
  180.  
  181.  
  182.  
  183. verificationToNum(status)
  184.  
  185. {
  186.  
  187. if (status == "Host")
  188.  
  189. return 5;
  190.  
  191. if (status == "Co-Host")
  192.  
  193. return 4;
  194.  
  195. if (status == "Admin")
  196.  
  197. return 3;
  198.  
  199. if (status == "VIP")
  200.  
  201. return 2;
  202.  
  203. if (status == "Verified")
  204.  
  205. return 1;
  206.  
  207. else
  208.  
  209. return 0;
  210.  
  211. }
  212.  
  213.  
  214.  
  215. verificationToColor(status)
  216.  
  217. {
  218.  
  219. if (status == "Host")
  220.  
  221. return "^2Host";
  222.  
  223. if (status == "Co-Host")
  224.  
  225. return "^5Co-Host";
  226.  
  227. if (status == "Admin")
  228.  
  229. return "^1Admin";
  230.  
  231. if (status == "VIP")
  232.  
  233. return "^4VIP";
  234.  
  235. if (status == "Verified")
  236.  
  237. return "^3Verified";
  238.  
  239. else
  240.  
  241. return "";
  242.  
  243. }
  244.  
  245.  
  246.  
  247. changeVerificationMenu(player, verlevel)
  248.  
  249. {
  250.  
  251. if( player.status != verlevel && !player isHost())
  252.  
  253. {
  254.  
  255. player.status = verlevel;
  256.  
  257.  
  258.  
  259. self.menu.title destroy();
  260.  
  261. self.menu.title = drawText("[" + verificationToColor(player.status) + "^7] " + getPlayerName(player), "objective", 2, -100, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
  262.  
  263. self.menu.title FadeOverTime(0.3);
  264.  
  265. self.menu.title.alpha = 1;
  266.  
  267.  
  268.  
  269. if(player.status == "Unverified")
  270.  
  271. player thread destroyMenu(player);
  272.  
  273.  
  274.  
  275. player suicide();
  276.  
  277. self iPrintln("Set Access Level For " + getPlayerName(player) + " To " + verificationToColor(verlevel));
  278.  
  279. player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
  280.  
  281. }
  282.  
  283. else
  284.  
  285. {
  286.  
  287. if (player isHost())
  288.  
  289. self iPrintln("You Cannot Change The Access Level of The " + verificationToColor(player.status));
  290.  
  291. else
  292.  
  293. self iPrintln("Access Level For " + getPlayerName(player) + " Is Already Set To " + verificationToColor(verlevel));
  294.  
  295. }
  296.  
  297. }
  298.  
  299.  
  300.  
  301. changeVerification(player, verlevel)
  302.  
  303. {
  304.  
  305. player.status = verlevel;
  306.  
  307. }
  308.  
  309.  
  310.  
  311. getPlayerName(player)
  312.  
  313. {
  314.  
  315. playerName = getSubStr(player.name, 0, player.name.size);
  316.  
  317. for(i=0; i < playerName.size; i++)
  318.  
  319. {
  320.  
  321. if(playerName == "]")
  322.  
  323. break;
  324.  
  325. }
  326.  
  327. if(playerName.size != i)
  328.  
  329. playerName = getSubStr(playerName, i + 1, playerName.size);
  330.  
  331. return playerName;
  332.  
  333. }
  334.  
  335.  
  336.  
  337. Iif(bool, rTrue, rFalse)
  338.  
  339. {
  340.  
  341. if(bool)
  342.  
  343. return rTrue;
  344.  
  345. else
  346.  
  347. return rFalse;
  348.  
  349. }
  350.  
  351.  
  352.  
  353. booleanReturnVal(bool, returnIfFalse, returnIfTrue)
  354.  
  355. {
  356.  
  357. if (bool)
  358.  
  359. return returnIfTrue;
  360.  
  361. else
  362.  
  363. return returnIfFalse;
  364.  
  365. }
  366.  
  367.  
  368.  
  369. booleanOpposite(bool)
  370.  
  371. {
  372.  
  373. if(!isDefined(bool))
  374.  
  375. return true;
  376.  
  377. if (bool)
  378.  
  379. return false;
  380.  
  381. else
  382.  
  383. return true;
  384.  
  385. }
  386.  
  387.  
  388.  
  389. welcomeMessage()
  390.  
  391. {
  392.  
  393. notifyData = spawnstruct();
  394.  
  395. notifyData.titleText = "Welcome To Sharks and MiseryLegion's Blue Base"; //Line 1
  396.  
  397. notifyData.notifyText = "^F^5Your Status Is " + verificationToColor(self.status); //Line 2
  398.  
  399. notifyData.glowColor = (0, 0.2, 1); //RGB Color array divided by 100
  400.  
  401. notifyData.duration = 11; //Change Duration
  402.  
  403. notifyData.font = "hudbig"; //font
  404.  
  405. notifyData.hideWhenInMenu = false;
  406.  
  407. self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
  408.  
  409. }
  410.  
  411.  
  412.  
  413. CreateMenu()
  414.  
  415. {
  416.  
  417. self add_menu("Main Menu", undefined, "Unverified"); //Don't Mess With This Unless Changing Parent**
  418.  
  419. self add_option("Main Menu", "Host Menu", ::submenu, "HostMenu", "Host Menu");
  420.  
  421. self add_option("Main Menu", "Admin Menu", ::submenu, "AdminMenu", "Admin Menu");
  422.  
  423. self add_option("Main Menu", "Players Menu", ::submenu, "PlayersMenu", "Players Menu");
  424.  
  425.  
  426.  
  427.  
  428.  
  429. //^ self add_option("Main Menu", "Fun Menu", ::submenu, "FunMenu", "Fun Menu");
  430.  
  431. // Lay out your code like this to avoid freezing
  432.  
  433. //|
  434.  
  435. // \|/
  436.  
  437. //.
  438.  
  439. //Lay out your code like this to avoid freezing
  440.  
  441. // self add_menu("FunMenu", "Main Menu", "VIP"); <Set's it so only vip and higher can access this submenu
  442.  
  443. //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..
  444.  
  445. //< 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
  446.  
  447.  
  448.  
  449.  
  450.  
  451. self add_menu("HostMenu", "Main Menu", "Host");
  452.  
  453. self add_option("HostMenu", "Option1");
  454.  
  455. self add_option("HostMenu", "Option2");
  456.  
  457. self add_option("HostMenu", "Option3");
  458.  
  459. self add_option("HostMenu", "Option4");
  460.  
  461. self add_option("HostMenu", "Option5");
  462.  
  463. self add_option("HostMenu", "Option6");
  464.  
  465. self add_option("HostMenu", "Option7");
  466.  
  467.  
  468.  
  469. self add_menu("AdminMenu", "Main Menu", "Admin");
  470.  
  471. self add_option("AdminMenu", "Option1");
  472.  
  473. self add_option("AdminMenu", "Option2");
  474.  
  475. self add_option("AdminMenu", "Option3");
  476.  
  477. self add_option("AdminMenu", "Option4");
  478.  
  479. self add_option("AdminMenu", "Option5");
  480.  
  481. self add_option("AdminMenu", "Option6");
  482.  
  483. self add_option("AdminMenu", "Option7");
  484.  
  485.  
  486.  
  487.  
  488.  
  489. self add_menu("PlayersMenu", "Main Menu", "Co-Host");
  490.  
  491. for (i = 0; i < 12; i++)
  492.  
  493. { self add_menu("pOpt " + i, "PlayersMenu", "Co-Host"); }
  494.  
  495. }
  496.  
  497.  
  498.  
  499. updatePlayersMenu()
  500.  
  501. {
  502.  
  503. self.menu.menucount["PlayersMenu"] = 0;
  504.  
  505. for (i = 0; i < 12; i++)
  506.  
  507. {
  508.  
  509. player = level.players;
  510.  
  511. playerName = getPlayerName(player);
  512.  
  513.  
  514.  
  515. playersizefixed = level.players.size - 1;
  516.  
  517. if(self.menu.curs["PlayersMenu"] > playersizefixed)
  518.  
  519. {
  520.  
  521. self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
  522.  
  523. self.menu.curs["PlayersMenu"] = playersizefixed;
  524.  
  525. }
  526.  
  527.  
  528.  
  529. self add_option("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName, ::submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);
  530.  
  531.  
  532.  
  533. self add_menu_alt("pOpt " + i, "PlayersMenu");
  534.  
  535. self add_option("pOpt " + i, "Give Co-Host", ::changeVerificationMenu, player, "Co-Host");
  536.  
  537. self add_option("pOpt " + i, "Give Admin", ::changeVerificationMenu, player, "Admin");
  538.  
  539. self add_option("pOpt " + i, "Give VIP", ::changeVerificationMenu, player, "VIP");
  540.  
  541. self add_option("pOpt " + i, "Verify", ::changeVerificationMenu, player, "Verified");
  542.  
  543. self add_option("pOpt " + i, "Unverify", ::changeVerificationMenu, player, "Unverified");
  544.  
  545. }
  546.  
  547. }
  548.  
  549. add_menu_alt(Menu, prevmenu)
  550.  
  551. {
  552.  
  553. self.menu.getmenu = Menu;
  554.  
  555. self.menu.menucount = 0;
  556.  
  557. self.menu.previousmenu = prevmenu;
  558.  
  559. }
  560.  
  561.  
  562.  
  563. add_menu(Menu, prevmenu, status)
  564.  
  565. {
  566.  
  567. self.menu.status = status;
  568.  
  569. self.menu.getmenu = Menu;
  570.  
  571. self.menu.scrollerpos = 0;
  572.  
  573. self.menu.curs = 0;
  574.  
  575. self.menu.menucount = 0;
  576.  
  577. self.menu.previousmenu = prevmenu;
  578.  
  579. }
  580.  
  581.  
  582.  
  583. add_option(Menu, Text, Func, arg1, arg2)
  584.  
  585. {
  586.  
  587. Menu = self.menu.getmenu;
  588.  
  589. Num = self.menu.menucount;
  590.  
  591. self.menu.menuopt = Text;
  592.  
  593. self.menu.menufunc = Func;
  594.  
  595. self.menu.menuinput = arg1;
  596.  
  597. self.menu.menuinput1 = arg2;
  598.  
  599. self.menu.menucount += 1;
  600.  
  601. }
  602.  
  603. //ScrollerFixByTaylor
  604.  
  605. updateScrollbar()
  606.  
  607. {
  608.  
  609. self.menu.scroller MoveOverTime(0.10);
  610.  
  611. self.menu.scroller.y = 68 + (self.menu.curs * 20.36);
  612.  
  613. }
  614.  
  615.  
  616.  
  617. openMenu()
  618.  
  619. {
  620.  
  621. self freezeControls(false);
  622.  
  623. self StoreText("Main Menu", "Main Menu");
  624.  
  625.  
  626.  
  627. self.menu.background FadeOverTime(0.30);
  628.  
  629. self.menu.background.alpha = 0.80;
  630.  
  631.  
  632.  
  633. self.swagtext FadeOverTime(0.3);
  634.  
  635. self.swagtext.alpha = 0.90;
  636.  
  637.  
  638.  
  639. self.menu.line MoveOverTime(0.30);
  640.  
  641. self.menu.line.y = -50;
  642.  
  643. self.menu.line2 MoveOverTime(0.30);
  644.  
  645. self.menu.line2.y = -50;
  646.  
  647.  
  648.  
  649. self updateScrollbar();
  650.  
  651. self.menu.open = true;
  652.  
  653. }
  654.  
  655.  
  656.  
  657. closeMenu()
  658.  
  659. {
  660.  
  661. self.menu.options FadeOverTime(0.3);
  662.  
  663. self.menu.options.alpha = 0;
  664.  
  665.  
  666.  
  667. self.menu.background FadeOverTime(0.3);
  668.  
  669. self.menu.background.alpha = 0;
  670.  
  671.  
  672.  
  673. self.swagtext FadeOverTime(0.30);
  674.  
  675. self.swagtext.alpha = 0;
  676.  
  677.  
  678.  
  679. self.menu.title FadeOverTime(0.30);
  680.  
  681. self.menu.title.alpha = 0;
  682.  
  683.  
  684.  
  685. self.menu.line MoveOverTime(0.30);
  686.  
  687. self.menu.line.y = -550;
  688.  
  689. self.menu.line2 MoveOverTime(0.30);
  690.  
  691. self.menu.line2.y = -550;
  692.  
  693.  
  694.  
  695. self.menu.scroller MoveOverTime(0.30);
  696.  
  697. self.menu.scroller.y = -510;
  698.  
  699. self.menu.open = false;
  700.  
  701. }
  702.  
  703.  
  704.  
  705. destroyMenu(player)
  706.  
  707. {
  708.  
  709. player.MenuInit = false;
  710.  
  711. closeMenu();
  712.  
  713. wait 0.3;
  714.  
  715.  
  716.  
  717. player.menu.options destroy();
  718.  
  719. player.menu.background1 destroy();
  720.  
  721. player.menu.scroller destroy();
  722.  
  723. player.menu.scroller1 destroy();
  724.  
  725. player.infos destroy();
  726.  
  727. player.menu.line destroy();
  728.  
  729. player.menu.line2 destroy();
  730.  
  731. player.menu.title destroy();
  732.  
  733. player notify("destroyMenu");
  734.  
  735. }
  736.  
  737.  
  738.  
  739. closeMenuOnDeath()
  740.  
  741. {
  742.  
  743. self endon("disconnect");
  744.  
  745. self endon( "destroyMenu" );
  746.  
  747. level endon("game_ended");
  748.  
  749. for (;;)
  750.  
  751. {
  752.  
  753. self waittill("death");
  754.  
  755. self.menu.closeondeath = true;
  756.  
  757. self submenu("Main Menu", "Main Menu");
  758.  
  759. closeMenu();
  760.  
  761. self.menu.closeondeath = false;
  762.  
  763. }
  764.  
  765. }
  766.  
  767. //Menu Colour and alignment.
  768.  
  769. StoreShaders()
  770.  
  771. {
  772.  
  773. self.menu.background = self drawShader("white", -100, -50, 200, 500, (0, 0, 0), 0, 0);
  774.  
  775. self.menu.scroller = self drawShader("white", -100, -500, 200, 18, (0, 0.23, 1), 255, 1);
  776.  
  777. self.menu.line = self drawShader("white", -200, -550, 3, 500, (0, 0.23, 1), 255, 3);
  778.  
  779. self.menu.line2 = self drawShader("white", 0, -550, 3, 500, (0, 0.23, 1), 255, 4);
  780.  
  781. //x y width height
  782.  
  783. }
  784.  
  785. // ^ 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
  786.  
  787. StoreText(menu, title)
  788.  
  789. {
  790.  
  791. self.menu.currentmenu = menu;
  792.  
  793. string = "";
  794.  
  795. self.menu.title destroy();
  796.  
  797. self.menu.title = drawText(title, "objective", 2, -100, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 5);
  798.  
  799. self.menu.title FadeOverTime(0.3);
  800.  
  801. self.menu.title.alpha = 1;
  802.  
  803.  
  804.  
  805. for(i = 0; i < self.menu.menuopt.size; i++)
  806.  
  807. { string += self.menu.menuopt + "\n"; }
  808.  
  809. //ScrollerFixByTaylor^
  810.  
  811. self.menu.options destroy();
  812.  
  813. self.menu.options = drawText(string, "objective", 1.7, -100, 68, (1, 1, 1), 0, (0, 0.58, 1), 0, 6);
  814.  
  815. self.menu.options FadeOverTime(0.3);
  816.  
  817. self.menu.options.alpha = 1;
  818.  
  819. }
  820.  
  821. //If you've read the thing about Menu colour then this should be easy to work out ;p
  822.  
  823. MenuInit()
  824.  
  825. {
  826.  
  827. self endon("disconnect");
  828.  
  829. self endon( "destroyMenu" );
  830.  
  831. level endon("game_ended");
  832.  
  833.  
  834.  
  835. self.menu = spawnstruct();
  836.  
  837. self.toggles = spawnstruct();
  838.  
  839.  
  840.  
  841. self.menu.open = false;
  842.  
  843.  
  844.  
  845. self StoreShaders();
  846.  
  847. self CreateMenu();
  848.  
  849.  
  850.  
  851. for(;;)
  852.  
  853. {
  854.  
  855. if(self meleeButtonPressed() && self adsButtonPressed() && !self.menu.open) // Open.
  856.  
  857. {
  858.  
  859. openMenu();
  860.  
  861. }
  862.  
  863. if(self.menu.open)
  864.  
  865. {
  866.  
  867. if(self useButtonPressed())
  868.  
  869. {
  870.  
  871. if(isDefined(self.menu.previousmenu))
  872.  
  873. {
  874.  
  875. self submenu(self.menu.previousmenu);
  876.  
  877. }
  878.  
  879. else
  880.  
  881. {
  882.  
  883. closeMenu();
  884.  
  885. }
  886.  
  887. wait 0.2;
  888.  
  889. }
  890.  
  891. if(self actionSlotOneButtonPressed() || self actionSlotTwoButtonPressed())
  892.  
  893. {
  894.  
  895. self.menu.curs += (Iif(self actionSlotTwoButtonPressed(), 1, -1));
  896.  
  897. 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)));
  898.  
  899.  
  900.  
  901. self updateScrollbar();
  902.  
  903. }
  904.  
  905. if(self jumpButtonPressed())
  906.  
  907. {
  908.  
  909. self thread [[self.menu.menufunc[self.menu.curs]]](self.menu.menuinput[self.menu.curs], self.menu.menuinput1[self.menu.curs]);
  910.  
  911. wait 0.2;
  912.  
  913. }
  914.  
  915. }
  916.  
  917. wait 0.05;
  918.  
  919. }
  920.  
  921. }
  922.  
  923.  
  924.  
  925. submenu(input, title)
  926.  
  927. {
  928.  
  929. if (verificationToNum(self.status) >= verificationToNum(self.menu.status))
  930.  
  931. {
  932.  
  933. self.menu.options destroy();
  934.  
  935.  
  936.  
  937. if (input == "Main Menu")
  938.  
  939. self thread StoreText(input, "Main Menu");
  940.  
  941. else if (input == "PlayersMenu")
  942.  
  943. {
  944.  
  945. self updatePlayersMenu();
  946.  
  947. self thread StoreText(input, "Players");
  948.  
  949. }
  950.  
  951. else
  952.  
  953. self thread StoreText(input, title);
  954.  
  955.  
  956.  
  957. self.CurMenu = input;
  958.  
  959.  
  960.  
  961. self.menu.scrollerpos = self.menu.curs;
  962.  
  963. self.menu.curs = self.menu.scrollerpos;
  964.  
  965.  
  966.  
  967. if (!self.menu.closeondeath)
  968.  
  969. {
  970.  
  971. self updateScrollbar();
  972.  
  973. }
  974.  
  975. }
  976.  
  977. else
  978.  
  979. {
  980.  
  981. self iPrintln("^5Only Players With ^4" + verificationToColor(self.menu.status) + " ^5Can Access This Menu!");
  982.  
  983. }
  984.  
  985. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement