Advertisement
Liamm

Nay's Menu Base Ported

Sep 23rd, 2016
1,148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.05 KB | None | 0 0
  1.  
  2. #include maps\mp\_utility;
  3. #include common_scripts\utility;
  4. #include maps\mp\gametypes\_hud_util;
  5. #include maps\mp\gametypes\_hud_message;
  6.  
  7. init()
  8. {
  9.     level thread onPlayerConnect();
  10. }
  11.  
  12. onPlayerConnect()
  13. {
  14.     for(;;)
  15.     {
  16.         level waittill("connected", player);
  17.         player thread onPlayerSpawned();
  18.     }
  19. }
  20.  
  21. onPlayerSpawned()
  22. {
  23.     self endon("disconnect");
  24.     level endon("game_ended");
  25.     for(;;)
  26.     {
  27.         self waittill("spawned_player");
  28.         self thread nay1995s_Menu();
  29.     }
  30. }
  31.  
  32. CreateMenu_Text( menu )
  33. {
  34.     self.Menu["Current"] = menu;
  35.     self.Menu["Cursor"] = 0;
  36.     Text = "";
  37.     string = "";
  38.     Descs = "";
  39.    
  40.     self.Menu["Text"] = self CreateText("console", 1.8, "LEFT","LEFT", 550, -175,1,1000, "" );
  41.     self.Menu["Top"] = self CreateText("console", 2.5, "LEFT","LEFT", 550, -210,1,1000, "" );
  42.     self.Menu["Description"] = self CreateText("console", 1.8, "CENTER","CENTER", -100, -110,1,1000, "Information" );
  43.  
  44. // The below lines are needed, without them the player menu wont run correctly.
  45. // Player Menu (No need to touch this)
  46. for(i=0;i < level.players.size;i++)
  47. {
  48. player=level.players[i];
  49. addItem(2,i,player.name, ::Sub, 3, "Player");
  50. self.Menu["Title"][2] = "Player Menu";
  51. }
  52. // End Of Player Menu
  53.    
  54.     if(self.Menu["Current"] == 2)
  55.     {
  56.         for(i=0;i < level.players.size;i++)
  57.         {
  58.             player=level.players[i];
  59.             Text += "[^1" +player.status + "^7] " + player.name + "\n";
  60.             //self.MenuFunc[2][i]=::Sub;
  61.             //self.MenuInput[2][i]=3;
  62.         }
  63.     }
  64.     else for( i = 0; i < self.Menu[MenuReturn()].size; i++ )
  65.     {
  66.     Text += self.Menu[MenuReturn()][i]+ "\n";
  67.     self.Menu["Text"] setText( Text );
  68.     }
  69.    
  70.     self endon("disconnect");
  71.     self endon("ClosedM");
  72.  
  73.     for (i = 0; i < self.Menu["Title"][MenuReturn()].size; i ++)
  74.     {
  75.     string += self.Menu["Title"][MenuReturn()][i];
  76.     self.Menu["Top"] setText( string );
  77.     }
  78.    
  79.     self.Menu["Information"][0] = self.Menu["Desc"][MenuReturn()][self.Menu["Cursor"]];
  80.     for(i=0;i<self.Menu["Information"].size;i++)
  81.     {
  82.     self.Menu["Information"][i] = self CreateText("console",1.8,"LEFT","LEFT",175,-90,1,1000,self.Menu["Desc"][i]);
  83.     }
  84.  
  85.     wait 0.05;
  86. }
  87. nay1995s_Menu()
  88. {
  89. self endon("StopModMenu");
  90. self endon("disconnect");
  91. self thread CreateMenu_ini();
  92. self thread CreateMenu_Hud();
  93.  
  94. for(;;)
  95. {
  96. if(self.Menu["Current"] == 2)self.PlayerCurs=self.Menu["Cursor"];
  97.     if(self FragButtonPressed() && self.menuOpen == false)
  98.     {
  99.     self freezecontrols(true);
  100.     self.menuOpen = true;
  101.     self.Menu["Cursor"] = 0;
  102.     self thread CreateMenu_Text(0); // loads main menu
  103.     self.Menu["ScrollBar"].alpha = 1;
  104.     self.Menu["BackGround"].alpha = 0.5;
  105.     self.Menu["InfoBox"].alpha = 0.5;
  106.     self.Menu["InfoBoxLine"].alpha = 1;
  107.     self.Menu["ScrollStar"].alpha = 1;
  108.     self.Menu["ScrollBar"].y = -175;
  109.     self.Menu["ScrollStar"].y = -175;
  110.     self iPrintln("Subscribe to: www.YouTube.com/nay1995x \n He is the creator of this menu!"); // dont remove please.
  111.     }
  112.     if(self UseButtonPressed() && self.menuOpen == true && self.stopSQ == false)
  113.     {
  114.     self thread [[self.MenuFunc[self.Menu["Current"]][self.Menu["Cursor"]]]](self.MenuInput[self.Menu["Current"]][self.Menu["Cursor"]]);
  115.     }
  116.     if(self AttackButtonPressed() && self.menuOpen == true && self.stopR1 == false)
  117.     {
  118.     self.Menu["Cursor"]++;
  119.     if(self.Menu["Cursor"]>self.Menu[MenuReturn()].size-1) self.Menu["Cursor"]=0;
  120.     self.Menu["ScrollBar"] MoveElem("y", .3, (self.Menu["Cursor"]*22)-175);
  121.     self.Menu["ScrollStar"] MoveElem("y", .3, (self.Menu["Cursor"]*22)-175);
  122.     }
  123.     if(self AdsButtonPressed() && self.menuOpen == true && self.stopL1 == false)
  124.     {
  125.     self.Menu["Cursor"]--;
  126.     if(self.Menu["Cursor"]<0) self.Menu["Cursor"]=self.Menu[MenuReturn()].size-1;
  127.     self.Menu["ScrollBar"] MoveElem("y", .3, (self.Menu["Cursor"]*22)-175);
  128.     self.Menu["ScrollStar"] MoveElem("y", .3, (self.Menu["Cursor"]*22)-175);
  129.     }
  130.     if(self MeleeButtonPressed() && self.menuOpen == true && self.stopR3 == false)
  131.     {
  132.     if(self.Menu["Current"] == 0)
  133.     {
  134.     wait .05;
  135.     self.Menu["Cursor"] = 0;
  136.     self.menuOpen = false;
  137.     self notify("ClosedM");
  138.     self.Menu["ScrollBar"].alpha = 0;
  139.     self.Menu["BackGround"].alpha = 0;
  140.     self.Menu["InfoBox"].alpha = 0;
  141.     self.Menu["InfoBoxLine"].alpha = 0;
  142.     self.Menu["ScrollStar"].alpha = 0;
  143.     self freezecontrols(false);
  144.     }
  145.     else if(isDefined(self.Menu["Parent"][MenuReturn()])) self thread Sub(self.Menu["Parent"][MenuReturn()]);
  146.     else self thread Sub(0); // Sub default menu if parent isnt defined.
  147.     }
  148.     else if(self.menuOpen == false)
  149.     {
  150.     }
  151.     // The below line shouldnt overflow the menu but 'if in doubt take it out' see below line for details :)
  152.     self.Menu["Information"][0] setText(self.Menu["Desc"][MenuReturn()][self.Menu["Cursor"]]); // This needs to be looped as the cursor is always changing, if you fear this may overflow your menu just remove this line (This will remove the menu information)
  153.     if(self.Menu["Current"] == 2)
  154.     {
  155.     PC = level.players[self.PlayerCurs];
  156.     if(PC.status == "Host") self.Menu["ScrollStar"].color = (1,0,0);
  157.     else if(PC.status == "Verified") self.Menu["ScrollStar"].color = (0,0,1);
  158.     else if(PC.status == "VIP") self.Menu["ScrollStar"].color = (0,1,0);
  159.     else if(PC.status == "Admin") self.Menu["ScrollStar"].color = (1,0,1);
  160.     else if(PC.status == "None") self.Menu["ScrollStar"].color = (1,1,1);
  161.     else self iPrintln("Error: Status isn't defined!");
  162.     }
  163.     else self.Menu["ScrollStar"].color = (1,1,1);
  164.     wait .25;
  165. }
  166. }
  167. CreateMenu_Hud()
  168. {
  169. self.Menu["ScrollBar"] = createRectangle("RIGHT", "RIGHT", 0, -175, 220, 20, (0.6,0,0.6), "progress_bar_bg", 2, 0);
  170. self.Menu["ScrollStar"] = createRectangle("RIGHT", "RIGHT", -220, -175, 15, 15, (1,1,1), "ui_host", 10, 0);
  171. self.Menu["ScrollStar"].color = (1,1,1);
  172. self.Menu["BackGround"] = createRectangle("RIGHT", "RIGHT", 0, 0, 220, 650, (0,0,0), "progress_bar_bg", 1, 0);
  173. self.Menu["InfoBox"] = createRectangle("RIGHT", "RIGHT", -250, -50, 300, 200, (0,0,0), "progress_bar_bg", 1, 0);
  174. self.Menu["InfoBoxLine"] = createRectangle("RIGHT", "RIGHT", -250, -110, 300, 20, (0.6,0,0.6), "progress_bar_bg", 2, 0);
  175. }
  176. Sub(Menu)
  177. {
  178.     self notify("ClosedM");
  179.     self thread CreateMenu_Text(Menu);
  180.     self.Menu["Cursor"] = 0;
  181.     self.Menu["ScrollBar"] MoveElem("y", .3, (self.Menu["Cursor"]*22)-175);
  182.     self.Menu["ScrollStar"] MoveElem("y", .3, (self.Menu["Cursor"]*22)-175);
  183. }
  184. MenuReturn()
  185. {
  186.     return self.Menu["Current"];
  187. }
  188. CursReturn()
  189. {
  190.     return self.Menu["Cursor"];
  191. }
  192. CreateMenu_ini()
  193. {
  194. self.Menu["Title"][0] = "Main";
  195. addItem(0,0,"Account Menu", ::Sub, 5, "Edit, Prestige, Rank, Leaderboard etc.");
  196. addItem(0,1,"Test Clients", ::Test, "", "Menu Option");
  197. addItem(0,2,"Menu Option 2", ::Test, "2", "Menu Option");
  198. addItem(0,3,"Main Option 3", ::Test, "3", "Menu Option");
  199. addItem(0,4,"Main Option 4", ::Test, "4", "Menu Option");
  200. addItem(0,5,"Sub Menu 1", ::Sub, 1, "Sub Menu");
  201. addItem(0,6,"Sub Menu 2", ::Sub, 4, "Sub Menu");
  202. addItem(0,7,"Player Menu", ::Sub, 2, "The player menu where you can verify\nplayers, kill them, kick them etc.");
  203.  
  204. addParent("Sub Menu 1", 1, 0);
  205. addItem(1,0,"Sub Option 0", ::Test, "0", "Sub Option");
  206. addItem(1,1,"Sub Option 1", ::Test, "1", "Sub Option");
  207. addItem(1,2,"Sub Option 2", ::Test, "2", "Sub Option");
  208. addItem(1,3,"Sub Option 3", ::Test, "3", "Sub Option");
  209.  
  210. addParent("Do What To Player?", 3, 2);
  211. addItem(3,0,"Kick", ::Test, "", "Kick the player and get rid of them from\nthe game.");
  212. addItem(3,1,"Kill", ::Kill, "", "Kill the player.");
  213. addItem(3,2,"Remove Access", ::verStatus,"None", "Remove the players access, remove the\nmenu from the player and remove all\nfeatures.");
  214. addItem(3,3,"Verify", ::verStatus,"Verified", "Verify the player and give them access to\nlimited menus and very limited features.");
  215. addItem(3,4,"VIP", ::verStatus,"VIP", "VIP the player and give them access to\nmultiple menus and quite alot of features.");
  216. addItem(3,5,"Administrator", ::verStatus,"Admin", "Administrator the player and give them\naccess to most menus and most features.");
  217.  
  218. addParent("Sub Menu 2", 4, 0);
  219. addItem(4,0,"Sub Option 0", ::Test, "0", "Sub Option");
  220. addItem(4,1,"Sub Option 1", ::Test, "1", "Sub Option");
  221. addItem(4,2,"Sub Option 2", ::Test, "2", "Sub Option");
  222. addItem(4,3,"Sub Option 3", ::Test, "3", "Sub Option");
  223.  
  224. addParent("Account Menu", 5, 0);
  225. addItem(5,0,"Prestige", ::Blank, "", "Edit your prestige to whatever you want.");
  226. addItem(5,1,"Rank", ::Blank, "", "Edit your rank to whatever you want.");
  227.  
  228. }
  229. addParent(Text, Menu, Parent)
  230. {
  231. self.Menu["Parent"][Menu] = Parent;
  232. self.Menu["Title"][Menu] = Text;
  233. }
  234. addItem(Menu, Num, Text, Func, Input, Desc)
  235. {
  236. self.Menu[Menu][Num] = Text;
  237. self.MenuFunc[Menu][Num] = Func;
  238. self.Menu["Desc"][Menu][Num] = Desc;
  239. if(IsDefined(Input)) self.MenuInput[Menu][Num] = Input;
  240. }
  241. Blank()
  242. {
  243. }
  244. Test(n)
  245. {
  246. self iPrintln(n);
  247. }
  248. MoveElem(Axis, Time, Input)
  249. {
  250.     self MoveOverTime(Time);
  251.     if(Axis == "x") self.x = Input;
  252.     else self.y = Input;
  253. }
  254. CreateText( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text )
  255. {
  256.     Hud = CreateFontString( Font, Fontscale );
  257.     Hud SetPoint( Align, Relative, X, Y );
  258.     Hud.alpha = Alpha;
  259.     Hud.sort = Sort;
  260.     Hud SetText( Text );
  261.     thread DoD(Hud);
  262.     return Hud;
  263. }
  264. DoD(H)
  265. {
  266. self waittill("ClosedM");
  267. H destroy();
  268. }
  269. createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
  270. {
  271.     boxElem = newClientHudElem(self);
  272.     boxElem.elemType = "bar";
  273.     if(!level.splitScreen)
  274.     {
  275.         boxElem.x = -2;
  276.         boxElem.y = -2;
  277.     }
  278.     boxElem.width = width;
  279.     boxElem.height = height;
  280.     boxElem.align = align;
  281.     boxElem.relative = relative;
  282.     boxElem.xOffset = 0;
  283.     boxElem.yOffset = 0;
  284.     boxElem.children = [];
  285.     boxElem.sort = sort;
  286.     boxElem.color = color;
  287.     boxElem.alpha = alpha;
  288.     boxElem.shader = shader;
  289.     boxElem setParent(level.uiParent);
  290.     boxElem setShader(shader, width, height);
  291.     boxElem.hidden = false;
  292.     boxElem setPoint(align, relative, x, y);
  293.     return boxElem;
  294. }
  295. createValue( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Value )
  296. {
  297.     HudValue = createFontString( Font, Fontscale);
  298.     HudValue setPoint( Align, Relative, X, Y );
  299.     HudValue.alpha = Alpha;
  300.     HudValue.sort = Sort;
  301.     HudValue setValue( Value );
  302.     self thread destroyElemOnDeath( HudValue );
  303.     return HudValue;
  304. }
  305. createProBar( Color, Width, Height, Align, Relative, X, Y )
  306. {
  307.     Bar = createBar( Color, Width, Height);
  308.     Bar setPoint( Align, Relative, X, Y );
  309.     self thread destroyElemOnDeath( Bar );
  310.     return Bar;
  311. }
  312. destroyElemOnDeath( elem )
  313. {
  314.     self waittill("death");
  315.     if(isDefined(elem.bar))
  316.         elem destroyElem();
  317.     else
  318.         elem destroy();
  319. }
  320. verStatus(status)
  321. {
  322. Pcurs = level.players[self.PlayerCurs];
  323.     if(Pcurs isHost())
  324.     {
  325.     self iPrintln("Error: Hosts Access Cannot Be Changed!");
  326.     }
  327.     else if(Pcurs.status == status)
  328.     {
  329.     self iPrintln("Error: "+Pcurs.name+" is already "+Pcurs.status);
  330.     }
  331.     else if(status == "None" || status == "Verified" || status == "VIP" || status == "Admin")
  332.     {
  333.     Pcurs.status = status;
  334.     Pcurs suicide();
  335.     Pcurs thread nay1995s_Menu();
  336.     self iPrintln(Pcurs.name+" is now "+Pcurs.status);
  337.     }
  338.     else self iPrintln("Error: Status set hasn't been defined!");
  339. }
  340. Kill()
  341. {
  342. level.players[self.PlayerCurs] suicide();
  343. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement