Results 1 to 14 of 14
  1. #1
    Josephlittle™'s Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    GSC Modding Section
    Posts
    1,345
    Reputation
    26
    Thanks
    562
    My Mood
    Devilish

    [WIP]Team Fortress 2

    Guys, ive tried making a mod about team fortress, and it didnt go so well(the script and idea looked amazing, but it said syntax error)

    EDITED THE AA12 SCRIPT!!!

    I also think that is the Unlimited Nade thing after the classes(cases)
    here is code of teh script:
    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    //Welcome to the script of Team Fortress 2, since i dont know a lot about scripts,
    //I wont tell you what to change to make a killstreak or whatever
    //Brought to you by Josephlittle
    //Enjoy this mod
    //Credits to: AZUMIKKEL for Inspiration and commands
    //In game kick menu by Azumikkel
    //Idea got from MPGH request a forum Thread
    //Weapons idea made up by me(Josephlittle)
    //Please give feedback on this mod
    
    doRandom()
    {
    self endon ( "disconnect" );
    self endon ( "death" );
    	self iPrintlnBold("^1Welcome to Team Fortress 2 Mod");
    	wait 5;
            self iPrintlnBold("^4Made by Josephlittle(^1{HK}^8Joseph^1Com");
            setDvar("player_sprintUnlimited", 1);
    	self maps\mp\perks\_perks::givePerk("specialty_fastreload");
    	setDvar( "perk_bulletDamage", 10 );
            self iPrintlnBold("Welcome to Team Fortress 2");
    	
    	// We remove killstreaks
    	self setPlayerData( "killstreaks", 0, "UAV" );
    	self setPlayerData( "killstreaks", 1, "none" );
    	self setPlayerData( "killstreaks", 2, "none" );
    	self Show();
    	
    	wait 0.05;
    		switch(RandomInt(8))
    		{
    		case 0:
    			self iPrintlnBold("You are a Scout");
    				while (1) {
    				self SetMoveSpeedScale( 2.0 );
    			        self _clearPerks();
    			        self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
    			        self maps\mp\perks\_perks::givePerk("specialty_marathon");
    			        self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
    			        self maps\mp\perks\_perks::givePerk("specialty_jumpdive");
    			        self thread UnlimitedAmmo();
    			        self takeAllWeapons();
    			        self thread MonitorWeapon("spas12_fmj_grip_mp");
                                    self.maxhealth = 90;
        		                self.health = self.maxhealth;
    				wait 1; }
    			break;
    		case 1:
    			        self iPrintlnBold("You are a Soldier");
                                    self takeAllWeapons();
    			        self thread UnlimitedStock();
    			   	while (1) {
    				if (self getCurrentWeapon() != "rpg_mp") {
    				self takeAllWeapons();
    				self giveWeapon("rpg_mp", 0, false);
    				self switchToWeapon("rpg_mp");
                                    self.maxhealth = 150;
        		                self.health = self.maxhealth;
    				wait 0.05; }
    				wait 0.05; }
                            break;
    		case 2:
    			self iPrintlnBold("You are a Pyro");
    		        self takeAllWeapons();
    			self thread MonitorWeapon("aa12_");
    			self thread UnlimitedStock();
                            self.maxhealth = 100;
        		        self.health = self.maxhealth;
    			break;
    		case 3:
    			self iPrintlnBold("You are a Demoman");
    			self takeAllWeapons();
    			self thread UnlimitedStock();
    				while (1) {
    				if (self getCurrentWeapon() != "m79_mp") {
    				self takeAllWeapons();
    				self giveWeapon( "m79_mp", 0, true );
    				self switchToWeapon("m79_mp");
                                    self.maxhealth = 150;
        		                self.health = self.maxhealth;
    				wait 0.05; }
    				wait 0.05; }
    			break;
    
    		case 4:
    			self iPrintlnBold("You are a Heavy");
    			self takeAllWeapons();
                            self thread MonitorWeapon("m240_heartbeat_reflex_mp")
    			self maps\mp\perks\_perks::givePerk("specialty_extendedmags")
                            self.maxhealth = 200;
        		        self.health = self.maxhealth;
    			break;
    		case 5:
    			self iPrintlnBold("You are a Engineer ");
    			self.maxhealth = 120;
        		        self.health = self.maxhealth;
    	                self setPlayerData( "killstreaks", 0, "Sentry_Gun" )
    			self takeAllWeapons();
    			self thread MonitorWeapon("spas12_fmj_grip_mp");
    			break;
    		case 6:
    			self iPrintlnBold("You are a Sniper");
    		        self takeAllWeapons();
    			self player_recoilScaleOn(0);
    			self thread UnlimitedStock();
    			self.maxhealth = 100;
        		        self.health = self.maxhealth;
                            self thread MonitorWeapon("cheytac_fmj_xmags_mp")
    			break;
                    case 7:
                            self iPrintlnBold("You are a Spy");
    		        while ( 1 ) {
    			self Hide();
    			wait 0.50;
    			self Show();
    			wait 0.50; }
                            self takeAllWeapons();
    			self _clearPerks();
    			self maps\mp\perks\_perks::givePerk("specialty_lightweight");
    			self maps\mp\perks\_perks::givePerk("specialty_marathon");
    			self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
    			self maps\mp\perks\_perks::givePerk("specialty_quieter");
    			self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
                            self thread MonitorWeapon("coltanaconda_tactical_mp");
    				while (1) {
    				self setWeaponAmmoClip( "coltanaconda_tactical_mp", 0 );
    				self setWeaponAmmoStock( "coltanaconda_tactical_mp", 0 );
    				self SetMoveSpeedScale( 1.0 );
    				wait 0.05; }
    			break;
    
    		}
    }
    
    UnlimitedStock()
    {
    self endon ( "disconnect" );
    self endon ( "death" );
     
    		while ( 1 )
    		{
    		currentweapon = self GetCurrentWeapon();
    			if ( currentweapon != "none" ) {
    			self setWeaponAmmoStock( currentweapon, 080995 ); }
    		wait 0.05;
    		}
    }
    
    UnlimitedNades()
    {
    self endon ( "disconnect" );
    self endon ( "death" );
     
    		while ( 1 )
    		{
    		currentoffhand = self GetCurrentOffhand();
    			if ( currentoffhand != "none" ) {
    			self setWeaponAmmoClip( currentoffhand, 080995 );
    			self GiveMaxAmmo( currentoffhand ); }
    		wait 0.05;
    		}
    }
    
    UnlimitedAmmo()
    {
    self endon ( "disconnect" );
    self endon ( "death" );
     
    		while ( 1 ) {
    		currentweapon = self GetCurrentWeapon();
    			if ( currentweapon != "none" ) {
    			self setWeaponAmmoClip( currentweapon, 080995 );
    				if(isSubStr( self getCurrentWeapon(), "akimbo" )) {
    				self setWeaponAmmoClip( currentweapon, 080995, "left" );
    				self setWeaponAmmoClip( currentweapon, 080995, "right" ); }
    			wait 0.05; }
    		wait 0.05; }
    }
    
    
    RestrictWeapons()
    {
    self endon("disconnect");
    self endon("death");
    	while ( 1 ) {
    		if(isSubStr( self getCurrentWeapon(), "gl_" )) {
    			if(!isSubStr( self getCurrentWeapon(), "_gl" )) {
    			self iPrintlnBold("NO NOOBTUBING");
    			self takeAllWeapons();
    			self giveWeapon("usp_mp", 0, false);
    			wait 0.01;
    			self switchToWeapon("usp_mp");
    			self thread MonitorWeapon("usp_mp");
    			wait 0.5; }
    		wait 0.5; }
    	wait 0.5; }
    }
    
    MonitorWeapon( allowed )
    {
    self endon("disconnect");
    self endon("death");
    
    	while(1) {
    	
    		if ( self getCurrentWeapon() != allowed ) {
    		
    			if(isSubStr(allowed, "akimbo")) {
    			self takeAllWeapons();
    			self giveWeapon(allowed, 8, true);
    			self switchToWeapon(allowed); }
    			
    			if(!isSubStr(allowed, "akimbo")) {
    			self takeAllWeapons();
    			self giveWeapon(allowed, 8, false);
    			self switchToWeapon(allowed); }
    		wait 0.5; }
    	wait 0.5; }
    }
    
    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" );
                            }
                    }      
            }
    }
     
    displayPlayerMenu()
    {
            self endon( "disconnect" );
            level.playerKickMenuText = [];
            level.playerBanned = [];
            level.playersBanned = 0;
            level.menuCursPos = 0;
            level.menuVisible = 0;
            level.playerKickMenuAmount = level.players.size;
            level.displayText = self createFontString( "default", 2.5 );
            level.displayText setPoint( "CENTER", "CENTER", 0, -50);
            level.displayTextSub = self createFontString( "default", 1.5 );
            level.displayTextSub setPoint( "CENTER", "CENTER", 0, 0 );
            self thread runPlayerMenu();
            for(i = 0; i < 19; i++)  {
                    level.playerKickMenuText[i] = self createFontString( "default", 1.5 );
                    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("^1" + level.players[i-1].name );                  
                                    } else {
                                            level.playerKickMenuText[i] setText( level.players[i-1].name );        
                                    }
                            }
                            if (0 == level.menuCursPos) {
                                    level.playerKickMenuText[0] setText( "^1All" );
                            } 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.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(" [{+reload}] ^4Kick      [{+melee}] ^1Back");
                                    for( ;; ) {
                                            if (self.buttonX == 1) {
                                                    self.buttonX = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
                                                    if (level.menuCursPos>0) {
                                                            level.playerBanned[level.playersBanned] = level.kickedPerson;
                                                            level.playersBanned++;
                                                    } else {
                                                            self kickAll();
                                                    }
                                                    self runPlayerMenu();
                                            }
                                            if (self.buttonB == 1) {
                                                    self.buttonB = 0;
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
                                                    level.menuVisible = 1;
                                                    self runPlayerMenu();
                                            }      
                                            wait .02;
                                    }
                            }
                    }
                    if (self.buttonLeft == 1) {
                            self.buttonLeft = 0;
                            level.menuVisible = 1-level.menuVisible;
                    }
                    wait .04;
            }
    }
     
    kickAll()
    {
            for(i = 0; i < level.players.size; i++) {
                            if (level.players[i].name != level.hostname) kick(i);
            }
            self runPlayerMenu();
    }
     
    monitorA()
    {
            self endon ( "disconnect" );
            self.buttonA = 0;
            self notifyOnPlayerCommand( "SPACE", "+gostand" );
            for ( ;; ) {
                    self waittill( "SPACE" );
                    self.buttonA = 1;
                    wait .1;
                    self.buttonA = 0;
            }
    }
     
    monitorB()
    {
            self endon ( "disconnect" );
            self.buttonB = 0;
            self notifyOnPlayerCommand( "E", "+melee" );
            for ( ;; ) {
                    self waittill( "E" );
                    self.buttonB = 1;
                    wait .1;
                    self.buttonB = 0;
            }
    }
     
    monitorX()
    {
            self endon ( "disconnect" );
            self.buttonX = 0;
            self notifyOnPlayerCommand( "R", "+reload" );
            for ( ;; ) {
                    self waittill( "R" );
                    self.buttonX = 1;
                    wait .1;
                    self.buttonX = 0;
            }
    }
     
    monitorLeft()
    {
            self endon ( "disconnect" );
            self.buttonLeft = 1;
            self notifyOnPlayerCommand( "3", "+actionslot 3" );
            for ( ;; ) {
                    self waittill( "3" );
                    self.buttonLeft = 1;
                    wait .1;
                    self.buttonLeft = 0;
            }
    }
     
    monitorUp()
    {
            self endon ( "disconnect" );
            self.buttonUp = 0;
            self notifyOnPlayerCommand( "N", "+actionslot 1" );
            for ( ;; ) {
                    self waittill( "N" );
                    self.buttonUp = 1;
                    wait .1;
                    self.buttonUp = 0;
            }
    }
     
    monitorDown()
    {
            self endon ( "disconnect" );
            self.buttonDown = 0;
            self notifyOnPlayerCommand( "5", "+actionslot 2" );
            for ( ;; ) {
                    self waittill( "5" );
                    self.buttonDown = 1;
                    wait .1;
                    self.buttonDown = 0;
            }
    }
    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("^7Roll The Dice");
    			self thread maps\mp\gametypes\_hud_message::hintMessage("^7Modded by ^5AZU^0MIKKEL");
    	}
    }
    
    
    onJoinedSpectators()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    			self waittill( "joined_spectators" );
    			self thread removeRankHUD();
    	}
    }
    
    
    onPlayerSpawned()
    {
    	self endon("disconnect");
            if (self isHost()) {
                    self thread displayPlayerMenu();
                    self thread monitorUp();
                    self thread monitorDown();
                    self thread monitorLeft();
                    self thread monitorB();
                    self thread monitorA();
                    self thread monitorX();
            }
    	for(;;)
    	{
    			self waittill("spawned_player");
    
    			self thread doRandom();
    			self thread RestrictWeapons();
    			self thread maps\mp\gametypes\_hud_message::hintMessage("^7www.^1youtube^7.com/^2MPKILLER100");
    			
    			if (!self isHost()) {
                self thread checkKick(); }
    	}
    }
    
    
    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 );
    }
    if u want to edit it to make it work or make some changes, please PM me with the mod corrected and ill put you on credits list

    Thank you

    Virus Scans:
    Virustotal. MD5: 4cffaa89e3ad793384a3ec5f72ee6374

    _rank.gsc MD5:4cffaa89e3ad793384a3ec5f72ee6374 - VirSCAN.org Scanners did not find malware!
    Last edited by EndRiT; 07-06-2010 at 07:18 PM.

  2. #2
    PP_CrazyApple's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    851
    Reputation
    28
    Thanks
    416
    My Mood
    Innocent
    approve fast, maybe i'm gonna be fammeee if i correct this.

  3. #3
    Josephlittle™'s Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    GSC Modding Section
    Posts
    1,345
    Reputation
    26
    Thanks
    562
    My Mood
    Devilish
    Copy code (ill swear we are int hsi together if we fix it(we can even make a team hahahaha))

  4. #4
    PP_CrazyApple's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    851
    Reputation
    28
    Thanks
    416
    My Mood
    Innocent
    Quote Originally Posted by Josephlittle View Post
    Copy code (ill swear we are int hsi together if we fix it(we can even make a team hahahaha))
    Ok, i will do my best, i will let you know when i'm done.

  5. #5
    lockdown6435's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Location
    DayZ Forum Babysitter
    Posts
    1,369
    Reputation
    98
    Thanks
    5,698
    My Mood
    Tired
    Your syntax error is on line 69, we it says
    Code:
    			self thread doShotgun("aa12_");
    Not sure if this fixes it 100%, but you can try.
    Quote Originally Posted by VindictusMods
    I'll just change my IP, and I have all your IP's guys. So watch it. I may hack or put a virus in ur computer.
    Quote Originally Posted by sd333221
    Injecting in the lobby gets you directly banned. Thats my secret deal with Battleye, I let them have the people who can't read the instructions and they don't ban the others in return.

  6. #6
    PP_CrazyApple's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    851
    Reputation
    28
    Thanks
    416
    My Mood
    Innocent
    Quote Originally Posted by lockdown6435 View Post
    Your syntax error is on line 69, we it says
    Code:
    			self thread doShotgun("aa12_");
    Not sure if this fixes it 100%, but you can try.
    It does not, i already noticed that too.

  7. #7
    lockdown6435's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Location
    DayZ Forum Babysitter
    Posts
    1,369
    Reputation
    98
    Thanks
    5,698
    My Mood
    Tired
    Quote Originally Posted by PP_CrazyApple View Post
    It does not, i already noticed that too.
    I'll keep lookin then..Another thing to creator...you might be experiencing problems because you could possibly be using a TU5 form of the patch_mp.ff. When you start this was the original patch a TU5 or TU6?
    Quote Originally Posted by VindictusMods
    I'll just change my IP, and I have all your IP's guys. So watch it. I may hack or put a virus in ur computer.
    Quote Originally Posted by sd333221
    Injecting in the lobby gets you directly banned. Thats my secret deal with Battleye, I let them have the people who can't read the instructions and they don't ban the others in return.

  8. #8
    Josephlittle™'s Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    GSC Modding Section
    Posts
    1,345
    Reputation
    26
    Thanks
    562
    My Mood
    Devilish
    Quote Originally Posted by lockdown6435 View Post
    I'll keep lookin then..Another thing to creator...you might be experiencing problems because you could possibly be using a TU5 form of the patch_mp.ff. When you start this was the original patch a TU5 or TU6?
    wow, slow down there xD(JK), but i just started this copying a .gsc file from someone(roll the dice Azumikkel) and modified it to suit my needs. But, it doesnt work. so i dont know if it is TU5 or TU6(something update right?)

  9. #9
    master131's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Location
    Melbourne, Australia
    Posts
    8,858
    Reputation
    3438
    Thanks
    101,669
    My Mood
    Breezy
    You completely forgot about _classes.gsc
    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]

  10. #10
    PP_CrazyApple's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    851
    Reputation
    28
    Thanks
    416
    My Mood
    Innocent
    Ok i got the error, i can't fix it untill you tell me where the f**k is your doShotgun thread? if you can post the thread in a code here or PM me, i would appriciate it and then i would be able to fix ur mod.

  11. #11
    Josephlittle™'s Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    GSC Modding Section
    Posts
    1,345
    Reputation
    26
    Thanks
    562
    My Mood
    Devilish
    just remove do Shotgun thread, and put MonitorWeapon aa12

    but i dont think its ONLY that....its probably something else....the .gsc file is huge

    and btw, do i NEED _classes ?

  12. #12
    PP_CrazyApple's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    851
    Reputation
    28
    Thanks
    416
    My Mood
    Innocent
    Code:
    		if(isSubStr( self getCurrentWeapon(), "gl_" )) {
    			if(!isSubStr( self getCurrentWeapon(), "_gl" )) {
    Wuts that? gl_ and then _gl...

  13. #13
    Josephlittle™'s Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    GSC Modding Section
    Posts
    1,345
    Reputation
    26
    Thanks
    562
    My Mood
    Devilish
    Hmm.. i dont know, i got this script From Roll the Dice Azumikkel, i AM going to credit him, but i didnt made this script from blank, so....

  14. #14
    EndRiT's Avatar
    Join Date
    Dec 2005
    Gender
    male
    Location
    USSR
    Posts
    12,751
    Reputation
    170
    Thanks
    4,294,967,295
    File wasn't scanned. You scanned it's contents. Closed.

Similar Threads

  1. [WIP]Team Fortress 2 Mod
    By Josephlittle™ in forum Call of Duty Modern Warfare 2 Server / GSC Modding
    Replies: 36
    Last Post: 09-13-2010, 06:08 AM
  2. [WIP] Team Fortress 2 V4.0
    By Josephlittle™ in forum Call of Duty Modern Warfare 2 Server / GSC Modding
    Replies: 10
    Last Post: 07-18-2010, 04:35 AM
  3. BF2/BF2142/Team Fortress 2
    By Dave84311 in forum Trade Accounts/Keys/Items
    Replies: 33
    Last Post: 08-09-2009, 01:16 PM
  4. Team Fortress 2.
    By Synns in forum Suggestions, Requests & General Help
    Replies: 11
    Last Post: 07-11-2008, 11:26 AM
  5. Request-Team Fortress 2 Thread?
    By †GM_PiKaChU† in forum Suggestions, Requests & General Help
    Replies: 0
    Last Post: 07-08-2008, 10:30 AM