Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.45 KB | None | 0 0
  1. #include maps/mp/_utility;
  2. #include common_scripts/utility;
  3. #include maps/mp/gametypes/_hud_util;
  4. #include maps/mp/_utility;
  5.  
  6. /* Black Ops 2 - Menu Base ( Multiplayers And Zombie )
  7. Made By ZeiiKeN & Fanatik -- Base Credits
  8. */
  9.  
  10. init( )
  11. {
  12. level.clientid = 0;
  13. level thread onplayerconnect( );
  14. }
  15. onplayerconnect( )
  16. {
  17. for(;;)
  18. {
  19. level waittill( "connecting", player );
  20. player thread onplayerspawned( );
  21. player.clientid = level.clientid;
  22. level.clientid++;
  23. player.Verified = false;
  24. player.VIP = false;
  25. player.Admin = false;
  26. player.CoHost = false;
  27. player.MyAccess = "";
  28. }
  29. }
  30. onplayerspawned( )
  31. {
  32. self endon( "disconnect" );
  33. level endon( "game_ended" );
  34. for(;;)
  35. {
  36. self waittill( "spawned_player" );
  37. if(self isHost())
  38. {
  39. self freezecontrols(false);
  40. self.Verified = true;
  41. self.VIP = true;
  42. self.Admin = true;
  43. self.CoHost = true;
  44. self.MyAccess = "^1Host";
  45. self thread BuildMenu();
  46. }
  47. else if ( self.CoHost == true)
  48. {
  49. self.Verified = true;
  50. self.VIP = true;
  51. self.Admin = true;
  52. self.CoHost = true;
  53. self.MyAccess = "^5Co-Host";
  54. self freezecontrols(false);
  55. self thread BuildMenu();
  56. }
  57. else if ( self.Admin == true)
  58. {
  59. self.Verified = true;
  60. self.VIP = true;
  61. self.Admin = true;
  62. self.MyAccess = "^1Admin";
  63. self freezecontrols(false);
  64. self thread BuildMenu();
  65. }
  66. else if ( self.VIP == true)
  67. {
  68. self.Verified = true;
  69. self.VIP = true;
  70. self.MyAccess = "^3VIP";
  71. self freezecontrols(false);
  72. self thread BuildMenu();
  73. }
  74. else if ( self.Verified == true)
  75. {
  76. self.Verified = true;
  77. self.MyAccess = "^1Verified";
  78. self freezecontrols(false);
  79. self thread BuildMenu();
  80. }
  81. else if ( self.Verified == false)
  82. {
  83. self.MyAccess = "";
  84. }
  85. }
  86. }
  87.  
  88. BuildMenu()
  89. {
  90. self endon("disconnect");
  91. self endon("death");
  92. self.MenuOpen = false;
  93. self.Menu = spawnstruct();
  94. self InitialisingMenu();
  95. self MenuStructure();
  96. self thread MenuDeath();
  97. while (1)
  98. {
  99. if(self SecondaryOffhandButtonPressed() && self.MenuOpen == false)
  100. {
  101. self MenuOpening();
  102. self LoadMenu("Main Menu");
  103. }
  104. else if (self MeleeButtonPressed() && self.MenuOpen == true)
  105. {
  106. self MenuClosing();
  107. wait 1;
  108. }
  109. else if(self StanceButtonPressed() && self.MenuOpen == true)
  110. {
  111. if(isDefined(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]))
  112. {
  113. self.Menu.System["MenuCurser"] = 0;
  114. self SubMenu(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]);
  115. wait 0.5;
  116. }
  117. }
  118. else if (self AdsButtonPressed() && self.MenuOpen == true)
  119. {
  120. self.Menu.System["MenuCurser"] -= 1;
  121. if (self.Menu.System["MenuCurser"] < 0)
  122. {
  123. self.Menu.System["MenuCurser"] = self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size - 1;
  124. }
  125. self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  126. wait.2;
  127. }
  128. else if (self AttackButtonpressed() && self.MenuOpen == true)
  129. {
  130. self.Menu.System["MenuCurser"] += 1;
  131. if (self.Menu.System["MenuCurser"] >= self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size)
  132. {
  133. self.Menu.System["MenuCurser"] = 0;
  134. }
  135. self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  136. wait.2;
  137. }
  138. else if(self UseButtonPressed() && self.MenuOpen == true)
  139. {
  140. wait 0.2;
  141. if(self.Menu.System["MenuRoot"]=="Clients Menu") self.Menu.System["ClientIndex"]=self.Menu.System["MenuCurser"];
  142. self thread [[self.Menu.System["MenuFunction"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]]](self.Menu.System["MenuInput"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]);
  143. wait 0.5;
  144. }
  145. wait 0.05;
  146. }
  147. }
  148.  
  149. MenuStructure()
  150. {
  151. if (self.Verified == true)
  152. {
  153. self MainMenu("Main Menu", undefined);
  154. self MenuOption("Main Menu", 0, "Main Modifications", ::SubMenu, "Sub Menu 1");
  155. self MenuOption("Main Menu", 1, "Fun Modifications", ::SubMenu, "Sub Menu 2");
  156. self MenuOption("Main Menu", 2, "Lobby Modifications", ::SubMenu, "Sub Menu 3");
  157. self MenuOption("Main Menu", 3, "Client Modifications", ::SubMenu, "Sub Menu 4");
  158. }
  159. if (self.VIP == true)
  160. {
  161. self MenuOption("Main Menu", 4, "Sub Menu 5 (VIP)", ::SubMenu, "Sub Menu 5 (VIP)");
  162. }
  163. if (self.Admin == true)
  164. {
  165. self MenuOption("Main Menu", 5, "Sub Menu 6 (Admin)", ::SubMenu, "Sub Menu 6 (Admin)");
  166. }
  167. if (self.CoHost == true)
  168. {
  169. self MenuOption("Main Menu", 6, "Sub Menu 7 (Host)", ::SubMenu, "Sub Menu 7 (Host)");
  170. self MenuOption("Main Menu", 7, "Clients Menu", ::SubMenu, "Clients Menu");
  171. self MenuOption("Main Menu", 8, "All Clients", ::SubMenu, "All Clients");
  172. }
  173.  
  174. self MainMenu("Sub Menu 1", "Main Menu");
  175. self MenuOption("Sub Menu 1", 0, "Fonctions Here", ::Test);
  176. self MenuOption("Sub Menu 1", 1, "Fonctions Here", ::Test);
  177. self MenuOption("Sub Menu 1", 2, "Fonctions Here", ::Test);
  178. self MenuOption("Sub Menu 1", 3, "Fonctions Here", ::Test);
  179. self MenuOption("Sub Menu 1", 4, "Fonctions Here", ::Test);
  180. self MenuOption("Sub Menu 1", 5, "Fonctions Here", ::Test);
  181.  
  182. self MainMenu("Sub Menu 2", "Main Menu");
  183. self MenuOption("Sub Menu 2", 0, "Fonctions Here", ::Test);
  184. self MenuOption("Sub Menu 2", 1, "Fonctions Here", ::Test);
  185. self MenuOption("Sub Menu 2", 2, "Fonctions Here", ::Test);
  186. self MenuOption("Sub Menu 2", 3, "Fonctions Here", ::Test);
  187. self MenuOption("Sub Menu 2", 4, "Fonctions Here", ::Test);
  188. self MenuOption("Sub Menu 2", 5, "Fonctions Here", ::Test);
  189.  
  190. self MainMenu("Sub Menu 3", "Main Menu");
  191. self MenuOption("Sub Menu 3", 0, "Fonctions Here", ::Test);
  192. self MenuOption("Sub Menu 3", 1, "Fonctions Here", ::Test);
  193. self MenuOption("Sub Menu 3", 2, "Fonctions Here", ::Test);
  194. self MenuOption("Sub Menu 3", 3, "Fonctions Here", ::Test);
  195. self MenuOption("Sub Menu 3", 4, "Fonctions Here", ::Test);
  196. self MenuOption("Sub Menu 3", 5, "Fonctions Here", ::Test);
  197.  
  198. self MainMenu("Sub Menu 4", "Main Menu");
  199. self MenuOption("Sub Menu 4", 0, "Fonctions Here", ::Test);
  200. self MenuOption("Sub Menu 4", 1, "Fonctions Here", ::Test);
  201. self MenuOption("Sub Menu 4", 2, "Fonctions Here", ::Test);
  202. self MenuOption("Sub Menu 4", 3, "Fonctions Here", ::Test);
  203. self MenuOption("Sub Menu 4", 4, "Fonctions Here", ::Test);
  204. self MenuOption("Sub Menu 4", 5, "Fonctions Here", ::Test);
  205.  
  206. self MainMenu("Sub Menu 5 (VIP)", "Main Menu");
  207. self MenuOption("Sub Menu 5 (VIP)", 0, "Fonctions Here", ::Test);
  208. self MenuOption("Sub Menu 5 (VIP)", 1, "Fonctions Here", ::Test);
  209. self MenuOption("Sub Menu 5 (VIP)", 2, "Fonctions Here", ::Test);
  210. self MenuOption("Sub Menu 5 (VIP)", 3, "Fonctions Here", ::Test);
  211. self MenuOption("Sub Menu 5 (VIP)", 4, "Fonctions Here", ::Test);
  212. self MenuOption("Sub Menu 5 (VIP)", 5, "Fonctions Here", ::Test);
  213.  
  214. self MainMenu("Sub Menu 6 (Admin)", "Main Menu");
  215. self MenuOption("Sub Menu 6 (Admin)", 0, "Fonctions Here", ::Test);
  216. self MenuOption("Sub Menu 6 (Admin)", 1, "Fonctions Here", ::Test);
  217. self MenuOption("Sub Menu 6 (Admin)", 2, "Fonctions Here", ::Test);
  218. self MenuOption("Sub Menu 6 (Admin)", 3, "Fonctions Here", ::Test);
  219. self MenuOption("Sub Menu 6 (Admin)", 4, "Fonctions Here", ::Test);
  220. self MenuOption("Sub Menu 6 (Admin)", 5, "Fonctions Here", ::Test);
  221.  
  222. self MainMenu("Sub Menu 7 (Host)", "Main Menu");
  223. self MenuOption("Sub Menu 7 (Host)", 0, "Fonctions Here", ::Test);
  224. self MenuOption("Sub Menu 7 (Host)", 1, "Fonctions Here", ::Test);
  225. self MenuOption("Sub Menu 7 (Host)", 2, "Fonctions Here", ::Test);
  226. self MenuOption("Sub Menu 7 (Host)", 3, "Fonctions Here", ::Test);
  227. self MenuOption("Sub Menu 7 (Host)", 4, "Fonctions Here", ::Test);
  228. self MenuOption("Sub Menu 7 (Host)", 5, "Fonctions Here", ::Test);
  229.  
  230. self MainMenu("Clients Menu", "Main Menu");
  231. for (p = 0; p < level.players.size; p++) {
  232. player = level.players[p];
  233. self MenuOption("Clients Menu", p, "[" + player.MyAccess + "^7] " + player.name + "", ::SubMenu, "Client Function");
  234. }
  235. self thread MonitorPlayers();
  236.  
  237. self MainMenu("Client Function", "Clients Menu");
  238. self MenuOption("Client Function", 0, "Verify Player", ::Verify);
  239. self MenuOption("Client Function", 1, "VIP Player", ::doVIP);
  240. self MenuOption("Client Function", 2, "Admin Player", ::doAdmin);
  241. self MenuOption("Client Function", 3, "Co-Host Player", ::doCoHost);
  242. self MenuOption("Client Function", 4, "Unverified Player", ::doUnverif);
  243. self MenuOption("Client Function", 5, "Fonctions Here", ::Test);
  244.  
  245. self MainMenu("All Clients", "Main Menu");
  246. self MenuOption("All Clients", 0, "Kill All Players", ::AllPlayersKilled);
  247. self MenuOption("All Clients", 1, "Function Here", ::Test);
  248. self MenuOption("All Clients", 2, "Function Here", ::Test);
  249. self MenuOption("All Clients", 3, "Function Here", ::Test);
  250. self MenuOption("All Clients", 4, "Function Here", ::Test);
  251. }
  252. MonitorPlayers()
  253. {
  254. self endon("disconnect");
  255. for(;;)
  256. {
  257. for(p = 0;p < level.players.size;p++)
  258. {
  259. player = level.players[p];
  260. self.Menu.System["MenuTexte"]["Clients Menu"][p] = "[" + player.MyAccess + "^7] " + player.name;
  261. self.Menu.System["MenuFunction"]["Clients Menu"][p] = ::SubMenu;
  262. self.Menu.System["MenuInput"]["Clients Menu"][p] = "Client Function";
  263. wait .01;
  264. }
  265. wait .5;
  266. }
  267. }
  268. MainMenu(Menu, Return)
  269. {
  270. self.Menu.System["GetMenu"] = Menu;
  271. self.Menu.System["MenuCount"] = 0;
  272. self.Menu.System["MenuPrevious"][Menu] = Return;
  273. }
  274. MenuOption(Menu, Index, Texte, Function, Input)
  275. {
  276. self.Menu.System["MenuTexte"][Menu][Index] = Texte;
  277. self.Menu.System["MenuFunction"][Menu][Index] = Function;
  278. self.Menu.System["MenuInput"][Menu][Index] = Input;
  279. }
  280. SubMenu(input)
  281. {
  282. self.Menu.System["MenuCurser"] = 0;
  283. self.Menu.System["Texte"] fadeovertime(0.05);
  284. self.Menu.System["Texte"].alpha = 0;
  285. self.Menu.System["Texte"] destroy();
  286. self.Menu.System["Title"] destroy();
  287. self thread LoadMenu(input);
  288. if(self.Menu.System["MenuRoot"]=="Client Function")
  289. {
  290. self.Menu.System["Title"] destroy();
  291. player = level.players[self.Menu.System["ClientIndex"]];
  292. self.Menu.System["Title"] = self createFontString("default", 2.0);
  293. self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  294. self.Menu.System["Title"] setText("[" + player.MyAccess + "^7] " + player.name);
  295. self.Menu.System["Title"].sort = 3;
  296. self.Menu.System["Title"].alpha = 1;
  297. }
  298. }
  299. LoadMenu(menu)
  300. {
  301. self.Menu.System["MenuCurser"] = 0;
  302. self.Menu.System["MenuRoot"] = menu;
  303. self.Menu.System["Title"] = self createFontString("default", 2.0);
  304. self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  305. self.Menu.System["Title"] setText(menu);
  306. self.Menu.System["Title"].sort = 3;
  307. self.Menu.System["Title"].alpha = 1;
  308. string = "";
  309. for(i=0;i<self.Menu.System["MenuTexte"][Menu].size;i++) string += self.Menu.System["MenuTexte"][Menu][i] + "\n";
  310. self.Menu.System["Texte"] = self createFontString("default", 1.3);
  311. self.Menu.System["Texte"] setPoint("LEFT", "TOP", 125, 60);
  312. self.Menu.System["Texte"] setText(string);
  313. self.Menu.System["Texte"].sort = 3;
  314. self.Menu.System["Texte"].alpha = 1;
  315. self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  316. }
  317. SetMaterial(align, relative, x, y, width, height, colour, shader, sort, alpha)
  318. {
  319. hud = newClientHudElem(self);
  320. hud.elemtype = "icon";
  321. hud.color = colour;
  322. hud.alpha = alpha;
  323. hud.sort = sort;
  324. hud.children = [];
  325. hud setParent(level.uiParent);
  326. hud setShader(shader, width, height);
  327. hud setPoint(align, relative, x, y);
  328. return hud;
  329. }
  330. MenuDeath()
  331. {
  332. self waittill("death");
  333. self.Menu.Material["Background"] destroy();
  334. self.Menu.Material["Scrollbar"] destroy();
  335. self.Menu.Material["BorderMiddle"] destroy();
  336. self.Menu.Material["BorderLeft"] destroy();
  337. self.Menu.Material["BorderRight"] destroy();
  338. self MenuClosing();
  339. }
  340. InitialisingMenu()
  341. {
  342. self.Menu.Material["Background"] = self SetMaterial("LEFT", "TOP", 120, 0, 240, 1000, (1,1,1), "black", 0, 0);
  343. self.Menu.Material["Scrollbar"] = self SetMaterial("LEFT", "TOP", 120, 60, 240, 15, (0,1,0), "white", 1, 0);
  344. self.Menu.Material["BorderMiddle"] = self SetMaterial("LEFT", "TOP", 120, 50, 240, 1, (0,1,0), "white", 1, 0);
  345. self.Menu.Material["BorderLeft"] = self SetMaterial("LEFT", "TOP", 119, 0, 1, 1000, (0,1,0), "white", 1, 0);
  346. self.Menu.Material["BorderRight"] = self SetMaterial("LEFT", "TOP", 360, 0, 1, 1000, (0,1,0), "white", 1, 0);
  347. }
  348.  
  349. MenuOpening()
  350. {
  351. self freezecontrols(true);
  352. self setclientuivisibilityflag( "hud_visible", 0 );
  353. self enableInvulnerability();
  354. self.MenuOpen = true;
  355. self.Menu.Material["Background"] elemFade(.5, 0.76);
  356. self.Menu.Material["Scrollbar"] elemFade(.5, 0.6);
  357. self.Menu.Material["BorderMiddle"] elemFade(.5, 0.6);
  358. self.Menu.Material["BorderLeft"] elemFade(.5, 0.6);
  359. self.Menu.Material["BorderRight"] elemFade(.5, 0.6);
  360. }
  361.  
  362. MenuClosing()
  363. {
  364. self setclientuivisibilityflag( "hud_visible", 1 );
  365. self.Menu.Material["Background"] elemFade(.5, 0);
  366. self.Menu.Material["Scrollbar"] elemFade(.5, 0);
  367. self.Menu.Material["BorderMiddle"] elemFade(.5, 0);
  368. self.Menu.Material["BorderLeft"] elemFade(.5, 0);
  369. self.Menu.Material["BorderRight"] elemFade(.5, 0);
  370. self freezecontrols(false);
  371. self disableInvulnerability();
  372. self.Menu.System["Title"] destroy();
  373. self.Menu.System["Texte"] destroy();
  374. wait 0.05;
  375. self.MenuOpen = false;
  376. }
  377.  
  378. elemMoveY(time, input)
  379. {
  380. self moveOverTime(time);
  381. self.y = input;
  382. }
  383.  
  384. elemMoveX(time, input)
  385. {
  386. self moveOverTime(time);
  387. self.x = input;
  388. }
  389.  
  390. elemFade(time, alpha)
  391. {
  392. self fadeOverTime(time);
  393. self.alpha = alpha;
  394. }
  395.  
  396. doUnverif()
  397. {
  398. player = level.players[self.Menu.System["ClientIndex"]];
  399. if(player isHost())
  400. {
  401. self iPrintln("You can't Un-Verify the Host!");
  402. }
  403. else
  404. {
  405. player.Verified = false;
  406. player.VIP = false;
  407. player.Admin = false;
  408. player.CoHost = false;
  409. player suicide();
  410. self iPrintln( player.name + " is ^1Unverfied" );
  411. }
  412. }
  413.  
  414. UnverifMe()
  415. {
  416. self.Verified = false;
  417. self.VIP = false;
  418. self.Admin = false;
  419. self.CoHost = false;
  420. self suicide();
  421. }
  422.  
  423. Verify()
  424. {
  425. player = level.players[self.Menu.System["ClientIndex"]];
  426. if(player isHost())
  427. {
  428. self iPrintln("You can't Verify the Host!");
  429. }
  430. else
  431. {
  432. player UnverifMe();
  433. player.Verified = true;
  434. player.VIP = false;
  435. player.Admin = false;
  436. player.CoHost = false;
  437. self iPrintln( player.name + " is ^1Verified" );
  438. }
  439. }
  440. doVIP()
  441. {
  442. player = level.players[self.Menu.System["ClientIndex"]];
  443. if(player isHost())
  444. {
  445. self iPrintln("You can't Verify the Host!");
  446. }
  447. else
  448. {
  449. player UnverifMe();
  450. player.Verified = true;
  451. player.VIP = true;
  452. player.Admin = false;
  453. player.CoHost = false;
  454. self iPrintln( player.name + " is ^3VIP" );
  455. }
  456. }
  457. doAdmin()
  458. {
  459. player = level.players[self.Menu.System["ClientIndex"]];
  460. if(player isHost())
  461. {
  462. self iPrintln("You can't Verify the Host!");
  463. }
  464. else
  465. {
  466. player UnverifMe();
  467. player.Verified = true;
  468. player.VIP = true;
  469. player.Admin = true;
  470. player.CoHost = false;
  471. self iPrintln( player.name + " is ^1Admin" );
  472. }
  473. }
  474. doCoHost()
  475. {
  476. player = level.players[self.Menu.System["ClientIndex"]];
  477. if(player isHost())
  478. {
  479. self iPrintln("You can't Verify the Host!");
  480. }
  481. else
  482. {
  483. if (player.CoHost == false)
  484. {
  485. player UnverifMe();
  486. player.Verified = true;
  487. player.VIP = true;
  488. player.Admin = true;
  489. player.CoHost = true;
  490. self iPrintln( player.name + " is ^5Co-Host" );
  491. }
  492. }
  493. }
  494.  
  495. AllPlayersKilled()
  496. {
  497. foreach(player in level.players)
  498. {
  499. if(player isHost())
  500. {
  501. // For detecting host and exclude switch and cotinue to next client
  502. }
  503. else
  504. {
  505. player suicide();
  506. }
  507. }
  508. self iPrintln("All Players: ^2Killed !");
  509. }
  510.  
  511. Test()
  512. {
  513. self iPrintln("Working...");
  514. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement