Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.38 KB | None | 0 0
  1. #include maps\mp\gametypes\_hud_util;
  2. #include maps\mp\gametypes\_rank;
  3.  
  4. //BO2 GSC Menu Base By Shark
  5.  
  6. init()
  7. {
  8. level thread onplayerconnect();
  9. }
  10.  
  11. onplayerconnect()
  12. {
  13. for(;;)
  14. {
  15. level waittill( "connecting", player );
  16. if(player isHost())
  17. player.status = "Host";
  18. else
  19. player.status = "Unverified";
  20.  
  21. player thread onplayerspawned();
  22. }
  23. }
  24.  
  25. onplayerspawned()
  26. {
  27. self endon( "disconnect" );
  28. level endon( "game_ended" );
  29.  
  30. self.MenuInit = false;
  31.  
  32. for(;;)
  33. {
  34. self waittill( "spawned_player" );
  35. self welcomeMessage();
  36. if( self.status == "Host" || self.status == "CoHost" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified")
  37. {
  38. if (!self.MenuInit)
  39. {
  40. self.MenuInit = true;
  41. self thread MenuInit();
  42. self thread closeMenuOnDeath();
  43. }
  44. }
  45. }
  46. }
  47.  
  48. drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
  49. {
  50. hud = self createFontString(font, fontScale);
  51. hud setText(text);
  52. hud.x = x;
  53. hud.y = y;
  54. hud.color = color;
  55. hud.alpha = alpha;
  56. hud.glowColor = glowColor;
  57. hud.glowAlpha = glowAlpha;
  58. hud.sort = sort;
  59. hud.alpha = alpha;
  60. return hud;
  61. }
  62.  
  63. drawShader(shader, x, y, width, height, color, alpha, sort)
  64. {
  65. hud = newClientHudElem(self);
  66. hud.elemtype = "icon";
  67. hud.color = color;
  68. hud.alpha = alpha;
  69. hud.sort = sort;
  70. hud.children = [];
  71. hud setParent(level.uiParent);
  72. hud setShader(shader, width, height);
  73. hud.x = x;
  74. hud.y = y;
  75. return hud;
  76. }
  77.  
  78. verificationToNum(status)
  79. {
  80. if (status == "Host")
  81. return 5;
  82. if (status == "CoHost")
  83. return 4;
  84. if (status == "Admin")
  85. return 3;
  86. if (status == "VIP")
  87. return 2;
  88. if (status == "Verified")
  89. return 1;
  90. else
  91. return 0;
  92. }
  93.  
  94. verificationToColor(status)
  95. {
  96. if (status == "Host")
  97. return "^2Host";
  98. if (status == "CoHost")
  99. return "^5CoHost";
  100. if (status == "Admin")
  101. return "^1Admin";
  102. if (status == "VIP")
  103. return "^4VIP";
  104. if (status == "Verified")
  105. return "^3Verified";
  106. else
  107. return "^7Unverified";
  108. }
  109.  
  110. changeVerificationMenu(player, verlevel)
  111. {
  112. if( player.status != verlevel)
  113. {
  114. player.status = verlevel;
  115.  
  116. self.menu.title destroy();
  117. self.menu.title = drawText("[" + verificationToColor(player.status) + "^7] " + player.name, "objective", 2, 280, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
  118. self.menu.title FadeOverTime(0.3);
  119. self.menu.title.alpha = 1;
  120.  
  121. if(player.status == "Unverified")
  122. self thread destroyMenu(player);
  123.  
  124. player suicide();
  125. self iPrintln("Set Access Level For " + player.name + " To " + verificationToColor(verlevel));
  126. player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
  127. }
  128. else
  129. {
  130. self iPrintln("Access Level For " + player.name + " Is Already Set To " + verificationToColor(verlevel));
  131. }
  132. }
  133.  
  134. changeVerification(player, verlevel)
  135. {
  136. player.status = verlevel;
  137. }
  138.  
  139. Iif(bool, rTrue, rFalse)
  140. {
  141. if(bool)
  142. return rTrue;
  143. else
  144. return rFalse;
  145. }
  146.  
  147. welcomeMessage()
  148. {
  149. notifyData = spawnstruct();
  150. notifyData.titleText = "^7Welcome ^5" + self.name + " ^7To ^5Project ^7eXo!"; //Line 1
  151. notifyData.notifyText = "Your Status Is " + verificationToColor(self.status); //Line 2
  152. notifyData.glowColor = (0.3, 0.6, 0.3); //RGB Color array divided by 100
  153. notifyData.duration = 5; //Change Duration
  154. notifyData.font = "objective"; //font
  155. notifyData.hideWhenInMenu = false;
  156. self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
  157. }
  158.  
  159. CreateMenu()
  160. {
  161. self add_menu("Project eXo", undefined, "Unverified");
  162. self add_option("Main Menu", "Main Modifications", ::submenu, "SubMenu1", "Sub Menu 1");
  163. self add_option("Main Menu", "Sub Menu 2", ::submenu, "SubMenu2", "Sub Menu 2");
  164. self add_option("Main Menu", "Sub Menu 3", ::submenu, "SubMenu3", "Sub Menu 3");
  165. self add_option("Main Menu", "Players", ::submenu, "PlayersMenu", "Players");
  166.  
  167. self add_menu("SubMenu1", "Main Menu", "Admin");
  168. self add_option("SubMenu1", "Option 1");
  169. self add_option("SubMenu1", "Option 2");
  170. self add_option("SubMenu1", "Option 3");
  171.  
  172. self add_menu("SubMenu2", "Main Menu", "VIP");
  173. self add_option("SubMenu2", "Option 1");
  174. self add_option("SubMenu2", "Option 2");
  175. self add_option("SubMenu2", "Option 3");
  176.  
  177. self add_menu("SubMenu3", "Main Menu", "Verified");
  178. self add_option("SubMenu3", "Option 1");
  179. self add_option("SubMenu3", "Option 2");
  180. self add_option("SubMenu3", "Option 3");
  181.  
  182. self add_menu("PlayersMenu", "Main Menu", "CoHost");
  183. for (i = 0; i < 12; i++)
  184. { self add_menu("pOpt " + i, "PlayersMenu", "CoHost"); }
  185. }
  186.  
  187. updatePlayersMenu()
  188. {
  189. self.menu.menucount["PlayersMenu"] = 0;
  190. for (i = 0; i < 12; i++)
  191. {
  192. player = level.players[i];
  193. name = player.name;
  194.  
  195. playersizefixed = level.players.size - 1;
  196. if(self.menu.curs["PlayersMenu"] > playersizefixed)
  197. {
  198. self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
  199. self.menu.curs["PlayersMenu"] = playersizefixed;
  200. }
  201.  
  202. self add_option("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + player.name, ::submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + player.name);
  203.  
  204. self add_menu_alt("pOpt " + i, "PlayersMenu");
  205. self add_option("pOpt " + i, "Give CoHost", ::changeVerificationMenu, player, "CoHost");
  206. self add_option("pOpt " + i, "Give Admin", ::changeVerificationMenu, player, "Admin");
  207. self add_option("pOpt " + i, "Give VIP", ::changeVerificationMenu, player, "VIP");
  208. self add_option("pOpt " + i, "Verify", ::changeVerificationMenu, player, "Verified");
  209. self add_option("pOpt " + i, "Unverify", ::changeVerificationMenu, player, "Unverified");
  210. }
  211. }
  212.  
  213. add_menu_alt(Menu, prevmenu)
  214. {
  215. self.menu.getmenu[Menu] = Menu;
  216. self.menu.menucount[Menu] = 0;
  217. self.menu.previousmenu[Menu] = prevmenu;
  218. }
  219.  
  220. add_menu(Menu, prevmenu, status)
  221. {
  222. self.menu.status[Menu] = status;
  223. self.menu.getmenu[Menu] = Menu;
  224. self.menu.scrollerpos[Menu] = 0;
  225. self.menu.curs[Menu] = 0;
  226. self.menu.menucount[Menu] = 0;
  227. self.menu.previousmenu[Menu] = prevmenu;
  228. }
  229.  
  230. add_option(Menu, Text, Func, arg1, arg2)
  231. {
  232. Menu = self.menu.getmenu[Menu];
  233. Num = self.menu.menucount[Menu];
  234. self.menu.menuopt[Menu][Num] = Text;
  235. self.menu.menufunc[Menu][Num] = Func;
  236. self.menu.menuinput[Menu][Num] = arg1;
  237. self.menu.menuinput1[Menu][Num] = arg2;
  238. self.menu.menucount[Menu] += 1;
  239. }
  240.  
  241. openMenu()
  242. {
  243. self freezeControls( false );
  244. self StoreText("Main Menu", "Main Menu");
  245.  
  246. self.menu.background FadeOverTime(0.3);
  247. self.menu.background.alpha = 0.65;
  248.  
  249. self.menu.line MoveOverTime(0.15);
  250. self.menu.line.y = -50;
  251.  
  252. self.menu.scroller MoveOverTime(0.15);
  253. self.menu.scroller.y = self.menu.opt[self.menu.curs[self.menu.currentmenu]].y+1;
  254. self.menu.open = true;
  255. }
  256.  
  257. closeMenu()
  258. {
  259. for(i = 0; i < self.menu.opt.size; i++)
  260. {
  261. self.menu.opt[i] FadeOverTime(0.3);
  262. self.menu.opt[i].alpha = 0;
  263. }
  264.  
  265. self.menu.background FadeOverTime(0.3);
  266. self.menu.background.alpha = 0;
  267.  
  268. self.menu.title FadeOverTime(0.3);
  269. self.menu.title.alpha = 0;
  270.  
  271. self.menu.line MoveOverTime(0.15);
  272. self.menu.line.y = -550;
  273.  
  274. self.menu.scroller MoveOverTime(0.15);
  275. self.menu.scroller.y = -500;
  276. self.menu.open = false;
  277. }
  278.  
  279. destroyMenu(player)
  280. {
  281. player.MenuInit = false;
  282. closeMenu();
  283.  
  284. wait 0.3;
  285.  
  286. for(i=0; i < self.menu.menuopt[player.menu.currentmenu].size; i++)
  287. { player.menu.opt[i] destroy(); }
  288.  
  289. player.menu.background destroy();
  290. player.menu.scroller destroy();
  291. player.menu.line destroy();
  292. player.menu.title destroy();
  293. player notify( "destroyMenu" );
  294. }
  295.  
  296. closeMenuOnDeath()
  297. {
  298. self endon("disconnect");
  299. self endon( "destroyMenu" );
  300. level endon("game_ended");
  301. for (;;)
  302. {
  303. self waittill("death");
  304. self.menu.closeondeath = true;
  305. self submenu("Main Menu", "Main Menu");
  306. closeMenu();
  307. self.menu.closeondeath = false;
  308. }
  309. }
  310.  
  311. StoreShaders()
  312. {
  313. self.menu.background = self drawShader("white", 320, -50, 300, 500, (0, 0, 0), 0, 0);
  314. self.menu.scroller = self drawShader("white", 320, -500, 300, 17, (0, 0, 0), 255, 1);
  315. self.menu.line = self drawShader("white", 170, -550, 2, 500, (0, 0, 0), 255, 2);
  316. }
  317.  
  318. StoreText(menu, title)
  319. {
  320. self.menu.currentmenu = menu;
  321. self.menu.title destroy();
  322. self.menu.title = drawText(title, "objective", 2, 280, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
  323. self.menu.title FadeOverTime(0.3);
  324. self.menu.title.alpha = 1;
  325.  
  326. for(i=0; i < self.menu.menuopt[menu].size; i++)
  327. {
  328. self.menu.opt[i] destroy();
  329. self.menu.opt[i] = drawText(self.menu.menuopt[menu][i], "objective", 1.6, 280, 68 + (i*20), (1, 1, 1), 0, (0, 0, 0), 0, 4);
  330. self.menu.opt[i] FadeOverTime(0.3);
  331. self.menu.opt[i].alpha = 1;
  332. }
  333. }
  334.  
  335. MenuInit()
  336. {
  337. self endon("disconnect");
  338. self endon( "destroyMenu" );
  339. level endon("game_ended");
  340.  
  341. self.menu = spawnstruct();
  342. self.toggles = spawnstruct();
  343.  
  344. self.menu.open = false;
  345.  
  346. self StoreShaders();
  347. self CreateMenu();
  348.  
  349. for(;;)
  350. {
  351. if(self MeleeButtonPressed() && self adsbuttonpressed() && !self.menu.open) // Open.
  352. {
  353. openMenu();
  354. }
  355. if(self.menu.open)
  356. {
  357. if(self usebuttonpressed())
  358. {
  359. if(isDefined(self.menu.previousmenu[self.menu.currentmenu]))
  360. {
  361. self submenu(self.menu.previousmenu[self.menu.currentmenu]);
  362. }
  363. else
  364. {
  365. closeMenu();
  366. }
  367. wait 0.2;
  368. }
  369. if(self actionslotonebuttonpressed() || self actionslottwobuttonpressed())
  370. {
  371. self.menu.curs[self.menu.currentmenu] += (Iif(self actionslottwobuttonpressed(), 1, -1));
  372. self.menu.curs[self.menu.currentmenu] = (Iif(self.menu.curs[self.menu.currentmenu] < 0, self.menu.menuopt[self.menu.currentmenu].size-1, Iif(self.menu.curs[self.menu.currentmenu] > self.menu.menuopt[self.menu.currentmenu].size-1, 0, self.menu.curs[self.menu.currentmenu])));
  373.  
  374. self.menu.scroller MoveOverTime(0.15);
  375. self.menu.scroller.y = self.menu.opt[self.menu.curs[self.menu.currentmenu]].y+1;
  376. }
  377. if(self jumpbuttonpressed())
  378. {
  379. self thread [[self.menu.menufunc[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]]]](self.menu.menuinput[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]], self.menu.menuinput1[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]]);
  380. wait 0.2;
  381. }
  382. }
  383. wait 0.05;
  384. }
  385. }
  386.  
  387. submenu(input, title)
  388. {
  389. if (verificationToNum(self.status) >= verificationToNum(self.menu.status[input]))
  390. {
  391. for(i=0; i < self.menu.opt.size; i++)
  392. { self.menu.opt[i] destroy(); }
  393.  
  394. if (input == "Main Menu")
  395. self thread StoreText(input, "Main Menu");
  396. else if (input == "PlayersMenu")
  397. {
  398. self updatePlayersMenu();
  399. self thread StoreText(input, "Players");
  400. }
  401. else
  402. self thread StoreText(input, title);
  403.  
  404. self.CurMenu = input;
  405.  
  406. self.menu.scrollerpos[self.CurMenu] = self.menu.curs[self.CurMenu];
  407. self.menu.curs[input] = self.menu.scrollerpos[input];
  408.  
  409. if (!self.menu.closeondeath)
  410. {
  411. self.menu.scroller MoveOverTime(0.15);
  412. self.menu.scroller.y = self.menu.opt[self.menu.curs[self.CurMenu]].y+1;
  413. }
  414. }
  415. else
  416. {
  417. self iPrintln("Only Players With ^5" + verificationToColor(self.menu.status[input]) + " ^7Can Access This Menu!");
  418. }
  419. }
  420.  
  421. //Functions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement