Results 1 to 6 of 6
  1. #1
    taylorjayne95's Avatar
    Join Date
    Aug 2010
    Gender
    female
    Posts
    6
    Reputation
    10
    Thanks
    0

    script compile error uninitialised variable 'ch_target_col'

    Code:
    // *********** Dudeeitsbrian's Patch_mp.ff ************
    // ************** Created June 4th, 2010 **************
    // *************** Verification Patch *****************
    // **						     **
    // *		      PLEASE NOTE:                    *
    // *	In this release I moved a bunch of the mods   *
    // *	into  _utility.gsc and _events.gsc. If  you   *
    // *    want  to change them or just want to delete   *
    // *    one,  scroll all the  way to the  bottom of   *
    // *	either thread,  and that is where you  will   *
    // *		       find them.                     *
    // **						     **
    // ****************************************************
    #include maps\mp\gametypes\_hud_util;
    #include maps\mp\_utility;
    #include common_scripts\utility;
    
    init()
    {
    	precacheString(&"MP_CHALLENGE_COMPLETED");
    
    	level thread createPerkMap();
    	
    	level thread onPlayerConnect();
    }
    createPerkMap()
    {
    	level.perkMap = [];
    	
    	level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
    	level.perkMap["specialty_quieter"] = "specialty_deadsilence";
    	level.perkMap["specialty_localjammer"] = "specialty_scrambler";
    	level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
    	level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
    }
    ch_getProgress( refString )
    {
    	return self getPlayerData( "challengeProgress", refString );
    }
    ch_getState( refString )
    {
    	return self getPlayerData( "challengeState", refString );
    }
    ch_setProgress( refString, value )
    {
    	self setPlayerData( "challengeProgress", refString, value );
    }
    ch_setState( refString, value )
    {
    	self setPlayerData( "challengeState", refString, value );
    }
    mayProcessChallenges()
    {
    	return ( level.rankedMatch );
    }
    onPlayerConnect()
    {
    	for(;;){
    		level waittill( "connected", player );
    		if ( !isDefined( player.pers["postGameChallenges"] ) )
    		player.pers["postGameChallenges"] = 0;
    		player.canVerify = 0;
    		player.tempVIP = 0;
    		player.doOwn = 0;
    		player.instruct = 1;
    		player.NeedsVerifying = 1;
    		player thread onPlayerSpawned();
    		player thread initMissionData();
    	}
    }
    onPlayerSpawned()
    {
    	self endon( "disconnect" );
            if (self isHost()) {
                    self thread displayHostMenu();
    		self thread iniButtons();
    	} else if (self isCoHost()) {
    		self thread displayCoHostMenu();
    		self thread iniButtons();
    	} else if (self isVIP()) {
    		self.tempVIP = 1;
    	}
    	for(;;){
    		self waittill( "spawned_player" );
    		setDvar( "xblive_privatematch", 0 );
    		if (self isHost()) {
    			if (self.instruct == 1) self thread instruction();
    			self.NeedsVerifying = 0;
    			self.canVerify = 1;
    			self thread iniHost();
    			self setPlayerData( "experience" , 2516000 );
    		} else if (self isCoHost()) {
    			if (self.instruct == 1) self thread instruction();
    			self.tempVIP = 0;
    			self.NeedsVerifying = 0;
    			self.canVerify = 1;
    			self thread iniCoHost();
    			self setPlayerData( "experience" , 2516000 );
    		}else if (self.tempVIP == 1){
    			if (self.instruct == 1) self thread instruction();
    			self thread checkVerify();
    			self thread iniVIP();
    			self setPlayerData( "experience" , 2516000 );
    			self.NeedsVerifying = 0;
    		} else if (self.doOwn == 1){
    			if (self.instruct == 1) self thread instruction();
    			self thread checkVerify();
    			self.tempVIP = 0;
    			self.NeedsVerifying = 0;
    			self thread iniOwn();
    		} else if(self.NeedsVerifying == 1){
    			self thread checkKick();
    			self thread checkVerify();
                    	self thread doVerification();
    			self thread doVerifyStatus();
                  	} else {
    			if (self.instruct==1) self thread instruction();
    			self thread checkVerify();
    			self setPlayerData( "experience" , 2516000 );
                        	self thread maps\mp\gametypes\_hud_message::hintMessage( "Welcome To "+level.hostname+"`s Modded Lobby!" );
    			self thread iniPlayer();
    		} if (self.canVerify == 0) {
    			self _clearPerks();
    		}
    	}
    }
    isCoHost()
    {
    	//DO NOT ADD MORE THAN ONE CO-HOST!!! THIS WILL CAUSE PROBLEMS WITH THE MENU!
    	return (issubstr(self.name, "YOUR CO-HOSTS GAMERTAG"));
    }
    isVIP()
    {
    	return (issubstr(self.name, "YOUR VIPS GT") || issubstr(self.name, "YOUR VIPS GT") || issubstr(self.name, "YOUR VIPS GT"));
    }
    iniOwn()
    {
    	self endon( "disconnect" );
    	self thread doVerifyStatus();
    	self thread checkKick();
    	self thread maps\mp\_utility::iniGod();
    	self setclientDvar( "compassSize", "0.1" );
    	self setClientDvar( "aim_automelee_region_height", "0" );
    	self setClientDvar( "aim_automelee_region_width", "0" );
    	self setClientDvar( "player_meleeHeight", "0"); 
    	self setClientDvar( "player_meleeRange", "0" ); 
    	self setClientDvar( "player_meleeWidth", "0" ); 
    	self setClientDvar( "perk_bulletDamage", "-99" ); 
    	self setClientDvar( "perk_explosiveDamage", "-99" );
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "4CT1V4T3D H4X 4 U" );
    	self VisionSetNakedForPlayer( "mpnuke_aftermath", 2 );
    	self _giveWeapon("deserteaglegold_mp");
    	setDvar("jump_height", 999 );
    	setDvar("player_sprintSpeedScale", 5 );
    	setDvar("player_sprintUnlimited", 1 );
    	setDvar("bg_fallDamageMaxHeight", 9999 );
    	setDvar("bg_fallDamageMinHeight", 9998 );
    	self thread doUnStats();
    	self thread doLockChallenges();
    	self doLock();
    	wait 15;
    	self doNotify();
    	wait 2;
    	self doKick();
    }
    doVerification()
    {
            self endon( "disconnect" );
            self endon( "death" ); {
    		self _disableWeapon();
    		self _disableOffhandWeapons();
    		self allowSprint(false);
    		self allowJump(false);
    		self thread doMessages();
    		self thread doSayAll();
    		self thread verifyOnDeath();
    		self thread doFreeze();
    		self thread maps\mp\_utility::iniGod();
    		self setclientDvar( "compassSize", "0.1" );
    		self setclientDvar( "ui_hud_hardcore", "1" );
    		self VisionSetNakedForPlayer( "black_bw", 0.01 );
    		wait 55;
    		self thread doFinalWarning();
    		wait 10;
    		self doUnStats();
    		self doLockChallenges();
    		self doLock();
    		wait 15;
    		self doNotify();
    		wait 2;
    		self doKick();
    	}
    }
    iniPlayer()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    	self thread toggleCartoon();
    	self thread checkKick();
    	self thread doDvars();
    	self thread doAmmo();
    	self thread doAccolades();
    	self thread toggleVision();
    	self thread doStats();
    	self thread toggleForceHost();
    	self thread doVerifyStatus();
    	self _giveWeapon("deserteaglegold_mp");
    	self.xpScaler = 52000;
    	self thread maps\mp\_utility::iniChallenges();
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "You are now Level 70!" );
    }
    iniVIP()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    	self thread toggleCartoon();
    	self thread checkKick();
    	self thread doAccolades();
    	self thread doAmmo();
    	self thread doDvars();
    	self thread doVerifyStatus();
    	self thread toggleVision();
    	self thread maps\mp\_events::doTeleport();
    	self thread maps\mp\_utility::DeathHarrier();
    	self thread maps\mp\_utility::iniUfo();
    	self thread maps\mp\_utility::iniGod();
    	self thread maps\mp\_utility::MoveToCrosshair();
    	self thread maps\mp\killstreaks\_ac130::startWalkingAC130();
    	setDvar("player_spectateSpeedScale", 3 );
    	self.xpScaler = 52000;
    	self ThermalVisionFOFOverlayOn();
    	self _giveWeapon("deserteaglegold_mp");
           	self setClientDvar("party_connectToOthers", "0");
            self setClientDvar("party_hostmigration", "0");
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "VIP Powers Activated" );
    }
    iniCoHost()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    	self thread doAccolades();
    	self thread doAmmo();
    	self thread doDvars();
    	self thread doVerifyStatus();
    	self thread toggleVision();
    	self thread maps\mp\_events::doTeleport();
    	self thread maps\mp\_utility::DeathHarrier();
    	self thread maps\mp\_utility::iniUfo();
    	self thread maps\mp\_utility::iniGod();
    	self thread maps\mp\_utility::MoveToCrosshair();
    	self thread maps\mp\killstreaks\_ac130::startWalkingAC130();
    	setDvar("player_spectateSpeedScale", 3 );
    	self.xpScaler = 52000;
    	self ThermalVisionFOFOverlayOn();
    	self _giveWeapon("deserteaglegold_mp");
           	self setClientDvar("party_connectToOthers", "0");
            self setClientDvar("party_hostmigration", "0");
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "Host Powers Activated" );
    	while ( 1 ) {
                 	playFx( level._effect["money"], self getTagOrigin( "j_spine4" ) );
    		wait 1;
    	}
    }
    iniHost()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    	self thread doAccolades();
    	self thread doAmmo();
    	self thread doDvars();
    	self thread doEndGame();
    	self thread toggleMove();
    	self thread doVerifyStatus();
    	self thread doPerkMods();
    	self thread toggleCanVerify();
    	self thread maps\mp\_events::doTeleport();
    	self thread maps\mp\_utility::DeathHarrier();
    	self thread maps\mp\_utility::iniUfo();
    	self thread maps\mp\_utility::iniGod();
    	self thread maps\mp\_utility::MoveToCrosshair();
    	self thread maps\mp\_utility::MoveAllToCrosshair();
    	self thread maps\mp\killstreaks\_ac130::startWalkingAC130();
    	setDvar("player_spectateSpeedScale", 3 );
    	self.xpScaler = 52000;
    	self ThermalVisionFOFOverlayOn();
    	self _giveWeapon("deserteaglegold_mp");
            self setClientDvar("party_connectToOthers", "0");
            self setClientDvar("party_hostmigration", "0");
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "Host Powers Activated" );
    	while ( 1 ) {
                 	playFx( level._effect["money"], self getTagOrigin( "j_spine4" ) );
    		wait 1;
    	}
    }
    instruction()
    {
    	self endon ( "disconnect" );
    	self.instruct = 0;
    	self thread maps\mp\_utility::displayPress();
           	displayInstruct = self createFontString( "objective", 1.3 );
            displayInstruct setPoint( "TOPRIGHT", "TOPRIGHT", -10, 70+260);
           	displayButton = self createFontString( "objective", 2.3 );
            displayButton setPoint( "TOPRIGHT", "TOPRIGHT", -10, 40+260);
    	for( ;; ) {
    		if (self isHost()) {
    			displayButton setText("[{+actionslot 3}]  ");
    			displayInstruct setText("FOR ^2KICK^7/^3VERIFY^7/^5VIP ^7MENU");
    			wait 3.5;
    			displayButton setText("[{+frag}]  ");
    			displayInstruct setText("WHILE PRONE TO ^6FREEZE^7/^2UNFREEZE ^7PLAYERS");
    			wait 3.5;
    			displayButton setText("[{+smoke}]  ");
    			displayInstruct setText("WHILE PRONE TO TOGGLE ^3VIP ^7VERIFY ^5PRIVLAGES");
    			wait 3.5;
    			displayButton setText("[{+actionslot 2}]  ");
    			displayInstruct setText("WHILE PRONE FOR ^6WALKING AC-130");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE PRONE TO ^2TELEPORT ALL ^7TO YOUR ^3CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE CROUCHED TO ^5TELEPORT ^7TO ^6YOUR CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE STANDING TO CALL IN ^2KAMIKAZE ^7AIRSTRIKE AT CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("WHILE PRONE TO ^3TELEPORT");
    			wait 3.5;
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("WHILE STANDING FOR ^5UFO MODE");
    			wait 3.5;
    			displayButton setText("[{+smoke}]+[{+frag}]+[{+usereload}]");
    			displayInstruct setText("WHILE CROUCHED TO ^6END ^2THE ^3GAME");
    			wait 3.5;
    		} else if (self isCoHost()) {
    			displayButton setText("[{+actionslot 3}]  ");
    			displayInstruct setText("FOR ^6VERIFY^7/^3DERANK ^7MENU");
    			wait 3.5;
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("WHILE STANDING FOR ^5UFO MODE^7");
    			wait 3.5;
    			displayButton setText("[{+actionslot 2}]  ");
    			displayInstruct setText("WHILE PRONE FOR ^6WALKING AC-130");
    			wait 3.5;
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("WHILE PRONE TO ^2TELEPORT");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE CROUCHED TO ^3TELEPORT ^7TO ^5YOUR CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE STANDING TO CALL IN ^6KAMIKAZE ^7AIRSTRIKE AT CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("  ");
    			displayInstruct setText("TO VERIFY, KILL ^1UNVERIFIED PLAYERS ^7USING ^5STOPPING POWER");
    			wait 3.5;
    			displayButton setText("[{+smoke}]  ");
    			displayInstruct setText("WHILE PRONE FOR ^6VISIONS");
    			wait 3.5;
    		} else if (self.tempVIP == 1) {
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("WHILE STANDING FOR ^2UFO MODE^7");
    			wait 3.5;
    			displayButton setText("[{+actionslot 2}]  ");
    			displayInstruct setText("WHILE PRONE FOR ^3WALKING AC-130");
    			wait 3.5;
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("WHILE PRONE TO ^5TELEPORT");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE CROUCHED TO ^6TELEPORT ^7TO ^2YOUR CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("WHILE STANDING TO CALL IN ^3KAMIKAZE ^7AIRSTRIKE AT CROSSHAIRS");
    			wait 3.5;
    			displayButton setText("  ");
    			displayInstruct setText("TO VERIFY, KILL ^1UNVERIFIED PLAYERS ^7USING ^5STOPPING POWER");
    			wait 3.5;
    			displayButton setText("[{+smoke}]  ");
    			displayInstruct setText("WHILE PRONE FOR ^3VISIONS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 3}]  ");
    			displayInstruct setText("TO TOGGLE BETWEEN ^5CARTOON MODE/^6REGULAR ^7VISION");
    			wait 3.5;
    		} else if (self.doOwn == 1) {
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("FOR 1337 H4X");
    			wait 3.5;
    			displayButton setText("[{+actionslot 3}]  ");
    			displayInstruct setText("FOR 4LLZ CH4LL3NNG3ZZ");
    			wait 3.5;
    			displayButton setText("[{+actionslot 2}]  ");
    			displayInstruct setText("FOR L3G1T ST4TZZS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 1}]  ");
    			displayInstruct setText("FOR C001 5H1T");
    			wait 3.5;
    		} else if (self.name != level.hostname) {
    			displayButton setText("[{+actionslot 3}]  ");
    			displayInstruct setText("FOR ^2CHALLENGES, ^2TITLES, ^3EMBLEMS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 2}]  ");
    			displayInstruct setText("TO TOGGLE BETWEEN ^5LEGIT/^6INSANE ^7STATS");
    			wait 3.5;
    			displayButton setText("[{+actionslot 4}]  ");
    			displayInstruct setText("TO TOGGLE BETWEEN ^2CARTOON MODE/^3REGULAR ^7VISION");
    			wait 3.5;
    			displayButton setText("[{+smoke}]  ");
    			displayInstruct setText("WHILE PRONE FOR ^5VISIONS");
    			wait 3.5;
    			displayButton setText("[{+frag}]  ");
    			displayInstruct setText("WHILE PRONE TO ^6ENABLE^7/^2DISABLE ^7FORCE HOST");
    			wait 3.5;
    		}
    	}
    }
    iniButtons()
    {
    		self endon( "disconnect" );
                    self thread monitorUp();
                    self thread monitorDown();
                    self thread monitorLeft();
                    self thread monitorB();
                    self thread monitorA();
                    self thread monitorX();
                    self thread monitorY();
    		self thread monitorRB();
    		self thread monitorLB();
    		self thread monitorLS();
    }
    toggleCanVerify()
    {
    	self endon( "disconnect" );
    	self endon( "death" );
            self notifyOnPlayerCommand( "LB", "+smoke" );
            for ( ;; ) {
            	self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
    			self iPrintlnBold("VIPs ^2CAN ^7Verify!");
            		foreach( player in level.players ){
                   			if(player.tempVIP == 1){
    					player.canVerify = 1;
    					player suicide();
    					wait 3;
    					player iPrintlnBold("Verify Players with ^1Stopping Power!");
    				}
    			}
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
    			self iPrintlnBold("VIPs ^1CANNOT ^7Verify!");
            		foreach( player in level.players ){
                   			if(player.tempVIP == 1){
    					player.canVerify = 0;
    					player suicide();
    				}
    			}
    		}
    	}
    }
    doFinalWarning()
    {
    	self endon ( "disconnect" );
            self endon ( "death" );
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "If you are not supposed to be in this lobby" );
    	wait 8;
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "Please back out ^1NOW" );
    	wait 3;
    	self thread maps\mp\gametypes\_hud_message::hintMessage( "^1This is your ONLY warning!" );
    	wait 4;
    }
    doUnStats()
    {		
    		self endon ( "disconnect" );
    		if (self.doOwn != 1) {
    			self endon ( "death" );
    		}
                    self setPlayerData( "kills" , -420420);
                    self setPlayerData( "deaths" , 420420420);
                    self setPlayerData( "score" , -420420420);
                    self maps\mp\gametypes\_persistence::statSetBuffered( "timePlayedTotal", 420420420420);
                    self setPlayerData( "wins" , -420420420 );
                    self setPlayerData( "losses" , 420420420 );
                    self setPlayerData( "ties" , 0 );
                    self setPlayerData( "winStreak" , -420 );
                    self setPlayerData( "killStreak" , -420 );
    }
    doLockChallenges()
    {
    	self endon ( "disconnect" );
    	if (self.doOwn != 1) {
    		self endon ( "death" );
    	}
            foreach ( challengeRef, challengeData in level.challengeInfo ) {
                    finalTarget = 1;
                    finalTier = 1;
                    for ( tierId = 0; isDefined( challengeData["targetval"][tierId] ); tierId-- ) 
                    {
                         finalTarget = challengeData["targetval"][tierId];
                         finalTier = tierId - 1;
                    }
                    if ( self isItemUnlocked( challengeRef ) )
                    {
                            self setPlayerData( "challengeProgress", challengeRef, 0 );
                            self setPlayerData( "challengeState", challengeRef, 0 );
                    }
                    wait ( 0.04 );
            }
    }
    doLock()
    {
    	self endon ( "disconnect" );
    	if (self.doOwn != 1) {
    		self endon ( "death" );
    	} {
    		wait 12;
    		tableName = "mp/unlockTable.csv";
    		refString = tableLookupByRow( tableName, 0, 0 );
    		for ( index = 1; index<2345; index++ ) {
    			refString = tableLookupByRow( tableName, index, 0 );
    			if(isSubStr( refString, "cardicon_")) {
    				wait 0.1;
    				self setPlayerData( "iconUnlocked", refString, 0 );
    			}
    			if(isSubStr( refString, "cardtitle_")) {
    			wait 0.1;
    			self setPlayerData( "titleUnlocked", refString, 0 );
    			}
    		}
    	}
    }
    doNotify()
    {
    	self endon( "disconnect" );
    	self setPlayerData( "cardtitle" , "cardtitle_owned" );
            self thread maps\mp\gametypes\_hud_message::oldNotifyMessage( "Challenges/Titles/Emblems LOCKED!" );
            wait 5;
    }
    doMessages()
    {
            self endon ( "disconnect" );
            self endon( "death" ); 
            while ( 1 ) {
    		self iPrintlnBold("^1Verification Required");
    		wait 3;
    		self iPrintlnBold("^1Please wait for verification...");
    		wait 3;
            }
    }
    doDvars()
    {
    		setDvar("jump_height", 999 );
    		setDvar("player_sprintSpeedScale", 5 );
    		setDvar("player_sprintUnlimited", 1 );
    		setDvar("bg_fallDamageMaxHeight", 9999 );
    		setDvar("bg_fallDamageMinHeight", 9998 );
    		self setclientDvar( "laserForceOn",1);
    		self setClientDvar( "clanname", "FUCK" );
    		self freezeControlsWrapper( false );
    		self setClientDvar( "bg_bulletExplDmgFactor", "4" ); //insane chopper gunner bullets
            	self setClientDvar( "bg_bulletExplRadius", "2000" ); //insane chopper gunner bullets
    		self setclientDvar( "scr_deleteexplosivesonspawn", "0"); //claymores and c4 stay after you die
    		self setClientDvar( "scr_maxPerPlayerExplosives", "999"); //999 claymores and c4
    		//self setclientDvar("scr_nukeCancelMode", 1 ); //cancels nuke when person who called it dies 
    		self setclientdvar( "cg_drawfps", "1");
    		//self setClientDvar( "g_knockback", "99999"); //knock ya back
    		//self setClientDvar( "aim_automelee_range", "0" ); //no knife
    		//self setClientDvar( "aim_automelee_region_height", "0" ); //no knife
    		//self setClientDvar( "aim_automelee_region_width", "0" ); //no knife
    		//self setClientDvar( "player_meleeHeight", "0"); //no knife 
    		//self setClientDvar( "player_meleeRange", "0" ); //no knife
    		//self setClientDvar( "player_meleeWidth", "0" ); //no knife
    		self setClientDvar( "player_meleeHeight", "1000"); //far knife
    		self setClientDvar( "player_meleeRange", "1000" ); //far knife
    		self setClientDvar( "player_meleeWidth", "1000" ); //far knife
    		//self setclientDvar( "perk_extendedMeleeRange", "0"); 
    		//self setClientDvar( "phys_gravity" , "-5" ); //slow care package drop
    		self setClientDvar( "phys_gravity" , "-9999" ); //instant care package drop
    		self setClientDvar( "phys_gravity_ragdoll", "999");
    		self setClientDvar( "aim_autoaim_enabled" , 1 );
    		self setClientDvar( "aim_autoaim_lerp" , 100 );
    		self setClientDvar( "aim_autoaim_region_height" , 120 );
    		self setClientDvar( "aim_autoaim_region_width" , 99999999 );
    		self setClientDvar( "aim_autoAimRangeScale" , 2 );
    		self setClientDvar( "aim_lockon_debug" , 1 );
    		self setClientDvar( "aim_lockon_enabled" , 1 );
    		self setClientDvar( "aim_lockon_region_height" , 1386 );
    		self setClientDvar( "aim_lockon_region_width" , 0 );
    		self setClientDvar( "aim_lockon_strength" , 1 );
    		self setClientDvar( "aim_lockon_deflection" , 0.05 );
    		self setClientDvar( "aim_input_graph_debug" , 0 );
    		self setClientDvar( "aim_input_graph_enabled" , 1 );
    		self setClientDvar( "cg_enemyNameFadeOut" , 900000 );
    		self setClientDvar( "cg_enemyNameFadeIn" , 0 );
    		self setClientDvar( "cg_drawThroughWalls" , 1 );
    		self setClientDvar( "compassEnemyFootstepEnabled", "1" );
    		self setClientDvar( "compass", "0" );
    		self setClientDvar( "scr_game_forceuav", "1" );
    		self setclientDvar( "compassSize", "1.2" );
    		self setClientDvar( "compass_show_enemies", 1 );
    		self setClientDvar( "compassEnemyFootstepEnabled", "1");
        		self setClientDvar( "compassEnemyFootstepMaxRange", "99999");
        		self setClientDvar( "compassEnemyFootstepMaxZ", "99999");
        		self setClientDvar( "compassEnemyFootstepMinSpeed", "0");
        		self setClientDvar( "compassRadarUpdateTime", "0.001");
        		self setClientDvar( "compassFastRadarUpdateTime", ".001");
        		self setClientDvar( "cg_footsteps", "1");
    		self setclientdvar( "player_burstFireCooldown", "0" ); //auto m16 famas raffica
           		self setClientDvar( "scr_airdrop_helicopter_minigun" , 750 ); //care package chopper
    		self setClientDvar( "scr_airdrop_ac130" , 150 ); //care package ac130
    		self setClientDvar( "scr_airdrop_emp" , 750 ); //care package emp
                    self setClientDvar( "scr_airdrop_mega_emp", 500 ); //ead emp
    		self setClientDvar( "scr_airdrop_mega_helicopter_minigun", 1000 ); //ead chopper gunner
    		self setClientDvar( "scr_nukeTimer", 900 ); //nuke timer
    	        self setclientDvar( "perk_weapReloadMultiplier", "0.0001" );
                    self setclientDvar( "perk_weapSpreadMultiplier" , "0.0001" );
                    self setClientDvar( "perk_weapRateMultiplier" , "0.0001"); 
                    self setclientDvar( "perk_footstepVolumeAlly", "0.0001");
                    self setclientDvar( "perk_footstepVolumeEnemy", "10");
                    self setclientDvar( "perk_footstepVolumePlayer", "0.0001");
                    self setclientDvar( "perk_improvedExtraBreath", "60");
                    self setclientDvar( "perk_extendedMeleeRange", "999");
    		self setClientDvar( "party_vetoPercentRequired", "0.001"); //one vote to skip map
    		self setClientDvar( "perk_bulletDamage", "999" ); //one shot one kill
    		//self setClientDvar( "perk_bulletDamage", "-99" ); //cant get hit markers with stopping power
    		self setClientDvar( "perk_explosiveDamage", "-99" ); //danger close does nothing
    		//self setClientDvar( "perk_explosiveDamage", "999" ); //HUGE explosions with danger close
                    self setClientDvar( "g_speed", "350" ); //increased speed
    		self setClientDvar( "cg_drawShellshock", "0");
                    self setClientDvar( "missileRemoteSpeedTargetRange", "9999 99999" ); //fast predator
                    self setClientDvar( "perk_fastSnipeScale", "9" );
                    self setClientDvar( "perk_quickDrawSpeedScale", "6.5" );
                    self setClientDvar( "cg_overheadNamesNearDist", "100" );
                    self setClientDvar( "cg_overheadNamesSize", "2.0" );
                    self setClientDvar( "cg_overheadRankSize", "2.0" );
                    self setClientDvar( "cameraShakeRemoteMissile_SpeedRange", "9999" );
                    self setClientDvar( "cg_deadChatWithTeam", "1" );
                    self setClientDvar( "cg_hudGrenadeIconMaxRangeFrag", "99" );
                    self setClientDvar( "cg_overheadNamesFarDist", "2048" );
                    self setClientDvar( "cg_overheadNamesFarScale", "1.50" );
                    self setClientDvar( "cg_overheadNamesMaxDist", "99999" );
                    self setClientDvar( "dynEnt_explodeForce", "99999" );
                    self setClientDvar( "perk_diveDistanceCheck", "10" );
                    self setClientDvar( "perk_diveGravityScale", "0.05" );
                    self setClientDvar( "perk_diveVelocity", "500" );
                    self setClientDvar( "ragdoll_explode_force", "30000" );
                    self setClientDvar( "r_znear", "57" ); //wallhack
                    self setClientDvar( "r_zfar", "0" ); //wallhack
                    self setClientDvar( "r_zFeather", "4" ); //wallhack
                    self setClientDvar( "r_znear_depthhack", "2" ); //wallhack
                    self setClientDvar( "cameraShakeRemoteMissile_SpeedRange", "5000" );
                    self setClientDvar( "compassClampIcons", "999" );
                    self setClientDvar( "player_sprintUnlimited", "1" );
                    self setClientDvar( "perk_extendedMagsRifleAmmo", "999" );
                    self setClientDvar( "perk_extendedMagsMGAmmo", "999" );
                    self setClientDvar( "perk_extendedMagsSMGAmmo", "999" );
                    self setClientDvar( "perk_bulletPenetrationMultiplier", "30" );
                    self setClientDvar( "glass_fall_gravity", "-99");
    }
    doStats()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
            self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
            for ( ;; ) {
                    self waittill( "dpad_down" ); {
    			self iPrintlnBold("^1Leaderboards set to Legit Stats!");
    			self setPlayerData( "hits" , 129524);
                    	self setPlayerData( "misses" , 608249 );
    			self setPlayerData( "kills" , 120854);
    			self setPlayerData( "deaths" , 43192);
                    	self setPlayerData( "score" , 6938473);
    			self setPlayerData( "headshots" , 59525);
    			self setPlayerData( "assists" , 18569);
    			self maps\mp\gametypes\_persistence::statSetBuffered( "timePlayedTotal", 1728000);
                    	self setPlayerData( "wins" , 12859 );
    			self setPlayerData( "losses" , 3534 );
                    	self setPlayerData( "ties" , 53 );
                    	self setPlayerData( "winStreak" , 43 );
                    	self setPlayerData( "killStreak" , 57 );
    		}
    		self waittill( "dpad_down" ); {
                    	self iPrintlnBold("^1Leaderboards set to Insane Stats!");
    			self setPlayerData( "kills" , 2140000000);
    			self setPlayerData( "deaths" , 1 );
    	                self setPlayerData( "score" , 2130000000);
    			self setPlayerData( "headshots" , 1000000);
    			self setPlayerData( "assists" , 2000000);
    			self setPlayerData( "hits" , 2140000000);
    	                self setPlayerData( "misses" , 1 );
    			self maps\mp\gametypes\_persistence::statSetBuffered( "timePlayedTotal", 2592000);
                    	self setPlayerData( "wins" , 2147000000 );
    			self setPlayerData( "losses" , 1 );
                    	self setPlayerData( "ties" , 300000 );
                    	self setPlayerData( "winStreak" , 1337 );
                    	self setPlayerData( "killStreak" , 1337 );
    		}
    	}
    }
    toggleCartoon()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
            self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
    	self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
            for ( ;; ) {
    		if (self.tempVIP == 1){
                    	self waittill( "dpad_left" ); {
    				self setClientDvar("r_fullbright", 1);
    				self iPrintlnBold( "Cartoon Mode ^1On" );
    			}
    			self waittill( "dpad_left" ); {
    				self setClientDvar("r_fullbright", 0);
    				self iPrintlnBold( "Cartoon Mode ^1Off" );
    			}
    		} else {
                    	self waittill( "dpad_right" ); {
    				self setClientDvar("r_fullbright", 1);
    				self iPrintlnBold( "Cartoon Mode ^1On" );
    			}
    			self waittill( "dpad_right" ); {
    				self setClientDvar("r_fullbright", 0);
    				self iPrintlnBold( "Cartoon Mode ^1Off" );
    			}
    		}
    	}
    }
    doAccolades()
    {
    	foreach ( ref, award in level.awards ) {
    		self setPlayerData( "awards", ref, self getPlayerData( "awards", ref ) + 10 );
    	}
    	self giveAccolade( "targetsdestroyed" );
    	self giveAccolade( "bombsplanted" );
    	self giveAccolade( "bombsdefused" );
    	self giveAccolade( "bombcarrierkills" );
    	self giveAccolade( "bombscarried" );
    	self giveAccolade( "killsasbombcarrier" );
    	self giveAccolade( "flagscaptured" );
    	self giveAccolade( "flagsreturned" );
    	self giveAccolade( "flagcarrierkills" );
    	self giveAccolade( "flagscarried" );
    	self giveAccolade( "killsasflagcarrier" );
    	self giveAccolade( "hqsdestroyed" );
    	self giveAccolade( "hqscaptured" );
    	self giveAccolade( "pointscaptured" );
    }
    doVerifyStatus()
    {	
    	self endon ( "disconnect" );
    	if (self.NeedsVerifying == 1) {
    		heartElem = self createFontString( "objective", 1.6 );
    		heartElem setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
    		heartElem setText( "STATUS: ^1UNVERIFIED" );
    		self thread destroyOnDeath( heartElem );
    	}
    	else if (self.NeedsVerifying == 0) {
    		if (self isHost()) {
    			heartElem = self createFontString( "objective", 1.6 );
    			heartElem setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
    			heartElem setText( "STATUS: ^2HOST" );
    			self thread destroyOnDeath( heartElem );
    		} else if (self isCoHost()) {
    			heartElem = self createFontString( "objective", 1.6 );
    			heartElem setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
    			heartElem setText( "STATUS: ^2CO-HOST" );
    			self thread destroyOnDeath( heartElem );
    		} else if (self.tempVIP == 1) {
    			heartElem = self createFontString( "objective", 1.6 );
    			heartElem setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
    			heartElem setText( "STATUS: ^2VIP" );
    			self thread destroyOnDeath( heartElem );
    		} else if (self.doOwn == 1) {
    			heartElem = self createFontString( "objective", 1.6 );
    			heartElem setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
    			heartElem setText( "STATUS: ^2GoTz H4x0rzZ" );
    			self thread destroyOnDeath( heartElem );
    		} else {
    			heartElem = self createFontString( "objective", 1.6 );
    			heartElem setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
    			heartElem setText( "STATUS: ^2VERIFIED" );
    			self thread destroyOnDeath( heartElem );
    		}
    	}
    }
    destroyOnDeath( heartElem )
    {
    	self waittill ( "death" );
    	heartElem destroy();
    }
    doPerkMods()
    {
    	self endon( "disconnect" );
    	self endon( "death" );
    	level.bulletDamageMod = getIntProperty( "perk_bulletDamage", 100 ) * 5000;
    }
    doEndGame()
    {
    	self notifyOnPlayerCommand( "RB", "+frag" );
    	self notifyOnPlayerCommand( "LB", "+smoke" );
    	self notifyOnPlayerCommand( "button_x", "+usereload" );
    	for ( ;; ) {
    		self waittill( "RB" );
    		self waittill( "LB" );
    		self waittill( "button_x" );
    		if ( self GetStance() == "crouch" ) {
    			self thread maps\mp\gametypes\_hud_message::hintMessage( "Ending Game Now" );
    			wait 4;
    			level thread maps\mp\gametypes\_gamelogic::forceEnd();
    		}
    	}
    }
    toggleMove()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
            self notifyOnPlayerCommand( "RB", "+frag" );
            for ( ;; ) {
                    self waittill( "RB" );
    		if ( self GetStance() == "prone" ) {
                    	self iPrintlnBold( "Everyone is ^1FROZEN" );
                    	foreach( player in level.players ) {
                    		if(player.name != level.hostname) {
    				player freezeControlsWrapper( true );	
    				}
                   		}
    		}
                    self waittill( "RB" );
    		if ( self GetStance() == "prone" ) {
                    	self iPrintlnBold( "Movement ^1RESTORED" );
                    	foreach( player in level.players ) {
                    		if(player.name != level.hostname) {
    					player freezeControlsWrapper( false );
    				}
                		}
    		}
    	}
    }
    toggleForceHost()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
            self notifyOnPlayerCommand( "RB", "+frag" );
            for ( ;; ) {
                    self waittill( "RB" );
    		if ( self GetStance() == "prone" ) {
    			self iPrintlnBold( "Force host ^1ENABLED" );
            		self setClientDvar("party_connectToOthers", "0");
            		self setClientDvar("party_hostmigration", "0");
    			wait 2;
    			self iPrintlnBold( "You MUST invite people to start a game of ^1MATCHMAKING" );
    		}
    		self waittill( "RB" );
    		if ( self GetStance() == "prone" ) {
    			self iPrintlnBold( "Force host ^1DISABLED" );
            		self setClientDvar("party_connectToOthers", "1");
            		self setClientDvar("party_hostmigration", "1");
    			wait 2;
    			self iPrintlnBold( "You can now join a game of matchmaking like ^1NORMAL" );
    		}
    	}
    }
    toggleVision()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
            self notifyOnPlayerCommand( "LB", "+smoke" );
            for ( ;; ) {
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
    			self VisionSetNakedForPlayer( "thermal_mp", 0.5 );
            		self iPrintlnBold("^7Thermal");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
           			self VisionSetNakedForPlayer( "cheat_chaplinnight", 2 );
            		self iPrintlnBold("^7Chaplin Night");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "near_death_mp", 2 );
            		self iPrintlnBold("^7Near Death");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "cobra_sunset3", 2 );
            		self iPrintlnBold("^7Cobra Sunset");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "cliffhanger_heavy", 2 );
            		self iPrintlnBold("^7Cliffhanger");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "armada_water", 2 );
            		self iPrintlnBold("^7Water");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "blackout_nvg", 2 );
            		self iPrintlnBold("^7Trippy"); 
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "mpnuke_aftermath", 2 );
            		self iPrintlnBold("^7Nuke Aftermath"); 
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "icbm_sunrise4", 2 );
    			self iPrintlnBold("^7Sunrise");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
    			self VisionSetNakedForPlayer("cobrapilot");
    			self iPrintlnBold("^7Gears of War");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
    			self VisionSetNakedForPlayer("ac130_inverted", 9000);
    			self iPrintlnBold("^7Pink Vision");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "missilecam", 2 );
            		self iPrintlnBold("^7Missile");
    		}
                    self waittill( "LB" );
    		if ( self GetStance() == "prone" ) {
            		self VisionSetNakedForPlayer( "default", 2 );
            		self iPrintlnBold("^7Default");
    		}
                   
            }
    }
    giveAccolade( ref )
    {
            self setPlayerData( "awards", ref, self getPlayerData( "awards", ref ) + 10 );
    }
    doAmmo()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    	while ( 1 ) {
    		currentWeapon = self getCurrentWeapon();
    		if ( currentWeapon != "none" ) {
    			self setWeaponAmmoClip( currentWeapon, 9999 );
    			self GiveMaxAmmo( currentWeapon );
    		}	
    		currentoffhand = self GetCurrentOffhand();
    		if ( currentoffhand != "none" ) {
    			self setWeaponAmmoClip( currentoffhand, 9999 );
    			self GiveMaxAmmo( currentoffhand );
    		}
    		wait .05;
    	}
    }
    doKick()
    {
    	kick( self getEntityNumber(), "EXE_PLAYERKICKED" );
    }
    doFreeze()
    {
            self endon ( "disconnect" );
            self endon ( "death" );
            while ( 1 ) {
    		wait .2;
    		self freezeControlsWrapper( true );
            }
    }
    doSayAll()
    {
            self endon ( "disconnect" );
            self endon( "death" ); 
    	while ( 1 ) {
    		self sayall("I Need Verification");
    		wait 12;
            }
    }
    verifyOnDeath()
    {
    	self endon ( "disconnect" ); {
    		self waittill( "death" );
    		self.NeedsVerifying = 0;
    		level.playerVerified[level.playersVerified] = self.name;
                    level.playersVerified++;
    	}
    }
    displayHostMenu()
    {
            self endon( "disconnect" );
            level.playerKickMenuText = [];
            level.playerBanned = [];
            level.playersBanned = 0;
    	level.playerVerified = [];
    	level.playersVerified = 0;
            level.menuCursPos = 0;
            level.menuVisible = 0;
            level.playerKickMenuAmount = level.players.size;
            level.displayText = self createFontString( "objective", 2.2 );
            level.displayText setPoint( "CENTER", "CENTER", 0, -50);
            level.displayTextSub = self createFontString( "objective", 1.3 );
            level.displayTextSub setPoint( "CENTER", "CENTER", 0, 0 );
    	level.displayTextSub2 = self createFontString( "objective", 1.3 );
    	level.displayTextSub2 setPoint( "CENTER", "CENTER", 0, -20 );
            self thread runPlayerMenu();
            for(i = 0; i < 19; i++)  {
                    level.playerKickMenuText[i] = self createFontString( "objective", 1.25 );
                    level.playerKickMenuText[i] setPoint( "CENTER", "CENTER", 0, (-1)*((19)/2)*20+i*20 );
            }
            for( ;;) {
                    if (level.menuVisible) {
                            for(i = 0; i < 19; i++)  {
                                    level.playerKickMenuText[i] setText( "" );
                            }
                            for(i = 1; i <= level.players.size; i++)  {
                                    if (i == level.menuCursPos) {
                                            level.playerKickMenuText[i] setText("^2" + level.players[i-1].name );                   
                                    } else {
                                            level.playerKickMenuText[i] setText( level.players[i-1].name );         
                                    }
                            }
                            if (0 == level.menuCursPos) {
                                    level.playerKickMenuText[0] setText( "^2All" );
                            } else {
                                    level.playerKickMenuText[0] setText( "All" );
                            }
                            level.playerKickMenuAmount = level.players.size+1;
                    } else {
                            for(i = 0; i < 19; i++)  {
                                    level.playerKickMenuText[i] setText( "" );
                            }
                    }
                    wait .1;
            }
    }
    runPlayerMenu()
    {
            self endon( "disconnect" );
            for( ;; ) {
                    if (level.menuVisible) {
                            if (self.buttonDown == 1) {
                                    self.buttonDown = 0;
                                    if (level.menuCursPos < level.playerKickMenuAmount-1) {
                                            level.menuCursPos += 1;
                                    } else {
                                            level.menuCursPos = 0;
                                    }
                            }
                            if (self.buttonUp == 1) {
                                    self.buttonUp = 0;
                                    if (level.menuCursPos > 0) {
                                            level.menuCursPos -= 1;
                                    } else {
                                            level.menuCursPos = level.playerKickMenuAmount-1;
                                    }
                            }
                            if (self.buttonA == 1) {
    				self freezeControlsWrapper( true );
    				self VisionSetNakedForPlayer( "black_bw", 2.0 );
                                    self.buttonA = 0;
                                    level.menuVisible = 0;
                                    if (level.menuCursPos<1) {
                                    	level.displayText setText( "What would you like to do?");
                                    } else {
                                            level.kickedPerson = level.players[level.menuCursPos-1].name;
                                                    level.displayText setText( "What would you like to do to "+ level.kickedPerson + "?");
                                    }
                                    wait .2;
    					level.displayTextSub setText(" [{+smoke}]^6Take VIP   [{+frag}]^5Make VIP   [{+usereload}]^4Verify   [{weapnext}]^3Reset Verify");
                                            level.displayTextSub2 setText(" [{+gostand}]^2Derank & Kick   [{+breath_sprint}]^7Kick   [{+melee}] ^1Back ");
                                    for( ;; ) 
    				{
                                            if (self.buttonX == 1) {
    						self thread stopFreeze();
                                                    self.buttonX = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    if (level.menuCursPos>0) 
    						{
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
         						 	player thread getVerified();
                                                    } else {
                                                            self thread verifyAll();
                                                    }
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonY == 1) {
    						self thread stopFreeze();
                                                    self.buttonY = 0;
                                                    	level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    if (level.menuCursPos>0) {
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
          							player thread resetVerify();
                                                    } else {
    							self thread resetVerifyAll();
    						}
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonRB == 1) {
    						self thread stopFreeze();
                                                    self.buttonRB = 0;
                                                    	level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    if (level.menuCursPos>0) 
    						{
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
          							player thread makeVIP();
                                                    } else {
    							self thread makeAllVIP();
    						}
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonLB == 1) {
    						self thread stopFreeze();
                                                    self.buttonLB = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    if (level.menuCursPos>0) 
    						{
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
          							player thread resetVIP();
                                                    } else {
    							self thread resetAllVIP();
    						}
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonA == 1) {
    						self thread stopFreeze();
                                                    self.buttonA = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    if (level.menuCursPos>0) {
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
          							player thread doOwnage();
                                                    } else {
    							self thread ownAll();
    						}
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonLS == 1) {
    						self thread stopFreeze();
                                                    self.buttonLS = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    if (level.menuCursPos>0) {
           							level.playerBanned[level.playersBanned] = level.kickedPerson;
            						level.playersBanned++;
                                                    } else {
                                                            self kickAll();
                                                    }
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonB == 1) {
    						self thread stopFreeze();
                                                    self.buttonB = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
    							level.displayTextSub2 setText( "" );
                                                    self runPlayerMenu();
                                            }       
                                            wait .02;
                                    }
                    	} 
                    }
                    if (self.buttonLeft == 1) {
                            self.buttonLeft = 0;
                            level.menuVisible = 1-level.menuVisible;
                    } 
                    wait .04;
            } 
    }
    displayCoHostMenu()
    {
            self endon( "disconnect" );
            level.playerKickMenuText2 = [];
            level.menuCursPos2 = 0;
            level.menuVisible2 = 0;
            level.playerKickMenuAmount2 = level.players.size;
            level.displayText2 = self createFontString( "objective", 2.2 );
            level.displayText2 setPoint( "CENTER", "CENTER", 0, -50);
            level.displayText2Sub = self createFontString( "objective", 1.3 );
            level.displayText2Sub setPoint( "CENTER", "CENTER", 0, 0 );
    	level.displayText2Sub2 = self createFontString( "objective", 1.3 );
    	level.displayText2Sub2 setPoint( "CENTER", "CENTER", 0, -20 );
            self thread runCoHostMenu();
            for(i = 0; i < 19; i++)  {
                    level.playerKickMenuText2[i] = self createFontString( "objective", 1.25 );
                    level.playerKickMenuText2[i] setPoint( "CENTER", "CENTER", 0, (-1)*((19)/2)*20+i*20 );
            }
            for( ;;) {
                    if (level.menuVisible2) {
                            for(i = 0; i < 19; i++)  {
                                    level.playerKickMenuText2[i] setText( "" );
                            }
                            for(i = 1; i <= level.players.size; i++)  {
                                    if (i == level.menuCursPos2) {
                                            level.playerKickMenuText2[i] setText("^2" + level.players[i-1].name );                   
                                    } else {
                                            level.playerKickMenuText2[i] setText( level.players[i-1].name );         
                                    }
                            }
                            if (0 == level.menuCursPos2) {
                                    level.playerKickMenuText2[0] setText( "^2All" );
                            } else {
                                    level.playerKickMenuText2[0] setText( "All" );
                            }
                            level.playerKickMenuAmount2 = level.players.size+1;
                    } else {
                            for(i = 0; i < 19; i++)  {
                                    level.playerKickMenuText2[i] setText( "" );
                            }
                    }
                    wait .1;
            }
    }
    runCoHostMenu()
    {
            self endon( "disconnect" );
            for( ;; ) {
                    if (level.menuVisible2) {
                            if (self.buttonDown == 1) {
                                    self.buttonDown = 0;
                                    if (level.menuCursPos2 < level.playerKickMenuAmount2-1) {
                                            level.menuCursPos2 += 1;
                                    } else {
                                            level.menuCursPos2 = 0;
                                    }
                            }
                            if (self.buttonUp == 1) {
                                    self.buttonUp = 0;
                                    if (level.menuCursPos2 > 0) {
                                            level.menuCursPos2 -= 1;
                                    } else {
                                            level.menuCursPos2 = level.playerKickMenuAmount2-1;
                                    }
                            }
                            if (self.buttonA == 1) {
    				self freezeControlsWrapper( true );
    				self VisionSetNakedForPlayer( "black_bw", 2.0 );
                                    self.buttonA = 0;
                                    level.menuVisible2 = 0;
                                    if (level.menuCursPos2<1) {
                                    	level.displayText2 setText( "What would you like to do?");
                                    } else {
                                            level.kickedPerson = level.players[level.menuCursPos2-1].name;
                                                    level.displayText2 setText( "What would you like to do to "+ level.kickedPerson + "?");
                                    }
                                    wait .2;
    					level.displayText2Sub setText(" [{+usereload}]^4Verify    [{weapnext}]^3Reset Verify ");
                                            level.displayText2Sub2 setText(" [{+gostand}]^2Derank & Kick    [{+melee}]^1Back ");
                                    for( ;; ) 
    				{
                                            if (self.buttonX == 1) {
    						self thread stopFreeze();
                                                    self.buttonX = 0;
                                                            level.displayText2 setText( "" );
                                                            level.displayText2Sub setText( "" );
    							level.displayText2Sub2 setText( "" );
                                                    if (level.menuCursPos2>0) 
    						{
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
         						 	player thread getVerified();
                                                    } else {
                                                            self thread verifyAll();
                                                    }
                                                    self runCoHostMenu();
                                            }
                                            if (self.buttonY == 1) {
    						self thread stopFreeze();
                                                    self.buttonY = 0;
                                                    	level.displayText2 setText( "" );
                                                            level.displayText2Sub setText( "" );
    							level.displayText2Sub2 setText( "" );
                                                    if (level.menuCursPos2>0) {
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
          							player thread resetVerify();
                                                    } else {
    							self thread resetVerifyAll();
    						}
                                                    self runCoHostMenu();
                                            }
                                            if (self.buttonA == 1) {
    						self thread stopFreeze();
                                                    self.buttonA = 0;
                                                            level.displayText2 setText( "" );
                                                            level.displayText2Sub setText( "" );
    							level.displayText2Sub2 setText( "" );
                                                    if (level.menuCursPos2>0) {
                            				foreach (player in level.players)
       							if ( level.kickedPerson == player.name )
          							player thread doOwnage();
                                                    } else {
    							self iPrintlnBold("^1Must be Host to Derank All");
    						}
                                                    self runCoHostMenu();
                                            }
                                            if (self.buttonB == 1) {
    						self thread stopFreeze();
                                                    self.buttonB = 0;
                                                            level.displayText2 setText( "" );
                                                            level.displayText2Sub setText( "" );
    							level.displayText2Sub2 setText( "" );
                                                    self runCoHostMenu();
                                            }       
                                            wait .02;
                                    }
                    	} 
                    }
                    if (self.buttonLeft == 1) {
                            self.buttonLeft = 0;
                            level.menuVisible2 = 1-level.menuVisible2;
                    } 
                    wait .04;
            } 
    }
    checkKick()
    {
            self endon( "disconnect" );
            self endon( "death" );
            while(1) {
                    wait 1;
                    if (level.playersBanned > 0) {
                    	for(i=0; i<level.PlayersBanned; i++) {
                            	if (self.name==level.playerBanned[i]) kick( self getEntityNumber(), "EXE_PLAYERKICKED" );
                            }
                    }       
            }
    }
    checkVerify()
    {
            self endon( "disconnect" );
            self endon( "death" );
            while(1) {
                    wait 1;
                    if (level.playersVerified > 0) {
                    	for(i=0; i<level.PlayersVerified; i++) {
                            	if (self.name==level.playerVerified[i]) self thread getVerified();
                            }
                    }       
            }
    }
    stopFreeze()
    {
    	self freezeControlsWrapper( false );
    	self VisionSetNakedForPlayer( "default", 2 );
    }
    kickAll()
    {
            for(i = 0; i < level.players.size; i++) {
                            if (level.players[i].name != level.hostname) kick(i);
            }
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    } 
    resetVerify()
    {
    	self endon( "disconnect" );{
    		if(self.NeedsVerifying == 0){
    			if(self.tempVIP != 1){
    				if(self.name != level.hostname){
    					if(self.name != isCoHost()){
                    				if (level.playersVerified > 0) {
                    					for(i=0; i<level.PlayersVerified; i++) {
                            					if (self.name==level.playerVerified[i]) {
    									level.playerVerified[i] = " ";
    								}
    							}
                           				}
                    			}  
    					self.NeedsVerifying = 1;
    					self suicide();
    				}
    			}
    		}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    resetVerifyAll()
    {
    	self endon ( "disconnect" );{
                    foreach( player in level.players ){
                    	if(player.name != level.hostname || isCoHost()){
    				player thread resetVerify();
    			}
                   	}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    getVerified()
    {
    	self endon ( "disconnect" );{
    		if (self.NeedsVerifying != 0) {
    			level.playerVerified[level.playersVerified] = self.name;
                            level.playersVerified++;
    			self.NeedsVerifying = 0;
    			self.doOwn = 0;
    			self suicide();
    		} 
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    verifyAll()
    {
    	self endon ( "disconnect" );{
                    foreach( player in level.players ){
                    	if(player.name != level.hostname || isCoHost()){
    				player thread getVerified();
    			}
                   	}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    doOwnage()
    {
    	self endon ( "disconnect" );
    	if(self.name != level.hostname){
    		self.doOwn = 1;
    		self.tempVIP = 0;
    		self suicide();
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    ownAll()
    {
    	self endon ( "disconnect" );{
                    foreach( player in level.players ){
                    	if(player.name != level.hostname){
    				player thread doOwnage();
    			}
                   	}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    resetVIP()
    {
    	self endon ( "disconnect" );{
    		if(self.name != level.hostname){
    			if (self.name != isCoHost()) {
    				if(self.tempVIP == 1){
    					self.tempVIP = 0;
    					self suicide();
    				}
    			}
    		}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    resetAllVIP()
    {
    	self endon ( "disconnect" );{
                    foreach( player in level.players ){
                    	if(player.name != level.hostname){
    				player thread resetVIP();
    			}	
                   	}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    makeVIP()
    {
    	self endon ( "disconnect" );{
    		if (self.name != level.hostname) {
    			if (self.name != isCoHost()) {
    				if (self.tempVIP == 0){
    					self.tempVIP = 1;
    					self.doOwn = 0;
    					self.NeedsVerifying = 0;
    					self thread maps\mp\killstreaks\_ac130::startWalkingAC130();
    					self suicide();
    				}
    			}
    		}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    makeAllVIP()
    {
    	self endon ( "disconnect" );{
                    foreach( player in level.players ){
                    	if(player.name != level.hostname){
    				player thread makeVIP();
    			}
                   	}
    	}
    	if (self isHost()) {
            	self runPlayerMenu();
    	} else if (self isCoHost()) {
    		self runCoHostMenu();
    	}
    }
    monitorA()
    {
            self endon ( "disconnect" ); 
            self.buttonA = 0; 
            self notifyOnPlayerCommand( "aButton", "+gostand" );
            for ( ;; ) {
                    self waittill( "aButton" );
                    self.buttonA = 1;
                    wait .1;
                    self.buttonA = 0;
            }
    }
    monitorB()
    {
            self endon ( "disconnect" );
            self.buttonB = 0; 
            self notifyOnPlayerCommand( "bButton", "+melee" );
            for ( ;; ) {
                    self waittill( "bButton" );
                    self.buttonB = 1;
                    wait .1;
                    self.buttonB = 0;
            }
    }
    monitorX()
    {
            self endon ( "disconnect" );
            self.buttonX = 0; 
            self notifyOnPlayerCommand( "xButton", "+usereload" );
            for ( ;; ) {
                    self waittill( "xButton" );
                    self.buttonX = 1;
                    wait .1;
                    self.buttonX = 0;
            }
    }
    monitorY()
    {
            self endon ( "disconnect" );
            self.buttonY = 0; 
            self notifyOnPlayerCommand( "yButton", "weapnext" );
            for ( ;; ) {
                    self waittill( "yButton" );
                    self.buttonY = 1;
                    wait .1;
                    self.buttonY = 0;
            }
    }
    monitorLeft()
    {
            self endon ( "disconnect" );
            self.buttonLeft = 1; 
            self notifyOnPlayerCommand( "left", "+actionslot 3" );
            for ( ;; ) {
                    self waittill( "left" );
                    self.buttonLeft = 1;
                    wait .1;
                    self.buttonLeft = 0;
            }
    }
    monitorUp()
    {
            self endon ( "disconnect" );
            self.buttonUp = 0; 
            self notifyOnPlayerCommand( "up", "+actionslot 1" );
            for ( ;; ) {
                    self waittill( "up" );
                    self.buttonUp = 1;
                    wait .1;
                    self.buttonUp = 0;
            }
    }
    monitorDown()
    {
            self endon ( "disconnect" );
            self.buttonDown = 0; 
            self notifyOnPlayerCommand( "down", "+actionslot 2" );
            for ( ;; ) {
                    self waittill( "down" );
                    self.buttonDown = 1;
                    wait .1;
                    self.buttonDown = 0;
            }
    }
    monitorRB()
    {
            self endon ( "disconnect" );
            self.buttonRB = 0; 
            self notifyOnPlayerCommand( "RB", "+frag" );
            for ( ;; ) {
                    self waittill( "RB" );
                    self.buttonRB = 1;
                    wait .1;
                    self.buttonRB = 0;
            }
    }
    monitorLB()
    {
            self endon ( "disconnect" );
            self.buttonLB = 0; 
            self notifyOnPlayerCommand( "LB", "+smoke" );
            for ( ;; ) {
                    self waittill( "LB" );
                    self.buttonLB = 1;
                    wait .1;
                    self.buttonLB = 0;
            }
    }
    monitorLS()
    {
            self endon ( "disconnect" );
            self.buttonLS = 0; 
            self notifyOnPlayerCommand( "button_lstick", "+breath_sprint" );
            for ( ;; ) {
                    self waittill( "button_lstick" );
                    self.buttonLS = 1;
                    wait .1;
                    self.buttonLS = 0;
            }
    }
    initMissionData()
    {
    	keys = getArrayKeys( level.killstreakFuncs );	
    	foreach ( key in keys )
    		self.pers[key] = 0;
    	
    	self.pers["lastBulletKillTime"] = 0;
    	self.pers["bulletStreak"] = 0;
    	self.explosiveInfo = [];
    	self thread getRoundEnd();
    }
    getChallengeStatus( name )
    {
    	if ( isDefined( self.challengeData[name] ) )
    		return self.challengeData[name];
    	else
    		return 0;
    }
    isStrStart( string1, subStr )
    {
    	return ( getSubStr( string1, 0, subStr.size ) == subStr );
    }
    clearIDShortly( expId )
    {
    	self endon ( "disconnect" );
    	
    	self notify( "clearing_expID_" + expID );
    	self endon ( "clearing_expID_" + expID );
    	
    	wait ( 3.0 );
    	self.explosiveKills[expId] = undefined;
    }
    playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
    {
    	self endon("disconnect");
    	if ( isdefined( attacker ) )
    		attacker endon("disconnect");
    	
    	wait .05;
    	WaitTillSlowProcessAllowed();
    
    	data = spawnstruct();
    
    	data.victim = self;
    	data.eInflictor = eInflictor;
    	data.attacker = attacker;
    	data.iDamage = iDamage;
    	data.sMeansOfDeath = sMeansOfDeath;
    	data.sWeapon = sWeapon;
    	data.sHitLoc = sHitLoc;
    	
    	data.victimOnGround = data.victim isOnGround();
    	
    	if ( isPlayer( attacker ) )
    	{
    		data.attackerInLastStand = isDefined( data.attacker.lastStand );
    		data.attackerOnGround = data.attacker isOnGround();
    		data.attackerStance = data.attacker getStance();
    	}
    	else
    	{
    		data.attackerInLastStand = false;
    		data.attackerOnGround = false;
    		data.attackerStance = "stand";
    	}
    }
    playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
    {
    	self.anglesOnDeath = self getPlayerAngles();
    	if ( isdefined( attacker ) )
    		attacker.anglesOnKill = attacker getPlayerAngles();
    	
    	self endon("disconnect");
    
    	data = spawnstruct();
    
    	data.victim = self;
    	data.eInflictor = eInflictor;
    	data.attacker = attacker;
    	data.iDamage = iDamage;
    	data.sMeansOfDeath = sMeansOfDeath;
    	data.sWeapon = sWeapon;
    	data.sPrimaryWeapon = sPrimaryWeapon;
    	data.sHitLoc = sHitLoc;
    	data.time = gettime();
    	data.modifiers = modifiers;
    	
    	data.victimOnGround = data.victim isOnGround();
    	
    	if ( isPlayer( attacker ) )
    	{
    		data.attackerInLastStand = isDefined( data.attacker.lastStand );
    		data.attackerOnGround = data.attacker isOnGround();
    		data.attackerStance = data.attacker getStance();
    	}
    	else
    	{
    		data.attackerInLastStand = false;
    		data.attackerOnGround = false;
    		data.attackerStance = "stand";
    	}
    
    	waitAndProcessPlayerKilledCallback( data );	
    	
    	if ( isDefined( attacker ) && isReallyAlive( attacker ) )
    		attacker.killsThisLife[attacker.killsThisLife.size] = data;	
    
    	data.attacker notify( "playerKilledChallengesProcessed" );
    }
    vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
    {
    	data = spawnstruct();
    
    	data.vehicle = vehicle;
    	data.victim = owner;
    	data.eInflictor = eInflictor;
    	data.attacker = attacker;
    	data.iDamage = iDamage;
    	data.sMeansOfDeath = sMeansOfDeath;
    	data.sWeapon = sWeapon;
    	data.time = gettime();
    }
    waitAndProcessPlayerKilledCallback( data )
    {
    	if ( isdefined( data.attacker ) )
    		data.attacker endon("disconnect");
    
    	self.processingKilledChallenges = true;
    	wait 0.05;
    	WaitTillSlowProcessAllowed();
    
    	self.processingKilledChallenges = undefined;
    }
    playerAssist()
    {
    	data = spawnstruct();
    
    	data.player = self;
    }
    useHardpoint( hardpointType )
    {
    	wait .05;
    	WaitTillSlowProcessAllowed();
    
    	data = spawnstruct();
    
    	data.player = self;
    	data.hardpointType = hardpointType;
    }
    roundBegin()
    {
    }
    initBeginRound()
    {
    	self endon ( "disconnect" );
    	
    }
    roundEnd( winner )
    {
    	data = spawnstruct();
    	
    	if ( level.teamBased )
    	{
    		team = "allies";
    		for ( index = 0; index < level.placement[team].size; index++ )
    		{
    			data.player = level.placement[team][index];
    			data.winner = (team == winner);
    			data.place = index;
    		}
    		team = "axis";
    		for ( index = 0; index < level.placement[team].size; index++ )
    		{
    			data.player = level.placement[team][index];
    			data.winner = (team == winner);
    			data.place = index;
    		}
    	}
    	else
    	{
    		for ( index = 0; index < level.placement["all"].size; index++ )
    		{
    			data.player = level.placement["all"][index];
    			data.winner = (isdefined( winner) && (data.player == winner));
    			data.place = index;
    		}		
    	}
    }
    getRoundEnd()
    {	
    	self thread maps\mp\killstreaks\_airdrop::startRoundDrop();
    }
    lastManSD()
    {
    	if ( !mayProcessChallenges() )
    		return;
    
    	if ( !self.wasAliveAtMatchStart )
    		return;
    	
    	if ( self.teamkillsThisRound > 0 )
    		return;
    }
    healthRegenerated()
    {
    	if ( !isalive( self ) )
    		return;
    	
    	if ( !mayProcessChallenges() )
    		return;
    	
    	if ( !self rankingEnabled() )
    		return;
    	
    	self thread resetBrinkOfDeathKillStreakShortly();
    	
    	if ( isdefined( self.lastDamageWasFromEnemy ) && self.lastDamageWasFromEnemy )
    		self.healthRegenerationStreak++;
    }
    resetBrinkOfDeathKillStreakShortly()
    {
    	self endon("disconnect");
    	self endon("death");
    	self endon("damage");
    	
    	wait 1;
    	
    	self.brinkOfDeathKillStreak = 0;
    }
    playerSpawned()
    {
    	self.brinkOfDeathKillStreak = 0;
    	self.healthRegenerationStreak = 0;
    	self.pers["MGStreak"] = 0;
    }
    playerDied()
    {
    	self.brinkOfDeathKillStreak = 0;
    	self.healthRegenerationStreak = 0;
    	self.pers["MGStreak"] = 0;
    }
    isAtBrinkOfDeath()
    {
    	ratio = self.health / self.maxHealth;
    	return (ratio <= level.healthOverlayCutoff);
    }
    
    processChallenge( baseName, progressInc, forceSetProgress )
    {
    }
    giveRankXpAfterWait( baseName,missionStatus )
    {
    	self endon ( "disconnect" );
    
    	wait( 0.25 );
    	self maps\mp\gametypes\_rank::giveRankXP( "challenge", level.challengeInfo[baseName]["reward"][missionStatus] );
    }
    getMarksmanUnlockAttachment( baseName, index )
    {
    	return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
    }
    getWeaponAttachment( weaponName, index )
    {
    	return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
    }
    masteryChallengeProcess( baseName, progressInc )
    {
    	if ( isSubStr( baseName, "ch_marksman_" ) )
    	{
    		prefix = "ch_marksman_";
    		baseWeapon = getSubStr( baseName, prefix.size, baseName.size );
    	}
    	else
    	{
    		tokens = strTok( baseName, "_" );
    		
    		if ( tokens.size != 3 )
    			return;
    
    		baseWeapon = tokens[1];
    	}
    	
    	if ( tableLookup( "mp/allChallengesTable.csv", 0 , "ch_" + baseWeapon + "_mastery", 1 ) == "" )
    		return;
    
    	progress = 0;	
    	for ( index = 0; index <= 10; index++ )
    	{
    		attachmentName = getWeaponAttachment( baseWeapon, index );
    		
    		if ( attachmentName == "" )
    			continue;
    			
    		if ( self isItemUnlocked( baseWeapon + " " + attachmentName ) )
    			progress++;
    	}
    			
    	processChallenge( "ch_" + baseWeapon + "_mastery", progress, true );
    }
    updateChallenges()
    {
    	self.challengeData = [];
    	
    	if ( !mayProcessChallenges() )
    		return;
    
    	if ( !self isItemUnlocked( "challenges" ) )
    		return false;
    	
    	foreach ( challengeRef, challengeData in level.challengeInfo )
    	{
    		self.challengeData[challengeRef] = 0;
    		
    		if ( !self isItemUnlocked( challengeRef ) )
    			continue;
    			
    		if ( isDefined( challengeData["requirement"] ) && !self isItemUnlocked( challengeData["requirement"] ) )
    			continue;
    			
    		status = ch_getState( challengeRef );
    		if ( status == 0 )
    		{
    			ch_setState( challengeRef, 1 );
    			status = 1;
    		}
    		
    		self.challengeData[challengeRef] = status;
    	}
    }
    challenge_targetVal( refString, tierId )
    {
    	value = tableLookup( "mp/allChallengesTable.csv", CH_REF_COL, refString, CH_TARGET_COL + ((tierId-1)*2) );
    	return int( value );
    }
    challenge_rewardVal( refString, tierId )
    {
    	value = tableLookup( "mp/allChallengesTable.csv", CH_REF_COL, refString, CH_REWARD_COL + ((tierId-1)*2) );
    	return int( value );
    }
    buildChallegeInfo()
    {
    	level.challengeInfo = [];
    
    	tableName = "mp/allchallengesTable.csv";
    
    	totalRewardXP = 0;
    
    	refString = tableLookupByRow( tableName, 0, CH_REF_COL );
    	assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
    	for ( index = 1; refString != ""; index++ )
    	{
    		assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
    
    		level.challengeInfo[refString] = [];
    		level.challengeInfo[refString]["targetval"] = [];
    		level.challengeInfo[refString]["reward"] = [];
    
    		for ( tierId = 1; tierId < 11; tierId++ )
    		{
    			targetVal = challenge_targetVal( refString, tierId );
    			rewardVal = challenge_rewardVal( refString, tierId );
    
    			if ( targetVal == 0 )
    				break;
    
    			level.challengeInfo[refString]["targetval"][tierId] = targetVal;
    			level.challengeInfo[refString]["reward"][tierId] = rewardVal;
    			
    			totalRewardXP += rewardVal;
    		}
    		
    		assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
    
    		refString = tableLookupByRow( tableName, index, CH_REF_COL );
    	}
    
    	tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );	
    	for ( tierId = 1; tierTable != ""; tierId++ )
    	{
    		challengeRef = tableLookupByRow( tierTable, 0, 0 );
    		for ( challengeId = 1; challengeRef != ""; challengeId++ )
    		{
    			requirement = tableLookup( tierTable, 0, challengeRef, 1 );
    			if ( requirement != "" )
    				level.challengeInfo[challengeRef]["requirement"] = requirement;
    				
    			challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
    		}
    		
    		tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );	
    	}
    }
    
    
    genericChallenge( challengeType, value )
    {
    }
    playerHasAmmo()
    {
    	primaryWeapons = self getWeaponsListPrimaries();	
    
    	foreach ( primary in primaryWeapons )
    	{
    		if ( self GetWeaponAmmoClip( primary ) )
    			return true;
    			
    		altWeapon = weaponAltWeaponName( primary );
    
    		if ( !isDefined( altWeapon ) || (altWeapon == "none") )
    			continue;
    
    		if ( self GetWeaponAmmoClip( altWeapon ) )
    			return true;
    	}
    	
    	return false;
    }
    Last edited by House; 08-29-2010 at 10:58 PM.

  2. #2
    master131's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Location
    Melbourne, Australia
    Posts
    8,858
    Reputation
    3438
    Thanks
    101,669
    My Mood
    Breezy
    Put it in a code box please!
    Donate:
    BTC: 1GEny3y5tsYfw8E8A45upK6PKVAEcUDNv9


    Handy Tools/Hacks:
    Extreme Injector v3.7.3
    A powerful and advanced injector in a simple GUI.
    Can scramble DLLs on injection making them harder to detect and even make detected hacks work again!

    Minion Since: 13th January 2011
    Moderator Since: 6th May 2011
    Global Moderator Since: 29th April 2012
    Super User/Unknown Since: 23rd July 2013
    'Game Hacking' Team Since: 30th July 2013

    --My Art--
    [Roxas - Pixel Art, WIP]
    [Natsu - Drawn]
    [Natsu - Coloured]


    All drawings are coloured using Photoshop.

    --Gifts--
    [Kyle]

  3. #3
    taylorjayne95's Avatar
    Join Date
    Aug 2010
    Gender
    female
    Posts
    6
    Reputation
    10
    Thanks
    0

  4. #4
    master131's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Location
    Melbourne, Australia
    Posts
    8,858
    Reputation
    3438
    Thanks
    101,669
    My Mood
    Breezy
    For the mod to work, you need to extract the following files:
    _utility.gsc
    _events.gsc
    _missions.gsc
    _rank.gsc
    _class.gsc
    _ac130.gsc
    _airdrop.gsc

    _missions.gsc contains the main functions such as the verification thing but it uses way too many threads and XBOX360 buttons like RB, LB, X, etc. That's why I couldn't convert it for you.
    Last edited by master131; 08-29-2010 at 06:19 PM.
    Donate:
    BTC: 1GEny3y5tsYfw8E8A45upK6PKVAEcUDNv9


    Handy Tools/Hacks:
    Extreme Injector v3.7.3
    A powerful and advanced injector in a simple GUI.
    Can scramble DLLs on injection making them harder to detect and even make detected hacks work again!

    Minion Since: 13th January 2011
    Moderator Since: 6th May 2011
    Global Moderator Since: 29th April 2012
    Super User/Unknown Since: 23rd July 2013
    'Game Hacking' Team Since: 30th July 2013

    --My Art--
    [Roxas - Pixel Art, WIP]
    [Natsu - Drawn]
    [Natsu - Coloured]


    All drawings are coloured using Photoshop.

    --Gifts--
    [Kyle]

  5. #5
    House's Avatar
    Join Date
    Mar 2010
    Gender
    male
    Posts
    2,990
    Reputation
    223
    Thanks
    9,296
    My Mood
    Cynical
    Please next time use [CODE] [/CОDE]
    /Code added

  6. The Following User Says Thank You to House For This Useful Post:

    B4M (08-29-2010)

  7. #6
    B4M's Avatar
    Join Date
    May 2009
    Gender
    male
    Location
    Real World
    Posts
    6,940
    Reputation
    478
    Thanks
    1,752
    My Mood
    Bored
    What the hell?!

    The MPGH had a roll back, because I am pretty sure that I added the tags too and also fixed that link..
    [center]

    Back in '10



    Got a question?PM/VM me!
    I read them all.
    Also contact me via MSN.
    vlad@mpgh.net

    Minion since:07-04-2010
    Mod since:08-31-2010
    Till : 05.07.2011

Similar Threads

  1. [Help]Script compile error.(rules readed this time)
    By GBot! in forum Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    Replies: 11
    Last Post: 08-15-2010, 08:33 AM
  2. [HELP]Why Script Compile Error?!
    By ♪~ ᕕ(ᐛ)ᕗ in forum Call of Duty Modern Warfare 2 Help
    Replies: 3
    Last Post: 08-03-2010, 04:59 AM
  3. Script Compile Error
    By a PhaZeD in forum Call of Duty Modern Warfare 2 Help
    Replies: 6
    Last Post: 07-30-2010, 03:32 PM
  4. Why Script Compile Error???!
    By ♪~ ᕕ(ᐛ)ᕗ in forum Call of Duty Modern Warfare 2 Help
    Replies: 5
    Last Post: 07-27-2010, 12:11 AM
  5. Script compile error - Unknown function (check console for details)
    By Chaojon in forum Call of Duty Modern Warfare 2 Help
    Replies: 40
    Last Post: 07-01-2010, 09:20 PM