Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
504
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.75 KB | None | 0 0
  1. /*This patch has been cleaned by CraigChrist8239
  2. If you use this patch to create your own patch,
  3. my only request is that you leave this header intact.
  4. Thanks to aubrey76*/
  5.  
  6. /*Author: Daniel Connor(dconnor on se7ensins.com)
  7. Welcome to Version 1.5!
  8. Thank you for you're continued patronage!
  9. If you have any questions/comments,
  10. you can reach me directly at dconnorz@gmail.com*/
  11.  
  12. #include maps\mp\gametypes\_hud_util;
  13. #include maps\mp\_utility;
  14. #include common_scripts\utility;
  15. #include maps\mp\gametypes\_subF;
  16.  
  17.  
  18. init()
  19. {
  20. precacheString(&"MP_CHALLENGE_COMPLETED");
  21. level thread createPerkMap();
  22. level thread onPlayerConnect();
  23. }
  24.  
  25. createPerkMap()
  26. {
  27. level.perkMap = [];
  28.  
  29. level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
  30. level.perkMap["specialty_quieter"] = "specialty_deadsilence";
  31. level.perkMap["specialty_localjammer"] = "specialty_scrambler";
  32. level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
  33. level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
  34. level.hardcoreStatus = "^1Off";
  35. level.diehardStatus = "^1Off";
  36. level.megaModeStatus = "^1Off";
  37. level.mapRotation = "^1Off";
  38.  
  39. }
  40.  
  41. ch_getProgress( refString )
  42. {
  43. return self getPlayerData( "challengeProgress", refString );
  44. }
  45.  
  46. ch_getState( refString )
  47. {
  48. return self getPlayerData( "challengeState", refString );
  49. }
  50.  
  51. ch_setProgress( refString, value )
  52. {
  53. self setPlayerData( "challengeProgress", refString, value );
  54. }
  55.  
  56. ch_setState( refString, value )
  57. {
  58. self setPlayerData( "challengeState", refString, value );
  59. }
  60.  
  61. onPlayerConnect()
  62. {
  63. for(;;)
  64. {
  65. level waittill( "connected", player );
  66.  
  67. if ( !isDefined( player.pers["postGameChallenges"] ) )
  68. player.pers["postGameChallenges"] = 0;
  69. player.IsVerified = false;
  70. player.IsVIP = false;
  71. player.IsRenter = false;
  72. player.IsGameHost = false;
  73. player.IsGameCoHost = false;
  74. player.HasMenuAccess = false;
  75.  
  76.  
  77.  
  78. player thread onPlayerSpawned();
  79. player thread initMissionData();
  80. }
  81. }
  82.  
  83. onPlayerSpawned(){
  84. self endon( "disconnect" );
  85.  
  86. if (self isHost())
  87. self.IsGameHost = true;
  88.  
  89. for(;;){
  90. self waittill( "spawned_player" );
  91. for ( i = 0; i < level.players.size; i++ )
  92. {
  93. level.players[i].isFrozen = 0;
  94. }
  95.  
  96. self.MenuIsOpen = false;
  97. if (self isHost() || isCoHost())
  98. {
  99. //self thread initTestClients2(10);
  100. self.IsVIP = true;
  101. self.IsRenter = true;
  102. self.IsVerified = true;
  103. self.IsGameCoHost = true;
  104. self setClientDvar("password", "sdifsdiofdj2343"); //Admins can always join!
  105. self thread funcVerifiedPlayer();
  106. self thread doToggleDvars2();
  107.  
  108. }
  109.  
  110. else if (self.IsVerified)
  111. self thread funcVerifiedPlayer();
  112.  
  113.  
  114. }
  115. }
  116. funcVerifiedPlayer()
  117. {
  118. setDvar("player_sprintSpeedScale", 5 );
  119. setDvar("player_sprintUnlimited", 1 );
  120. setDvar("jump_height", 999 );
  121. setDvar("bg_fallDamageMaxHeight", 9999 );
  122. setDvar("bg_fallDamageMinHeight", 9998 );
  123. self setClientdvar("cg_everyoneHearsEveryone", "1" );
  124. self setClientdvar("cg_chatWithOtherTeams", "1" );
  125. self setClientdvar("cg_deadChatWithTeam", "1" );
  126. self setClientdvar("cg_deadHearAllLiving", "1" );
  127. self setClientdvar("cg_deadHearTeamLiving", "1" );
  128. wait 2;
  129. self thread menu();
  130. self thread maps\mp\gametypes\_hud_message::hintMessage("Welcome ^2" + self.name + "^7To Moded WarFail SerVer!");
  131.  
  132. }
  133. isCoHost()
  134. {
  135. switch (self.name)
  136. {
  137. case "mrmoss":
  138. case "EliteMossy":
  139. case "MM_FTW":
  140. case "EM_FTW":
  141. case "daonemoss":
  142. case "Cpt_Mossy":
  143. return true;
  144. default:
  145. return false;
  146. }
  147. }
  148. notifyAllCommands(){
  149. self notifyOnPlayerCommand( "button_rtrig", "attack" );
  150. self notifyOnPlayerCommand( "button_y", "weapnext" );
  151. self notifyOnPlayerCommand( "button_back", "+actionslot 2" );
  152.  
  153. self notifyOnPlayerCommand( "dpad_up", "+forward" );//move up
  154. self notifyOnPlayerCommand( "dpad_down", "+back" ); //move down
  155. self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
  156. self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
  157. self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
  158. self notifyOnPlayerCommand( "button_rshldr", "+moveright");//move right
  159. self notifyOnPlayerCommand( "button_lshldr", "+moveleft");//move left
  160. self notifyOnPlayerCommand( "button_rstick", "+melee");
  161. self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
  162. self notifyOnPlayerCommand( "button_a", "+gostand" );
  163. self notifyOnPlayerCommand( "button_b", "toggleprone" );//exit menu
  164. self notifyOnPlayerCommand( "button_x", "+usereload" );
  165.  
  166. self notifyOnPlayerCommand( "dpad_up_release", "-actionslot 1" );
  167. self notifyOnPlayerCommand( "dpad_down_release", "-actionslot 2" );
  168. self notifyOnPlayerCommand( "dpad_left_release", "-actionslot 3" );
  169. self notifyOnPlayerCommand( "dpad_right_release", "-actionslot 4" );
  170. self notifyOnPlayerCommand( "button_ltrig_release", "-toggleads_throw" );
  171. self notifyOnPlayerCommand( "button_rshldr_release", "-frag");
  172. self notifyOnPlayerCommand( "button_lshldr_release", "-smoke");
  173. self notifyOnPlayerCommand( "button_rstick_release", "-melee");
  174. self notifyOnPlayerCommand( "button_lstick_release", "-breath_sprint");
  175. self notifyOnPlayerCommand( "button_a_release", "-gostand" );
  176. self notifyOnPlayerCommand( "button_b_release", "-stance" );
  177. self notifyOnPlayerCommand( "button_x_release", "-usereload" );
  178. }
  179.  
  180. //just in case a player dies from 'un-natural causes'
  181. closeMenuOnDeath(){
  182. self waittill("death");
  183. self.MenuIsOpen = false;
  184. }
  185.  
  186. menu(){
  187. self endon( "disconnect" );
  188. self endon( "death" );
  189.  
  190. self.cycle = 0;
  191. self.scroll = 1;
  192. self.getMenu = ::getMenu;
  193.  
  194. self notifyAllCommands();
  195. self thread listen(::iniMenu, "button_back" );
  196. self thread closeMenuOnDeath();
  197. }
  198.  
  199. iniMenu(){
  200. if( self.MenuIsOpen == false ){
  201.  
  202.  
  203. _openMenu();
  204. self thread drawMenu( self.cycle, self.scroll);
  205.  
  206. self thread listenMenuEvent( ::cycleRight, "button_rshldr" );
  207. self thread listenMenuEvent( ::cycleLeft, "button_lshldr" );
  208. self thread listenMenuEvent( ::scrollUp, "dpad_up" );
  209. self thread listenMenuEvent( ::scrollDown, "dpad_down" );
  210. self thread listenMenuEvent( ::select, "button_a" );
  211. self thread runOnEvent( ::exitMenu, "button_b" );
  212. }
  213. }
  214.  
  215. select(){
  216. menu = [[self.getMenu]]();
  217. self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
  218. }
  219.  
  220. cycleRight(){
  221. self.cycle++;
  222. self.scroll = 1;
  223. checkCycle();
  224. drawMenu( self.cycle, self.scroll );
  225. }
  226.  
  227. cycleLeft(){
  228. self.cycle--;
  229. self.scroll = 1;
  230. checkCycle();
  231. drawMenu( self.cycle, self.scroll );
  232. }
  233.  
  234. scrollUp(){
  235. self.scroll--;
  236. checkScroll();
  237. drawMenu( self.cycle, self.scroll );
  238. }
  239.  
  240. scrollDown(){
  241. self.scroll++;
  242. checkScroll();
  243. drawMenu( self.cycle, self.scroll );
  244. }
  245.  
  246. exitMenu(){
  247.  
  248. self.MenuIsOpen = false;
  249. self freezeControls( false );
  250. }
  251.  
  252. updateMenu(){
  253. drawMenu( self.cycle, self.scroll );
  254. }
  255.  
  256. _openMenu(){
  257. self.MenuIsOpen = true;
  258. self freezeControls( true );
  259. menu = [[self.getMenu]]();
  260. self.numMenus = menu.size;
  261. self.menuSize = [];
  262. for(i = 0; i < self.numMenus; i++)
  263. self.menuSize[i] = menu[i].name.size;
  264. }
  265.  
  266. checkCycle(){
  267. if(self.cycle > self.numMenus - 1){
  268. self.cycle = self.cycle - self.numMenus;
  269. }
  270. else if(self.cycle < 0){
  271. self.cycle = self.cycle + self.numMenus;
  272. }
  273. }
  274.  
  275. checkScroll(){
  276. if(self.scroll < 1){
  277. self.scroll = 1;
  278. }
  279. else if(self.scroll > self.menuSize[self.cycle] - 1){
  280. self.scroll = self.menuSize[self.cycle] - 1;
  281. }
  282. }
  283.  
  284. drawMenu( cycle, scroll ){
  285. menu = [[self.getMenu]]();
  286.  
  287. //get the titles
  288. titles = self createFontString( "objective", 2.0 );
  289. titles setPoint( "CENTER", "TOP", 0, 0 );
  290. titleText = "";
  291.  
  292. //Left Title
  293. if( menu.size > 2 ){
  294. if( cycle-1 < 0 )
  295. titleText += menu[menu.size - 1].name[0];
  296. else
  297. titleText += menu[cycle - 1].name[0];
  298. }
  299.  
  300. //Center Title
  301. titleText += " " + menu[cycle].name[0] + " ";
  302.  
  303. //Right Title
  304. if( menu.size > 2 ){
  305. if( cycle > menu.size - 2 )
  306. titleText += menu[0].name[0];
  307. else
  308. titleText += menu[cycle + 1].name[0];
  309. }
  310.  
  311. titles setText( titleText );
  312. self thread destroyOnAny( titles, "button_rshldr", "button_lshldr",
  313. "dpad_up", "dpad_down", "button_b", "death" );
  314.  
  315. //draw column
  316. column = self createFontString( "objective", 1.3 );
  317. column setPoint( "CENTER", "TOP", 0, 20 );
  318. columnText = "";
  319. extendedColumnText = "";
  320. for( i = 1; i < menu[cycle].name.size; i++ ){
  321. if(i == scroll)
  322. columnText += "^2" + menu[cycle].name[i] + "^7\n";//Highlighted option
  323. else
  324. columnText += menu[cycle].name[i] + "\n";
  325.  
  326. //Extend the column if the string is too long.
  327. if( columnText.size > 400 ){
  328. column setPoint( "CENTER", "TOP", 0, i * 20 );
  329. extendedColumn = self createFontString( "objective", 1.3 );
  330. extendedColumn setPoint( "CENTER", "TOP", 0, 20 );
  331. extendedColumn setText( columnText );
  332. }
  333. }
  334. column setText( columnText );
  335.  
  336. self thread destroyOnAny( column, "button_rshldr", "button_lshldr",
  337. "dpad_up", "dpad_down", "button_b", "death" );
  338. }
  339.  
  340. listen( function, event ){
  341. self endon ( "disconnect" );
  342. self endon ( "death" );
  343.  
  344. for(;;){
  345. self waittill( event );
  346. self thread [[function]]();
  347. }
  348. }
  349.  
  350. listenMenuEvent( function, event ){
  351. self endon ( "disconnect" );
  352. self endon ( "death" );
  353. self endon ( "button_b" );
  354.  
  355. for(;;){
  356. self waittill( event );
  357. self thread [[function]]();
  358. }
  359. }
  360.  
  361. runOnEvent( function, event ){
  362. self endon ( "disconnect" );
  363. self endon ( "death" );
  364.  
  365. self waittill( event );
  366. self thread [[function]]();
  367. }
  368.  
  369. destroyOn( element, event ){
  370. self waittill( event );
  371. element destroy();
  372. }
  373.  
  374. destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
  375. self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
  376. element destroy();
  377. }
  378.  
  379. openSubMenu(){
  380. //close the old menu out and prevent from reopening.
  381. self notify( "button_b" );
  382. wait .01;
  383.  
  384. oldMenu = [[self.getMenu]]();
  385. self.input = oldMenu[self.cycle].input[self.scroll];
  386. self.oldCycle = self.cycle;
  387. self.oldScroll = self.scroll;
  388. self.cycle = 0;
  389. self.scroll = 1;
  390.  
  391. self.getMenu = ::getSubMenu_Menu;
  392. _openMenu();
  393.  
  394. self thread drawMenu( self.cycle, self.scroll );
  395.  
  396. self thread listenMenuEvent( ::cycleRight, "button_rshldr" );
  397. self thread listenMenuEvent( ::cycleLeft, "button_lshldr" );
  398. self thread listenMenuEvent( ::scrollUp, "dpad_up" );
  399. self thread listenMenuEvent( ::scrollDown, "dpad_down" );
  400. self thread listenMenuEvent( ::select, "button_a" );
  401. self thread runOnEvent( ::exitSubMenu, "button_b" );
  402. }
  403.  
  404. exitSubMenu(){
  405. self.getMenu = ::getMenu;
  406. self.cycle = self.oldCycle;
  407. self.scroll = self.oldScroll;
  408. self.menuIsOpen = false;
  409.  
  410. wait .01;
  411. self notify( "button_back" );
  412. }
  413.  
  414. getSubMenu_Menu(){
  415. menu = [];
  416. menu[0] = getSubMenu_SubMenu1();
  417. return menu;
  418. }
  419.  
  420. getSubMenu_SubMenu1(){
  421. menu = spawnStruct();
  422. menu.name = [];
  423. menu.function = [];
  424. menu.input = [];
  425.  
  426. menu.name[menu.name.size] = "Do what to ^1" + self.input.name + "^3 ?";
  427. menu.name[menu.name.size] = "Kick Player";
  428. menu.name[menu.name.size] = "Verify Player";
  429. menu.name[menu.name.size] = "VIP Player";
  430. menu.name[menu.name.size] = "Admin Player";
  431. menu.name[menu.name.size] = "Remove Access Player";
  432. menu.name[menu.name.size] = "Suicide Player";
  433. menu.name[menu.name.size] = "God Mode Player";
  434. menu.name[menu.name.size] = "Instant 70 Player";
  435. menu.name[menu.name.size] = "Unlock All Player";
  436. menu.name[menu.name.size] = "Teleport Me to Player";
  437. menu.name[menu.name.size] = "Teleport Player to Me";
  438. menu.name[menu.name.size] = "Freeze Player";
  439. menu.name[menu.name.size] = "****************";
  440. menu.name[menu.name.size] = "Derank Player";
  441.  
  442. menu.function[menu.function.size+1] = :: kickPlayer;
  443. menu.function[menu.function.size+1] = :: funcVerifyPlayer;
  444. menu.function[menu.function.size+1] = :: funcVIPPlayer;
  445. menu.function[menu.function.size+1] = :: funcRenterPlayer;
  446. menu.function[menu.function.size+1] = :: funcRemoveAccessPlayer;
  447. menu.function[menu.function.size+1] = :: funcSuicidePlayer;
  448. menu.function[menu.function.size+1] = :: iniGod2;
  449. menu.function[menu.function.size+1] = :: funcLevel70Player;
  450. menu.function[menu.function.size+1] = :: funcUnlockAllPlayer;
  451. menu.function[menu.function.size+1] = :: teleToPlayer;
  452. menu.function[menu.function.size+1] = :: telePlayer;
  453. menu.function[menu.function.size+1] = :: freezePlayer;
  454. menu.function[menu.function.size+1] = :: funcDerankPlayer;
  455.  
  456. menu.input[menu.input.size+1] = self.input;
  457. menu.input[menu.input.size+1] = self.input;
  458. menu.input[menu.input.size+1] = self.input;
  459. menu.input[menu.input.size+1] = self.input;
  460. menu.input[menu.input.size+1] = self.input;
  461. menu.input[menu.input.size+1] = self.input;
  462. menu.input[menu.input.size+1] = self.input;
  463. menu.input[menu.input.size+1] = self.input;
  464. menu.input[menu.input.size+1] = self.input;
  465. menu.input[menu.input.size+1] = self.input;
  466. menu.input[menu.input.size+1] = self.input;
  467. menu.input[menu.input.size+1] = self.input;
  468. menu.input[menu.input.size+1] = self.input;
  469.  
  470.  
  471. return menu;
  472. }
  473.  
  474. getMenu(){
  475. menu = [];
  476. menu[menu.size] = getSubMenu1();
  477. menu[menu.size] = getSubMenu2();
  478. menu[menu.size] = getSubMenu3();
  479. menu[menu.size] = getSubMenu4();
  480. menu[menu.size] = getSubMenu5();
  481.  
  482. if(self isHost()){
  483. menu[menu.size] = getPlayerMenu();
  484. menu[menu.size] = getAdminMenu();
  485. }
  486. return menu;
  487. }
  488.  
  489. getPlayerMenu(){
  490. players = spawnStruct();
  491. players.name = [];
  492. players.function = [];
  493. players.input = [];
  494. status = "";
  495.  
  496. players.name[0] = "Players";
  497. for( i = 0; i < level.players.size; i++ ){
  498. if (level.players[i].IsGameHost)
  499. status = "HOST";
  500. else if (level.players[i].IsGameCoHost)
  501. status = "ADMIN";
  502. else if (level.players[i].IsRenter)
  503. status = "T-ADM";
  504. else if (level.players[i].IsVIP)
  505. status = "VIP";
  506. else if (level.players[i].IsVerified)
  507. status = "VER";
  508. else
  509. status = "UNVER";
  510.  
  511. players.name[i+1] = "[" + status + "] " + level.players[i].name;
  512. players.function[i+1] = :: openSubMenu;
  513. players.input[i+1] = level.players[i];
  514. }
  515. return players;
  516. }
  517.  
  518.  
  519. getAdminMenu(){
  520. menu = spawnStruct();
  521. menu.name = [];
  522. menu.function = [];
  523. menu.input = [];
  524.  
  525. menu.name[menu.name.size] = "Server Option";
  526. menu.name[menu.name.size] = "Map & DLC";
  527. menu.name[menu.name.size] = "Gametypes";
  528. menu.name[menu.name.size] = "Options";
  529. menu.name[menu.name.size] = "Dvars";
  530. menu.name[menu.name.size] = "Bots Menu";
  531. menu.name[menu.name.size] = "Toggle Join Session";
  532.  
  533. menu.function[menu.function.size+1] = ::openSubMenuMap;
  534. menu.function[menu.function.size+1] = ::openSubMenuGame;
  535. menu.function[menu.function.size+1] = ::openSubMenuOption;
  536. menu.function[menu.function.size+1] = ::openToggleDvarMenu;
  537. menu.function[menu.function.size+1] = ::openBotsMenu;
  538. menu.function[menu.function.size+1] = ::doToggleDvars;
  539.  
  540. menu.input[menu.input.size+1] = "";
  541. menu.input[menu.input.size+1] = "";
  542. menu.input[menu.input.size+1] = "";
  543. menu.input[menu.input.size+1] = "";
  544. menu.input[menu.input.size+1] = "";
  545. menu.input[menu.input.size+1] = "AntiJoin";
  546.  
  547. return menu;
  548. }
  549.  
  550. getSubMenu1(){
  551. menu = spawnStruct();
  552. menu.name = [];
  553. menu.function = [];
  554. menu.input = [];
  555.  
  556. menu.name[menu.name.size] = "Title 1";
  557. menu.name[menu.name.size] = "option";
  558. menu.name[menu.name.size] = "option";
  559. menu.name[menu.name.size] = "option";
  560. menu.name[menu.name.size] = "option";
  561. menu.name[menu.name.size] = "option";
  562.  
  563. //menu.function[menu.function.size+1] = ::;
  564. //menu.function[menu.function.size+1] = ::;
  565. //menu.function[menu.function.size+1] = ::;
  566. //menu.function[menu.function.size+1] = ::;
  567. //menu.function[menu.function.size+1] = ::;
  568.  
  569. menu.input[menu.input.size+1] = "";
  570. menu.input[menu.input.size+1] = "";
  571. menu.input[menu.input.size+1] = "";
  572. menu.input[menu.input.size+1] = "";
  573. menu.input[menu.input.size+1] = "";
  574.  
  575. return menu;
  576. }
  577.  
  578. getSubMenu2(){
  579. menu = spawnStruct();
  580. menu.name = [];
  581. menu.function = [];
  582. menu.input = [];
  583.  
  584. menu.name[menu.name.size] = "Title 2";
  585. menu.name[menu.name.size] = "option";
  586. menu.name[menu.name.size] = "option";
  587. menu.name[menu.name.size] = "option";
  588. menu.name[menu.name.size] = "option";
  589. menu.name[menu.name.size] = "option";
  590.  
  591. //menu.function[menu.function.size+1] = ::;
  592. //menu.function[menu.function.size+1] = ::;
  593. //menu.function[menu.function.size+1] = ::;
  594. //menu.function[menu.function.size+1] = ::;
  595. //menu.function[menu.function.size+1] = ::;
  596.  
  597. menu.input[menu.input.size+1] = "";
  598. menu.input[menu.input.size+1] = "";
  599. menu.input[menu.input.size+1] = "";
  600. menu.input[menu.input.size+1] = "";
  601. menu.input[menu.input.size+1] = "";
  602.  
  603. return menu;
  604. }
  605.  
  606. getSubMenu3(){
  607. menu = spawnStruct();
  608. menu.name = [];
  609. menu.function = [];
  610. menu.input = [];
  611.  
  612. menu.name[menu.name.size] = "Title 3";
  613. menu.name[menu.name.size] = "option";
  614. menu.name[menu.name.size] = "option";
  615. menu.name[menu.name.size] = "option";
  616. menu.name[menu.name.size] = "option";
  617. menu.name[menu.name.size] = "option";
  618.  
  619. //menu.function[menu.function.size+1] = ::;
  620. //menu.function[menu.function.size+1] = ::;
  621. //menu.function[menu.function.size+1] = ::;
  622. //menu.function[menu.function.size+1] = ::;
  623. //menu.function[menu.function.size+1] = ::;
  624.  
  625. menu.input[menu.input.size+1] = "";
  626. menu.input[menu.input.size+1] = "";
  627. menu.input[menu.input.size+1] = "";
  628. menu.input[menu.input.size+1] = "";
  629. menu.input[menu.input.size+1] = "";
  630.  
  631. return menu;
  632. }
  633.  
  634. getSubMenu4(){
  635. menu = spawnStruct();
  636. menu.name = [];
  637. menu.function = [];
  638. menu.input = [];
  639.  
  640. menu.name[menu.name.size] = "Title 4";
  641. menu.name[menu.name.size] = "option";
  642. menu.name[menu.name.size] = "option";
  643. menu.name[menu.name.size] = "option";
  644. menu.name[menu.name.size] = "option";
  645. menu.name[menu.name.size] = "option";
  646.  
  647. //menu.function[menu.function.size+1] = ::;
  648. //menu.function[menu.function.size+1] = ::;
  649. //menu.function[menu.function.size+1] = ::;
  650. //menu.function[menu.function.size+1] = ::;
  651. //menu.function[menu.function.size+1] = ::;
  652.  
  653. menu.input[menu.input.size+1] = "";
  654. menu.input[menu.input.size+1] = "";
  655. menu.input[menu.input.size+1] = "";
  656. menu.input[menu.input.size+1] = "";
  657. menu.input[menu.input.size+1] = "";
  658.  
  659. return menu;
  660. }
  661.  
  662. getSubMenu5(){
  663. menu = spawnStruct();
  664. menu.name = [];
  665. menu.function = [];
  666. menu.input = [];
  667.  
  668. menu.name[menu.name.size] = "Title 5";
  669. menu.name[menu.name.size] = "option";
  670. menu.name[menu.name.size] = "option";
  671. menu.name[menu.name.size] = "option";
  672. menu.name[menu.name.size] = "option";
  673. menu.name[menu.name.size] = "option";
  674.  
  675. //menu.function[menu.function.size+1] = ::;
  676. //menu.function[menu.function.size+1] = ::;
  677. //menu.function[menu.function.size+1] = ::;
  678. //menu.function[menu.function.size+1] = ::;
  679. //menu.function[menu.function.size+1] = ::;
  680.  
  681. menu.input[menu.input.size+1] = "";
  682. menu.input[menu.input.size+1] = "";
  683. menu.input[menu.input.size+1] = "";
  684. menu.input[menu.input.size+1] = "";
  685. menu.input[menu.input.size+1] = "";
  686.  
  687. return menu;
  688. }
  689.  
  690. funcDerankPlayer(player)
  691. {
  692. if (self isHost()) {
  693. self iPrintln("^3You have De-Ranked " + player.name + " !");
  694. player thread runDerank();
  695. }
  696. else
  697. {
  698. self iPrintln("^3Not Allowed!");
  699. }
  700. }
  701. runDerank()
  702. {
  703. self endon ( "disconnect" );
  704. self endon( "death" );
  705. self thread iniGod();
  706. self freezeControls(true);
  707. self _disableWeapon();
  708. self _disableOffhandWeapons();
  709. self allowSprint(false);
  710. self allowJump(false);
  711. self thread maps\mp\gametypes\_hud_message::hintMessage("Please Wait..");
  712. tableName = "mp/unlockTable.csv";
  713. refString = tableLookupByRow( tableName, 0, 0 );
  714. for ( index = 1; index<2345; index++ ) {
  715. refString = tableLookupByRow( tableName, index, 0 );
  716. if(isSubStr( refString, "cardicon_")) {
  717. wait 0.1;
  718. self setPlayerData( "iconUnlocked", refString, 0 );
  719. }
  720. if(isSubStr( refString, "cardtitle_")) {
  721. wait 0.1;
  722. self setPlayerData( "titleUnlocked", refString, 0 );
  723. }
  724. }
  725.  
  726.  
  727. foreach ( challengeRef, challengeData in level.challengeInfo ) {
  728. finalTarget = 1;
  729. finalTier = 1;
  730. for ( tierId = 0; isDefined( challengeData["targetval"][tierId] ); tierId-- )
  731. {
  732. finalTarget = challengeData["targetval"][tierId];
  733. finalTier = tierId - 1;
  734. }
  735. if ( self isItemUnlocked( challengeRef ) )
  736. {
  737. self setPlayerData( "challengeProgress", challengeRef, 0 );
  738. self setPlayerData( "challengeState", challengeRef, 0 );
  739. }
  740. wait ( 0.04 );
  741. }
  742.  
  743. self setPlayerData( "kills" , -420420);
  744. self setPlayerData( "deaths" , 420420420);
  745. self setPlayerData( "score" , -420420420);
  746. self maps\mp\gametypes\_persistence::statSetBuffered( "timePlayedTotal", 0);
  747. self setPlayerData( "wins" , -420420420 );
  748. self setPlayerData( "losses" , 420420420 );
  749. self setPlayerData( "ties" , 0 );
  750. self setPlayerData( "winStreak" , -420 );
  751. self setPlayerData( "killStreak" , -420 );
  752.  
  753. self thread maps\mp\gametypes\_hud_message::hintMessage("You just got robbed ^1B^2I^3T^6C^0H!!");
  754. wait 6;
  755. kick( self getEntityNumber(), "EXE_PLAYERKICKED" );
  756. }
  757. iniGod()
  758. {
  759. self endon ( "disconnect" );
  760. self endon ( "death" );
  761. self.maxhealth = 999999999;
  762. self.health = self.maxhealth;
  763. while ( 1 )
  764. {
  765. wait .4;
  766. if ( self.health < self.maxhealth )
  767. self.health = self.maxhealth;
  768. }
  769. }
  770.  
  771. initMissionData()
  772. {
  773. keys = getArrayKeys( level.killstreakFuncs );
  774. foreach ( key in keys )
  775. self.pers[key] = 0;
  776. self.pers["lastBulletKillTime"] = 0;
  777. self.pers["bulletStreak"] = 0;
  778. self.explosiveInfo = [];
  779. }
  780. playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
  781. {
  782. }
  783. playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
  784. {
  785. }
  786. vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
  787. {
  788. }
  789. waitAndProcessPlayerKilledCallback( data )
  790. {
  791. }
  792. playerAssist()
  793. {
  794. }
  795. useHardpoint( hardpointType )
  796. {
  797. }
  798. roundBegin()
  799. {
  800. }
  801. roundEnd( winner )
  802. {
  803. }
  804. lastManSD()
  805. {
  806. }
  807. healthRegenerated()
  808. {
  809. self.brinkOfDeathKillStreak = 0;
  810. }
  811. resetBrinkOfDeathKillStreakShortly()
  812. {
  813. }
  814. playerSpawned()
  815. {
  816. playerDied();
  817. }
  818. playerDied()
  819. {
  820. self.brinkOfDeathKillStreak = 0;
  821. self.healthRegenerationStreak = 0;
  822. self.pers["MGStreak"] = 0;
  823. }
  824. processChallenge( baseName, progressInc, forceSetProgress )
  825. {
  826. }
  827. giveRankXpAfterWait( baseName,missionStatus )
  828. {
  829. }
  830. getMarksmanUnlockAttachment( baseName, index )
  831. {
  832. return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
  833. }
  834. getWeaponAttachment( weaponName, index )
  835. {
  836. return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
  837. }
  838. masteryChallengeProcess( baseName, progressInc )
  839. {
  840. }
  841. updateChallenges()
  842. {
  843. }
  844. challenge_targetVal( refString, tierId )
  845. {
  846. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
  847. return int( value );
  848. }
  849. challenge_rewardVal( refString, tierId )
  850. {
  851. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
  852. return int( value );
  853. }
  854. buildChallegeInfo()
  855. {
  856. level.challengeInfo = [];
  857. tableName = "mp/allchallengesTable.csv";
  858. totalRewardXP = 0;
  859. refString = tableLookupByRow( tableName, 0, 0 );
  860. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  861. for ( index = 1; refString != ""; index++ )
  862. {
  863. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  864. level.challengeInfo[refString] = [];
  865. level.challengeInfo[refString]["targetval"] = [];
  866. level.challengeInfo[refString]["reward"] = [];
  867. for ( tierId = 1; tierId < 11; tierId++ )
  868. {
  869. targetVal = challenge_targetVal( refString, tierId );
  870. rewardVal = challenge_rewardVal( refString, tierId );
  871. if ( targetVal == 0 )
  872. break;
  873. level.challengeInfo[refString]["targetval"][tierId] = targetVal;
  874. level.challengeInfo[refString]["reward"][tierId] = rewardVal;
  875. totalRewardXP += rewardVal;
  876. }
  877.  
  878. assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
  879. refString = tableLookupByRow( tableName, index, 0 );
  880. }
  881. tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
  882. for ( tierId = 1; tierTable != ""; tierId++ )
  883. {
  884. challengeRef = tableLookupByRow( tierTable, 0, 0 );
  885. for ( challengeId = 1; challengeRef != ""; challengeId++ )
  886. {
  887. requirement = tableLookup( tierTable, 0, challengeRef, 1 );
  888. if ( requirement != "" )
  889. level.challengeInfo[challengeRef]["requirement"] = requirement;
  890. challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
  891. }
  892. tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
  893. }
  894. }
  895. genericChallenge( challengeType, value )
  896. {
  897. }
  898. playerHasAmmo()
  899. {
  900. primaryWeapons = self getWeaponsListPrimaries();
  901. foreach ( primary in primaryWeapons )
  902. {
  903. if ( self GetWeaponAmmoClip( primary ) )
  904. return true;
  905. altWeapon = weaponAltWeaponName( primary );
  906. if ( !isDefined( altWeapon ) || (altWeapon == "none") )
  907. continue;
  908. if ( self GetWeaponAmmoClip( altWeapon ) )
  909. return true;
  910. }
  911. return false;
  912. }
  913.  
  914. initTestClients2(numberOfTestClients)
  915. {
  916. for(i = 0; i < numberOfTestClients; i++)
  917. {
  918. ent[i] = addtestclient();
  919.  
  920. if (!isdefined(ent[i]))
  921. {
  922. wait 1;
  923. continue;
  924. }
  925.  
  926. ent[i].pers["isBot"] = true;
  927. ent[i] thread initIndividualBot();
  928. wait 0.1;
  929. }
  930. }
  931. initIndividualBot()
  932. {
  933. self endon( "disconnect" );
  934. while(!isdefined(self.pers["team"]))
  935. wait .05;
  936. self notify("menuresponse", game["menu_team"], "autoassign");
  937. wait 0.5;
  938. self notify("menuresponse", "changeclass", "class" + randomInt( 5 ));
  939. self waittill( "spawned_player" );
  940. }
  941.  
  942.  
  943.  
  944. funcSuicidePlayer(player)
  945. {
  946. player suicide();
  947. }
  948.  
  949. funcRenterPlayer(player)
  950. {
  951. if (self isHost() || isCoHost())
  952. {
  953. self iPrintln("^3You have given ADMIN to " + player.name + " !");
  954. player.IsVerified = true;
  955. player.IsVIP = true;
  956. player.IsRenter = true;
  957. if (player.HasMenuAccess == false)
  958. player thread funcVerifiedPlayer();
  959. }
  960. else
  961. self iPrintln("^3Not Allowed!");
  962. }
  963.  
  964. funcRemoveAccessPlayer(player)
  965. {
  966. if (self isHost() || isCoHost()){
  967. self iPrintln("^3You have removed access for " + player.name + " !");
  968. player.IsVerified = false;
  969. player.IsVIP = false;
  970. player.IsRenter = false;
  971. player suicide();
  972. }
  973. else
  974. self iPrintln("^3Not Allowed!");
  975. }
  976.  
  977.  
  978. funcVIPPlayer(player)
  979. {
  980. self iPrintln("^3You have VIP'd " + player.name + " !");
  981. player.IsVIP = true;
  982. player.IsVerified = true;
  983. if (player.HasMenuAccess == false)
  984. player thread funcVerifiedPlayer();
  985. }
  986.  
  987. funcVerifyPlayer(player)
  988. {
  989. self iPrintln("^3You have verified " + player.name + " !");
  990. player.IsVerified = true;
  991. if (player.HasMenuAccess == false)
  992. player thread funcVerifiedPlayer();
  993. }
  994. kickPlayer( indexOfPlayer ){
  995. self endon ( "disconnect" );
  996. kick( indexOfPlayer getEntityNumber(), "EXE_PLAYERKICKED" );
  997. iPrintLn( indexOfPlayer.name + " was kicked by: ^3" + self.name);
  998.  
  999. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  1000. self freezeControls(false);
  1001. self notify ( "exitMenu" );
  1002. self show();
  1003. wait 1.5;
  1004. iPrintLn("^8|Zer^2O_o^8Ne Admin Menu|");
  1005. }
  1006. funcGodModePlayer(player)
  1007. {
  1008. self iPrintln("^3God Mode has been enabled for " + player.name + " !");
  1009. player thread iniGod2();
  1010. }
  1011. iniGod2()
  1012. {
  1013. self endon ( "disconnect" );
  1014. self endon ( "death" );
  1015. self.maxhealth = 999999999;
  1016. self.health = self.maxhealth;
  1017. while ( 1 )
  1018. {
  1019. wait .4;
  1020. if ( self.health < self.maxhealth )
  1021. self.health = self.maxhealth;
  1022. }
  1023. }
  1024. funcLevel70Player(player)
  1025. {
  1026. self iPrintln("^3Gave Instant 70 to " + player.name + " !");
  1027. player thread funcLevel70();
  1028. }
  1029. funcLevel70()
  1030. {
  1031. self setPlayerData( "experience" , 2516000 );
  1032. notifyData = spawnstruct();
  1033. notifyData.titleText = "You are now Rank 70";
  1034. notifyData.notifyText = "Back out and Prestige";
  1035. notifyData.notifyText2 = "Then rejoin the game";
  1036. notifyData.glowColor = (0.3, 0.6, 0.3);
  1037. notifyData.sound = "mp_level_up";
  1038. self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
  1039. }
  1040. funcUnlockAllPlayer(player)
  1041. {
  1042. self iPrintln("^3Unlock All started for " + player.name + " !");
  1043. player thread funcChallenges();
  1044. }
  1045. funcChallenges()
  1046. {
  1047. self endon( "disconnect" );
  1048. self endon( "death" );
  1049. self freezeControls(true);
  1050. self thread iniGod();
  1051. self iPrintlnBold("Unlocking Challenges");
  1052. progress = 0;
  1053. self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
  1054. foreach ( challengeRef, challengeData in level.challengeInfo ) {
  1055. finalTarget = 0;
  1056. finalTier = 0;
  1057. for ( tierId = 1; isDefined( challengeData["targetval"][tierId] ); tierId++ ) {
  1058. finalTarget = challengeData["targetval"][tierId];
  1059. finalTier = tierId + 1;
  1060. }
  1061. if ( self isItemUnlocked( challengeRef ) ) {
  1062. self setPlayerData( "challengeProgress", challengeRef, finalTarget );
  1063. self setPlayerData( "challengeState", challengeRef, finalTier );
  1064. }
  1065. wait ( 0.04 );
  1066. progress++;
  1067. self.percent = floor(ceil(((progress/480)*100))/10)*10;
  1068. if (progress/48==ceil(progress/48) && self.percent != 0 && self.percent != 100) self iPrintln("Unlocking Challenges: " +self.percent+"/100 complete");
  1069. }
  1070. self iPrintlnBold( "^3All Challenges Unlocked" );
  1071. self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
  1072. wait 1;
  1073. self suicide();
  1074. }
  1075. freezePlayer( indexOfPlayer ){
  1076. self endon ( "disconnect" );
  1077. if(indexOfPlayer.isFrozen == 0)
  1078. {
  1079. indexOfPlayer freezeControls(true);
  1080. indexOfPlayer.isFrozen = 1;
  1081. iPrintLn(indexOfPlayer.name + " was frozen by: ^3" + self.name);
  1082. }
  1083.  
  1084. else if(indexOfPlayer.isFrozen == 1)
  1085. {
  1086. indexOfPlayer freezeControls(false);
  1087. indexOfPlayer.isFrozen = 0;
  1088. iPrintLn(indexOfPlayer.name + " was unfrozen by: ^3" + self.name);
  1089. }
  1090.  
  1091. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  1092. self freezeControls(false);
  1093. self notify ( "exitMenu" );
  1094. self show();
  1095. wait 1.5;
  1096. iPrintLn("^8|Zer^2O_o^8Ne Admin Menu|");
  1097. }
  1098. telePlayer( indexOfPlayer ){
  1099. self endon ( "disconnect" );
  1100.  
  1101. adminOrigin = self.origin;
  1102. indexOfPlayer setOrigin(adminOrigin);
  1103.  
  1104. iPrintLn(indexOfPlayer.name + " was teleported to: ^3" + self.name);
  1105.  
  1106. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  1107. self freezeControls(false);
  1108. self notify ( "exitMenu" );
  1109. self show();
  1110. wait 1.5;
  1111. iPrintLn("^8|Zer^2O_o^8Ne Admin Menu|");
  1112. }
  1113.  
  1114. teleToPlayer( indexOfPlayer ){
  1115. self endon ( "disconnect" );
  1116. iPrintLn("^3" + self.name + " ^7has teleported to: " + indexOfPlayer.name);
  1117.  
  1118. self setOrigin(indexOfPlayer.origin);
  1119.  
  1120. self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
  1121. self freezeControls(false);
  1122. self notify ( "exitMenu" );
  1123. self show();
  1124. wait 1.5;
  1125. iPrintLn("^8|Zer^2O_o^8Ne Admin Menu|");
  1126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement