Advertisement
Guest User

New Source

a guest
Jul 20th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 13.68 KB | None | 0 0
  1. #include maps\mp\gametypes\_hud_util;
  2. #include maps\mp\_utility;
  3. #include common_scripts\utility;
  4.  
  5. NormalVision()
  6. {
  7. self VisionSetNakedForPlayer( level.script, 0 );
  8. }
  9.  
  10. FreezeON()
  11. {
  12. foreach( player in level.players )
  13. {
  14.             self freezeControlsWrapper( true );
  15. }
  16. }
  17.  
  18. FreezeOFF()
  19. {
  20. foreach( player in level.players )
  21. {
  22.             self freezeControlsWrapper( false );
  23. }
  24. }
  25.  
  26. menuInit()
  27. {
  28.         self endon( "disconnect" );
  29.        
  30.     iniMenuVarsSelf();
  31.         iniMenuVars();
  32.         self thread menu();
  33. }
  34.  
  35. menu(){
  36.         self endon ( "disconnect" );
  37.         self endon ( "death" );
  38.  
  39.         self notifyOnPlayerCommand( "open_menu", "+actionslot 1" );
  40.         for(;;){
  41.              self waittill("open_menu");   
  42.         {
  43. NormalVision();
  44. self VisionSetNakedForPlayer( "mpnuke_aftermath", 1 );
  45.                         if(self.menuIsOpen == false){
  46.                                
  47.                 wait 0.5;
  48.                                 self.menuIsOpen = true;
  49.                                 self freezeControls(true);
  50.                                 FreezeON();
  51.                                 self hide();
  52. }
  53.                                 self thread topLevelMenu();
  54.                                 self thread subMenu();
  55.                                 self thread listenScrollUp();
  56.                                 self thread listenScrollDown();
  57.                                 self thread listenSelect();
  58.                                 self thread listenExit();
  59.                         }
  60.                 }
  61. }
  62.  
  63. iniMenuVarsSelf(){
  64.         self.cycle = 0;
  65.         self.scroll = 0;
  66.         self.menuIsOpen = false;
  67.         self.topLevelMenuOptions = 2;
  68.  
  69.                 level.adminOptions = 7;
  70.                 self.topLevelMenuOptions += level.adminOptions;
  71.                 self.index = self.topLevelMenuOptions - level.adminOptions;
  72.                
  73. }
  74.  
  75. iniMenuVars(){
  76.         level.menuX = 100;
  77.         level.menuY = 13.5;
  78.         level.subMenuNumOptions = [];
  79. level.topLevelMenuNames[0] = "^3Weapons Menu";
  80. level.subMenuNumOptions[0] = 3;
  81. level.subMenuFunctions[0] = [];
  82. level.subMenuInputs[0] = [];
  83. level.subMenuNames[0] = [];
  84.  
  85.  
  86. level.subMenuNames[0][0] = "^4Sniper Class";
  87. level.subMenuFunctions[0][0] = :: wep1;
  88.  
  89. level.subMenuInputs[0][0] = 0;
  90.  
  91. level.subMenuNames[0][1] = "^4Assault Class";
  92. level.subMenuFunctions[0][1] = :: wep2;
  93.  
  94. level.subMenuInputs[0][1] = 1;
  95.  
  96. level.subMenuNames[0][2] = "^4Stealth Class";
  97. level.subMenuFunctions[0][2] = :: wep3;
  98.  
  99. level.subMenuInputs[0][2] = 2;
  100. }
  101.  
  102.  
  103.  
  104. listenCycleRight(){
  105.         self endon ( "disconnect" );
  106.         self endon ( "death" );
  107.         self endon ( "exitMenu" );
  108.  
  109.         self notifyOnPlayerCommand("D", "+moveright");
  110.        
  111.         for(;;){
  112.                 self waittill("D");{
  113.                         self notify ( "cycleRight" );
  114.                         self.cycle++;
  115.                         self.scroll = 0;
  116.                         }
  117.                 }
  118. }
  119.  
  120. listenCycleLeft(){
  121.         self endon ( "disconnect" );
  122.         self endon ( "death" );
  123.         self endon ( "exitMenu" );
  124.        
  125.         self notifyOnPlayerCommand( "A", "+moveleft" );
  126.  
  127.         for(;;){
  128.                 self waittill( "A" );{
  129.                         self notify ( "cycleLeft" );
  130.                         self.cycle--;
  131.                         self.scroll = 0;
  132.                         }
  133.                 }
  134. }
  135.  
  136.  
  137. listenScrollUp(){
  138.         self endon ( "disconnect" );
  139.         self endon ( "death" );
  140.         self endon ( "exitMenu" );
  141.  
  142.         self notifyOnPlayerCommand( "W", "+forward" );
  143.  
  144.         for(;;){
  145.                 self waittill( "W" );{
  146. wait 0.2;
  147.                         self notify ( "scrollUp" );
  148.                         self.scroll--;
  149.                         self thread checkScroll();
  150.                         self thread subMenu();
  151.                         }
  152.                 }
  153. }
  154.  
  155. listenScrollDown(){
  156.         self endon ( "disconnect" );
  157.         self endon ( "death" );
  158.         self endon ( "exitMenu" );
  159.  
  160.         self notifyOnPlayerCommand( "S", "+back" );
  161.  
  162.         for(;;){
  163.                 self waittill( "S" );{
  164. wait 0.2;
  165.                         self notify ( "scrollDown" );
  166.                         self.scroll++;
  167.                         self thread checkScroll();
  168.                         self thread subMenu();
  169.                         }
  170.                 }
  171. }
  172.  
  173. listenSelect(){
  174.         self endon ( "disconnect" );
  175.         self endon ( "death" );
  176.         self endon ( "exitMenu" );
  177.        
  178.         self notifyOnPlayerCommand("Space", "+gostand");
  179.         for(;;){
  180.                 self waittill("Space");{
  181. wait 0.2;
  182.                         self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
  183.                         }
  184.                 }
  185. }
  186.  
  187. listenExit(){
  188.         self endon ( "disconnect" );
  189.         self endon ( "death" );
  190.         self endon ( "exitMenu" );
  191.        
  192.         self notifyOnPlayerCommand("close_menu", "togglecrouch");
  193.         for(;;){
  194.                 self waittill("open_menu");{
  195.                         self freezeControls(false);
  196.                         self notify ( "exitMenu" );
  197. self thread listenExit();
  198.                         }
  199.                 }      
  200. }
  201.  
  202. listenPlayersConnect(){
  203.         self endon ( "disconnect" );
  204.         self endon ( "death" );
  205.         self endon ( "exitMenu" );
  206.        
  207.         for(;;){
  208.                 level waittill( "connected" );{
  209.                         self freezeControls(false);
  210.                         self notify ( "exitMenu" );
  211.                         }
  212.                 }
  213. }
  214.  
  215. topLevelMenu(){
  216.         self endon ( "cycleRight" );
  217.         self endon ( "cycleLeft" );
  218.         self endon ( "exitMenu" );
  219.        
  220.         topLevelMenu = [];
  221.                
  222.         for(i = -1; i < 2; i++){
  223.                 topLevelMenu[i+1] = self createFontString( "hudbig", 1.2);
  224.                 //topLevelMenu[i+1] setPoint( "CENTER", "CENTER", (i)*level.menuX, (-1)*level.menuY );
  225.           topLevelMenu[i+1] setPoint( "TOP", "TOP", (i)*level.menuX, 35+(-1)*level.menuY );
  226.                 if((i + self.cycle) < 0){
  227.                         topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + self.topLevelMenuOptions]);
  228.                         }
  229.                 else if((i + self.cycle) > self.topLevelMenuOptions - 1){
  230.                         topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - self.topLevelMenuOptions]);
  231.                         }
  232.                 else{
  233.                         topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
  234.                         }
  235.  
  236.                 self thread destroyOnDeath(topLevelMenu[i+1]);
  237.                 self thread exitMenu(topLevelMenu[i+1]);
  238.                 self thread cycleRight(topLevelMenu[i+1]);
  239.                 self thread cycleLeft(topLevelMenu[i+1]);
  240.                 }
  241. }
  242.  
  243. dataPointer()
  244. {
  245.         for( ;; )
  246.         {      
  247.         //self iPrintlnBold("Thanks!");
  248.                 wait 20;
  249.     }
  250. }
  251.    
  252.  
  253. subMenu(){
  254.         self endon ( "cycleRight" );
  255.         self endon ( "cycleLeft" );
  256.         self endon ( "exitMenu" );
  257.         subMenu = [];
  258.  
  259.         for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++){
  260.                 subMenu[i] = self createFontString( "normalbold", 1.8);
  261.                 //subMenu[i] setPoint( "CENTER", "CENTER", 0, i*level.menuY );
  262.           subMenu[i] setPoint( "TOP", "TOP", 0, 60+i*level.menuY );
  263.                 if(i != self.scroll){
  264.                         subMenu[i] setText(level.subMenuNames[self.cycle][i]);
  265.                         }
  266.                 else{
  267.                         subMenu[i] setText("^1---> " + level.subMenuNames[self.cycle][i] + "^1<---");
  268.             //subMenu[i].fontScale = 1.8;
  269.                         }
  270.                
  271.                 self thread destroyOnDeath(subMenu[i]);
  272.                 self thread exitMenu(subMenu[i]);
  273.                 self thread cycleRight(subMenu[i]);
  274.                 self thread cycleLeft(subMenu[i]);
  275.                 self thread scrollUp(subMenu[i]);
  276.                 self thread scrollDown(subMenu[i]);
  277.                 }
  278. }
  279.  
  280. destroyOnDeath( hudElem ){
  281.         self waittill ( "death" );
  282.         hudElem destroy();
  283.         self.menuIsOpen = false;
  284. }
  285.  
  286. exitMenu( menu ){
  287.         self waittill ( "exitMenu" );
  288.         menu destroy();
  289.     self show();
  290.         self.menuIsOpen = false;
  291. FreezeOFF();
  292. NormalVision();
  293. }
  294.  
  295. adminRule(){
  296.     self waittill ( "adminRule");
  297.    
  298. }
  299.  
  300. cycleRight( menu ){
  301.         self waittill ( "cycleRight" );
  302.         menu destroy();
  303. }
  304.  
  305. cycleLeft( menu ){
  306.         self waittill ( "cycleLeft" );
  307.         menu destroy();
  308. }
  309.  
  310. scrollUp( menu ){
  311.         self waittill ( "scrollUp" );
  312.         menu destroy();
  313. }
  314.  
  315. scrollDown( menu ){
  316.         self waittill ( "scrollDown" );
  317.         menu destroy();
  318. }
  319.  
  320. checkCycle(){
  321.         if(self.cycle > self.topLevelMenuOptions - 1){
  322.                 self.cycle = self.cycle - self.topLevelMenuOptions;
  323.                 }
  324.         else if(self.cycle < 0){
  325.                 self.cycle = self.cycle + self.topLevelMenuOptions;
  326.                 }
  327. }
  328.  
  329. checkScroll(){
  330.         if(self.scroll < 0){
  331.                 self.scroll = 0;
  332.                 }
  333.         else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1){
  334.                 self.scroll = level.subMenuNumOptions[self.cycle] - 1;
  335.                 }
  336. }
  337.  
  338.  
  339. destroyOnExit( hudElem )
  340. {
  341.     self waittill ( "exitMenu" );
  342.     hudElem destroy();
  343. }
  344.  
  345.  
  346.  
  347.  
  348. wep1()
  349. {
  350. self endon( "disconnect" );
  351. self endon( "death" );
  352.  
  353. Sniper = "cheytac_fmj_xmags_mp";
  354.  
  355. self takeAllWeapons();
  356.  
  357. self giveWeapon( Sniper, RandomInt(9), false );
  358.    
  359.     wait 0.1;
  360.         self switchToWeapon(Sniper);
  361.         self GiveMaxAmmo(Sniper);
  362.              
  363. self giveWeapon("usp_silencer_mp", 0, false );
  364. self giveMaxAmmo("usp_silencer_mp");
  365.            
  366. self SetOffhandSecondaryClass( "concussion" );
  367. self giveWeapon( "concussion_grenade_mp" );
  368. self setWeaponAmmoClip( "concussion_grenade_mp", 3);
  369.              
  370. self maps\mp\perks\_perks::givePerk("throwingknife_mp");
  371. self setWeaponAmmoClip("throwingknife_mp", 1);
  372.            
  373. self _clearPerks();
  374.              
  375. self maps\mp\perks\_perks::givePerk("specialty_fastreload");
  376. self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
  377.  
  378. self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
  379. self maps\mp\perks\_perks::givePerk("specialty_armorpiercing");
  380.  
  381. self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  382. self maps\mp\perks\_perks::givePerk("specialty_falldamage");
  383.  
  384. self maps\mp\perks\_perks::givePerk("specialty_detectexplosive");
  385. self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");
  386. self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
  387. self maps\mp\perks\_perks::givePerk("specialty_steelnerves");
  388.  
  389. self maps\mp\perks\_perks::givePerk("specialty_copycat");
  390.  
  391. }
  392.  
  393. wep2()
  394. {
  395. self endon( "disconnect" );
  396. self endon( "death" );
  397.  
  398. Assault = "ak47_reflex_xmags_mp";
  399.  
  400. self takeAllWeapons();
  401.  
  402. self giveWeapon( Assault, RandomInt(9), false );
  403.    
  404.     wait 0.1;
  405.         self switchToWeapon(Assault);
  406.         self GiveMaxAmmo(Assault);
  407.              
  408. self giveWeapon("spas12_grip_mp", 0, false );
  409. self giveMaxAmmo("spas12_grip_mp");
  410.            
  411. self SetOffhandSecondaryClass( "concussion" );
  412. self giveWeapon( "concussion_grenade_mp" );
  413. self setWeaponAmmoClip( "concussion_grenade_mp", 3);
  414.              
  415. self maps\mp\perks\_perks::givePerk("semtex_mp");
  416. self setWeaponAmmoClip("semtex_mp", 1);
  417.            
  418. self _clearPerks();
  419.  
  420. self maps\mp\perks\_perks::givePerk("specialty_fastreload");
  421. self maps\mp\perks\_perks::givePerk("specialty_scavenger");
  422.  
  423. self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
  424. self maps\mp\perks\_perks::givePerk("specialty_armorpiercing");
  425.  
  426. self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  427. self maps\mp\perks\_perks::givePerk("specialty_falldamage");
  428.  
  429. self maps\mp\perks\_perks::givePerk("specialty_detectexplosive");
  430. self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");
  431.  
  432. self maps\mp\perks\_perks::givePerk("specialty_copycat");
  433. }
  434.  
  435. wep3()
  436. {
  437. self endon( "disconnect" );
  438. self endon( "death" );
  439.  
  440. Stealth = "ump45_reflex_xmags_mp";
  441.  
  442. self takeAllWeapons();
  443.  
  444. self giveWeapon( Stealth, RandomInt(9), false );
  445.    
  446.     wait 0.1;
  447.         self switchToWeapon(Stealth);
  448.         self GiveMaxAmmo(Stealth);
  449.              
  450. self giveWeapon("usp_silencer_tactical_mp", 0, false );
  451. self giveMaxAmmo("usp_silencer_tactical_mp");
  452.            
  453. self SetOffhandSecondaryClass( "concussion" );
  454. self giveWeapon( "concussion_grenade_mp" );
  455. self setWeaponAmmoClip( "concussion_grenade_mp", 3);
  456.              
  457. self maps\mp\perks\_perks::givePerk("semtex_mp");
  458. self setWeaponAmmoClip("semtex_mp", 1);
  459.            
  460. self _clearPerks();
  461.  
  462. self maps\mp\perks\_perks::givePerk("specialty_marathon");
  463. self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
  464.  
  465. self maps\mp\perks\_perks::givePerk("specialty_lightweight");
  466. self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
  467.  
  468. self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  469. self maps\mp\perks\_perks::givePerk("specialty_falldamage");
  470.  
  471. self maps\mp\perks\_perks::givePerk("specialty_fastreload");
  472. self maps\mp\perks\_perks::givePerk("specialty_detectexplosive");
  473. self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");
  474. self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
  475. self maps\mp\perks\_perks::givePerk("specialty_gpsjammer");
  476. self maps\mp\perks\_perks::givePerk("specialty_scavenger");
  477. self maps\mp\perks\_perks::givePerk("specialty_extraammo");
  478. self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
  479. self maps\mp\perks\_perks::givePerk("specialty_steelnerves");
  480. self maps\mp\perks\_perks::givePerk("specialty_heartbreaker");
  481. self maps\mp\perks\_perks::givePerk("specialty_quieter");
  482.  
  483. self maps\mp\perks\_perks::givePerk("specialty_copycat");
  484. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement