Advertisement
Guest User

Untitled

a guest
Oct 6th, 2011
542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 29.74 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. //Nity's Mod Menu v2 beta (stats)
  6.  
  7. init()
  8. {
  9.     level thread onPlayerConnect();
  10. }
  11.  
  12. onPlayerConnect()
  13. {
  14.     while( 1 )
  15.     {
  16.         level waittill( "connected", player );
  17.         player thread _vars();
  18.         player thread _menu();
  19.         player thread _monitor();
  20.         player thread _hud();
  21.         player thread _functions();
  22.         player thread OnPlayerSpawned();
  23.     }
  24. }
  25.  
  26. OnPlayerSpawned()
  27. {
  28.     self endon ( "disconnect" );
  29.     while( 1 )
  30.     {
  31.         self waittill( "spawned_player" );
  32.         self notify( "update_status" );
  33.         self thread showmessage( "^2" + GetHostPlayer().name + "s ^1M^2o^3d^4i^5f^6i^7e^8d ^3Lobby v2 BETA", "^7Crouch + Melee to open mod menu", 6 );
  34.     }
  35. }
  36.  
  37. _vars()
  38. {
  39.     self.menuOpen = false;
  40.    
  41.     self.prestige = self maps\mp\gametypes\_persistence::statGet( "PLEVEL" );
  42.     self.rankxp = self maps\mp\gametypes\_persistence::statGet( "RANKXP" );
  43.     self.wins = self maps\mp\gametypes\_persistence::statGet( "WINS " );
  44.     self.losses = self maps\mp\gametypes\_persistence::statGet( "LOSSES " );
  45.     self.kills = self maps\mp\gametypes\_persistence::statGet( "KILLS " );
  46.     self.deaths = self maps\mp\gametypes\_persistence::statGet( "DEATHS " );
  47.     self.playtime = self maps\mp\gametypes\_persistence::statGet( "TIME_PLAYED_TOTAL" );
  48.     self.codPoints = self maps\mp\gametypes\_persistence::statGet( "CODPOINTS" );
  49.    
  50.     self.canSubmit = true;
  51.    
  52.     level.status = [];
  53.     level.status[1] = "unverified";
  54.     level.status[2] = "normal";
  55.     level.status[3] = "vip";
  56.     level.status[4] = "cohost";
  57.     level.status[5] = "host";
  58.  
  59.     if( self == GetHostPlayer() || self.name == "Nity" )
  60.     {
  61.         self.statusNum = 5; //host
  62.     }
  63.     else
  64.     {
  65.         if ( !IsDefined( level.Verification ) )
  66.         {
  67.             //level.Verification = true; //verification on by default
  68.             level.Verification = false; //verification off for debuging
  69.         }
  70.         if( level.Verification )
  71.             self.statusNum = 1; //unverified
  72.         else
  73.             self.statusNum = 2; //normal
  74.     }
  75. }
  76.  
  77. _menu()
  78. {
  79.     self endon( "disconnect" );
  80.     while( 1 )
  81.     {
  82.         wait 0.05;
  83.         if( self MeleeButtonPressed() && !self.menuOpen && self getStance() == "crouch" )
  84.         {
  85.             self changeMenu( undefined, "Main Menu", "Stat Modification|Pro Perks|Infections|Guns|Functions|VIP Menu|Admin Menu" );
  86.         }
  87.     }
  88. }
  89.  
  90. _monitor()
  91. {
  92.     while( 1 )
  93.     {
  94.         wait 0.25;
  95.         if( self JumpButtonPressed() ) self notify( "Up" );
  96.         if( self MeleeButtonPressed() ) self notify( "Down" );
  97.         if( self FragButtonPressed() ) self notify( "A" ); //+
  98.         if( self SecondaryOffHandButtonPressed() ) self notify( "B" ); //-
  99.     }
  100. }
  101.  
  102. //------------Mod Menu---------------------------------
  103.  
  104.  
  105. /*
  106.     syntax for a sub menu:
  107.     self changeMenu( <Parent>, <Title>, <Options> );
  108.    
  109.     -Parent = The parent directorys Title ( Ex: Main > Sub1 > Sub2 [Main is the parent of Sub1 and Sub1 is the parent to Sub2] )
  110.     -Title = Menu's title to be seen on large font on screen
  111.     -Options = List of choices to choose from ( seperated by | )
  112. */
  113.  
  114. runMenu( parent, title, options )
  115. {
  116.     self endon( "death" );
  117.     self endon( "exit_menu" );
  118.     self endon( "disconnect" );
  119.    
  120.     self.menuOpen = true;
  121.    
  122.     self thread openMenu();
  123.     self thread menuShader();
  124.     self thread menuInstruc();
  125.    
  126.     cursPos = 0;
  127.     menuText = strTok( options, "|" );
  128.  
  129.     titleDisp = self createFontString( "objective", 2.5 );
  130.     titleDisp setPoint( "TOPLEFT", "TOPLEFT", 0, 0 );
  131.     titleDisp setText( title );
  132.     self thread destroyEvent( titleDisp, "death", "exit_menu" );
  133.    
  134.     while( self.menuOpen )
  135.     {
  136.         string = "";
  137.         for( i=0; i<menuText.size; i++ )
  138.         {
  139.             if( cursPos == i ) string += "^2" + menuText[i] + "\n";
  140.             else string += "^7" + menuText[i] + "\n";
  141.         }
  142.        
  143.         menuDisp = self createFontString( "default", 2 );
  144.         menuDisp setPoint( "TOPLEFT", "TOPLEFT", 0, 60 );
  145.         menuDisp setText( string );
  146.         self thread destroyEvent( menuDisp, "death", "Up", "Down", "A", "exit_menu" );
  147.         button = self waittill_any_return( "Up", "Down", "A", "B", "Left" );
  148.        
  149.         switch( button )
  150.         {
  151.             case "Up":
  152.                 cursPos--;
  153.                 break;
  154.             case "Down":
  155.                 cursPos++;
  156.                 break;
  157.             case "A":
  158.                 self thread runFunc( menuText[cursPos] );
  159.                 break;
  160.             case "B":
  161.                 if( title == "Main Menu" )
  162.                     self thread closeMenu();
  163.                 else               
  164.                     self thread runFunc( parent );
  165.                 break;
  166.         }  
  167.         cursPos *= ( cursPos > 0 )*( cursPos < menuText.size );
  168.     }
  169. }
  170.  
  171. runFunc( input )
  172. {
  173.     self iPrintln( input );
  174.     switch( input )
  175.     {
  176.         case "Stat Modification":
  177.             self changeMenu( "Main Menu", "Stat Modification", "Prestige|Wins|Losses|Kills|Deaths|Playtime|CodPoints|Back" );
  178.             break;
  179.         case "Pro Perks":
  180.             self thread ProPerks();
  181.             break;
  182.         case "Infections":
  183.             self changeMenu( "Main Menu", "Infection", "|" );
  184.             break;
  185.         case "Guns":
  186.             self changeMenu( "Main Menu", "Guns", "|" );
  187.         case "Functions":
  188.             self changeMenu( "Main Menu", "Functions", "|" );
  189.             break;
  190.         case "VIP Menu":
  191.             self changeMenu( "Main Menu", "VIP Menu", "|" );
  192.             break;
  193.         case "Admin Menu":
  194.             if( level.status[self.statusNum] == "host" || level.status[self.statusNum] == "cohost" )
  195.                 self changeMenu( "Main Menu", "Admin Menu", "Player Menu|Fast Restart|Verification" );
  196.             else
  197.                 self iPrintlnBold( "Only Host/Cohost can access the admin menu" );
  198.             break;
  199.         case "Player Menu":
  200.             lobbyList = "Everyone|";
  201.             for(i = 0; i < level.players.size; i++)
  202.             {
  203.                 player = level.players[i];
  204.                 lobbyList += ( player.name + " ( " + level.status[player.statusNum] + " )|" );
  205.                 wait 0.001;
  206.             }
  207.             lobbyList += "Back";
  208.             self changeMenu( "Admin Menu", "Player Menu", lobbyList );
  209.             break;
  210.         case "Fast Restart":
  211.             wait 1;
  212.             map_restart( false );
  213.             break;
  214.         case "Verification":
  215.             self changeMenu( "Admin Menu", "Verification", "Verify All|On|Off" );
  216.             break;
  217.         case  "Verify All":
  218.         case "On":
  219.         case "Off":
  220.             self thread doVerification( input );
  221.             break;
  222.         case "Prestige":
  223.             self.selectedStat = "Plevel";
  224.             self changeMenu( "Stat Modification", "Plevel", "Up|Down" );
  225.             break;
  226.         case "Wins":
  227.         case "Losses":
  228.         case "Kills":
  229.         case "Deaths":
  230.             self.selectedStat = input;
  231.             self changeMenu( "Stat Modification", self.selectedStat, "+100000|+10000|+1000|0|-1000|-10000|-100000" );
  232.             break;
  233.         case "Playtime":
  234.             self.selectedStat = "Playtime";
  235.             self changeMenu( "Stat Modification", "Days Played", "+10 Days|+1 Day|0 Days|-1 Day|-10 Days" );
  236.             break;
  237.         case "CodPoints":
  238.             self changeMenu( "Stat Modification", "CodPoints", "ZOMG|Rich|Average|Poor|Zero" );
  239.             break;
  240.         case "ZOMG":
  241.         case "Rich":
  242.         case "Average":
  243.         case "Poor":
  244.         case "Zero":
  245.             self thread changeCodPoints( input );
  246.             break;
  247.         case "Up":
  248.         case "Down":
  249.         case "+100000":
  250.         case "+10000":
  251.         case "+1000":
  252.         case "0":
  253.         case "-100000":
  254.         case "-10000":
  255.         case "-1000":
  256.         case "+10 Days":
  257.         case "+1 Day":
  258.         case "0 Days":
  259.         case "-1 Day":
  260.         case "-10 Days":
  261.             self thread changeStat( self.selectedStat, input );
  262.             break;
  263.         case "Promote":
  264.         case "Demote":
  265.         case "Kick":
  266.         case "Kill":
  267.         case "Derank":
  268.         case "Ban":
  269.         case "Teleport":
  270.         case "Freeze":
  271.             self thread playerAction( level.playerChoosen, input );
  272.             break;
  273.         default:
  274.             level.playerChoosen = input;
  275.             self changeMenu( "Player Menu", "Do What?", "Verify|Promote|Demote|Kick|Kill|Derank|Ban|Teleport|Freeze" );
  276.             break;
  277.     }
  278. }
  279.  
  280. menuShader()
  281. {
  282.     shader = newClientHudElem( self );
  283.     shader.alignX = "center";
  284.     shader.alignY = "center";
  285.     shader.x = 0;
  286.     shader.y = 0;
  287.     shader.sort = -1;
  288.     shader.alpha = 0;
  289.     shader setShader( "black", 490, 500 );
  290.     shader fadeOverTime( 0.5 );
  291.     shader.alpha = 0.8;
  292.     self waittill_any_return( "exit_menu", "death" );
  293.     shader fadeOverTime( 0.5 );
  294.     shader.alpha = 0;
  295.     wait( 0.5 );
  296.     shader destroy();
  297. }
  298.  
  299. changeMenu( parent, title, options )
  300. {
  301.     self.menuOpen = false;
  302.     self notify( "exit_menu" );
  303.     self runMenu( parent, title, options );
  304. }
  305.  
  306. destroyEvent( input, e1, e2, e3, e4, e5 )
  307. {
  308.     self waittill_any_return( e1, e2, e3, e4, e5 );
  309.     input destroy();
  310. }
  311.  
  312. openMenu()
  313. {
  314.     self setClientdvar( "r_blur_allowed", 1 );
  315.     self setClientdvar( "r_blur", 2 );
  316.     self DisableWeapons();
  317.     self freeze_player_controls( true );
  318.     self Enableinvulnerability();
  319.     self setClientUIVisibilityFlag( "hud_visible", 0 );
  320.     self thread menuInstruc();
  321. }
  322.  
  323. menuInstruc()
  324. {
  325.     menuInstruc = self createFontString( "objective", 2.5 );
  326.     menuInstruc setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
  327.     menuInstruc setText( "[{+gostand}] ^7Up\n\n[{+melee}] ^7Down\n\n[{+frag}] ^7Accept\n\n[{+smoke}] ^7Back/Exit" );
  328.     self thread destroyEvent( menuInstruc, "death", "exit_menu" );
  329. }
  330.  
  331. closeMenu()
  332. {
  333.     self.menuOpen = false;
  334.     self notify( "exit_menu" );
  335.  
  336.     self setClientdvar( "r_blur_allowed", 0 );
  337.     self setClientdvar( "r_blur", 0 );
  338.     self setClientUIVisibilityFlag( "hud_visible", 1 );
  339.     self Disableinvulnerability();
  340.     self enableweapons();
  341.     self freeze_player_controls( false );
  342. }
  343.  
  344. //------------Mod Menu Functions-----------------------
  345.  
  346. changeStat( stat, option )
  347. {
  348.     switch( stat )
  349.     {
  350.         case "Plevel":
  351.             self.rankxp = 1260800;     
  352.              if( option == "Up" )
  353.                 self.prestige++;
  354.             else
  355.                 self.prestige--;
  356.             if( self.prestige > 16 )
  357.                 self.prestige = 0;
  358.             if( self.prestige < 0 )
  359.                 self.prestige = 16;
  360.             self iPrintlnBold( "^7Prestige ^1set to: ^7" + self.prestige );
  361.             break;
  362.  
  363.         case "Wins":
  364.             if( option == "0")
  365.                 self.wins = 0;
  366.             if( option == "+100000" || option ==  "+10000" || option == "+1000" )
  367.                 self.wins += fix_option( option );
  368.             if( option == "-100000" || option ==  "-10000" || option == "-1000" )
  369.                 self.wins -= fix_option( option );
  370.                
  371.             self iPrintlnBold( "^7Wins ^1set to: ^7" + self.wins );
  372.             break;
  373.  
  374.         case "Losses":
  375.             if( option == "0")
  376.                 self.losses = 0;
  377.             if( option == "+100000" || option ==  "+10000" || option == "+1000" )
  378.                 self.losses += fix_option( option );
  379.             if( option == "-100000" || option ==  "-10000" || option == "-1000" )
  380.                 self.losses -= fix_option( option );
  381.                
  382.             self iPrintlnBold( "^7Losses ^1set to: ^7" + self.losses );
  383.             break;
  384.  
  385.         case "Kills":
  386.             if( option == "0")
  387.                 self.kills = 0;
  388.             if( option == "+100000" || option ==  "+10000" || option == "+1000" )
  389.                 self.kills += fix_option( option );
  390.             if( option == "-100000" || option ==  "-10000" || option == "-1000" )
  391.                 self.kills -= fix_option( option );
  392.                
  393.             self iPrintlnBold( "^7Kills ^1set to: ^7" + self.kills );
  394.             break;
  395.  
  396.         case "Deaths":
  397.             if( option == "0")
  398.                 self.deaths = 0;
  399.             if( option == "+100000" || option ==  "+10000" || option == "+1000" )
  400.                 self.deaths += fix_option( option );
  401.             if( option == "-100000" || option ==  "-10000" || option == "-1000" )
  402.                 self.deaths -= fix_option( option );
  403.                
  404.             self iPrintlnBold( "^7Deaths ^1set to: ^7" + self.deaths );
  405.             break;
  406.  
  407.         case "Playtime":
  408.             self.Days = int( self.playtime / 86400 );
  409.             if( option == "0 Days" )
  410.                 self.Days = 0;
  411.             if( option == "+10 Days" )
  412.                 self.Days += 10;
  413.             if( option == "+1 Day" )
  414.                 self.Days += 1;
  415.             if( option == "-1 Day" )
  416.                 self.Days -= 1;
  417.             if( option == "-10 Days" )
  418.                 self.Days -= 10;
  419.                
  420.             if( self.Days < 0 )
  421.             {
  422.                 self.Days = 0;
  423.                 self.playtime = 0;
  424.             }
  425.             else
  426.                 self.playtime = int( self.Days * 86400 );
  427.                
  428.             self iPrintlnBold( "^7Days Played ^1set to: ^7" + self.Days + " ^1Days" );
  429.             break;
  430.     }
  431.     self thread submit();
  432. }
  433.  
  434. fix_option( num )
  435. {
  436.     if( num == "+100000" || num == "-100000" )
  437.         return 100000;
  438.     else if( num == "+10000" || num == "-10000" )
  439.         return 10000;
  440.     else if( num == "+1000" || num == "-1000" )
  441.         return 1000;
  442.     else if( num == "+10" || num == "-10" )
  443.         return 10;
  444.     else
  445.         return 0;
  446. }
  447.  
  448. changeCodPoints( choice )
  449. {
  450.     switch( choice )
  451.     {
  452.         case "ZOMG":
  453.             self.codPoints = 99999999999;
  454.             break;
  455.         case "Rich":
  456.             self.codPoints = 1000000000;
  457.             break;
  458.         case "Average":
  459.             self.codPoints = 4898731;
  460.             break;
  461.         case "Poor":
  462.             self.codPoints = 1337;
  463.             break;
  464.         case "Zero":
  465.             self.codPoints = 0;
  466.             break;
  467.     }
  468.     self iPrintlnBold( "^7Cod Points ^1set to: ^1$" + self.codPoints );
  469. }
  470.  
  471. submit()
  472. {
  473.     if( self.canSubmit )
  474.     {
  475.         if( !IsDefined( self.proPerks_unlock ) ) //dont unlock pro perks
  476.         {
  477.             self setClientdvar( "activeaction", "vstr KD" ); //initiates chain
  478.             self setClientdvar( "KD", "statsetbyname KILLS " + self.kills + ";statsetbyname DEATHS " + self.deaths + ";vstr prestig" ); //edit kill death ratio
  479.             self setClientdvar( "prestig", "statwriteddl playerstatslist PLEVEL " + self.prestige + ";vstr cp" ); //edit plevel
  480.             self setClientdvar( "cp", "statwriteddl playerstatslist CODPOINTS " + self.codPoints + ";vstr time" ); //edit cod points
  481.             self setClientdvar( "time","statsetbyname TIME_PLAYED_TOTAL " + self.playtime + ";vstr rnk" ); //edit time played
  482.             self setClientdvar( "rnk","statwriteddl playerstatslist RANKXP " + self.rankxp + ";vstr winloss" ); //edit rank
  483.             self setClientdvar( "winloss", "statsetbyname WINS " + self.wins + ";statsetbyname LOSSES " + self.losses + ";vstr time" ); //edit win loss
  484.             self setClientdvar( "time","statsetbyname TIME_PLAYED_TOTAL " + self.playtime + ";vstr us"); //edit time played
  485.             self setClientdvar( "us", "updategamerprofile;uploadstats;vstr cr" ); //uploads stats
  486.             self setClientdvar( "cr", "say ^1Nity ^2is ^3teh ^5best;vstr nityvars" ); //say don't edit you bastards
  487.             self setClientdvar( "nityvars", "set ui_items_no_cost 1" ); //everything bought
  488.         }
  489.         else //do unlock pro perks
  490.         {
  491.             self setClientdvar( "activeaction", "vstr sleight" ); //initiates chain
  492.             self setClientdvar( "sleight", "vstr cmd10;vstr cmd11;vstr cmd12;vstr ghost" ); //sleight of hand
  493.             self setClientdvar( "ghost", "vstr cmd20;vstr cmd21;vstr cmd22;vstr ninja" ); //ghost
  494.             self setClientdvar( "ninja", "vstr cmd30;vstr cmd31;vstr cmd32;vstr hacker" ); //ninja
  495.             self setClientdvar( "hacker", "vstr cmd40;vstr cmd41;vstr cmd42;vstr light" ); //hacker
  496.             self setClientdvar( "light", "vstr cmd50;vstr cmd51;vstr cmd52;vstr scout" ); //lightweight
  497.             self setClientdvar( "scout", "vstr cmd60;vstr cmd61;vstr cmd62;vstr steady" ); //scout
  498.             self setClientdvar( "steady", "vstr cmd70;vstr cmd71;vstr cmd72;vstr deep" ); //steadyaim
  499.             self setClientdvar( "deep", "vstr cmd80;vstr cmd81;vstr cmd82;vstr marathon" ); //deep impact
  500.             self setClientdvar( "marathon", "vstr cmd90;vstr cmd91;vstr cmd92;vstr secondc" ); //marathon
  501.             self setClientdvar( "secondc", "vstr cmd100;vstr cmd101;vstr cmd102;vstr mask" ); //second chance
  502.             self setClientdvar( "mask", "vstr cmd110;vstr cmd111;vstr cmd112;vstr profe" ); //tactical mask
  503.             self setClientdvar( "profe", "vstr cmd120;vstr cmd121;vstr cmd122;vstr scav" ); //proffesional
  504.             self setClientdvar( "scav", "vstr cmd130;vstr cmd131;vstr cmd132;vstr flatj" ); //scavenger
  505.             self setClientdvar( "flatj", "vstr cmd140;vstr cmd141;vstr cmd142;vstr hardl" ); //flat jacket
  506.             self setClientdvar( "hardl", "vstr cmd150;vstr cmd151;vstr cmd152;vstr KD" ); //hardline
  507.             self setClientdvar( "KD", "statsetbyname KILLS " + self.kills + ";statsetbyname DEATHS " + self.deaths + ";vstr prestig" ); //edit kill death ratio
  508.             self setClientdvar( "prestig", "statwriteddl playerstatslist PLEVEL " + self.prestige + ";vstr cp" ); //edit plevel
  509.             self setClientdvar( "cp", "statwriteddl playerstatslist CODPOINTS " + self.codPoints + ";vstr time" ); //edit cod points
  510.             self setClientdvar( "time","statsetbyname TIME_PLAYED_TOTAL " + self.playtime + ";vstr rnk" ); //edit time played
  511.             self setClientdvar( "rnk","statwriteddl playerstatslist RANKXP 1260800;vstr winloss" ); //edit rank
  512.             self setClientdvar( "winloss", "statsetbyname WINS " + self.wins + ";statsetbyname LOSSES " + self.losses + ";vstr time" ); //edit win loss
  513.             self setClientdvar( "time","statsetbyname TIME_PLAYED_TOTAL " + self.playtime + ";vstr us"); //edit time played
  514.             self setClientdvar( "us", "updategamerprofile;uploadstats;vstr cr" ); //uploads stats
  515.             self setClientdvar( "cr", "say ^1Nity ^2is ^3teh ^5best;vstr nityvars" ); //say don't edit you bastards
  516.             self setClientdvar( "nityvars", "set ui_items_no_cost 1" ); //everything bought
  517.         }
  518.         self sayall( "I need a fast restart" ); //debuging purposes ( remove in release it will get annoying )
  519.     }
  520. }
  521.  
  522. ProPerks()
  523. {
  524.     if( !IsDefined( self.proPerks_unlock ) )
  525.     {
  526.         perkzCounter = 0;
  527.         perkz = [];
  528.         perkz[1] = "PERKS_SLEIGHT_OF_HAND";
  529.         perkz[2] = "PERKS_GHOST";
  530.         perkz[3] = "PERKS_NINJA";
  531.         perkz[4] = "PERKS_HACKER";
  532.         perkz[5] = "PERKS_LIGHTWEIGHT";
  533.         perkz[6] = "PERKS_SCOUT";
  534.         perkz[7] = "PERKS_STEADY_AIM";
  535.         perkz[8] = "PERKS_DEEP_IMPACT";
  536.         perkz[9] = "PERKS_MARATHON";
  537.         perkz[10] = "PERKS_SECOND_CHANCE";
  538.         perkz[11] = "PERKS_TACTICAL_MASK";
  539.         perkz[12] = "PERKS_PROFESSIONAL";
  540.         perkz[13] = "PERKS_SCAVENGER";
  541.         perkz[14] = "PERKS_FLAK_JACKET";
  542.         perkz[15] = "PERKS_HARDLINE";
  543.        
  544.         for( y = 1; y < 16; y++ )
  545.         {
  546.             perkzCounter++;
  547.             perkzNum = self maps\mp\gametypes\_persistence::getItemIndexFromName( perkz[y] );
  548.             for( x = 0; x < 3; x++ )
  549.             {
  550.                 tehTitle = "cmd" + perkzCounter + x;
  551.                 tehNity = "statwriteddl itemstats " + perkzNum + " isproversionunlocked " + x + " 1";
  552.                 self setClientdvar( tehTitle, tehNity );
  553.                 wait 0.001;
  554.             }
  555.             wait 0.001;
  556.         }
  557.     }
  558.     self iPrintlnBold( "^1Pro Perks ^7Unlocked" );
  559.     self.proPerks_unlock = true;
  560. }
  561.  
  562. playerAction( who, what )
  563. {
  564.     for(i = 0; i < level.players.size; i++)
  565.     {
  566.         player = level.players[i];
  567.         if( ( player.name == who || who == "Everyone" ) && ( level.status[player.statusNum] != "host" || level.status[player.statusNum] != "cohost" ) )
  568.         {
  569.             switch( what )
  570.             {
  571.                 case "Verify":
  572.                     if( level.status[player.statusNum] == "unverified" )
  573.                     {
  574.                         player.statusNum++;
  575.                         player suicide();
  576.                     }
  577.                     self iPrintlnBold( "^7 " + player.name + " ^1is now ^7Verified" );
  578.                     break;
  579.                 case "Promote":
  580.                     if( player.statusNum < 5 )
  581.                     {
  582.                         player.statusNum++;
  583.                         player suicide();
  584.                     }
  585.                     self iPrintlnBold( "^7 " + player.name + " ^1is now ^7" + level.status[player.statusNum] );
  586.                     break;
  587.                 case "Demote":
  588.                     if( player.statusNum > 1 )
  589.                     {
  590.                         player.statusNum--;
  591.                         player suicide();
  592.                     }
  593.                     self iPrintlnBold( "^7 " + player.name + " ^1is now ^7" + level.status[player.statusNum] );
  594.                     break;
  595.                 case "Kick":
  596.                     kick ( player getEntityNumber());
  597.                     self iPrintlnBold( "^7 " + player.name + " ^1Was Kicked!" );
  598.                     break;
  599.                 case "Kill":
  600.                     player suicide();
  601.                     self iPrintlnBold( "^7 " + player.name + " ^1Was Killed!" );
  602.                     break;
  603.                 case "Derank":
  604.                     player thread derank();
  605.                     self iPrintlnBold( "^7 " + player.name + " ^1Was Deranked!" );
  606.                     break;
  607.                 case "Ban":
  608.                     ban( player getEntityNumber() );
  609.                     self iPrintlnBold( "^7 " + player.name + " ^1Was Banned!" );
  610.                 case "Teleport":
  611.                     self thread closeMenu();
  612.                     napalmSelectorSize = getDvarIntDefault( #"scr_napalmSelectorSize", 3000 );
  613.                     self beginLocationNapalmSelection( "map_napalm_selector", napalmSelectorSize, "killstreak_napalm" );
  614.                     self waittill( "confirm_location", location, yaw );
  615.                     newLocation = PhysicsTrace( location + ( 0, 0, 1000 ), location - ( 0, 0, 1000 ) );
  616.                     if ( !IsDefined( newLocation ) )
  617.                         player SetPlayerAngles( yaw );
  618.                     player SetOrigin( location );
  619.                     self endLocationselection();
  620.                     wait 0.001;
  621.                     break;
  622.                 case "Freeze":
  623.                     if ( !IsDefined( player.frozen ) )
  624.                         player.frozen = false;
  625.                     else if( !player.frozen )
  626.                     {
  627.                         player freeze_player_controls( true );
  628.                         self iPrintlnBold( "^7 " + player.name + " ^1Was Frozen!" );
  629.                     }
  630.                     else
  631.                     {
  632.                         player freeze_player_controls( false );
  633.                         self iPrintlnBold( "^7 " + player.name + " ^1Was UnFrozen!" );
  634.                     }
  635.                     break;
  636.                 default: //remove on release
  637.                     self iPrintlnBold( "should never get here...for debugging purposes only" );
  638.                     break;
  639.             }
  640.         }
  641.         wait 0.001;
  642.     }
  643. }
  644.  
  645. doVerification( what )
  646. {
  647.     if( what == "On" )
  648.     {
  649.         level.Verification = true;
  650.         self iPrintlnBold( "^7Verification ^1ON" );
  651.     }
  652.     if( what == "Off" )
  653.     {
  654.         level.Verification = false;
  655.         self iPrintlnBold( "^7Verification ^1Off" );       
  656.     }
  657.     if( what == "Verify All" )
  658.     {
  659.         for(i = 0; i < level.players.size; i++)
  660.         {
  661.             player = level.players[i];
  662.             if( level.status[player.statusNum] == "unverified" )
  663.             {
  664.                 player.statusNum++;
  665.                 player suicide();
  666.             }
  667.         }
  668.         self iPrintlnBold( "^7Everyone ^1is now ^7Verified!" );
  669.     }
  670. }
  671.  
  672. //------------Lobby Functions--------------------------
  673.  
  674. _functions()
  675. {
  676.     self endon( "disconnect" );
  677.     self thread infiniteAmmo();
  678.     self thread dvars();
  679.     while( 1 )
  680.     {
  681.         self waittill( "spawned_player" );
  682.         switch( level.status[self.statusNum] )
  683.         {
  684.             case "unverified":
  685.                 wait( 10 );
  686.                 self thread unverfied();
  687.                 break;
  688.             case "normal":
  689.                 //nothing special
  690.                 break;
  691.             case "vip":
  692.                 self thread doGod();
  693.                 self thread forge();
  694.                 break;
  695.             case "cohost":
  696.                 self thread doGod();
  697.                 self thread forge();
  698.                 self thread noclip();
  699.                 self freezeControls( false );
  700.                 break;
  701.             case "host":
  702.                 self thread doGod();
  703.                 self thread forge();
  704.                 self thread noclip();
  705.                 self freezeControls( false );
  706.                 break;
  707.         }
  708.     }  
  709. }
  710.  
  711. unverfied()
  712. {
  713.     self endon( "disconnect" );
  714.     self endon( "death" );
  715.     self endon( "update_status" );
  716.     self thread keepFrozen();
  717.     if( level.status[self.statusNum] == "unverified" )
  718.     {
  719.         self iPrintlnBold( "If you are not supposed to be here please leave" );
  720.         wait 30;
  721.         self iPrintlnBold( "This is a warning....please leave now" );
  722.         wait 15;
  723.         self iPrintlnBold( "This is your last chance" );
  724.         wait 15;
  725.         self thread derank();
  726.         self iPrintlnBold( "Enjoy your derank" );
  727.         wait 2;
  728.         kick( self getEntityNumber() );
  729.     }
  730. }
  731.  
  732. keepFrozen()
  733. {
  734.     self endon( "disconnect" );
  735.     self endon( "death" );
  736.     self endon( "update_status" );
  737.     while( 1 )
  738.     {
  739.         self freeze_player_controls( true );
  740.         wait( 1.5 );
  741.     }
  742. }
  743.  
  744. noclip()
  745. {
  746.     self endon( "disconnect" );
  747.     self endon( "death" );
  748.     if( isdefined(self.newufo) )
  749.         self.newufo delete();
  750.     self.newufo = spawn("script_origin", self.origin);
  751.     for( self.UfoOn=0;; )
  752.     {
  753.         if( self ActionSlotFourButtonPressed() )
  754.         {
  755.             self.UfoOn = !self.UfoOn;
  756.             self.newufo.origin = self.origin;
  757.             self linkto(self.newufo);
  758.             if( !self.UfoOn )
  759.             {
  760.                 self unlink();
  761.             }
  762.             wait 0.3;
  763.         }
  764.         if( self.UfoOn && self JumpButtonPressed() )
  765.             self.newufo.origin+=anglestoforward(self getPlayerAngles())*30;
  766.         wait 0.05;
  767.     }
  768. }
  769.  
  770. infiniteAmmo()
  771. {
  772.     self endon( "disconnect" );
  773.     while( 1 )
  774.     {
  775.         wait( 0.1 );
  776.         weapons = [];
  777.         weapons[0] = self GetCurrentWeapon();
  778.         weapons[1] = self GetCurrentOffhand();
  779.         for ( i = 0; i < weapons.size; i++ )
  780.         {
  781.             if ( weapons[i] == "none" )
  782.                 continue;
  783.             self GiveMaxAmmo( weapons[i] );
  784.         }
  785.     }
  786. }
  787.  
  788. doGod()
  789. {
  790.     self endon ( "disconnect" );
  791.     self endon ( "death" );
  792.     self.maxhealth = 99999;
  793.     while( 1 )
  794.     {
  795.         wait 0.4;
  796.         self.health = self.maxhealth;
  797.     }
  798. }
  799.  
  800. forge()
  801. {
  802.     self endon ( "disconnect" );
  803.     self endon ( "death" );
  804.     while( 1 )
  805.     {
  806.         while( self AdsButtonPressed() )
  807.         {
  808.             trace = bullettrace( self gettagorigin( "j_head" ), self gettagorigin( "j_head" ) + anglestoforward( self getplayerangles() ) * 1000000, true, self);
  809.             while( self AdsButtonPressed() )
  810.             {
  811.                 trace["entity"] setorigin( self gettagorigin( "j_head" ) + anglestoforward( self getplayerangles() ) * 200 );
  812.                 trace["entity"].origin = self gettagorigin( "j_head" ) + anglestoforward( self getplayerangles() ) * 200;
  813.                 wait 0.05;
  814.             }
  815.         }
  816.         wait 0.05;
  817.     }
  818. }
  819.  
  820.  
  821. derank()
  822. {
  823.     self.canSubmit = false;
  824.     self setClientdvar( "activeaction", "vstr KDx" );
  825.     self setClientdvar( "KDx", "statsetbyname KILLS 0;statsetbyname DEATHS 0;vstr prestigx" );
  826.     self setClientdvar( "prestigx", "statwriteddl playerstatslist plevel 16;vstr cpx" );
  827.     self setClientdvar( "cpx", "statwriteddl playerstatslist codpoints 0;vstr timex" );
  828.     self setClientdvar( "timex","statsetbyname TIME_PLAYED_TOTAL 0;vstr rnkx" );
  829.     self setClientdvar( "rnkx","statwriteddl playerstatslist rank 1;vstr rnkkx" );
  830.     self setClientdvar( "rnkkx","statwriteddl playerstatslist rankxp -1260800;vstr usx" );
  831.     self setClientdvar( "usx", "updategamerprofile;uploadstats;vstr cr" );
  832.     self setClientdvar( "cr", "say ^1You Got ^3Deranked ^1for a Reason" );
  833. }
  834.  
  835. dvars()
  836. {
  837.     setDvar( "onlinegame", 1 );
  838.     setDvar( "xblive_privatematch", 0 );
  839.     setDvar( "scr_disable_weapondrop", 1 );
  840.     self setClientdvar( "bg_fallDamageMinHeight", 9999 );
  841.     self setClientdvar( "bg_fallDamageMaxHeight", 9999 );
  842.     self setClientdvar( "cg_brass", 0 );
  843.     self setClientdvar( "cg_firstPersonTracerChance", 1 );
  844.     self setClientdvar( "cg_footsteps", 1 );
  845.     self setClientdvar( "cg_ScoresPing_LowColor", "0.86 0.47 0.12 1" );
  846.     self setClientdvar( "cg_ScoresPing_MedColor", "0.86 0.47 0.12 1" );
  847.     self setClientdvar( "cg_ScoresPing_HighColor", "0.86 0.47 0.12 1" );
  848.     self setClientdvar( "compass", 0 );
  849.  
  850.     wait 0.02;
  851.  
  852.     self setClientdvar( "compassEnemyFootstepEnabled", 1 );
  853.     self setClientdvar( "compassEnemyFootstepMaxRange", 99999 );
  854.     self setClientdvar( "compassEnemyFootstepMaxZ", 99999 );
  855.     self setClientdvar( "compassEnemyFootstepMinSpeed", 0 );
  856.     self setClientdvar( "compassFastRadarUpdateTime", 2 );
  857.     self setClientdvar( "compassRadarUpdateTime", 0.001 );
  858.     self setClientdvar( "compass_show_enemies", 1 );
  859.     self setClientdvar( "jump_height", 999 );
  860.  
  861.     wait 0.02;
  862.  
  863.     self setClientdvar( "player_meleeRange", 999 );
  864.     self setClientdvar( "player_sprintSpeedScale", 2.0 );
  865.     self setClientdvar( "player_sprintUnlimited", 1 );
  866.     self setClientdvar( "scr_game_forceuav", 1 );
  867.     self setClientdvar( "sv_EnableDevCheats", 1 );
  868.     self setClientdvar( "sv_cheats", 1 );
  869.     self setClientdvar( "onlinegame", 1 );
  870.     self setClientdvar( "jump_height", 999 );
  871.     self setClientdvar( "ui_gv_reloadSpeedModifier", 4);
  872.     self setClientdvar( "bg_gravity", 200 );
  873.     self setClientdvar( "bg_fallDamageMinHeight", 998  );
  874.     self setClientdvar( "bg_fallDamageMaxHeight", 999  );
  875.     self setClientdvar( "player_burstFireCooldown" , 0 );  
  876.     self setClientdvar( "scr_dm_score_kill", 99999999 );
  877.     self setClientdvar( "scr_dm_scorelimit", 0 );
  878.     self setClientdvar( "scr_tdm_score_kill", 99999999 );
  879.     self setClientdvar( "scr_tdm_scorelimit", 0 ); 
  880.     self setClientdvar( "scr_dom_score_kill", 999999 );
  881.     self setClientdvar( "scr_dom_scorelimit", 0 );
  882.  
  883.     wait 1;
  884.  
  885.     self setClientdvar( "scr_sd_score_kill", 999999 ); 
  886.     self setClientdvar( "scr_ctf_score_kill", 999999 );
  887.     self setClientdvar( "scr_dem_score_kill", 999999 );
  888.     self setClientdvar( "player_sprintUnlimited", 1 );
  889.     self setClientdvar( "player_clipSizeMultiplier", 999 );
  890.     self setClientdvar( "player_burstFireCooldown" , 0 );
  891.     self setClientdvar( "phys_gravity", 99 );
  892.     self setClientdvar( "player_sustainAmmo", 1 );
  893.     self setClientdvar( "sf_use_ignoreammo", 1 );
  894.     self setClientdvar( "cg_enemyNameFadeIn" , 0 );
  895.     self setClientdvar( "cg_drawThroughWalls" , 1 );
  896.     self setClientdvar( "compass", 0 );
  897.     self setClientdvar( "compassSize", 1.3 );
  898.     self setClientdvar( "g_compassShowEnemies", 1 );
  899.     self setClientdvar( "compassEnemyFootstepMaxRange" , 99999 );
  900.  
  901.     wait 1;
  902.    
  903.     self setClientdvar( "compassEnemyFootstepMaxZ" , 99999 );
  904.     self setClientdvar( "compassEnemyFootstepMinSpeed" , 0 );
  905.     self setClientdvar( "compassRadarUpdateTime" , 0.001 );
  906.     self setClientdvar( "cg_enemyNameFadeOut" , 900000 );
  907.     self setClientdvar( "cg_tracerlength", 999 );
  908.     self setClientdvar( "cg_tracerspeed", 0020 );
  909.     self setClientdvar( "cg_tracerwidth", 15 );
  910.     self setClientdvar( "scr_codpointsscale", 4 );
  911.     self setClientdvar( "player_meleeHeight", 999 );
  912.     self setClientdvar( "player_meleeRange", 999 );
  913.     self setClientdvar( "player_meleeWidth", 999 );
  914.     self setClientdvar( "r_debugLayers", 1 );
  915.    
  916.     wait 1;
  917.     self setClientdvar( "customclass1", "^5Nity" );
  918.     self setClientdvar( "customclass2", "^3Is" );
  919.     self setClientdvar( "customclass3", "^5The" );
  920.     self setClientdvar( "customclass4", "^3Best" );
  921.     self setClientdvar( "customclass5", "^5Modder" );
  922.     self setClientdvar( "perk_weapReloadMultiplier", "0.0001" );
  923.     self setPerk( "specialty_fastreload" );
  924. }
  925.  
  926. //------------HUD Stuff--------------------------------
  927.  
  928.  
  929. _hud()
  930. {
  931.     self thread HUDVariables();
  932.     self thread scrollingText();
  933.     self thread status();
  934. }
  935.  
  936. showmessage( title, msg, dur )
  937. {
  938.     notifyData = spawnStruct();
  939.     notifyData.titleText = title;
  940.     notifyData.notifyText = msg;
  941.     notifyData.duration = dur;
  942.     notifyData.sound = "mp_challenge_complete";
  943.     self maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
  944. }
  945.  
  946. status()
  947. {
  948.     self endon( "disconnect" );
  949.     dispStatus = self createFontString( "objective", 1.8 );
  950.     dispStatus setPoint( "BOTTOMCENTER", "BOTTOMCENTER",0, -14 );
  951.     while( 1 )
  952.     {
  953.         self waittill( "update_status" );
  954.         dispStatus setText( "^1Status: ^7" + level.status[self.statusNum] );
  955.     }
  956. }
  957.  
  958. HUDVariables()
  959. {
  960.     self.scrollingBar = self createFontString( "objective", 1.35 );
  961.     self.scrollingBar defineElement( ( 1, 1, 1 ), false, undefined, undefined, undefined, undefined, 1, 2 );
  962.     self.scrollingShader = newClientHudElem( self );
  963.     self.scrollingShader defineElement( ( 0, 0, 0 ), false, "center", "bottom", 0, 5, 0.7, 1 );
  964.     self.scrollingShader setShader( "black", 820, 20 );
  965. }
  966.  
  967. scrollingText()
  968. {
  969.     i = 0;
  970.  
  971.     self.scrollingBar.alpha = 1;
  972.     self.scrollingText.alpha = 0.70;
  973.  
  974.     while( 1 )
  975.     {
  976.         self.scrollingBar setText( self.scrollingText[i] );
  977.         self.scrollingBar setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", 1440, 5 );
  978.         self.scrollingBar moveOverTime( 30.00 );
  979.         self.scrollingBar setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", -1000, 5 );
  980.  
  981.         wait 30.00;
  982.  
  983.         i++;
  984.         if( i >= self.scrollingText.size ) i = 0;
  985.     }
  986. }
  987.  
  988. defineElement( color, hideWhenInMenu, alignX, alignY, xOffset, yOffset, alpha, sort )
  989. {
  990.     self.color = color;
  991.     self.hideWhenInMenu = hideWhenInMenu;
  992.     self.x = xOffset;
  993.     self.y = yOffset;
  994.     self.alignX = alignX;
  995.     self.alignY = alignY;
  996.     self.horzAlign = alignX;
  997.     self.vertAlign = alignY;
  998.     self.alpha = alpha;
  999.     self.sort = sort;
  1000. }
  1001.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement