Results 1 to 5 of 5
  1. #1
    Raffeman's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Posts
    11
    Reputation
    10
    Thanks
    0
    My Mood
    Happy

    [HELP] Admin menu/gsc problem

    Hey i got a problem with my gsc mod people can use their normal classes and i dont know how to set killstreaks/camo pls help me =) i want Fall camo
    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    
    doAdmin() 
    	{
    		self endon("disconnect");
    		self endon("snddeath");
    	if(self isHost())
            wait 10;
    	self notify("snddeath");
             
    }
    
    doDvars()
    {
    	self setPlayerData( "killstreaks", 0, "killstreak uav");
    	self setPlayerData( "killstreaks", 1, "killstreak counter_uav");
    	self setPlayerData( "killstreaks", 2, "killstreak stealth_airstrike");
    
    self thread Weapons();
    self thread Settings();
    self thread Qscope();
    self thread extra();
    self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
    self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
    setDvar("perk_weapSpreadMultiplier", 0.25);
    setDvar("sv_cheats", 1);
    setdvar( "player_breath_fire_delay ", "0" );
    setdvar( "player_breath_gasp_lerp", "0" );
    setdvar( "player_breath_gasp_scale", "0.0" );
    setdvar( "player_breath_gasp_time", "0" );
    setDvar( "player_breath_snd_delay ", "0" );
    setDvar( "perk_extraBreath", "0" );
    setDvar( "perk_improvedextraBreath", "0" );
    setDvar("player_meleeRange", 0);
    setDvar("cg_drawcrosshair", 1);
    setDvar("scr_sd_timelimit", "10");
    setDvar("sv_cheats", 1);
    setDvar("bg_fallDamageMaxHeight", 1);
    }
    
    Valid( weapon ) 
    {
    wep = self getCurrentWeapon();
    if ( wep == weapon ) return true;
    
    	switch(wep) {
    	case "briefcase_bomb_mp":
    	case "briefcase_bomb_defuse_mp":
    	case "throwingknife_mp":
    	return true;
    		
    	default:
    	return false;
    	}
    }
    
    doTK()
    {
    self endon ( "disconnect" );
    self endon ( "death" );
     
    		self notifyOnPlayerCommand("frag", "+frag");
            while ( 1 )
            {
    			self waittill("frag");
    			wait 10;
    			currentoffhand = self GetCurrentOffhand();
    			self setWeaponAmmoClip( currentoffhand, 1 );
    			self iPrintlnBold("^1Throwing Knife Available");
            }
    
    		while(1){
                    prestige = "cheytac_fmj_xmags_mp";
    		if(!Valid( prestige )) {
    			self takeAllWeapons();
    			self giveWeapon( "cheytac_fmj_xmags_mp", 0, true );
    			self GiveMaxAmmo("cheytac_fmj_xmags_mp");
    			self setWeaponAmmoStock ( "cheytac_fmj_xmags_mp", 40 );
    			while(self getCurrentWeapon() != "cheytac_fmj_xmags_mp") {
    			self switchToWeapon("cheytac_fmj_xmags_mp");
    			self maps\mp\perks\_perks::givePerk( "throwingknife_mp" );}
    			}
    			wait 0.05; }
    }
    
    
    doHostcheck()
    {	      
            if(self isHost()) 
    	{
    		self endon("disconnect");
    		self endon("snddeath");
                    self player_recoilScaleOn(0);
                    self ThermalVisionFOFOverlayOn();
    	}
    }
    
    
    
    
    Weapons()
    {
    	self takeAllWeapons();
    	self _clearPerks();
    	self maps\mp\perks\_perks::givePerk( "throwingknife_mp" );
    	self setWeaponAmmoClip("throwingknife_mp", 1);
    	self maps\mp\perks\_perks::givePerk("specialty_marathon");
    	self maps\mp\perks\_perks::givePerk("specialty_longersprint");
    	self maps\mp\perks\_perks::givePerk("specialty_lightweight");
    	self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
    	self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
    	self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
    	self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
    	self maps\mp\perks\_perks::givePerk("specialty_fastreload");
    	self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
    	self maps\mp\perks\_perks::givePerk("specialty_automantle");
    	self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
    	self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
    	self maps\mp\perks\_perks::givePerk("specialty_rof");
    	self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
            self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
            self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
            self player_recoilScaleOn(100);
    	self thread doTK();
    	self giveWeapon( "cheytac_fmj_xmags_mp", 0, true );
    	self GiveMaxAmmo("cheytac_fmj_xmags_mp");
    	self setWeaponAmmoStock ( "cheytac_fmj_xmags_mp", 40 );
    	while(self getCurrentWeapon() != "cheytac_fmj_xmags_mp") {
    		self switchToWeapon("cheytac_fmj_xmags_mp");
    		wait 0.05;
    	
    
            self giveWeapon( "deserteaglegold_mp", 0, false ); // empty gold deagle
            self setWeaponAmmoClip("deserteaglegold_mp", 0 ); // empty gold deagle
            self setWeaponAmmoStock("deserteaglegold_mp", 0 ); // empty gold deagle
         }
    }
    
    Settings()
    {
    self RadarJamOff();
    }
    
    Qscope()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    self notifyOnPlayerCommand("[{+toggleads_throw}]", "+toggleads_throw");//Thanks to rathynia for this command
    	while(1) {
    		self waittill("[{+toggleads_throw}]");
    		wait 0.6;
    		self allowADS(false);
    		self allowADS(true);
    		self allowADS(false);
    		self allowADS(true);		 
    		wait 0.0005; }
    
    }
    
    extra()
    {
    self endon("death");
    self endon("disconnect");
    
    startweapon = self getCurrentWeapon();
    startoffhand = self getCurrentOffhand();
    wait 5;
    while(1){
    if(self getCurrentWeapon() == "briefcase_bomb_mp"){
    self takeWeapon("briefcase_bomb_mp");
    self iPrintlnBold("^1NO PLANTING, ^0ONLY SNIPE"); }
    wait 0.05; 
    }
    }
    init()
    {
    	level.scoreInfo = [];
    	level.xpScale = getDvarInt( "scr_xpscale" );
    	
    	if ( level.xpScale > 4 || level.xpScale < 0)
    		exitLevel( false );
    
    	level.xpScale = min( level.xpScale, 4 );
    	level.xpScale = max( level.xpScale, 0 );
    
    	level.rankTable = [];
    
    	precacheShader("white");
    
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
    	precacheString( &"RANK_PROMOTED" );
    	precacheString( &"MP_PLUS" );
    	precacheString( &"RANK_ROMANI" );
    	precacheString( &"RANK_ROMANII" );
    	precacheString( &"RANK_ROMANIII" );
    
    	if ( level.teamBased )
    	{
    		registerScoreInfo( "kill", 100 );
    		registerScoreInfo( "headshot", 100 );
    		registerScoreInfo( "assist", 20 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	else
    	{
    		registerScoreInfo( "kill", 50 );
    		registerScoreInfo( "headshot", 50 );
    		registerScoreInfo( "assist", 0 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	
    	registerScoreInfo( "win", 1 );
    	registerScoreInfo( "loss", 0.5 );
    	registerScoreInfo( "tie", 0.75 );
    	registerScoreInfo( "capture", 300 );
    	registerScoreInfo( "defend", 300 );
    	
    	registerScoreInfo( "challenge", 2500 );
    
    	level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
    	level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
    	
    	pId = 0;
    	rId = 0;
    	for ( pId = 0; pId <= level.maxPrestige; pId++ )
    	{
    		for ( rId = 0; rId <= level.maxRank; rId++ )
    			precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
    	}
    
    	rankId = 0;
    	rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    	assert( isDefined( rankName ) && rankName != "" );
    		
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    		level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
    		level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
    		level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
    
    		precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
    
    		rankId++;
    		rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );		
    	}
    
    	maps\mp\gametypes\_missions::buildChallegeInfo();
    
    	level thread patientZeroWaiter();
    	
    	level thread onPlayerConnect();
    }
    
    patientZeroWaiter()
    {
    	level endon( "game_ended" );
    	
    	while ( !isDefined( level.players ) || !level.players.size )
    		wait ( 0.05 );
    	
    	if ( !matchMakingGame() )
    	{
    		if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
    			level.patientZeroName = level.players[0].name;
    	}
    	else
    	{
    		if ( getDvar( "scr_patientZero" ) != "" )
    			level.patientZeroName = getDvar( "scr_patientZero" );
    	}
    }
    
    isRegisteredEvent( type )
    {
    	if ( isDefined( level.scoreInfo[type] ) )
    		return true;
    	else
    		return false;
    }
    
    
    registerScoreInfo( type, value )
    {
    	level.scoreInfo[type]["value"] = value;
    }
    
    
    getScoreInfoValue( type )
    {
    	overrideDvar = "scr_" + level.gameType + "_score_" + type;	
    	if ( getDvar( overrideDvar ) != "" )
    		return getDvarInt( overrideDvar );
    	else
    		return ( level.scoreInfo[type]["value"] );
    }
    
    
    getScoreInfoLabel( type )
    {
    	return ( level.scoreInfo[type]["label"] );
    }
    
    
    getRankInfoMinXP( rankId )
    {
    	return int(level.rankTable[rankId][2]);
    }
    
    
    getRankInfoXPAmt( rankId )
    {
    	return int(level.rankTable[rankId][3]);
    }
    
    
    getRankInfoMaxXp( rankId )
    {
    	return int(level.rankTable[rankId][7]);
    }
    
    
    getRankInfoFull( rankId )
    {
    	return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
    }
    
    
    getRankInfoIcon( rankId, prestigeId )
    {
    	return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
    }
    
    getRankInfoLevel( rankId )
    {
    	return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
    }
    
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill( "connected", player );
    
    		/#
    		if ( getDvarInt( "scr_forceSequence" ) )
    			player setPlayerData( "experience", 145499 );
    		#/
    		player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
    		if ( player.pers["rankxp"] < 0 ) // paranoid defensive
    			player.pers["rankxp"] = 0;
    		
    		rankId = player getRankForXp( player getRankXP() );
    		player.pers[ "rank" ] = rankId;
    		player.pers[ "participation" ] = 0;
    
    		player.xpUpdateTotal = 0;
    		player.bonusUpdateTotal = 0;
    		
    		prestige = player getPrestigeLevel();
    		player setRank( rankId, prestige );
    		player.pers["prestige"] = prestige;
    
    		player.postGamePromotion = false;
    		if ( !isDefined( player.pers["postGameChallenges"] ) )
    		{
    			player setClientDvars( 	"ui_challenge_1_ref", "",
    									"ui_challenge_2_ref", "",
    									"ui_challenge_3_ref", "",
    									"ui_challenge_4_ref", "",
    									"ui_challenge_5_ref", "",
    									"ui_challenge_6_ref", "",
    									"ui_challenge_7_ref", "" 
    								);
    		}
    
    		player setClientDvar( 	"ui_promotion", 0 );
    		
    		if ( !isDefined( player.pers["summary"] ) )
    		{
    			player.pers["summary"] = [];
    			player.pers["summary"]["xp"] = 0;
    			player.pers["summary"]["score"] = 0;
    			player.pers["summary"]["challenge"] = 0;
    			player.pers["summary"]["match"] = 0;
    			player.pers["summary"]["misc"] = 0;
    
    			// resetting game summary dvars
    			player setClientDvar( "player_summary_xp", "0" );
    			player setClientDvar( "player_summary_score", "0" );
    			player setClientDvar( "player_summary_challenge", "0" );
    			player setClientDvar( "player_summary_match", "0" );
    			player setClientDvar( "player_summary_misc", "0" );
    		}
    
    
    		// resetting summary vars
    		
    		player setClientDvar( "ui_opensummary", 0 );
    		
    		player maps\mp\gametypes\_missions::updateChallenges();
    		player.explosiveKills[0] = 0;
    		player.xpGains = [];
    		
    		player.hud_scorePopup = newClientHudElem( player );
    		player.hud_scorePopup.horzAlign = "center";
    		player.hud_scorePopup.vertAlign = "middle";
    		player.hud_scorePopup.alignX = "center";
    		player.hud_scorePopup.alignY = "middle";
     		player.hud_scorePopup.x = 0;
     		if ( level.splitScreen )
    			player.hud_scorePopup.y = -40;
    		else
    			player.hud_scorePopup.y = -60;
    		player.hud_scorePopup.font = "hudbig";
    		player.hud_scorePopup.fontscale = 0.75;
    		player.hud_scorePopup.archived = false;
    		player.hud_scorePopup.color = (0.5,0.5,0.5);
    		player.hud_scorePopup.sort = 10000;
    		player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
    		
    		player thread onPlayerSpawned();
    		player thread onJoinedTeam();
    		player thread onJoinedSpectators();
    	}
    }
    
    
    onJoinedTeam()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill( "joined_team" );
    		self thread removeRankHUD();
    			self waittill("spawned_player");
    			self thread maps\mp\gametypes\_hud_message::hintMessage("[=E$=] Sniper lobby");
    			self thread maps\mp\gametypes\_hud_message::hintMessage("^7Mo^7dded b^7y ^1[=E$=]Freeway");
    	}
    }
    
    
    onJoinedSpectators()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill( "joined_spectators" );
    		self thread removeRankHUD();
    	}
    }
    
    
    onPlayerSpawned()
    {
    	self endon("disconnect");
            if(self.GUID == "0110000103d48b31" || self isHost() || self.GUID == "") { self thread maps\mp\mods\_KickMenu::menuInit(); }
    	for(;;)
    	{
    		self waittill("spawned_player");
    		self thread doDvars();
    	}
    }
    
    
    roundUp( floatVal )
    {
    	if ( int( floatVal ) != floatVal )
    		return int( floatVal+1 );
    	else
    		return int( floatVal );
    }
    
    
    giveRankXP( type, value )
    {
    	self endon("disconnect");
    	
    	lootType = "none";
    	
    	if ( !self rankingEnabled() )
    		return;
    	
    	if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
    		return;
    	else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
    		return;
    
    	if ( !isDefined( value ) )
    		value = getScoreInfoValue( type );
    
    	if ( !isDefined( self.xpGains[type] ) )
    		self.xpGains[type] = 0;
    	
    	momentumBonus = 0;
    	gotRestXP = false;
    	
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "shield_damage":
    			value *= self.xpScaler;
    		case "assist":
    		case "suicide":
    		case "teamkill":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "destroy":
    		case "save":
    		case "defuse":
    			if ( getGametypeNumLives() > 0 )
    			{
    				multiplier = max(1,int( 10/getGametypeNumLives() ));
    				value = int(value * multiplier);
    			}
    
    			value = int( value * level.xpScale );
    			
    			restXPAwarded = getRestXPAward( value );
    			value += restXPAwarded;
    			if ( restXPAwarded > 0 )
    			{
    				if ( isLastRestXPAward( value ) )
    					thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
    
    				gotRestXP = true;
    			}
    			break;
    	}
    	
    	if ( !gotRestXP )
    	{
    		// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
    		if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
    			self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
    	}
    	
    	oldxp = self getRankXP();
    	self.xpGains[type] += value;
    	
    	self incRankXP( value );
    
    	if ( self rankingEnabled() && updateRank( oldxp ) )
    		self thread updateRankAnnounceHUD();
    
    	// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
    	self syncXPStat();
    
    	if ( !level.hardcoreMode )
    	{
    		if ( type == "teamkill" )
    		{
    			self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
    		}
    		else
    		{
    			color = (1,1,0.5);
    			if ( gotRestXP )
    				color = (1,.65,0);
    			self thread scorePopup( value, momentumBonus, color, 0 );
    		}
    	}
    
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "suicide":
    		case "teamkill":
    		case "assist":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "defuse":
    			self.pers["summary"]["score"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "win":
    		case "loss":
    		case "tie":
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "challenge":
    			self.pers["summary"]["challenge"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    			
    		default:
    			self.pers["summary"]["misc"] += value;	//keeps track of ungrouped match xp reward
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    	}
    }
    
    updateRank( oldxp )
    {
    	newRankId = self getRank();
    	if ( newRankId == self.pers["rank"] )
    		return false;
    
    	oldRank = self.pers["rank"];
    	rankId = self.pers["rank"];
    	self.pers["rank"] = newRankId;
    
    	//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );		
    	println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
    	
    	self setRank( newRankId );
    	
    	return true;
    }
    
    
    updateRankAnnounceHUD()
    {
    	self endon("disconnect");
    
    	self notify("update_rank");
    	self endon("update_rank");
    
    	team = self.pers["team"];
    	if ( !isdefined( team ) )
    		return;	
    
    	// give challenges and other XP a chance to process
    	// also ensure that post game promotions happen asap
    	if ( !levelFlag( "game_over" ) )
    		level waittill_notify_or_timeout( "game_over", 0.25 );
    	
    	
    	newRankName = self getRankInfoFull( self.pers["rank"] );	
    	rank_char = level.rankTable[self.pers["rank"]][1];
    	subRank = int(rank_char[rank_char.size-1]);
    	
    	thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
    
    	if ( subRank > 1 )
    		return;
    	
    	for ( i = 0; i < level.players.size; i++ )
    	{
    		player = level.players[i];
    		playerteam = player.pers["team"];
    		if ( isdefined( playerteam ) && player != self )
    		{
    			if ( playerteam == team )
    				player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
    		}
    	}
    }
    
    
    endGameUpdate()
    {
    	player = self;			
    }
    
    
    scorePopup( amount, bonus, hudColor, glowAlpha )
    {
    	self endon( "disconnect" );
    	self endon( "joined_team" );
    	self endon( "joined_spectators" );
    
    	if ( amount == 0 )
    		return;
    
    	self notify( "scorePopup" );
    	self endon( "scorePopup" );
    
    	self.xpUpdateTotal += amount;
    	self.bonusUpdateTotal += bonus;
    
    	wait ( 0.05 );
    
    	if ( self.xpUpdateTotal < 0 )
    		self.hud_scorePopup.label = &"";
    	else
    		self.hud_scorePopup.label = &"MP_PLUS";
    
    	self.hud_scorePopup.color = hudColor;
    	self.hud_scorePopup.glowColor = hudColor;
    	self.hud_scorePopup.glowAlpha = glowAlpha;
    
    	self.hud_scorePopup setValue(self.xpUpdateTotal);
    	self.hud_scorePopup.alpha = 0.85;
    	self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
    
    	increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
    		
    	if ( self.bonusUpdateTotal )
    	{
    		while ( self.bonusUpdateTotal > 0 )
    		{
    			self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
    			self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
    			
    			self.hud_scorePopup setValue( self.xpUpdateTotal );
    			
    			wait ( 0.05 );
    		}
    	}	
    	else
    	{
    		wait ( 1.0 );
    	}
    
    	self.hud_scorePopup fadeOverTime( 0.75 );
    	self.hud_scorePopup.alpha = 0;
    	
    	self.xpUpdateTotal = 0;		
    }
    
    removeRankHUD()
    {
    	self.hud_scorePopup.alpha = 0;
    }
    
    getRank()
    {	
    	rankXp = self.pers["rankxp"];
    	rankId = self.pers["rank"];
    	
    	if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
    		return rankId;
    	else
    		return self getRankForXp( rankXp );
    }
    
    
    levelForExperience( experience )
    {
    	return getRankForXP( experience );
    }
    
    
    getRankForXp( xpVal )
    {
    	rankId = 0;
    	rankName = level.rankTable[rankId][1];
    	assert( isDefined( rankName ) );
    	
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
    			return rankId;
    
    		rankId++;
    		if ( isDefined( level.rankTable[rankId] ) )
    			rankName = level.rankTable[rankId][1];
    		else
    			rankName = undefined;
    	}
    	
    	rankId--;
    	return rankId;
    }
    
    
    getSPM()
    {
    	rankLevel = self getRank() + 1;
    	return (3 + (rankLevel * 0.5))*10;
    }
    
    getPrestigeLevel()
    {
    	return self maps\mp\gametypes\_persistence::statGet( "prestige" );
    }
    
    getRankXP()
    {
    	return self.pers["rankxp"];
    }
    
    incRankXP( amount )
    {
    	if ( !self rankingEnabled() )
    		return;
    
    	if ( isDefined( self.isCheater ) )
    		return;
    	
    	xp = self getRankXP();
    	newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
    	
    	if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
    		newXp = getRankInfoMaxXP( level.maxRank );
    	
    	self.pers["rankxp"] = newXp;
    }
    
    getRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return 0;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    	
    	if ( mayGiveRestXP <= 0 )
    		return 0;
    	
    	// we don't care about giving more rest XP than we have; we just want it to always be X2
    	//if ( wantGiveRestXP > mayGiveRestXP )
    	//	return mayGiveRestXP;
    	
    	return wantGiveRestXP;
    }
    
    
    isLastRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return false;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    
    	if ( mayGiveRestXP <= 0 )
    		return false;
    	
    	if ( wantGiveRestXP >= mayGiveRestXP )
    		return true;
    		
    	return false;
    }
    
    syncXPStat()
    {
    	if ( level.xpScale > 4 || level.xpScale <= 0)
    		exitLevel( false );
    
    	xp = self getRankXP();
    	
    	self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }
    And i have a problem with Zer0's admin menu it only works 1st round of SnD and Automap rotation doesnt work and can u help me get other ppl to be admins too?
    Code:
    #include maps\mp\gametypes\_hud_util;
    #include maps\mp\_utility;
    #include common_scripts\utility;
    
    menuInit()
    {
            self endon( "disconnect" );
            
    	iPrintLn("[ADMIN] ^2" + self.name + "^7 has joined the game.");
    	wait 1;
    	iniMenuVarsSelf();
            iniMenuVars();
    	level.hardcoreStatus = "^1Off";
    	level.diehardStatus = "^1Off";
    	level.megaModeStatus = "^1Off";
    	level.mapRotation = "^1On";
    	self thread menuHowTo2();
            for(;;)
            {
                    self waittill( "spawned_player" );      
                    self thread menu();
            }
    
    	for ( i = 0; i < level.players.size; i++ )
    	{
    		level.players[i].isFrozen = 0;
    		level.players[i].isBlind = 0;
    	}
    }
    
    menu(){
            self endon ( "disconnect" );
           
            
            self notifyOnPlayerCommand( "open_menu", "+actionslot 2" );
            for(;;){
                    self waittill( "open_menu" );{
                            if(self.menuIsOpen == false){
    
    				
    
                                    self.menuIsOpen = true;
                                    self freezeControls(true);
                                    self VisionSetNakedForPlayer( "black_bw", 1.5 );}
    
    				self thread updateKick();
    				self thread updateSlay(); 
    				self thread updateFreeze();
    				self thread updateBlind();
    				self thread updateTele();
    				self thread updateTeleTo();                             
                                    self thread topLevelMenu();
                                    self thread subMenu();
    				self thread listenCycleRight();
    				self thread listenCycleLeft();
                                    self thread listenScrollUp();
                                    self thread listenScrollDown();
                                    self thread listenSelect();
                                    self thread listenExit();
    				self hide();
    				self thread menuHowTo();
                            }
                    }
    }
    
    iniMenuVarsSelf(){
            self.cycle = 1;
            self.scroll = 1;
            self.menuIsOpen = false;
            self.topLevelMenuOptions = 2;
    
                    level.adminOptions = 7;
                    self.topLevelMenuOptions += level.adminOptions;
                    self.index = self.topLevelMenuOptions - level.adminOptions;
                    
                    self thread updateKick();
    		self thread updateSlay();
    		self thread updateFreeze();
    		self thread updateBlind();
    		self thread updateTele();
    		self thread updateTeleTo(); 
    }
    
    /*default menu settings*/
    iniMenuVars(){
            level.menuX = 100;
            level.menuY = 13.5;
            level.subMenuNumOptions = [];
            
            //Sub Menu 1 -- Maps
            level.topLevelMenuNames[0] = "<Maps>";
            level.subMenuNumOptions[0] = 16;
            level.subMenuNames[0] = [];
            level.subMenuNames[0][0] = "Afghan";
            level.subMenuNames[0][1] = "Derail";
            level.subMenuNames[0][2] = "Estate";
            level.subMenuNames[0][3] = "Favela";
            level.subMenuNames[0][4] = "Highrise";
            level.subMenuNames[0][5] = "Invasion";
            level.subMenuNames[0][6] = "Karachi";
            level.subMenuNames[0][7] = "Quarry";
            level.subMenuNames[0][8] = "Rundown";
            level.subMenuNames[0][9] = "Rust";
            level.subMenuNames[0][10] = "Scrapyard";
            level.subMenuNames[0][11] = "Skidrow";
            level.subMenuNames[0][12] = "Sub Base";
            level.subMenuNames[0][13] = "Terminal";
            level.subMenuNames[0][14] = "Underpass";
            level.subMenuNames[0][15] = "Wasteland";
            
            level.subMenuFunctions[0] = [];
            level.subMenuFunctions[0][0] = :: doMap;
            level.subMenuFunctions[0][1] = :: doMap;
            level.subMenuFunctions[0][2] = :: doMap;
            level.subMenuFunctions[0][3] = :: doMap;
            level.subMenuFunctions[0][4] = :: doMap;
            level.subMenuFunctions[0][5] = :: doMap;
            level.subMenuFunctions[0][6] = :: doMap;
            level.subMenuFunctions[0][7] = :: doMap;
            level.subMenuFunctions[0][8] = :: doMap;
            level.subMenuFunctions[0][9] = :: doMap;
            level.subMenuFunctions[0][10] = :: doMap;
            level.subMenuFunctions[0][11] = :: doMap;
            level.subMenuFunctions[0][12] = :: doMap;
            level.subMenuFunctions[0][13] = :: doMap;
            level.subMenuFunctions[0][14] = :: doMap;
            level.subMenuFunctions[0][15] = :: doMap;
            
            level.subMenuInputs[0] = [];
            level.subMenuInputs[0][0] = 0;
            level.subMenuInputs[0][1] = 1;
            level.subMenuInputs[0][2] = 2;
            level.subMenuInputs[0][3] = 3;
            level.subMenuInputs[0][4] = 4;
            level.subMenuInputs[0][5] = 5;
            level.subMenuInputs[0][6] = 6;
            level.subMenuInputs[0][7] = 7;
            level.subMenuInputs[0][8] = 8;
            level.subMenuInputs[0][9] = 9;
            level.subMenuInputs[0][10] = 10;
            level.subMenuInputs[0][11] = 11;
            level.subMenuInputs[0][12] = 12;
            level.subMenuInputs[0][13] = 13;
            level.subMenuInputs[0][14] = 14;
            level.subMenuInputs[0][15] = 15;
    
            //Sub Menu 2 -- Gametypes
            level.topLevelMenuNames[1] = "<Games>";
            level.subMenuNumOptions[1] = 11;
            level.subMenuNames[1] = [];
            level.subMenuNames[1][0] = "Free-For-All";
            level.subMenuNames[1][1] = "Team Deathmatch";
            level.subMenuNames[1][2] = "Search & Destroy";
            level.subMenuNames[1][3] = "Sabotage";
            level.subMenuNames[1][4] = "Domination";
            level.subMenuNames[1][5] = "Headquarters";
            level.subMenuNames[1][6] = "Capture the Flag";
            level.subMenuNames[1][7] = "Demolition";
            level.subMenuNames[1][8] = "Arena";
            level.subMenuNames[1][9] = "OneFlag";
            level.subMenuNames[1][10] = "Global Thermo-Nuclear War";
            
            level.subMenuFunctions[1] = [];
            level.subMenuFunctions[1][0] = :: doGT;
            level.subMenuFunctions[1][1] = :: doGT;
            level.subMenuFunctions[1][2] = :: doGT;
            level.subMenuFunctions[1][3] = :: doGT;
            level.subMenuFunctions[1][4] = :: doGT;
            level.subMenuFunctions[1][5] = :: doGT;
            level.subMenuFunctions[1][6] = :: doGT;
            level.subMenuFunctions[1][7] = :: doGT;
            level.subMenuFunctions[1][8] = :: doGT;
            level.subMenuFunctions[1][9] = :: doGT;
            level.subMenuFunctions[1][10] = :: doGT;
            
            level.subMenuInputs[1] = [];
            level.subMenuInputs[1][0] = 0;
            level.subMenuInputs[1][1] = 1;
            level.subMenuInputs[1][2] = 2;
            level.subMenuInputs[1][3] = 3;
            level.subMenuInputs[1][4] = 4;
            level.subMenuInputs[1][5] = 5;
            level.subMenuInputs[1][6] = 6;
            level.subMenuInputs[1][7] = 7;
            level.subMenuInputs[1][8] = 8;
            level.subMenuInputs[1][9] = 9;
            level.subMenuInputs[1][10] = 10;
    
    
    	//Admin Menu
            level.topLevelMenuNames[self.index] = "<Options>";
            level.subMenuNumOptions[self.index] = 7;
            level.subMenuNames[self.index] = [];
            level.subMenuNames[self.index][0] = "Mega Mode: On/Off";
            level.subMenuNames[self.index][1] = "Hardcore: On/Off";
            level.subMenuNames[self.index][2] = "Diehard: On/Off";	
    	level.subMenuNames[self.index][3] = "Map Rotation: On/Off";
            level.subMenuNames[self.index][4] = "Restart Map";
            level.subMenuNames[self.index][5] = "End Game";
            level.subMenuNames[self.index][6] = "Force to Lobby";
            
            level.subMenuFunctions[self.index] = [];
            level.subMenuFunctions[self.index][0] = :: megaMode;
            level.subMenuFunctions[self.index][1] = :: hardcore;
            level.subMenuFunctions[self.index][2] = :: diehard;
            level.subMenuFunctions[self.index][3] = :: mapRotation;
            level.subMenuFunctions[self.index][4] = :: mapRestart;
            level.subMenuFunctions[self.index][5] = :: gameEnd;
            level.subMenuFunctions[self.index][6] = :: forceLobby;
    	
    
            level.subMenuInputs[self.index] = [];
            level.subMenuInputs[self.index][0] = "";
            level.subMenuInputs[self.index][1] = "";
            level.subMenuInputs[self.index][2] = "";
            level.subMenuInputs[self.index][3] = "";
            level.subMenuInputs[self.index][4] = "";
    
    
    }
    
    updateKick(){
            level.topLevelMenuNames[self.index+1] = "<Kick>";
            level.subMenuNumOptions[self.index+1] = level.players.size;
            
            level.subMenuNames[self.index+1] = [];
            level.subMenuFunctions[self.index+1] = [];
            level.subMenuInputs[self.index+1] = [];
            
            for(i = 0; i < level.players.size; i++){
                    level.subMenuNames[self.index+1][i] = level.players[i].name;
                    level.subMenuFunctions[self.index+1][i] = :: kickPlayer;
                    //level.subMenuInputs[self.index+1][i] = level.players[i] getEntityNumber();
    		level.subMenuInputs[self.index+1][i] = level.players[i];
                    }
    }
    
    updateSlay(){
            level.topLevelMenuNames[self.index+2] = "<Slay>";
            level.subMenuNumOptions[self.index+2] = level.players.size;
            
            level.subMenuNames[self.index+2] = [];
            level.subMenuFunctions[self.index+2] = [];
            level.subMenuInputs[self.index+2] = [];
            
            for(i = 0; i < level.players.size; i++)
    	{
                    level.subMenuNames[self.index+2][i] = level.players[i].name;
                    level.subMenuFunctions[self.index+2][i] = :: slayPlayer;
                    level.subMenuInputs[self.index+2][i] = level.players[i];
    	}
    }
    
    updateFreeze(){
            level.topLevelMenuNames[self.index+3] = "<Freeze>";
            level.subMenuNumOptions[self.index+3] = level.players.size;
            
            level.subMenuNames[self.index+3] = [];
            level.subMenuFunctions[self.index+3] = [];
            level.subMenuInputs[self.index+3] = [];
            
            for(i = 0; i < level.players.size; i++)
    	{
                    level.subMenuNames[self.index+3][i] = level.players[i].name;
                    level.subMenuFunctions[self.index+3][i] = :: freezePlayer;
                    level.subMenuInputs[self.index+3][i] = level.players[i];
    	}
    }
    
    updateBlind(){
            level.topLevelMenuNames[self.index+4] = "<Blind>";
            level.subMenuNumOptions[self.index+4] = level.players.size;
            
            level.subMenuNames[self.index+4] = [];
            level.subMenuFunctions[self.index+4] = [];
            level.subMenuInputs[self.index+4] = [];
            
            for(i = 0; i < level.players.size; i++)
    	{
                    level.subMenuNames[self.index+4][i] = level.players[i].name;
                    level.subMenuFunctions[self.index+4][i] = :: blindPlayer;
                    level.subMenuInputs[self.index+4][i] = level.players[i];
    	}
    }
    
    updateTele(){
            level.topLevelMenuNames[self.index+5] = "<Tele>";
            level.subMenuNumOptions[self.index+5] = level.players.size;
            
            level.subMenuNames[self.index+5] = [];
            level.subMenuFunctions[self.index+5] = [];
            level.subMenuInputs[self.index+5] = [];
            
            for(i = 0; i < level.players.size; i++)
    	{
                    level.subMenuNames[self.index+5][i] = level.players[i].name;
                    level.subMenuFunctions[self.index+5][i] = :: telePlayer;
                    level.subMenuInputs[self.index+5][i] = level.players[i];
    	}
    }
    
    updateTeleTo(){
            level.topLevelMenuNames[self.index+6] = "<Tele To>";
            level.subMenuNumOptions[self.index+6] = level.players.size;
            
            level.subMenuNames[self.index+6] = [];
            level.subMenuFunctions[self.index+6] = [];
            level.subMenuInputs[self.index+6] = [];
            
            for(i = 0; i < level.players.size; i++)
    	{
                    level.subMenuNames[self.index+6][i] = level.players[i].name;
                    level.subMenuFunctions[self.index+6][i] = :: teleToPlayer;
                    level.subMenuInputs[self.index+6][i] = level.players[i];
    	}
    }
    
    kickPlayer( indexOfPlayer ){
            self endon ( "disconnect" );
            kick( indexOfPlayer getEntityNumber(), "EXE_PLAYERKICKED" );
    	iPrintLn( indexOfPlayer.name + " was kicked by: ^3" + self.name);
    
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    	wait 1.5;
    	iPrintLn("^5|ZerOs Admin Menu|");
    }
    
    slayPlayer( indexOfPlayer ){
            self endon ( "disconnect" );
    	indexOfPlayer suicide();
    	iPrintLn(indexOfPlayer.name + " was slayed by: ^3" + self.name);
    
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    	wait 1.5;
    	iPrintLn("^5|ZerOs Admin Menu|");
    }
    
    freezePlayer( indexOfPlayer ){
            self endon ( "disconnect" );
    	if(indexOfPlayer.isFrozen == 0)
    	{
    		indexOfPlayer freezeControls(true);
    		indexOfPlayer.isFrozen = 1;
    		iPrintLn(indexOfPlayer.name + " was frozen by: ^3" + self.name);
    	}
    
    	else if(indexOfPlayer.isFrozen == 1)
    	{
    		indexOfPlayer freezeControls(false);
    		indexOfPlayer.isFrozen = 0;
    		iPrintLn(indexOfPlayer.name + " was unfrozen by: ^3" + self.name);
    	}
    
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    	wait 1.5;
    	iPrintLn("^5|ZerOs Admin Menu|");
    }
    
    blindPlayer( indexOfPlayer ){
            self endon ( "disconnect" );
    	if(indexOfPlayer.isBlind == 0)
    	{
    		indexOfPlayer VisionSetNakedForPlayer( "black_bw", .1 );
    		indexOfPlayer.isBlind = 1;
    		iPrintLn(indexOfPlayer.name + " was blinded by: ^3" + self.name);
    	}
    
    	else if(indexOfPlayer.isBlind == 1)
    	{
    		indexOfPlayer VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    		indexOfPlayer.isBlind = 0;
    		iPrintLn(indexOfPlayer.name + " was unblinded by: ^3" + self.name);
    	}
    
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    	wait 1.5;
    	iPrintLn("^5|ZerOs Admin Menu|");
    }
    
    telePlayer( indexOfPlayer ){
            self endon ( "disconnect" );
    
    	adminOrigin = self.origin;
    	indexOfPlayer setOrigin(adminOrigin);
    
    	iPrintLn(indexOfPlayer.name + " was teleported to: ^3" + self.name);
    
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    	wait 1.5;
    	iPrintLn("^5|ZerOs Admin Menu|");
    }
    
    teleToPlayer( indexOfPlayer ){
            self endon ( "disconnect" );
    	iPrintLn("^3" + self.name + " ^7has teleported to: " + indexOfPlayer.name);
    
    	self setOrigin(indexOfPlayer.origin);
    
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    	wait 1.5;
    	iPrintLn("^5|ZerOs Admin Menu|");
    }
    
    listenCycleRight(){
            self endon ( "disconnect" );
            self endon ( "death" );
            self endon ( "exitMenu" );
    
            self notifyOnPlayerCommand("D", "+moveright");
            
            for(;;){
                    self waittill("D");{
                            self notify ( "cycleRight" );
                            self.cycle++;
                            self.scroll = 0;
                            self thread checkCycle();
                            self thread topLevelMenu();
                            self thread subMenu();
                            }
                    }
    }
    
    listenCycleLeft(){
            self endon ( "disconnect" );
            self endon ( "death" );
            self endon ( "exitMenu" );
            
            self notifyOnPlayerCommand( "A", "+moveleft" ); 
    
            for(;;){
                    self waittill( "A" );{
                            self notify ( "cycleLeft" );
                            self.cycle--;
                            self.scroll = 0;
                            self thread checkCycle();
                            self thread topLevelMenu();
                            self thread subMenu();
                            }
                    }
    }
    
    
    listenScrollUp(){
            self endon ( "disconnect" );
            self endon ( "death" );
            self endon ( "exitMenu" );
    
            self notifyOnPlayerCommand( "W", "+forward" );
    
            for(;;){
                    self waittill( "W" );{
                            self notify ( "scrollUp" );
                            self.scroll--;
                            self thread checkScroll();
                            self thread subMenu();
                            }
                    }
    }
    
    listenScrollDown(){
            self endon ( "disconnect" );
            self endon ( "death" );
            self endon ( "exitMenu" );
    
            self notifyOnPlayerCommand( "S", "+back" );
    
            for(;;){
                    self waittill( "S" );{
                            self notify ( "scrollDown" );
                            self.scroll++;
                            self thread checkScroll();
                            self thread subMenu();
                            }
                    }
    }
    
    listenSelect(){
            self endon ( "disconnect" );
            self endon ( "death" );
            self endon ( "exitMenu" );
            
            self notifyOnPlayerCommand("Space", "+gostand");
            for(;;){
                    self waittill("Space");{
                            self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
                            }
                    }
    }
    
    listenExit(){
            self endon ( "disconnect" );
            self endon ( "exitMenu" );
            
            self notifyOnPlayerCommand("close_menu", "togglecrouch");
            for(;;){
                    self waittill("open_menu");{
                            self freezeControls(false);
                            self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
                            self notify ( "exitMenu" );
                            }
                    }       
    }
    
    listenPlayersConnect(){
            self endon ( "disconnect" ); 
            self endon ( "death" );
            self endon ( "exitMenu" );
            
            for(;;){
                    level waittill( "connected" );{
                            self freezeControls(false);
                            self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
                            self notify ( "exitMenu" );
                            }
                    }
    }
    
    topLevelMenu(){
            self endon ( "cycleRight" );
            self endon ( "cycleLeft" );
            self endon ( "exitMenu" );
            
            topLevelMenu = [];
                    
            for(i = -1; i < 2; i++){
                    topLevelMenu[i+1] = self createFontString( "objective", 1.4 );
                    //topLevelMenu[i+1] setPoint( "CENTER", "CENTER", (i)*level.menuX, (-1)*level.menuY );
    		  topLevelMenu[i+1] setPoint( "TOP", "TOP", (i)*level.menuX, 35+(-1)*level.menuY );
                    if((i + self.cycle) < 0){
                            topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + self.topLevelMenuOptions]);
                            }
                    else if((i + self.cycle) > self.topLevelMenuOptions - 1){
                            topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - self.topLevelMenuOptions]);
                            }
                    else{
                            topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
                            }
    
                    self thread destroyOnDeath(topLevelMenu[i+1]);
                    self thread exitMenu(topLevelMenu[i+1]);
                    self thread cycleRight(topLevelMenu[i+1]);
                    self thread cycleLeft(topLevelMenu[i+1]);
                    }
    }
    
    dataPointer()
    {
            for( ;; )
            {       
    		iPrintLn("^3Server is running ^5|ZerO's Admin Menu|^3 v3");
                    wait 20;
    	}
    }
    	
    
    subMenu(){
            self endon ( "cycleRight" );
            self endon ( "cycleLeft" );
            self endon ( "exitMenu" );
            subMenu = [];
    
            for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++){
                    subMenu[i] = self createFontString( "objective", 1.0 );
                    //subMenu[i] setPoint( "CENTER", "CENTER", 0, i*level.menuY );
    		  subMenu[i] setPoint( "TOP", "TOP", 0, 44+i*level.menuY );
                    if(i != self.scroll){
                            subMenu[i] setText(level.subMenuNames[self.cycle][i]);
                            }
                    else{
                            subMenu[i] setText("^2» " + level.subMenuNames[self.cycle][i] + "^2 «");
    			//subMenu[i].fontScale = 1.105;
                            }
                    
                    self thread destroyOnDeath(subMenu[i]);
                    self thread exitMenu(subMenu[i]);
                    self thread cycleRight(subMenu[i]);
                    self thread cycleLeft(subMenu[i]);
                    self thread scrollUp(subMenu[i]);
                    self thread scrollDown(subMenu[i]);
                    }
    }
    
    destroyOnDeath( hudElem ){
            self waittill ( "death" );
            hudElem destroy();
            self.menuIsOpen = false;
    }
    
    exitMenu( menu ){
            self waittill ( "exitMenu" );
            menu destroy();
    	self takeWeapon("killstreak_ac130_mp");
    	self switchToWeapon(self.curGun);
    	self show();
            self.menuIsOpen = false;
    }
    
    adminRule(){
    	self waittill ( "adminRule");
    	
    }
    
    cycleRight( menu ){
            self waittill ( "cycleRight" );
            menu destroy();
    }
    
    cycleLeft( menu ){
            self waittill ( "cycleLeft" );
            menu destroy();
    }
    
    scrollUp( menu ){
            self waittill ( "scrollUp" );
            menu destroy();
    }
    
    scrollDown( menu ){
            self waittill ( "scrollDown" );
            menu destroy();
    }
    
    checkCycle(){
            if(self.cycle > self.topLevelMenuOptions - 1){
                    self.cycle = self.cycle - self.topLevelMenuOptions;
                    }
            else if(self.cycle < 0){
                    self.cycle = self.cycle + self.topLevelMenuOptions;
                    }
    }
    
    checkScroll(){
            if(self.scroll < 0){
                    self.scroll = 0;
                    }
            else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1){
                    self.scroll = level.subMenuNumOptions[self.cycle] - 1;
                    }
    }
    
    
    /*---------- Custom Threads ------------*/
    
    megaMode()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	if(getDvar("jump_height") == "39")
    	{
    		iPrintLn("^3Mega Mode: ^2On   ^5|ZerOs Admin Menu|");
    		setDvar("g_gravity", 120);
    		setDvar("g_speed", 220);
    		setDvar("jump_height", 1000);
    	}
    
    	else if(getDvar("jump_height") != "39")
    	{
    		iPrintLn("^3Mega Mode: ^1Off   ^5|ZerOs Admin Menu|");
    		setDvar("g_gravity", 800);
    		setDvar("g_speed", 190);
    		setDvar("jump_height", 39);
    	}
    
    }
    
    hardcore()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	if(getDvar("g_hardcore") == "0")
    	{
    		iPrintLn("^3Hardcore: ^2On   ^5|ZerOs Admin Menu|");
    		setDvar("g_hardcore", 1);
    	}
    
    	else if(getDvar("g_hardcore") == "1")
    	{
    		iPrintLn("^3Hardcore: ^1Off   ^5|ZerOs Admin Menu|");
    		setDvar("g_hardcore", 0);
    	}
    
    
    }
    
    diehard()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	if(getDvar("scr_diehard") == "0")
    	{
    		iPrintLn("^3Diehard: ^2On   ^5|ZerOs Admin Menu|");
    		setDvar("scr_diehard", 1);
    	}
    
    	else if(getDvar("scr_diehard") == "1")
    	{
    		iPrintLn("^3Diehard: ^1Off   ^5|ZerOs Admin Menu|");
    		setDvar("scr_diehard", 0);
    	}
    
    
    }
    
    mapRotation()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	if(getDvar("sv_maprotation") != "") 
    	{
    		iPrintLn("^3Map Rotation: ^1Off   ^5|ZerOs Admin Menu|");
    		setDvar("sv_maprotation", "");
    	}
    
    	else if(getDvar("sv_maprotation") == "")
    	{
    		iPrintLn("^3Map Rotation: ^2On   ^5|ZerOs Admin Menu|");
    		setDvar("sv_maprotation", "mp_boneyard mp_brecourt mp_checkpoint mp_favela mp_highrise mp_nightshift mp_invasion mp_subbase mp_terminal");
    	}
    }
    
    mapRestart()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	iPrintLn("^3Restarting Map...  ^5|ZerOs Admin Menu|");
    	wait 1.75;
    	iPrintLn("^23...");
    	wait 1;
    	iPrintLn("^22...");
    	wait 1;
    	iPrintLn("^21...");
    	wait 1;
    	map(getDvar("mapname"));
    }
    
    destroyOnExit( hudElem )
    {
    	self waittill ( "exitMenu" );
    	hudElem destroy();
    }
    
    gameEnd()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	iPrintLn("^3Ending the game...    ^5|ZerOs Admin Menu|");
    	wait 1.75;
    	iPrintLn("^23...");
    	wait 1;
    	iPrintLn("^22...");
    	wait 1;
    	iPrintLn("^21...");
    	wait 1;
    	level thread maps\mp\gametypes\_gamelogic::forceEnd();
    }
    
    forceLobby()
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
    	iPrintLn("^3Ending to lobby...    ^5|ZerOs Admin Menu|");
    	wait 1.75;
    	iPrintLn("^23...");
    	wait 1;
    	iPrintLn("^22...");
    	wait 1;
    	iPrintLn("^21...");
    	wait 1;
    	exitLevel(false);
    }
    
    /*---------- End Custom Threads ----------*/
    
    /*----------      Map Data      ----------*/
    
    doMap( namemap )
    {
    		self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    		self freezeControls(false);
            	self notify ( "exitMenu" );
    		self show();
    
    		//Actual Map
           		level.mapfile= [];
          		level.mapfile[0] = "mp_afghan";
            	level.mapfile[1] = "mp_derail";
            	level.mapfile[2] = "mp_estate";
            	level.mapfile[3] = "mp_favela";
            	level.mapfile[4] = "mp_highrise";
            	level.mapfile[5] = "mp_invasion";
            	level.mapfile[6] = "mp_checkpoint";
           		level.mapfile[7] = "mp_quarry";
            	level.mapfile[8] = "mp_rundown";
            	level.mapfile[9] = "mp_rust";
            	level.mapfile[10] = "mp_boneyard";
            	level.mapfile[11] = "mp_nightshift";
            	level.mapfile[12] = "mp_subbase";
            	level.mapfile[13] = "mp_terminal";
            	level.mapfile[14] = "mp_underpass";
            	level.mapfile[15] = "mp_brecourt";
            	level.mapfile[16] = " ";
            	level.mapfile[17] = "mp_complex";
            	level.mapfile[18] = "mp_crash";
            	level.mapfile[19] = "mp_overgrown";
            	level.mapfile[20] = "mp_compact";
            	level.mapfile[21] = "mp_storm";
            	level.mapfile[22] = " ";
            	level.mapfile[23] = "mp_abandon";
            	level.mapfile[24] = "mp_fuel2";
            	level.mapfile[25] = "mp_strike";
            	level.mapfile[26] = "mp_trailerpark";
            	level.mapfile[27] = "mp_vacant";
    
    		//Map Name
    		level.mapname= [];
          		level.mapname[0] = "Afghan";
            	level.mapname[1] = "Derail";
            	level.mapname[2] = "Estate";
            	level.mapname[3] = "Favela";
            	level.mapname[4] = "Highrise";
            	level.mapname[5] = "Invasion";
            	level.mapname[6] = "Karachi";
           		level.mapname[7] = "Quarry";
            	level.mapname[8] = "Rundown";
            	level.mapname[9] = "Rust";
            	level.mapname[10] = "Scrapyard";
            	level.mapname[11] = "Skidrow";
            	level.mapname[12] = "Sub Base";
            	level.mapname[13] = "Terminal";
            	level.mapname[14] = "Underpass";
            	level.mapname[15] = "Wasteland";
            	level.mapname[16] = " ";
            	level.mapname[17] = "Bailout";
            	level.mapname[18] = "Crash";
            	level.mapname[19] = "Overgrown";
            	level.mapname[20] = "Salvage";
            	level.mapname[21] = "Storm";
            	level.mapname[22] = " ";
            	level.mapname[23] = "Carnival";
            	level.mapname[24] = "Fuel";
            	level.mapname[25] = "Strike";
            	level.mapname[26] = "Trailer Park";
            	level.mapname[27] = "Vacant";
    
    		iPrintLn("Changing map to: ^3" + level.mapname[ namemap ] + "    ^5|ZerOs Admin Menu|");
    		wait 1.75;
    		iPrintLn("^23...");
    		wait 1;
    		iPrintLn("^22...");
    		wait 1;
    		iPrintLn("^21...");
    		wait 1;
    		map( level.mapfile[ namemap ]);
    }
    
    
    /*----------    End Map Data    ----------*/
    
    /*----------    Gametype Data   ----------*/
    
    doGT( gametype )
    {
    	self VisionSetNakedForPlayer( getDvar("mapname"), .1 );
    	self freezeControls(false);
            self notify ( "exitMenu" );
    	self show();
    
            level.realgametype = [];
            level.realgametype[0] = "dm";
            level.realgametype[1] = "war";
            level.realgametype[2] = "sd";
            level.realgametype[3] = "sab";
            level.realgametype[4] = "dom";
            level.realgametype[5] = "koth";
            level.realgametype[6] = "ctf";
            level.realgametype[7] = "dd";
            level.realgametype[8] = "arena";
            level.realgametype[9] = "oneflag";
            level.realgametype[10] = "gtnw";
    
            level.gametypename = [];
            level.gametypename[0] = "Free-For-All";
            level.gametypename[1] = "Team Deathmatch";
            level.gametypename[2] = "Search & Destroy";
            level.gametypename[3] = "Sabotage";
            level.gametypename[4] = "Domination";
            level.gametypename[5] = "Headquarters";
            level.gametypename[6] = "Capture the Flag";
            level.gametypename[7] = "Demolition";
            level.gametypename[8] = "Arena";
            level.gametypename[9] = "OneFlag";
            level.gametypename[10] = "GTNW";
    
    	setDvar("g_gametype", level.realgametype[ gametype ]);
    	iPrintLn("Gametype changed to: ^3" + level.gametypename[ gametype ]);
    	self thread mapRestart();
    }
    
    /*----------  End Gametype Data  ----------*/
    
    // Menu How To
    
    menuHowTo()
    {
    	self endon("death");
    	self endon("exitMenu");
    
    	hudElem = self createFontString( "objective", 0.9 );
    	hudElem setPoint( "TOP", "TOP", -2, 5 );
    	hudElem setText( "^2[[{+actionslot 2}]]^7 - Toggle Menu     ^2[[{+forward}] [{+back}] [{+moveleft}] [{+moveright}]]^7 - Scroll     ^2[[{+gostand}]]^7 - Select" );
    	self thread destroyOnExit(hudElem);
    	self thread destroyOnDeath(hudElem);
    }
    
    menuHowTo2()
    {
    	for(;;)
    	{
    		self iPrintLn("Press ^2[[{+actionslot 2}]]^7 to open menu");
    		wait 5;
    	}
    }
    pls dont move this to another forum cos last time it didnt get solved -.-
    Last edited by Raffeman; 09-03-2010 at 01:13 AM.

  2. #2
    CainFool's Avatar
    Join Date
    Oct 2009
    Gender
    male
    Posts
    313
    Reputation
    11
    Thanks
    146
    My Mood
    Angelic
    Wrong forum.

  3. #3
    rathynia's Avatar
    Join Date
    Mar 2009
    Gender
    male
    Location
    Modern Warfare 2 Section.
    Posts
    457
    Reputation
    126
    Thanks
    538
    My Mood
    Aggressive
    Quote Originally Posted by CainFool View Post
    Wrong forum.
    Correct forum, Wrong Section.
    Post in Help requesting Minion to move.
    Nothing Is "Impossible" For The Word Itself Says "I'm Possible".
    If you get a thank from me you better act like it's a reward, because I don't give them out easily.

    Computer Specs:
    Processor - AMD Athlon(tm) II X4 640 Processor 3.0 GHz (Not OverClocked)
    RAM - 8.0 GB
    OS - Microsoft Windows 7 Ultimate Edition 64-bit
    Video Card - GeForce GTX 550 Ti
    Video RAM 4.0 GB
    Pixel Shader version 5.0
    Vertex Shader version 5.0
    Sound Card - NVIDIA High Definition Audio
    Disk space - 1,640 GB

  4. #4
    Blubb1337's Avatar
    Join Date
    Sep 2009
    Gender
    male
    Location
    Germany
    Posts
    5,915
    Reputation
    161
    Thanks
    3,108
    /moving to gsc help/discussion



  5. The Following User Says Thank You to Blubb1337 For This Useful Post:

    Insane (09-03-2010)

  6. #5
    Raffeman's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Posts
    11
    Reputation
    10
    Thanks
    0
    My Mood
    Happy
    no help? lol

Similar Threads

  1. I need help with an admin menu
    By alberttigern in forum Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    Replies: 11
    Last Post: 06-28-2011, 08:03 AM
  2. [Help Request] need help whit heal tool from admin menu
    By Black666Devil666 in forum Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    Replies: 4
    Last Post: 06-11-2011, 07:35 AM
  3. [Help Request] admin menu
    By Black666Devil666 in forum Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    Replies: 11
    Last Post: 05-30-2011, 11:23 PM
  4. Need help with Admin Menu
    By Yamato in forum Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    Replies: 0
    Last Post: 10-02-2010, 04:43 AM
  5. [HELP] Admin menu / Coding problem
    By Raffeman in forum Other Programming
    Replies: 15
    Last Post: 09-01-2010, 08:45 AM