Advertisement
body_guard

_kickmenu.gsc

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