Advertisement
Dervae

Source

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