You are viewing our Forum Archives. To view or take place in current topics click here.
MW3: All GSC Files Extracted (By:DEREK-TROTTER) {Wii}
Posted:

MW3: All GSC Files Extracted (By:DEREK-TROTTER) {Wii}Posted:

Experiment
  • TTG Senior
Status: Offline
Joined: Dec 17, 201013Year Member
Posts: 1,141
Reputation Power: 61
Status: Offline
Joined: Dec 17, 201013Year Member
Posts: 1,141
Reputation Power: 61
Took me a while to extract all these, everything you need to create a patch/menu/gamemode etc....
Better to be prepared ;)

[ Register or Signin to view external links. ]

[ Register or Signin to view external links. ]

GSC List
common_scripts/_artcommon.gsc
common_scripts/_createfx.gsc
common_scripts/_createfxmenu.gsc
common_scripts/_destructible.gsc
common_scripts/_destructible_types.gsc
common_scripts/_dynamic_world.gsc
common_scripts/_elevator.gsc
common_scripts/_fx.gsc
common_scripts/_pipes.gsc
common_scripts/utility.gsc
maps/mp/_animatedmodels.gsc
maps/mp/_areas.gsc
maps/mp/_art.gsc
maps/mp/_audio.gsc
maps/mp/_awards.gsc
maps/mp/_compass.gsc
maps/mp/_createfx.gsc
maps/mp/_crib.gsc
maps/mp/_defcon.gsc
maps/mp/_destructables.gsc
maps/mp/_empgrenade.gsc
maps/mp/_entityheadicons.gsc
maps/mp/_events.gsc
maps/mp/_flashgrenades.gsc
maps/mp/_fx.gsc
maps/mp/_global_fx.gsc
maps/mp/_highlights.gsc
maps/mp/_javelin.gsc
maps/mp/_load.gsc
maps/mp/_matchdata.gsc
maps/mp/_matchevents.gsc
maps/mp/_minefields.gsc
maps/mp/_radiation.gsc
maps/mp/_scoreboard.gsc
maps/mp/_shutter.gsc
maps/mp/_skill.gsc
maps/mp/_stinger.gsc
maps/mp/_utility.gsc
maps/mp/gametypes/_battlechatter_mp.gsc
maps/mp/gametypes/_callbacksetup.gsc
maps/mp/gametypes/_class.gsc
maps/mp/gametypes/_damage.gsc
maps/mp/gametypes/_damagefeedback.gsc
maps/mp/gametypes/_deathicons.gsc
maps/mp/gametypes/_dev.gsc
maps/mp/gametypes/_equipment.gsc
maps/mp/gametypes/_friendicons.gsc
maps/mp/gametypes/_gamelogic.gsc
maps/mp/gametypes/_gameobjects.gsc
maps/mp/gametypes/_globalentities.gsc
maps/mp/gametypes/_globallogic.gsc
maps/mp/gametypes/_healthoverlay.gsc
maps/mp/gametypes/_hostmigration.gsc
maps/mp/gametypes/_hud.gsc
maps/mp/gametypes/_hud_message.gsc
maps/mp/gametypes/_hud_util.gsc
maps/mp/gametypes/_killcam.gsc
maps/mp/gametypes/_menus.gsc
maps/mp/gametypes/_missions.gsc
maps/mp/gametypes/_music_and_dialog.gsc
maps/mp/gametypes/_objpoints.gsc
maps/mp/gametypes/_persistence.gsc
maps/mp/gametypes/_playercards.gsc
maps/mp/gametypes/_playerlogic.gsc
maps/mp/gametypes/_portable_radar.gsc
maps/mp/gametypes/_quickmessages.gsc
maps/mp/gametypes/_rank.gsc
maps/mp/gametypes/_scrambler.gsc
maps/mp/gametypes/_serversettings.gsc
maps/mp/gametypes/_shellshock.gsc
maps/mp/gametypes/_spawnlogic.gsc
maps/mp/gametypes/_spectating.gsc
maps/mp/gametypes/_teams.gsc
maps/mp/gametypes/_tweakables.gsc
maps/mp/gametypes/_weapons.gsc
maps/mp/gametypes/arena.gsc
maps/mp/gametypes/conf.gsc
maps/mp/gametypes/ctf.gsc
maps/mp/gametypes/ctfpro.gsc
maps/mp/gametypes/dd.gsc
maps/mp/gametypes/dm.gsc
maps/mp/gametypes/dom.gsc
maps/mp/gametypes/grnd.gsc
maps/mp/gametypes/gtnw.gsc
maps/mp/gametypes/gun.gsc
maps/mp/gametypes/infect.gsc
maps/mp/gametypes/jugg.gsc
maps/mp/gametypes/koth.gsc
maps/mp/gametypes/oic.gsc
maps/mp/gametypes/oneflag.gsc
maps/mp/gametypes/sab.gsc
maps/mp/gametypes/sd.gsc
maps/mp/gametypes/tdef.gsc
maps/mp/gametypes/tjugg.gsc
maps/mp/gametypes/vip.gsc
maps/mp/gametypes/war.gsc
maps/mp/killstreaks/_a10.gsc
maps/mp/killstreaks/_aamissile.gsc
maps/mp/killstreaks/_aastrike.gsc
maps/mp/killstreaks/_ac130.gsc
maps/mp/killstreaks/_airdrop.gsc
maps/mp/killstreaks/_airstrike.gsc
maps/mp/killstreaks/_autosentry.gsc
maps/mp/killstreaks/_autoshotgun.gsc
maps/mp/killstreaks/_deployablebox.gsc
maps/mp/killstreaks/_emp.gsc
maps/mp/killstreaks/_escortairdrop.gsc
maps/mp/killstreaks/_harrier.gsc
maps/mp/killstreaks/_helicopter.gsc
maps/mp/killstreaks/_helicopter_flock.gsc
maps/mp/killstreaks/_helicopter_guard.gsc
maps/mp/killstreaks/_ims.gsc
maps/mp/killstreaks/_juggernaut.gsc
maps/mp/killstreaks/_killstreaks.gsc
maps/mp/killstreaks/_mobilemortar.gsc
maps/mp/killstreaks/_nuke.gsc
maps/mp/killstreaks/_perkstreaks.gsc
maps/mp/killstreaks/_remotemissile.gsc
maps/mp/killstreaks/_remotemortar.gsc
maps/mp/killstreaks/_remotetank.gsc
maps/mp/killstreaks/_remoteturret.gsc
maps/mp/killstreaks/_remoteuav.gsc
maps/mp/killstreaks/_tank.gsc
maps/mp/killstreaks/_teamammorefill.gsc
maps/mp/killstreaks/_uav.gsc
maps/mp/perks/_perkfunctions.gsc
maps/mp/perks/_perks.gsc

guess IW didnt think we'd see this

[ Register or Signin to view external links. ]

Heres the _rank.gsc

#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
 
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 = [];
        level.weaponRankTable = [];
 
        precacheShader("white");
 
        precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
        precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
        precacheString( &"RANK_WEAPON_WAS_PROMOTED" );
        precacheString( &"RANK_PROMOTED" );
        precacheString( &"RANK_PROMOTED_WEAPON" );
        precacheString( &"MP_PLUS" );
        precacheString( &"RANK_ROMANI" );
        precacheString( &"RANK_ROMANII" );
        precacheString( &"RANK_ROMANIII" );
       
        precacheString( &"SPLASHES_LONGSHOT" );
        precacheString( &"SPLASHES_PROXIMITYASSIST" );
        precacheString( &"SPLASHES_PROXIMITYKILL" );
        precacheString( &"SPLASHES_EXECUTION" );       
        precacheString( &"SPLASHES_AVENGER" ); 
        precacheString( &"SPLASHES_ASSISTEDSUICIDE" ); 
        precacheString( &"SPLASHES_DEFENDER" );
        precacheString( &"SPLASHES_POSTHUMOUS" );       
        precacheString( &"SPLASHES_REVENGE" ); 
        precacheString( &"SPLASHES_DOUBLEKILL" );       
        precacheString( &"SPLASHES_TRIPLEKILL" );       
        precacheString( &"SPLASHES_MULTIKILL" );                       
        precacheString( &"SPLASHES_BUZZKILL" );
        precacheString( &"SPLASHES_COMEBACK" );
        precacheString( &"SPLASHES_KNIFETHROW" );
        precacheString( &"SPLASHES_ONE_SHOT_KILL" );   
 
        if ( level.teamBased )
        {
                registerScoreInfo( "kill", 999999 );
                registerScoreInfo( "headshot", 999999 );
                registerScoreInfo( "assist", 999999 );
                registerScoreInfo( "proximityassist", 999999 );
                registerScoreInfo( "proximitykill", 999999 );
                registerScoreInfo( "suicide", 999999 );
                registerScoreInfo( "teamkill", 999999 );
        }
        else
        {
                registerScoreInfo( "kill", 999999 );
                registerScoreInfo( "headshot", 999999 );
                registerScoreInfo( "assist", 999999 );
                registerScoreInfo( "suicide", 999999 );
                registerScoreInfo( "teamkill", 999999 );
        }
       
        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 );             
        }
 
        weaponMaxRank = int(tableLookup( "mp/weaponRankTable.csv", 0, "maxrank", 1 ));
        for( i = 0; i < weaponMaxRank + 1; i++ )
        {
                level.weaponRankTable[i][1] = tableLookup( "mp/weaponRankTable.csv", 0, i, 1 );
                level.weaponRankTable[i][2] = tableLookup( "mp/weaponRankTable.csv", 0, i, 2 );
                level.weaponRankTable[i][3] = tableLookup( "mp/weaponRankTable.csv", 0, i, 3 );
        }
 
        maps\mp\gametypes\_missions::buildChallegeInfo();
 
        level thread patientZeroWaiter();
       
        level thread onPlayerConnect();
 
/#
        SetDevDvarIfUninitialized( "scr_devweaponxpmult", "0" );
        SetDevDvarIfUninitialized( "scr_devsetweaponmaxrank", "0" );
 
        level thread watchDevDvars();
#/
}
 
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]);
}
 
getWeaponRankInfoMinXP( rankId )
{
        return int( level.weaponRankTable[ rankId ][ 1 ] );
}
 
getRankInfoXPAmt( rankId )
{
        return int(level.rankTable[rankId][3]);
}
 
getWeaponRankInfoXPAmt( rankId )
{
        return int( level.weaponRankTable[ rankId ][ 2 ] );
}
 
getRankInfoMaxXp( rankId )
{
        return int(level.rankTable[rankId][7]);
}
 
getWeaponRankInfoMaxXp( rankId )
{
        return int( level.weaponRankTable[ rankId ][ 3 ] );
}
 
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;
               
                if ( player.clientid < level.MaxLogClients )
                {
                        setMatchData( "players", player.clientid, "rank", rankId );
                        setMatchData( "players", player.clientid, "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 thread maps\mp\gametypes\_missions::updateChallenges();
                player.explosiveKills[0] = 0;
                player.xpGains = [];
               
                player.hud_xpPointsPopup = player createXpPointsPopup();
                player.hud_xpEventPopup = player createXpEventPopup();
               
                player thread onPlayerSpawned();
                player thread onJoinedTeam();
                player thread onJoinedSpectators();
                player thread setGamesPlayed();
               
                //sets double XP on player var
                if ( player getPlayerData("prestigeDoubleXp") )
                        player.prestigeDoubleXp = true;
                else
                        player.prestigeDoubleXp = false;
                       
                //sets double Weapon XP on player var
                if ( player getPlayerData("prestigeDoubleWeaponXp") )
                        player.prestigeDoubleWeaponXp = true;
                else
                        player.prestigeDoubleWeaponXp = false;
                               
        }
}
 
setGamesPlayed()
{
        self endon ( "disconnect" );
       
        for( ;; )
        {
                wait(30);
               
                if ( !self.hasDoneCombat )     
                        continue;
                       
                self maps\mp\gametypes\_persistence::statAdd("gamesPlayed", 1 );
                break;
        }       
}
 
onJoinedTeam()
{
        self endon("disconnect");
 
        for(;;)
        {
                self waittill( "joined_team" );
                self thread removeRankHUD();
        }
}
 
 
onJoinedSpectators()
{
        self endon("disconnect");
 
        for(;;)
        {
                self waittill( "joined_spectators" );
                self thread removeRankHUD();
        }
}
 
 
onPlayerSpawned()
{
        self endon("disconnect");
 
        for(;;)
        {
                self waittill("spawned_player");
        }
}
 
 
roundUp( floatVal )
{
        if ( int( floatVal ) != floatVal )
                return int( floatVal+1 );
        else
                return int( floatVal );
}
 
giveRankXP( type, value, weapon, sMeansOfDeath, challengeName )
{
        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":
                case "kill_confirmed":
                case "kill_denied":
                case "tags_retrieved":
                case "team_assist":
                case "kill_bonus":
                case "kill_carrier":
                case "draft_rogue":
                case "survivor":
                case "final_rogue":
                case "gained_gun_rank":
                case "dropped_enemy_gun_rank":
                case "got_juggernaut":
                case "kill_as_juggernaut":
                case "kill_juggernaut":
                case "jugg_on_jugg":
                        if ( getGametypeNumLives() > 0 )
                        {
                                multiplier = max(1,int( 10/getGametypeNumLives() ));
                                value = int(value * multiplier);
                        }
                       
                        // do we have an entitlement or prestige-award to give us an additional xp multiplier
                        entitlement_xp = 0;
                        prestigeBonus_xp = 0;
                       
                        if ( self.prestigeDoubleXp )
                        {
                                howMuchTimePlayed = self getPlayerData( "prestigeDoubleXpTimePlayed" );
                                if ( howMuchTimePlayed >= self.bufferedStatsMax["prestigeDoubleXpMaxTimePlayed"] )
                                {
                                        self setPlayerData( "prestigeDoubleXp", false );
                                        self setPlayerData( "prestigeDoubleXpTimePlayed", 0 );
                                        self setPlayerData( "prestigeDoubleXpMaxTimePlayed", 0 );
                                        self.prestigeDoubleXp = false;
                                }
                                else   
                                {                               
                                        prestigeBonus_xp = 2;
                                }
                        }
                       
                        for ( i = 0; i < 3; i++ )
                        {
                                if ( self getPlayerData( "xpMultiplierTimePlayed", i) < self.bufferedChildStatsMax[ "xpMaxMultiplierTimePlayed" ][ i ] )
                                {
                                        entitlement_xp += int( self getPlayerData( "xpMultiplier", i) );
                                }
                        }
                       
                        if ( entitlement_xp > 0 ) //we do have an entitlement xp multiplier
                        {
                                //adding prestige bonus to entitlement bonus
                                if ( prestigeBonus_xp > 0 )
                                        entitlement_xp += prestigeBonus_xp;
                               
                                value = int( ( value * level.xpScale ) * entitlement_xp );
                        }
                        else if ( prestigeBonus_xp > 0 ) //no entitlement xp multiplier, just prestige bonus
                        {
                                value = int( value * level.xpScale * prestigeBonus_xp );
                        }
                        else //no entitlement xp multiplier, or prestige bonus
                        {
                                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;
                case "challenge":
                        entitlement_xp = 0;
                        if ( self getPlayerData( "challengeXPMultiplierTimePlayed", 0 ) < self.bufferedChildStatsMax[
 
"challengeXPMaxMultiplierTimePlayed" ][ 0 ] )
                        {
                                entitlement_xp += int( self getPlayerData( "challengeXPMultiplier", 0 ) );
                                if ( entitlement_xp > 0 )
                                        value = int( value * entitlement_xp );
                        }
 
                        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 this is a weapon challenge then set the weapon
        weaponChallenge = maps\mp\gametypes\_missions::isWeaponChallenge( challengeName );
        if( weaponChallenge )
                weapon = self GetCurrentWeapon();
 
        // riot shield gives xp for taking shield damage
        if( type == "shield_damage" )
        {
                weapon = self GetCurrentWeapon();
                sMeansOfDeath = "MOD_MELEE";
        }
       
        //////////////////////////////////////////////////////////////
        // WEAPON s***
        // check for weapon xp gains, they need to have cac unlocked before we start weapon xp gains
        if( weaponShouldGetXP( weapon, sMeansOfDeath ) || weaponChallenge )
        {
                // we just want the weapon name up to the first underscore
                weaponTokens = StrTok( weapon, "_" );
                //curWeapon = self GetCurrentWeapon();
               
                if ( weaponTokens[0] == "iw5" )
                        weaponName = weaponTokens[0] + "_" + weaponTokens[1];
                else if ( weaponTokens[0] == "alt" )
                        weaponName = weaponTokens[1] + "_" + weaponTokens[2];
                else
                        weaponName = weaponTokens[0];
               
                if( weaponTokens[0] == "gl" )
                        weaponName = weaponTokens[1];
 
                if( /*IsDefined( curWeapon ) && curWeapon == weapon &&*/ self IsItemUnlocked( weaponName ) )
                {
                        // is the weapon their class loadout weapon or a weapon they picked up?
                        if( self.primaryWeapon == weapon ||
                                self.secondaryWeapon == weapon ||
                                WeaponAltWeaponName( self.primaryWeapon ) == weapon ||
                                ( IsDefined( self.tookWeaponFrom ) && IsDefined( self.tookWeaponFrom[ weapon ] ) ) )
                        {
                                oldWeaponXP = self getWeaponRankXP( weaponName );
                               
                                // we want normalized weapon xp kill points regardless of game mode
                                switch( type )
                                {
                                case "kill":
                                        modifiedValue = WEAPONXP_KILL;                         
                                        break;
                                default:
                                        modifiedValue = value;
                                        break;
                                }
/#
                                if( GetDvarInt( "scr_devweaponxpmult" ) > 0 )
                                        modifiedValue *= GetDvarInt( "scr_devweaponxpmult" );
#/
                                //IW5 Prestige bonus weapon XP
                                if ( self.prestigeDoubleWeaponXp )
                                {
                                        howMuchWeaponXPTimePlayed = self getPlayerData( "prestigeDoubleWeaponXpTimePlayed" );
                                        if ( howMuchWeaponXPTimePlayed >= self.bufferedStatsMax["prestigeDoubleWeaponXpMaxTimePlayed"] )
                                        {
                                                self setPlayerData( "prestigeDoubleWeaponXp", true );
                                                self setPlayerData( "prestigeDoubleWeaponXpTimePlayed", 0 );
                                                self setPlayerData( "prestigeDoubleWeaponXpMaxTimePlayed", 0 );
                                                self.prestigeDoubleWeaponXp = true;
                                        }
                                        else   
                                        {                               
                                                modifiedValue *= 2;
                                        }
                                }
 
                                if ( self getPlayerData( "weaponXPMultiplierTimePlayed", 999999 ) < self.bufferedChildStatsMax[
 
"weaponXPMaxMultiplierTimePlayed" ][ 0 ] )
                                {
                                        weaponXPMult = int( self getPlayerData( "weaponXPMultiplier", 999999 ) );
                                        if ( weaponXPMult > 0 )
                                                modifiedValue *= weaponXPMult;
                                }
                               
                                newWeaponXP = oldWeaponXP + modifiedValue;
 
                                if( !isWeaponMaxRank( weaponName ) )
                                {
                                        // make sure we don't give more than the max.
                                        weaponMaxRankXP = getWeaponMaxRankXP( weaponName );
                                        if( newWeaponXP > weaponMaxRankXP )
                                        {
                                                newWeaponXP = weaponMaxRankXP;
                                                modifiedValue = weaponMaxRankXP - oldWeaponXP;
                                        }
                                       
                                        //for tracking weaponXP earned on a weapon per game
                                        if ( !isDefined( self.weaponsUsed ) )
                                        {
                                                self.weaponsUsed = [];
                                                self.weaponXpEarned = [];
                                        }
                                       
                                        weaponFound = false;
                                        foundIndex = 999;
                                        for( i = 0; i < self.weaponsUsed.size; i++ )
                                        {
                                                if ( self.weaponsUsed[i] == weaponName )
                                                {
                                                        weaponFound = true;
                                                        foundIndex = i;
                                                }
                                        }
                                       
                                        if ( weaponFound )
                                        {
                                                self.weaponXpEarned[foundIndex] += modifiedValue;
                                        }
                                        else
                                        {
                                                self.weaponsUsed[self.weaponsUsed.size] = weaponName;
                                                self.weaponXpEarned[self.weaponXpEarned.size] = modifiedValue;
                                        }
 
                                        self SetPlayerData( "weaponXP", weaponName, newWeaponXP );
                                        self maps\mp\_matchdata::logWeaponStat( weaponName, "XP", modifiedValue );
                                        self incPlayerStat( "weaponxpearned", modifiedValue );
                                        if ( self rankingEnabled() && updateWeaponRank( newWeaponXP, weaponName ) )
                                        {
                                                self thread updateWeaponRankAnnounceHUD();
                                        }
                                }
                        }
                }
        }
        // END.
        //////////////////////////////////////////////////////////////
 
        if ( !level.hardcoreMode )
        {
                if ( type == "teamkill" )
                {
                        self thread xpPointsPopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
                }
                else
                {
                        color = (1,1,0.5);
                        if ( gotRestXP )
                                color = (1,.65,0);
                        self thread xpPointsPopup( value, momentumBonus, color, 0 );
                        if ( type == "assist" )
                        {
                                assist_string = &"MP_ASSIST";
                                if( self _hasPerk( "specialty_assists" ) )
                                {
                                        if( !( self.pers["assistsToKill"] % 2 ) )
                                        {
                                                assist_string = &"MP_ASSIST_TO_KILL";
                                        }
                                }
                                self thread maps\mp\gametypes\_rank::xpEventPopup( assist_string );
                        }
                }
        }
 
        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":
                case "kill_confirmed":
                case "kill_denied":
                case "tags_retrieved":
                case "team_assist":
                case "kill_bonus":
                case "kill_carrier":
                case "draft_rogue":
                case "survivor":
                case "final_rogue":
                case "gained_gun_rank":
                case "dropped_enemy_gun_rank":
                case "got_juggernaut":
                case "kill_as_juggernaut":
                case "kill_juggernaut":
                case "jugg_on_jugg":
                        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;
        }
}
 
weaponShouldGetXP( weapon, meansOfDeath )
{
        if( self IsItemUnlocked( "cac" ) &&
                !self isJuggernaut() &&
                IsDefined( weapon ) &&
                IsDefined( meansOfDeath ) &&
                !isKillstreakWeapon( weapon ) )
        {
                if( isBulletDamage( meansOfDeath ) )
                {
                        return true;
                }
                if( IsExplosiveDamageMOD( meansOfDeath ) || meansOfDeath == "MOD_IMPACT" )
                {
                        if( getWeaponClass( weapon ) == "weapon_projectile" || getWeaponClass( weapon ) == "weapon_assault" )
                                return true;
                }
                if( meansOfDeath == "MOD_MELEE" )
                {
                        if( getWeaponClass( weapon ) == "weapon_riot" )
                                return true;
                }
        }
 
        return false;
}
 
updateRank( oldxp )
{
        newRankId = self getRank();
        if ( newRankId == self.pers["rank"] )
                return false;
 
        oldRank = 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;
}
 
updateWeaponRank( oldxp, weapon )
{
        // NOTE: weapon is already coming in tokenized, so it should be the weapon without attachments and _mp
        newRankId = self getWeaponRank( weapon );
        if ( newRankId == self.pers[ "weaponRank" ] )
                return false;
 
        oldRank = self.pers[ "weaponRank" ];
        self.pers[ "weaponRank" ] = newRankId;
        self SetPlayerData( "weaponRank", weapon, newRankId );
 
        //self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet(
 
"timePlayedTotal" ) );         
        println( "promoted " + self.name + "'s weapon from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self
 
getWeaponRankXP( weapon ) + "." );
 
        // now that we've ranked up, process the mastery challenge
        self thread maps\mp\gametypes\_missions::masteryChallengeProcess( weapon );
 
        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 );
                }
        }
}
 
updateWeaponRankAnnounceHUD()
{
        self endon("disconnect");
 
        self notify("update_weapon_rank");
        self endon("update_weapon_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 );
 
        thread maps\mp\gametypes\_hud_message::weaponPromotionSplashNotify();
 
        //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_WEAPON_WAS_PROMOTED", self );
        //      }
        //}
}
 
endGameUpdate()
{
        player = self;                 
}
 
createXpPointsPopup()
{
        hud_xpPointsPopup = newClientHudElem( self );
        hud_xpPointsPopup.horzAlign = "center";
        hud_xpPointsPopup.vertAlign = "middle";
        hud_xpPointsPopup.alignX = "center";
        hud_xpPointsPopup.alignY = "middle";
        hud_xpPointsPopup.x = 30;
        if ( level.splitScreen )
                hud_xpPointsPopup.y = -30;
        else
                hud_xpPointsPopup.y = -50;
        hud_xpPointsPopup.font = "hudbig";
        hud_xpPointsPopup.fontscale = 0.65;
        hud_xpPointsPopup.archived = false;
        hud_xpPointsPopup.color = (0.5,0.5,0.5);
        hud_xpPointsPopup.sort = 10000;
        hud_xpPointsPopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
        return hud_xpPointsPopup;
}
 
xpPointsPopup( amount, bonus, hudColor, glowAlpha )
{
        self endon( "disconnect" );
        self endon( "joined_team" );
        self endon( "joined_spectators" );
 
        if ( amount == 0 )
                return;
 
        self notify( "xpPointsPopup" );
        self endon( "xpPointsPopup" );
 
        self.xpUpdateTotal += amount;
        self.bonusUpdateTotal += bonus;
 
        wait ( 0.05 );
 
        if ( self.xpUpdateTotal < 0 )
                self.hud_xpPointsPopup.label = &"";
        else
                self.hud_xpPointsPopup.label = &"MP_PLUS";
 
        self.hud_xpPointsPopup.color = hudColor;
        self.hud_xpPointsPopup.glowColor = hudColor;
        self.hud_xpPointsPopup.glowAlpha = glowAlpha;
 
        self.hud_xpPointsPopup setValue(self.xpUpdateTotal);
        self.hud_xpPointsPopup.alpha = 0.85;
        self.hud_xpPointsPopup 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_xpPointsPopup setValue( self.xpUpdateTotal );
                       
                        wait ( 0.05 );
                }
        }       
        else
        {
                wait ( 1.0 );
        }
 
        self.hud_xpPointsPopup fadeOverTime( 0.75 );
        self.hud_xpPointsPopup.alpha = 0;
       
        self.xpUpdateTotal = 0;         
}
 
createXpEventPopup()
{
        hud_xpEventPopup = newClientHudElem( self );
        hud_xpEventPopup.children = [];         
        hud_xpEventPopup.horzAlign = "center";
        hud_xpEventPopup.vertAlign = "middle";
        hud_xpEventPopup.alignX = "center";
        hud_xpEventPopup.alignY = "middle";
        hud_xpEventPopup.x = 55;
        if ( level.splitScreen )
                hud_xpEventPopup.y = -20;
        else
                hud_xpEventPopup.y = -35;
        hud_xpEventPopup.font = "hudbig";
        hud_xpEventPopup.fontscale = 0.65;
        hud_xpEventPopup.archived = false;
        hud_xpEventPopup.color = (0.5,0.5,0.5);
        hud_xpEventPopup.sort = 10000;
        hud_xpEventPopup.elemType = "msgText";
        hud_xpEventPopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
        return hud_xpEventPopup;
}
 
xpEventPopup( event, hudColor, glowAlpha )
{
        self endon( "disconnect" );
        self endon( "joined_team" );
        self endon( "joined_spectators" );
 
        self notify( "xpEventPopup" );
        self endon( "xpEventPopup" );
 
        wait ( 0.05 );
 
        /*if ( self.spUpdateTotal < 0 )
                self.hud_xpEventPopup.label = &"";
        else
                self.hud_xpEventPopup.label = &"MP_PLUS";*/
               
        if ( !isDefined( hudColor ) )
                hudColor = (1,1,0.5);
        if ( !isDefined( glowAlpha ) )
                glowAlpha = 0;
 
        self.hud_xpEventPopup.color = hudColor;
        self.hud_xpEventPopup.glowColor = hudColor;
        self.hud_xpEventPopup.glowAlpha = glowAlpha;
 
        self.hud_xpEventPopup setText(event);
        self.hud_xpEventPopup.alpha = 0.85;
 
        wait ( 1.0 );
       
        self.hud_xpEventPopup fadeOverTime( 0.75 );
        self.hud_xpEventPopup.alpha = 0;       
}
 
removeRankHUD()
{
        self.hud_xpPointsPopup.alpha = 0;
}
 
getRank()
{       
        rankXp = self.pers["rankxp"];
        rankId = self.pers["rank"];
       
        if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
                return rankId;
        else
                return self getRankForXp( rankXp );
}
 
getWeaponRank( weapon )
{       
        // NOTE: weapon is already coming in tokenized, so it should be the weapon without attachments and _mp
        rankXp = self GetPlayerData( "weaponXP", weapon );
        return self getWeaponRankForXp( rankXp, weapon );
}
 
levelForExperience( experience )
{
        return getRankForXP( experience );
}
 
weaponLevelForExperience( experience )
{
        return getWeaponRankForXP( experience );
}
 
getCurrentWeaponXP()
{
        weapon = self GetCurrentWeapon();
        if( IsDefined( weapon ) )
        {
                return self GetPlayerData( "weaponXP", weapon );       
        }
 
        return 0;
}
 
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;
}
 
getWeaponRankForXp( xpVal, weapon )
{
        // NOTE: weapon is already coming in tokenized, so it should be the weapon without attachments and _mp
        if( !IsDefined( xpVal ) )
                xpVal = 0;
 
        weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
        weaponMaxRank = int( tableLookup( "mp/weaponRankTable.csv", 0, weaponClass, 1 ) );
        for( rankId = 0; rankId < weaponMaxRank + 1; rankId++ )
        {
                if ( xpVal < getWeaponRankInfoMinXP( rankId ) + getWeaponRankInfoXPAmt( rankId ) )
                        return rankId;
        }
 
        return ( rankId - 1 );
}
 
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"];
}
 
getWeaponRankXP( weapon )
{
        return self GetPlayerData( "weaponXP", weapon );
}
 
getWeaponMaxRankXP( weapon )
{
        // NOTE: weapon is already coming in tokenized, so it should be the weapon without attachments and _mp
        weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
        weaponMaxRank = int( tableLookup( "mp/weaponRankTable.csv", 0, weaponClass, 1 ) );
        weaponMaxRankXP = getWeaponRankInfoMaxXp( weaponMaxRank );
 
        return weaponMaxRankXP;
}
 
isWeaponMaxRank( weapon )
{       
        // NOTE: weapon is already coming in tokenized, so it should be the weapon without attachments and _mp
        weaponRankXP = self GetPlayerData( "weaponXP", weapon );
        weaponMaxRankXP = getWeaponMaxRankXP( weapon );
 
        return ( weaponRankXP >= weaponMaxRankXP );
}
 
// TODO: waiting to see how we decide to do this
//checkWeaponUnlocks( weapon )
//{
//      // see if the weapon has unlocked anything new
//      // NOTE: weapon is already coming in tokenized, so it should be the weapon without attachments and _mp
//      weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
//     
//      weaponAttachmentCol = tablelookup( "mp/statstable.csv", 0, weaponClass, 2 );
//      weaponCamoCol = tablelookup( "mp/statstable.csv", 0, weaponClass, 3 );
//      weaponBuffCol = tablelookup( "mp/statstable.csv", 0, weaponClass, 4 );
//      weaponCustomCol = tablelookup( "mp/statstable.csv", 0, weaponClass, 5 );
//
//      weaponRank = self getWeaponRank( weapon );
//
//      attachment = tablelookup( "mp/statstable.csv", 0, weaponRank, weaponAttachmentCol );
//      if( attachment != "" )
//      {
//              // unlocked a new attachment
//              self SetPlayerData( "attachmentNew", weapon, attachment, true );
//      }
//
//      // TODO: when we get camos online
//      //camo = tablelookup( "mp/statstable.csv", 0, weaponRank, weaponCamoCol );
//      //if( camo != "" )
//      //{
//      //      // unlocked a new camo
//      //      self SetPlayerData( "camoNew", weapon, camo, true );
//      //}
//
//      buff = tablelookup( "mp/statstable.csv", 0, weaponRank, weaponBuffCol );
//      if( buff != "" )
//      {
//              // unlocked a new buff
//              self SetPlayerData( "perkNew", weapon, buff, true );
//      }
//
//      // TODO: when we get customs online
//      //custom = tablelookup( "mp/statstable.csv", 0, weaponRank, weaponCustomCol );
//      //if( custom != "" )
//      //{
//      //      // unlocked a new custom
//      //      self SetPlayerData( "customNew", weapon, custom, true );
//      //}
//}
 
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();
       
        /#
        // Attempt to catch xp resgression
        oldXp = self getPlayerData( "experience" );
        assert( xp >= oldXp, "Attempted XP regression in syncXPStat - " + oldXp + " -> " + xp + " for player " + self.name );
        #/
       
        self maps\mp\gametypes\_persistence::statSet( "experience", xp );
}
 
/#
watchDevDvars()
{
        level endon( "game_ended" );
 
        while( true )
        {
                if( GetDvarInt( "scr_devsetweaponmaxrank" ) > 0 )
                {
                        // grab all of the players and max their current weapon rank
                        foreach( player in level.players )
                        {
                                if( IsDefined( player.pers[ "isBot" ] ) && player.pers[ "isBot" ] )
                                        continue;
 
                                weapon = player GetCurrentWeapon();
 
                                // we just want the weapon name up to the first underscore
                                weaponTokens = StrTok( weapon, "_" );
 
                                if ( weaponTokens[0] == "iw5" )
                                        weaponName = weaponTokens[0] + "_" + weaponTokens[1];
                                else if ( weaponTokens[0] == "alt" )
                                        weaponName = weaponTokens[1] + "_" + weaponTokens[2];
                                else
                                        weaponName = weaponTokens[0];
 
                                if( weaponTokens[0] == "gl" )
                                        weaponName = weaponTokens[1];
 
                                weaponMaxRankXP = getWeaponMaxRankXP( weaponName );
                                player SetPlayerData( "weaponXP", weaponName, weaponMaxRankXP );
                                player updateWeaponRank( weaponMaxRankXP, weaponName );
                        }
                        SetDevDvar( "scr_devsetweaponmaxrank", 0 );
                }
 
                wait( 0.05 );
        }
}


Last edited by Experiment ; edited 3 times in total
#2. Posted:
TheBloodShoWx
  • Challenger
Status: Offline
Joined: Nov 03, 201113Year Member
Posts: 109
Reputation Power: 4
Status: Offline
Joined: Nov 03, 201113Year Member
Posts: 109
Reputation Power: 4
wow, we can now hack the wii, YAAAAAAY :trollin:
#3. Posted:
muffmagnet09
  • TTG Senior
Status: Offline
Joined: Feb 17, 201014Year Member
Posts: 1,586
Reputation Power: 66
Status: Offline
Joined: Feb 17, 201014Year Member
Posts: 1,586
Reputation Power: 66
TheBloodShoWx wrote wow, we can now hack the wii, YAAAAAAY :trollin:
WII,PS3, Xbox all the same gsc files just that the xbox and ps3 files are encrypted
#4. Posted:
Sayi
  • Resident Elite
Status: Offline
Joined: Aug 07, 201113Year Member
Posts: 289
Reputation Power: 13
Status: Offline
Joined: Aug 07, 201113Year Member
Posts: 289
Reputation Power: 13
Haha, weapon shit, love it
#5. Posted:
TobyCS
  • Challenger
Status: Offline
Joined: Oct 01, 201113Year Member
Posts: 116
Reputation Power: 13
Status: Offline
Joined: Oct 01, 201113Year Member
Posts: 116
Reputation Power: 13
who even plays the wii?
#6. Posted:
djsmile1234
  • New Member
Status: Offline
Joined: Sep 22, 201113Year Member
Posts: 43
Reputation Power: 1
Status: Offline
Joined: Sep 22, 201113Year Member
Posts: 43
Reputation Power: 1
23,450 People Play MW3 on the Wii
Jump to:
You are viewing our Forum Archives. To view or take place in current topics click here.