Advertisement
SMF

MW2 Ultimate Admin System v3

SMF
Feb 6th, 2011
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.86 KB | None | 0 0
  1. /*
  2.  
  3. ---------- INTRO ----------
  4.  
  5. Thank you for using my kick menu v3! I am glad you
  6. are getting some use out of it. Please be sure to
  7. keep my name inside the kick menu so that I am not
  8. forgotten. I have put alot of work into this menu,
  9. so I hope you enjoy it!
  10.  
  11. Sincerely,
  12. ~ZerO
  13.  
  14.  
  15. ---------- HOW-TO ----------
  16.  
  17.  
  18. if(self isHost() || self.GUID == "" || self.GUID == "")
  19. {
  20. self thread maps\mp\mods\_KickMenu::menuInit();
  21. }
  22.  
  23.  
  24. Add the code above to your onPlayerSpawned(), ABOVE for(;;),
  25. and drop this file in maps\mp\mods. If it is inside of for(;;),
  26. it will continuously load the menu, causing lag and eventual crash.
  27. This menu requires half as much user feedback as my other one did,
  28. so if you cannot get this right, you shouldn't be modding!
  29.  
  30. */
  31.  
  32. #include maps\mp\gametypes\_hud_util;
  33. #include maps\mp\_utility;
  34. #include common_scripts\utility;
  35.  
  36. menuInit()
  37. {
  38. self endon( "disconnect" );
  39.  
  40. iPrintLn("[ADMIN] ^2" + self.name + "^7 has joined the game.");
  41. wait 1;
  42. iniMenuVarsSelf();
  43. iniMenuVars();
  44. level.hardcoreStatus = "^1Off";
  45. level.diehardStatus = "^1Off";
  46. level.megaModeStatus = "^1Off";
  47. level.mapRotation = "^1Off";
  48. self thread menuHowTo2();
  49. for(;;)
  50. {
  51. self waittill( "spawned_player" );
  52. self thread menu();
  53. }
  54.  
  55. for ( i = 0; i < level.players.size; i++ )
  56. {
  57. level.players[i].isFrozen = 0;
  58. level.players[i].isBlind = 0;
  59. }
  60. }
  61.  
  62. menu(){
  63. self endon ( "disconnect" );
  64. self endon ( "death" );
  65.  
  66. self notifyOnPlayerCommand( "open_menu", "+actionslot 2" );
  67. for(;;){
  68. self waittill( "open_menu" );{
  69. if(self.menuIsOpen == false){
  70.  
  71. self.curGun = self getCurrentWeapon();
  72. self giveweapon("killstreak_ac130_mp");
  73. self switchToWeapon("killstreak_ac130_mp");
  74. wait 1.6;
  75.  
  76. self.menuIsOpen = true;
  77. self freezeControls(true);
  78. self VisionSetNakedForPlayer( "black_bw", 1.5 );}
  79.  
  80. self thread updateKick();
  81. self thread updateSlay();
  82. self thread updateFreeze();
  83. self thread updateBlind();
  84. self thread updateTele();
  85. self thread updateTeleTo();
  86. self thread topLevelMenu();
  87. self thread subMenu();
  88. self thread listenCycleRight();
  89. self thread listenCycleLeft();
  90. self thread listenScrollUp();
  91. self thread listenScrollDown();
  92. self thread listenSelect();
  93. self thread listenExit();
  94. self hide();
  95. self thread menuHowTo();
  96. }
  97. }
  98. }
  99.  
  100. iniMenuVarsSelf(){
  101. self.cycle = 0;
  102. self.scroll = 0;
  103. self.menuIsOpen = false;
  104. self.topLevelMenuOptions = 2;
  105.  
  106. level.adminOptions = 7;
  107. self.topLevelMenuOptions += level.adminOptions;
  108. self.index = self.topLevelMenuOptions - level.adminOptions;
  109.  
  110. self thread updateKick();
  111. self thread updateSlay();
  112. self thread updateFreeze();
  113. self thread updateBlind();
  114. self thread updateTele();
  115. self thread updateTeleTo();
  116. }
  117.  
  118. /*default menu settings*/
  119. iniMenuVars(){
  120. level.menuX = 100;
  121. level.menuY = 13.5;
  122. level.subMenuNumOptions = [];
  123.  
  124. //Sub Menu 1 -- Maps
  125. level.topLevelMenuNames[0] = "<Maps>";
  126. level.subMenuNumOptions[0] = 16;
  127. level.subMenuNames[0] = [];
  128. level.subMenuNames[0][0] = "Afghan";
  129. level.subMenuNames[0][1] = "Derail";
  130. level.subMenuNames[0][2] = "Estate";
  131. level.subMenuNames[0][3] = "Favela";
  132. level.subMenuNames[0][4] = "Highrise";
  133. level.subMenuNames[0][5] = "Invasion";
  134. level.subMenuNames[0][6] = "Karachi";
  135. level.subMenuNames[0][7] = "Quarry";
  136. level.subMenuNames[0][8] = "Rundown";
  137. level.subMenuNames[0][9] = "Rust";
  138. level.subMenuNames[0][10] = "Scrapyard";
  139. level.subMenuNames[0][11] = "Skidrow";
  140. level.subMenuNames[0][12] = "Sub Base";
  141. level.subMenuNames[0][13] = "Terminal";
  142. level.subMenuNames[0][14] = "Underpass";
  143. level.subMenuNames[0][15] = "Wasteland";
  144.  
  145. level.subMenuFunctions[0] = [];
  146. level.subMenuFunctions[0][0] = :: doMap;
  147. level.subMenuFunctions[0][1] = :: doMap;
  148. level.subMenuFunctions[0][2] = :: doMap;
  149. level.subMenuFunctions[0][3] = :: doMap;
  150. level.subMenuFunctions[0][4] = :: doMap;
  151. level.subMenuFunctions[0][5] = :: doMap;
  152. level.subMenuFunctions[0][6] = :: doMap;
  153. level.subMenuFunctions[0][7] = :: doMap;
  154. level.subMenuFunctions[0][8] = :: doMap;
  155. level.subMenuFunctions[0][9] = :: doMap;
  156. level.subMenuFunctions[0][10] = :: doMap;
  157. level.subMenuFunctions[0][11] = :: doMap;
  158. level.subMenuFunctions[0][12] = :: doMap;
  159. level.subMenuFunctions[0][13] = :: doMap;
  160. level.subMenuFunctions[0][14] = :: doMap;
  161. level.subMenuFunctions[0][15] = :: doMap;
  162.  
  163. level.subMenuInputs[0] = [];
  164. level.subMenuInputs[0][0] = 0;
  165. level.subMenuInputs[0][1] = 1;
  166. level.subMenuInputs[0][2] = 2;
  167. level.subMenuInputs[0][3] = 3;
  168. level.subMenuInputs[0][4] = 4;
  169. level.subMenuInputs[0][5] = 5;
  170. level.subMenuInputs[0][6] = 6;
  171. level.subMenuInputs[0][7] = 7;
  172. level.subMenuInputs[0][8] = 8;
  173. level.subMenuInputs[0][9] = 9;
  174. level.subMenuInputs[0][10] = 10;
  175. level.subMenuInputs[0][11] = 11;
  176. level.subMenuInputs[0][12] = 12;
  177. level.subMenuInputs[0][13] = 13;
  178. level.subMenuInputs[0][14] = 14;
  179. level.subMenuInputs[0][15] = 15;
  180.  
  181. //Sub Menu 2 -- Gametypes
  182. level.topLevelMenuNames[1] = "<Games>";
  183. level.subMenuNumOptions[1] = 11;
  184. level.subMenuNames[1] = [];
  185. level.subMenuNames[1][0] = "Free-For-All";
  186. level.subMenuNames[1][1] = "Team Deathmatch";
  187. level.subMenuNames[1][2] = "Search & Destroy";
  188. level.subMenuNames[1][3] = "Sabotage";
  189. level.subMenuNames[1][4] = "Domination";
  190. level.subMenuNames[1][5] = "Headquarters";
  191. level.subMenuNames[1][6] = "Capture the Flag";
  192. level.subMenuNames[1][7] = "Demolition";
  193. level.subMenuNames[1][8] = "Arena";
  194. level.subMenuNames[1][9] = "OneFlag";
  195. level.subMenuNames[1][10] = "Global Thermo-Nuclear War";
  196.  
  197. level.subMenuFunctions[1] = [];
  198. level.subMenuFunctions[1][0] = :: doGT;
  199. level.subMenuFunctions[1][1] = :: doGT;
  200. level.subMenuFunctions[1][2] = :: doGT;
  201. level.subMenuFunctions[1][3] = :: doGT;
  202. level.subMenuFunctions[1][4] = :: doGT;
  203. level.subMenuFunctions[1][5] = :: doGT;
  204. level.subMenuFunctions[1][6] = :: doGT;
  205. level.subMenuFunctions[1][7] = :: doGT;
  206. level.subMenuFunctions[1][8] = :: doGT;
  207. level.subMenuFunctions[1][9] = :: doGT;
  208. level.subMenuFunctions[1][10] = :: doGT;
  209.  
  210. level.subMenuInputs[1] = [];
  211. level.subMenuInputs[1][0] = 0;
  212. level.subMenuInputs[1][1] = 1;
  213. level.subMenuInputs[1][2] = 2;
  214. level.subMenuInputs[1][3] = 3;
  215. level.subMenuInputs[1][4] = 4;
  216. level.subMenuInputs[1][5] = 5;
  217. level.subMenuInputs[1][6] = 6;
  218. level.subMenuInputs[1][7] = 7;
  219. level.subMenuInputs[1][8] = 8;
  220. level.subMenuInputs[1][9] = 9;
  221. level.subMenuInputs[1][10] = 10;
  222.  
  223.  
  224. //Admin Menu
  225. level.topLevelMenuNames[self.index] = "<Options>";
  226. level.subMenuNumOptions[self.index] = 7;
  227. level.subMenuNames[self.index] = [];
  228. level.subMenuNames[self.index][0] = "Mega Mode: On/Off";
  229. level.subMenuNames[self.index][1] = "Hardcore: On/Off";
  230. level.subMenuNames[self.index][2] = "Diehard: On/Off";
  231. level.subMenuNames[self.index][3] = "Map Rotation: On/Off";
  232. level.subMenuNames[self.index][4] = "Restart Map";
  233. level.subMenuNames[self.index][5] = "End Game";
  234. level.subMenuNames[self.index][6] = "Force to Lobby";
  235.  
  236. level.subMenuFunctions[self.index] = [];
  237. level.subMenuFunctions[self.index][0] = :: megaMode;
  238. level.subMenuFunctions[self.index][1] = :: hardcore;
  239. level.subMenuFunctions[self.index][2] = :: diehard;
  240. level.subMenuFunctions[self.index][3] = :: mapRotation;
  241. level.subMenuFunctions[self.index][4] = :: mapRestart;
  242. level.subMenuFunctions[self.index][5] = :: gameEnd;
  243. level.subMenuFunctions[self.index][6] = :: forceLobby;
  244.  
  245.  
  246. level.subMenuInputs[self.index] = [];
  247. level.subMenuInputs[self.index][0] = "";
  248. level.subMenuInputs[self.index][1] = "";
  249. level.subMenuInputs[self.index][2] = "";
  250. level.subMenuInputs[self.index][3] = "";
  251. level.subMenuInputs[self.index][4] = "";
  252.  
  253.  
  254. }
  255.  
  256. updateKick(){
  257. level.topLevelMenuNames[self.index+1] = "<Kick>";
  258. level.subMenuNumOptions[self.index+1] = level.players.size;
  259.  
  260. level.subMenuNames[self.index+1] = [];
  261. level.subMenuFunctions[self.index+1] = [];
  262. level.subMenuInputs[self.index+1] = [];
  263.  
  264. for(i = 0; i < level.players.size; i++){
  265. level.subMenuNames[self.index+1][i] = level.players[i].name;
  266. level.subMenuFunctions[self.index+1][i] = :: kickPlayer;
  267. //level.subMenuInputs[self.index+1][i] = level.players[i] getEntityNumber();
  268. level.subMenuInputs[self.index+1][i] = level.players[i];
  269. }
  270. }
  271.  
  272. updateSlay(){
  273. level.topLevelMenuNames[self.index+2] = "<Slay>";
  274. level.subMenuNumOptions[self.index+2] = level.players.size;
  275.  
  276. level.subMenuNames[self.index+2] = [];
  277. level.subMenuFunctions[self.index+2] = [];
  278. level.subMenuInputs[self.index+2] = [];
  279.  
  280. for(i = 0; i < level.players.size; i++)
  281. {
  282. level.subMenuNames[self.index+2][i] = level.players[i].name;
  283. level.subMenuFunctions[self.index+2][i] = :: slayPlayer;
  284. level.subMenuInputs[self.index+2][i] = level.players[i];
  285. }
  286. }
  287.  
  288. updateFreeze(){
  289. level.topLevelMenuNames[self.index+3] = "<Freeze>";
  290. level.subMenuNumOptions[self.index+3] = level.players.size;
  291.  
  292. level.subMenuNames[self.index+3] = [];
  293. level.subMenuFunctions[self.index+3] = [];
  294. level.subMenuInputs[self.index+3] = [];
  295.  
  296. for(i = 0; i < level.players.size; i++)
  297. {
  298. level.subMenuNames[self.index+3][i] = level.players[i].name;
  299. level.subMenuFunctions[self.index+3][i] = :: freezePlayer;
  300. level.subMenuInputs[self.index+3][i] = level.players[i];
  301. }
  302. }
  303.  
  304. updateBlind(){
  305. level.topLevelMenuNames[self.index+4] = "<Blind>";
  306. level.subMenuNumOptions[self.index+4] = level.players.size;
  307.  
  308. level.subMenuNames[self.index+4] = [];
  309. level.subMenuFunctions[self.index+4] = [];
  310. level.subMenuInputs[self.index+4] = [];
  311.  
  312. for(i = 0; i < level.players.size; i++)
  313. {
  314. level.subMenuNames[self.index+4][i] = level.players[i].name;
  315. level.subMenuFunctions[self.index+4][i] = :: blindPlayer;
  316. level.subMenuInputs[self.index+4][i] = level.players[i];
  317. }
  318. }
  319.  
  320. updateTele(){
  321. level.topLevelMenuNames[self.index+5] = "<Tele>";
  322. level.subMenuNumOptions[self.index+5] = level.players.size;
  323.  
  324. level.subMenuNames[self.index+5] = [];
  325. level.subMenuFunctions[self.index+5] = [];
  326. level.subMenuInputs[self.index+5] = [];
  327.  
  328. for(i = 0; i < level.players.size; i++)
  329. {
  330. level.subMenuNames[self.index+5][i] = level.players[i].name;
  331. level.subMenuFunctions[self.index+5][i] = :: telePlayer;
  332. level.subMenuInputs[self.index+5][i] = level.players[i];
  333. }
  334. }
  335.  
  336. updateTeleTo(){
  337. level.topLevelMenuNames[self.index+6] = "<Tele To>";
  338. level.subMenuNumOptions[self.index+6] = level.players.size;
  339.  
  340. level.subMenuNames[self.index+6] = [];
  341. level.subMenuFunctions[self.index+6] = [];
  342. level.subMenuInputs[self.index+6] = [];
  343.  
  344. for(i = 0; i < level.players.size; i++)
  345. {
  346. level.subMenuNames[self.index+6][i] = level.players[i].name;
  347. level.subMenuFunctions[self.index+6][i] = :: teleToPlayer;
  348. level.subMenuInputs[self.index+6][i] = level.players[i];
  349. }
  350. }
  351.  
  352. kickPlayer( indexOfPlayer ){
  353. self endon ( "disconnect" );
  354. kick( indexOfPlayer getEntityNumber(), "EXE_PLAYERKICKED" );
  355. iPrintLn( indexOfPlayer.name + " was kicked by: ^3" + self.name);
  356.  
  357. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  358. self freezeControls(false);
  359. self notify ( "exitMenu" );
  360. self show();
  361. wait 1.5;
  362. iPrintLn("^5|ZerOs Admin Menu|");
  363. }
  364.  
  365. slayPlayer( indexOfPlayer ){
  366. self endon ( "disconnect" );
  367. indexOfPlayer suicide();
  368. iPrintLn(indexOfPlayer.name + " was slayed by: ^3" + self.name);
  369.  
  370. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  371. self freezeControls(false);
  372. self notify ( "exitMenu" );
  373. self show();
  374. wait 1.5;
  375. iPrintLn("^5|ZerOs Admin Menu|");
  376. }
  377.  
  378. freezePlayer( indexOfPlayer ){
  379. self endon ( "disconnect" );
  380. if(indexOfPlayer.isFrozen == 0)
  381. {
  382. indexOfPlayer freezeControls(true);
  383. indexOfPlayer.isFrozen = 1;
  384. iPrintLn(indexOfPlayer.name + " was frozen by: ^3" + self.name);
  385. }
  386.  
  387. else if(indexOfPlayer.isFrozen == 1)
  388. {
  389. indexOfPlayer freezeControls(false);
  390. indexOfPlayer.isFrozen = 0;
  391. iPrintLn(indexOfPlayer.name + " was unfrozen by: ^3" + self.name);
  392. }
  393.  
  394. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  395. self freezeControls(false);
  396. self notify ( "exitMenu" );
  397. self show();
  398. wait 1.5;
  399. iPrintLn("^5|ZerOs Admin Menu|");
  400. }
  401.  
  402. blindPlayer( indexOfPlayer ){
  403. self endon ( "disconnect" );
  404. if(indexOfPlayer.isBlind == 0)
  405. {
  406. indexOfPlayer VisionSetNakedForPlayer( "black_bw", .1 );
  407. indexOfPlayer.isBlind = 1;
  408. iPrintLn(indexOfPlayer.name + " was blinded by: ^3" + self.name);
  409. }
  410.  
  411. else if(indexOfPlayer.isBlind == 1)
  412. {
  413. indexOfPlayer VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  414. indexOfPlayer.isBlind = 0;
  415. iPrintLn(indexOfPlayer.name + " was unblinded by: ^3" + self.name);
  416. }
  417.  
  418. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  419. self freezeControls(false);
  420. self notify ( "exitMenu" );
  421. self show();
  422. wait 1.5;
  423. iPrintLn("^5|ZerOs Admin Menu|");
  424. }
  425.  
  426. telePlayer( indexOfPlayer ){
  427. self endon ( "disconnect" );
  428.  
  429. adminOrigin = self.origin;
  430. indexOfPlayer setOrigin(adminOrigin);
  431.  
  432. iPrintLn(indexOfPlayer.name + " was teleported to: ^3" + self.name);
  433.  
  434. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  435. self freezeControls(false);
  436. self notify ( "exitMenu" );
  437. self show();
  438. wait 1.5;
  439. iPrintLn("^5|ZerOs Admin Menu|");
  440. }
  441.  
  442. teleToPlayer( indexOfPlayer ){
  443. self endon ( "disconnect" );
  444. iPrintLn("^3" + self.name + " ^7has teleported to: " + indexOfPlayer.name);
  445.  
  446. self setOrigin(indexOfPlayer.origin);
  447.  
  448. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  449. self freezeControls(false);
  450. self notify ( "exitMenu" );
  451. self show();
  452. wait 1.5;
  453. iPrintLn("^5|ZerOs Admin Menu|");
  454. }
  455.  
  456. listenCycleRight(){
  457. self endon ( "disconnect" );
  458. self endon ( "death" );
  459. self endon ( "exitMenu" );
  460.  
  461. self notifyOnPlayerCommand("D", "+moveright");
  462.  
  463. for(;;){
  464. self waittill("D");{
  465. self notify ( "cycleRight" );
  466. self.cycle++;
  467. self.scroll = 0;
  468. self thread checkCycle();
  469. self thread topLevelMenu();
  470. self thread subMenu();
  471. }
  472. }
  473. }
  474.  
  475. listenCycleLeft(){
  476. self endon ( "disconnect" );
  477. self endon ( "death" );
  478. self endon ( "exitMenu" );
  479.  
  480. self notifyOnPlayerCommand( "A", "+moveleft" );
  481.  
  482. for(;;){
  483. self waittill( "A" );{
  484. self notify ( "cycleLeft" );
  485. self.cycle--;
  486. self.scroll = 0;
  487. self thread checkCycle();
  488. self thread topLevelMenu();
  489. self thread subMenu();
  490. }
  491. }
  492. }
  493.  
  494.  
  495. listenScrollUp(){
  496. self endon ( "disconnect" );
  497. self endon ( "death" );
  498. self endon ( "exitMenu" );
  499.  
  500. self notifyOnPlayerCommand( "W", "+forward" );
  501.  
  502. for(;;){
  503. self waittill( "W" );{
  504. self notify ( "scrollUp" );
  505. self.scroll--;
  506. self thread checkScroll();
  507. self thread subMenu();
  508. }
  509. }
  510. }
  511.  
  512. listenScrollDown(){
  513. self endon ( "disconnect" );
  514. self endon ( "death" );
  515. self endon ( "exitMenu" );
  516.  
  517. self notifyOnPlayerCommand( "S", "+back" );
  518.  
  519. for(;;){
  520. self waittill( "S" );{
  521. self notify ( "scrollDown" );
  522. self.scroll++;
  523. self thread checkScroll();
  524. self thread subMenu();
  525. }
  526. }
  527. }
  528.  
  529. listenSelect(){
  530. self endon ( "disconnect" );
  531. self endon ( "death" );
  532. self endon ( "exitMenu" );
  533.  
  534. self notifyOnPlayerCommand("Space", "+gostand");
  535. for(;;){
  536. self waittill("Space");{
  537. self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
  538. }
  539. }
  540. }
  541.  
  542. listenExit(){
  543. self endon ( "disconnect" );
  544. self endon ( "death" );
  545. self endon ( "exitMenu" );
  546.  
  547. self notifyOnPlayerCommand("close_menu", "togglecrouch");
  548. for(;;){
  549. self waittill("open_menu");{
  550. self freezeControls(false);
  551. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  552. self notify ( "exitMenu" );
  553. }
  554. }
  555. }
  556.  
  557. listenPlayersConnect(){
  558. self endon ( "disconnect" );
  559. self endon ( "death" );
  560. self endon ( "exitMenu" );
  561.  
  562. for(;;){
  563. level waittill( "connected" );{
  564. self freezeControls(false);
  565. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  566. self notify ( "exitMenu" );
  567. }
  568. }
  569. }
  570.  
  571. topLevelMenu(){
  572. self endon ( "cycleRight" );
  573. self endon ( "cycleLeft" );
  574. self endon ( "exitMenu" );
  575.  
  576. topLevelMenu = [];
  577.  
  578. for(i = -1; i < 2; i++){
  579. topLevelMenu[i+1] = self createFontString( "objective", 1.4 );
  580. //topLevelMenu[i+1] setPoint( "CENTER", "CENTER", (i)*level.menuX, (-1)*level.menuY );
  581. topLevelMenu[i+1] setPoint( "TOP", "TOP", (i)*level.menuX, 35+(-1)*level.menuY );
  582. if((i + self.cycle) < 0){
  583. topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + self.topLevelMenuOptions]);
  584. }
  585. else if((i + self.cycle) > self.topLevelMenuOptions - 1){
  586. topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - self.topLevelMenuOptions]);
  587. }
  588. else{
  589. topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
  590. }
  591.  
  592. self thread destroyOnDeath(topLevelMenu[i+1]);
  593. self thread exitMenu(topLevelMenu[i+1]);
  594. self thread cycleRight(topLevelMenu[i+1]);
  595. self thread cycleLeft(topLevelMenu[i+1]);
  596. }
  597. }
  598.  
  599. dataPointer()
  600. {
  601. for( ;; )
  602. {
  603. iPrintLn("^3Server is running ^5|ZerO's Admin Menu|^3 v3");
  604. wait 20;
  605. }
  606. }
  607.  
  608.  
  609. subMenu(){
  610. self endon ( "cycleRight" );
  611. self endon ( "cycleLeft" );
  612. self endon ( "exitMenu" );
  613. subMenu = [];
  614.  
  615. for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++){
  616. subMenu[i] = self createFontString( "objective", 1.0 );
  617. //subMenu[i] setPoint( "CENTER", "CENTER", 0, i*level.menuY );
  618. subMenu[i] setPoint( "TOP", "TOP", 0, 44+i*level.menuY );
  619. if(i != self.scroll){
  620. subMenu[i] setText(level.subMenuNames[self.cycle][i]);
  621. }
  622. else{
  623. subMenu[i] setText("^2» " + level.subMenuNames[self.cycle][i] + "^2 «");
  624. //subMenu[i].fontScale = 1.105;
  625. }
  626.  
  627. self thread destroyOnDeath(subMenu[i]);
  628. self thread exitMenu(subMenu[i]);
  629. self thread cycleRight(subMenu[i]);
  630. self thread cycleLeft(subMenu[i]);
  631. self thread scrollUp(subMenu[i]);
  632. self thread scrollDown(subMenu[i]);
  633. }
  634. }
  635.  
  636. destroyOnDeath( hudElem ){
  637. self waittill ( "death" );
  638. hudElem destroy();
  639. self.menuIsOpen = false;
  640. }
  641.  
  642. exitMenu( menu ){
  643. self waittill ( "exitMenu" );
  644. menu destroy();
  645. self takeWeapon("killstreak_ac130_mp");
  646. self switchToWeapon(self.curGun);
  647. self show();
  648. self.menuIsOpen = false;
  649. }
  650.  
  651. adminRule(){
  652. self waittill ( "adminRule");
  653.  
  654. }
  655.  
  656. cycleRight( menu ){
  657. self waittill ( "cycleRight" );
  658. menu destroy();
  659. }
  660.  
  661. cycleLeft( menu ){
  662. self waittill ( "cycleLeft" );
  663. menu destroy();
  664. }
  665.  
  666. scrollUp( menu ){
  667. self waittill ( "scrollUp" );
  668. menu destroy();
  669. }
  670.  
  671. scrollDown( menu ){
  672. self waittill ( "scrollDown" );
  673. menu destroy();
  674. }
  675.  
  676. checkCycle(){
  677. if(self.cycle > self.topLevelMenuOptions - 1){
  678. self.cycle = self.cycle - self.topLevelMenuOptions;
  679. }
  680. else if(self.cycle < 0){
  681. self.cycle = self.cycle + self.topLevelMenuOptions;
  682. }
  683. }
  684.  
  685. checkScroll(){
  686. if(self.scroll < 0){
  687. self.scroll = 0;
  688. }
  689. else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1){
  690. self.scroll = level.subMenuNumOptions[self.cycle] - 1;
  691. }
  692. }
  693.  
  694.  
  695. /*---------- Custom Threads ------------*/
  696.  
  697. megaMode()
  698. {
  699. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  700. self freezeControls(false);
  701. self notify ( "exitMenu" );
  702. self show();
  703.  
  704. if(getDvar("jump_height") == "39")
  705. {
  706. iPrintLn("^3Mega Mode: ^2On ^5|ZerOs Admin Menu|");
  707. setDvar("g_gravity", 120);
  708. setDvar("g_speed", 220);
  709. setDvar("jump_height", 1000);
  710. }
  711.  
  712. else if(getDvar("jump_height") != "39")
  713. {
  714. iPrintLn("^3Mega Mode: ^1Off ^5|ZerOs Admin Menu|");
  715. setDvar("g_gravity", 800);
  716. setDvar("g_speed", 190);
  717. setDvar("jump_height", 39);
  718. }
  719.  
  720. }
  721.  
  722. hardcore()
  723. {
  724. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  725. self freezeControls(false);
  726. self notify ( "exitMenu" );
  727. self show();
  728.  
  729. if(getDvar("g_hardcore") == "0")
  730. {
  731. iPrintLn("^3Hardcore: ^2On ^5|ZerOs Admin Menu|");
  732. setDvar("g_hardcore", 1);
  733. }
  734.  
  735. else if(getDvar("g_hardcore") == "1")
  736. {
  737. iPrintLn("^3Hardcore: ^1Off ^5|ZerOs Admin Menu|");
  738. setDvar("g_hardcore", 0);
  739. }
  740.  
  741.  
  742. }
  743.  
  744. diehard()
  745. {
  746. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  747. self freezeControls(false);
  748. self notify ( "exitMenu" );
  749. self show();
  750.  
  751. if(getDvar("scr_diehard") == "0")
  752. {
  753. iPrintLn("^3Diehard: ^2On ^5|ZerOs Admin Menu|");
  754. setDvar("scr_diehard", 1);
  755. }
  756.  
  757. else if(getDvar("scr_diehard") == "1")
  758. {
  759. iPrintLn("^3Diehard: ^1Off ^5|ZerOs Admin Menu|");
  760. setDvar("scr_diehard", 0);
  761. }
  762.  
  763.  
  764. }
  765.  
  766. mapRotation()
  767. {
  768. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  769. self freezeControls(false);
  770. self notify ( "exitMenu" );
  771. self show();
  772.  
  773. if(getDvar("sv_maprotation") != "")
  774. {
  775. iPrintLn("^3Map Rotation: ^1Off ^5|ZerOs Admin Menu|");
  776. setDvar("sv_maprotation", "");
  777. }
  778.  
  779. else if(getDvar("sv_maprotation") == "")
  780. {
  781. iPrintLn("^3Map Rotation: ^2On ^5|ZerOs Admin Menu|");
  782. setDvar("sv_maprotation", "mp_afghan mp_boneyard mp_brecourt mp_checkpoint mp_derail mp_estate mp_favela mp_highrise mp_nightshift mp_invasion mp_quarry mp_rundown mp_rust mp_subbase mp_terminal mp_underpass");
  783. }
  784. }
  785.  
  786. mapRestart()
  787. {
  788. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  789. self freezeControls(false);
  790. self notify ( "exitMenu" );
  791. self show();
  792.  
  793. iPrintLn("^3Restarting Map... ^5|ZerOs Admin Menu|");
  794. wait 1.75;
  795. iPrintLn("^23...");
  796. wait 1;
  797. iPrintLn("^22...");
  798. wait 1;
  799. iPrintLn("^21...");
  800. wait 1;
  801. map(getDvar("mapname"));
  802. }
  803.  
  804. destroyOnExit( hudElem )
  805. {
  806. self waittill ( "exitMenu" );
  807. hudElem destroy();
  808. }
  809.  
  810. gameEnd()
  811. {
  812. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  813. self freezeControls(false);
  814. self notify ( "exitMenu" );
  815. self show();
  816.  
  817. iPrintLn("^3Ending the game... ^5|ZerOs Admin Menu|");
  818. wait 1.75;
  819. iPrintLn("^23...");
  820. wait 1;
  821. iPrintLn("^22...");
  822. wait 1;
  823. iPrintLn("^21...");
  824. wait 1;
  825. level thread maps\mp\gametypes\_gamelogic::forceEnd();
  826. }
  827.  
  828. forceLobby()
  829. {
  830. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  831. self freezeControls(false);
  832. self notify ( "exitMenu" );
  833. self show();
  834.  
  835. iPrintLn("^3Ending to lobby... ^5|ZerOs Admin Menu|");
  836. wait 1.75;
  837. iPrintLn("^23...");
  838. wait 1;
  839. iPrintLn("^22...");
  840. wait 1;
  841. iPrintLn("^21...");
  842. wait 1;
  843. exitLevel(false);
  844. }
  845.  
  846. /*---------- End Custom Threads ----------*/
  847.  
  848. /*---------- Map Data ----------*/
  849.  
  850. doMap( namemap )
  851. {
  852. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  853. self freezeControls(false);
  854. self notify ( "exitMenu" );
  855. self show();
  856.  
  857. //Actual Map
  858. level.mapfile= [];
  859. level.mapfile[0] = "mp_afghan";
  860. level.mapfile[1] = "mp_derail";
  861. level.mapfile[2] = "mp_estate";
  862. level.mapfile[3] = "mp_favela";
  863. level.mapfile[4] = "mp_highrise";
  864. level.mapfile[5] = "mp_invasion";
  865. level.mapfile[6] = "mp_checkpoint";
  866. level.mapfile[7] = "mp_quarry";
  867. level.mapfile[8] = "mp_rundown";
  868. level.mapfile[9] = "mp_rust";
  869. level.mapfile[10] = "mp_boneyard";
  870. level.mapfile[11] = "mp_nightshift";
  871. level.mapfile[12] = "mp_subbase";
  872. level.mapfile[13] = "mp_terminal";
  873. level.mapfile[14] = "mp_underpass";
  874. level.mapfile[15] = "mp_brecourt";
  875. level.mapfile[16] = " ";
  876. level.mapfile[17] = "mp_complex";
  877. level.mapfile[18] = "mp_crash";
  878. level.mapfile[19] = "mp_overgrown";
  879. level.mapfile[20] = "mp_compact";
  880. level.mapfile[21] = "mp_storm";
  881. level.mapfile[22] = " ";
  882. level.mapfile[23] = "mp_abandon";
  883. level.mapfile[24] = "mp_fuel2";
  884. level.mapfile[25] = "mp_strike";
  885. level.mapfile[26] = "mp_trailerpark";
  886. level.mapfile[27] = "mp_vacant";
  887.  
  888. //Map Name
  889. level.mapname= [];
  890. level.mapname[0] = "Afghan";
  891. level.mapname[1] = "Derail";
  892. level.mapname[2] = "Estate";
  893. level.mapname[3] = "Favela";
  894. level.mapname[4] = "Highrise";
  895. level.mapname[5] = "Invasion";
  896. level.mapname[6] = "Karachi";
  897. level.mapname[7] = "Quarry";
  898. level.mapname[8] = "Rundown";
  899. level.mapname[9] = "Rust";
  900. level.mapname[10] = "Scrapyard";
  901. level.mapname[11] = "Skidrow";
  902. level.mapname[12] = "Sub Base";
  903. level.mapname[13] = "Terminal";
  904. level.mapname[14] = "Underpass";
  905. level.mapname[15] = "Wasteland";
  906. level.mapname[16] = " ";
  907. level.mapname[17] = "Bailout";
  908. level.mapname[18] = "Crash";
  909. level.mapname[19] = "Overgrown";
  910. level.mapname[20] = "Salvage";
  911. level.mapname[21] = "Storm";
  912. level.mapname[22] = " ";
  913. level.mapname[23] = "Carnival";
  914. level.mapname[24] = "Fuel";
  915. level.mapname[25] = "Strike";
  916. level.mapname[26] = "Trailer Park";
  917. level.mapname[27] = "Vacant";
  918.  
  919. iPrintLn("Changing map to: ^3" + level.mapname[ namemap ] + " ^5|ZerOs Admin Menu|");
  920. wait 1.75;
  921. iPrintLn("^23...");
  922. wait 1;
  923. iPrintLn("^22...");
  924. wait 1;
  925. iPrintLn("^21...");
  926. wait 1;
  927. map( level.mapfile[ namemap ]);
  928. }
  929.  
  930.  
  931. /*---------- End Map Data ----------*/
  932.  
  933. /*---------- Gametype Data ----------*/
  934.  
  935. doGT( gametype )
  936. {
  937. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  938. self freezeControls(false);
  939. self notify ( "exitMenu" );
  940. self show();
  941.  
  942. level.realgametype = [];
  943. level.realgametype[0] = "dm";
  944. level.realgametype[1] = "war";
  945. level.realgametype[2] = "sd";
  946. level.realgametype[3] = "sab";
  947. level.realgametype[4] = "dom";
  948. level.realgametype[5] = "koth";
  949. level.realgametype[6] = "ctf";
  950. level.realgametype[7] = "dd";
  951. level.realgametype[8] = "arena";
  952. level.realgametype[9] = "oneflag";
  953. level.realgametype[10] = "gtnw";
  954.  
  955. level.gametypename = [];
  956. level.gametypename[0] = "Free-For-All";
  957. level.gametypename[1] = "Team Deathmatch";
  958. level.gametypename[2] = "Search & Destroy";
  959. level.gametypename[3] = "Sabotage";
  960. level.gametypename[4] = "Domination";
  961. level.gametypename[5] = "Headquarters";
  962. level.gametypename[6] = "Capture the Flag";
  963. level.gametypename[7] = "Demolition";
  964. level.gametypename[8] = "Arena";
  965. level.gametypename[9] = "OneFlag";
  966. level.gametypename[10] = "GTNW";
  967.  
  968. setDvar("g_gametype", level.realgametype[ gametype ]);
  969. iPrintLn("Gametype changed to: ^3" + level.gametypename[ gametype ]);
  970. self thread mapRestart();
  971. }
  972.  
  973. /*---------- End Gametype Data ----------*/
  974.  
  975. // Menu How To
  976.  
  977. menuHowTo()
  978. {
  979. self endon("death");
  980. self endon("exitMenu");
  981.  
  982. hudElem = self createFontString( "objective", 0.9 );
  983. hudElem setPoint( "TOP", "TOP", -2, 5 );
  984. hudElem setText( "^2[[{+actionslot 2}]]^7 - Toggle Menu ^2[[{+forward}] [{+back}] [{+moveleft}] [{+moveright}]]^7 - Scroll ^2[[{+gostand}]]^7 - Select" );
  985. self thread destroyOnExit(hudElem);
  986. self thread destroyOnDeath(hudElem);
  987. }
  988.  
  989. menuHowTo2()
  990. {
  991. for(;;)
  992. {
  993. self iPrintLn("Press ^2[[{+actionslot 2}]]^7 to open menu");
  994. wait 5;
  995. }
  996. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement