Advertisement
body_guard

Ultimate Admin Menue Version 3

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