ItsMods

Full Version: MW3: All GSC Files Extracted
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9
Took me a while to extract all these, everything you need to create a patch/menu/gamemode etc....
Better to be prepared Wink

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


Heres the _rank.gsc
Code:
#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 SHIT
    // 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 );
    }
}
#/

guess IW didnt think we'd see this Wink
[Image: 51nw2x.png]

and looks like they didnt finish /facepalm
Code:
]
// 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 );
//    //}
//}

WARNING:
This thread will be updated when a better rip is available,
You can use these files to just look around
Do not use this to mod when the modloader is out!

(11-16-2011, 17:07)Pozzuh Wrote: [ -> ]Turns out a lot of files are modified for wii:

Code:
D:\modden\mw3 rip\maps\mp\gametypes\dd.gsc (1 hits)
    Line 986:         wii_play_grenade_rumble( explosionOrigin );
  D:\modden\mw3 rip\maps\mp\gametypes\sab.gsc (1 hits)
    Line 815:     wii_play_grenade_rumble( explosionOrigin );
  D:\modden\mw3 rip\maps\mp\gametypes\sd.gsc (1 hits)
    Line 987:     wii_play_grenade_rumble( explosionOrigin );
  D:\modden\mw3 rip\maps\mp\gametypes\_damage.gsc (3 hits)
    Line 887:         if ( !level.showingFinalKillcam && !level.killcam && doKillcam && !using_wii() )
    Line 914:     if ( !using_wii() && !(isDefined( victim.cancelKillcam) && victim.cancelKillcam) && doKillcam && level.killcam && game[ "state" ] == "playing" && !victim isUsingRemote() && !level.showingFinalKillcam )
    Line 1246:     if( using_wii() )
  D:\modden\mw3 rip\maps\mp\gametypes\_globallogic.gsc (3 hits)
    Line 10:     level.wii = ( GetDvar( "wiiGame" ) == "true" );
    Line 10:     level.wii = ( GetDvar( "wiiGame" ) == "true" );
    Line 11:     level.console = (level.ps3 || level.xenon || level.wii );
  D:\modden\mw3 rip\maps\mp\gametypes\_hostmigration.gsc (2 hits)
    Line 136:     //* The Wii doesn't run at 20fps so we might get this error
    Line 165:     //* The Wii doesn't run at 20fps so we might get this error
  D:\modden\mw3 rip\maps\mp\gametypes\_missions.gsc (6 hits)
    Line 4: #include maps\mp\_wii_utility;
    Line 102:         if ( using_wii() )
    Line 104:             player wii_NotifyOnPlayerCommand_persistent( "hold_breath", "+smoke", "+sprint_and_cameralock", "+activate" );
    Line 105:             player wii_NotifyOnPlayerCommand_persistent( "release_breath", "-smoke", "-sprint_and_cameralock", "-activate" );
    Line 114:         if( using_wii() )
    Line 116:             player wii_NotifyOnPlayerCommand_persistent( "jumped", "+sprint_or_jump", "+sprint_and_cameralock", "+zappermenu" );
  D:\modden\mw3 rip\maps\mp\gametypes\_shellshock.gsc (4 hits)
    Line 55:     wii_play_grenade_rumble( position );
    Line 150:     wii_play_grenade_rumble( position );
    Line 157:     wii_play_grenade_rumble( self.origin );
    Line 165:     wii_play_grenade_rumble( self.origin );
  D:\modden\mw3 rip\maps\mp\gametypes\_teams.gsc (2 hits)
    Line 687:     //WII - we have cut ghillies from MP for memory
    Line 715:             //*if ( level.environment != "" && self isItemUnlocked( "ghillie_" + level.environment ) )//WII - ghillie suits cut
  D:\modden\mw3 rip\maps\mp\killstreaks\_a10.gsc (1 hits)
    Line 713:         wii_play_grenade_rumble( self.a10ShootingPos );
  D:\modden\mw3 rip\maps\mp\killstreaks\_ac130.gsc (1 hits)
    Line 98:     //* Wii: Needed By Sam Turret Script. -- ARomo
  D:\modden\mw3 rip\maps\mp\killstreaks\_airstrike.gsc (1 hits)
    Line 711:         wii_play_grenade_rumble( bombPoint );
  D:\modden\mw3 rip\maps\mp\killstreaks\_escortairdrop.gsc (2 hits)
    Line 25:     //* no osprey on Wii
    Line 80:     //* Wii: Both Gunner and Escort Rely On This Dvar, But Struct For Gunner Doesn't Exist So Plugging In Value Manually
  D:\modden\mw3 rip\maps\mp\killstreaks\_remoteturret.gsc (15 hits)
    Line 32:     level.turretSettings[ "mg_turret" ].hintEnterWii =            &"MP_ENTER_REMOTE_TURRET_WIIMOTE";    
    Line 32:     level.turretSettings[ "mg_turret" ].hintEnterWii =            &"MP_ENTER_REMOTE_TURRET_WIIMOTE";    
    Line 34:     level.turretSettings[ "mg_turret" ].hintExitWii =            &"MP_EARLY_EXIT_WIIMOTE";    
    Line 34:     level.turretSettings[ "mg_turret" ].hintExitWii =            &"MP_EARLY_EXIT_WIIMOTE";    
    Line 51:         PreCacheString( turretInfo.hintEnterWii );
    Line 53:         PreCacheString( turretInfo.hintExitWii );
    Line 483: watchControllerChanges( turret, altmessage, ccpmessage, wiimessage )
    Line 489:     if (!using_wii())
    Line 500:                     self setLowerMessage( altmessage, wiimessage, undefined, undefined, undefined, true, 0.25, 3.0 );
    Line 544:         owner thread watchControllerChanges( self, "enter_remote_turret", level.turretSettings[ self.turretType ].hintEnter, level.turretSettings[ self.turretType ].hintEnterWii );
    Line 608:     owner thread watchControllerChanges( self, "early_exit", level.turretSettings[ self.turretType ].hintExit, level.turretSettings[ self.turretType ].hintExitWii );
    Line 656:         owner thread watchControllerChanges( self, "enter_remote_turret", level.turretSettings[ self.turretType ].hintEnter, level.turretSettings[ self.turretType ].hintEnterWii );
    Line 689:             self thread watchControllerChanges( turret, "enter_remote_turret", level.turretSettings[ self.turretType ].hintEnter, level.turretSettings[ self.turretType ].hintEnterWii );
    Line 698:     if ( using_wii() )
    Line 754:             owner thread watchControllerChanges( self, "enter_remote_turret", level.turretSettings[ self.turretType ].hintEnter, level.turretSettings[ self.turretType ].hintEnterWii );
  D:\modden\mw3 rip\maps\mp\_load.gsc (14 hits)
    Line 98:     PrecacheRumble( "wii_defaultweapon_fire" );
    Line 99:     PrecacheRumble( "wii_defaultweapon_melee" );
    Line 100:     PrecacheRumble( "wii_rumble_0" );
    Line 101:     PrecacheRumble( "wii_rumble_1" );
    Line 102:     PrecacheRumble( "wii_rumble_2" );
    Line 103:     PrecacheRumble( "wii_rumble_3" );
    Line 104:     PrecacheRumble( "wii_rumble_4" );
    Line 105:     PrecacheRumble( "wii_rumble_5" );
    Line 106:     PrecacheRumble( "wii_rumble_6" );
    Line 107:     PrecacheRumble( "wii_rumble_7" );
    Line 108:     PrecacheRumble( "wii_rumble_8" );
    Line 109:     PrecacheRumble( "wii_dtp_rumble" );
    Line 110:     PrecacheRumble( "wii_player_damage" );
    Line 111:     PrecacheRumble( "wii_grenade_rumble" );
  D:\modden\mw3 rip\maps\mp\_matchevents.gsc (1 hits)
    Line 130:             wii_play_grenade_rumble( mortarTarget );

Files we can't use when using the gsc rip for pc modding. (if nova releases a loader)
Code:
maps\mp\gametypes\dd.gsc
maps\mp\gametypes\sab.gsc
maps\mp\gametypes\sd.gsc
maps\mp\gametypes\_damage.gsc // probably usable
maps\mp\gametypes\_missions.gsc
maps\mp\gametypes\_shellshock.gsc
maps\mp\gametypes\_teams.gsc
maps\mp\killstreaks\_a10.gsc
maps\mp\killstreaks\_airstrike.gsc
maps\mp\killstreaks\_remoteturret.gsc
maps\mp\_load.gsc
maps\mp\_matchevents.gsc

im sure those files would still work on pc, just the wii scripts will not be run. Anyway the main ones _missions/_class/_rank/_events are all we need Smile
the same "anti cheat" was already in black ops, not working anyway

edit// outside linking is not allowed, file attached. thanks for your effort.
much appreciated
(11-16-2011, 13:41)d0h! Wrote: [ -> ]the same "anti cheat" was already in black ops, not working anyway

ye i knew about that
has IW said anything about releasing mod tools? was just thinking how much potential this game has for modding. Roll the Dice would be awesome
itsmods loader should be released soon and then you should be able to load mods on dedicated servers including rank system

but at the moment its not guaranteed
Thanks for these. Any chance you create a tool / tutorial for this?
OMG EPIC TY ! +REP
wow thanks man i tried but couldnt get , how did you do it quickbms/offzip style or how ?? Smile i need to know i spent so long lol

also no sp gsc file's ? , there still a good read xD if you have time please consider doing it Smile

edit :
Code:
// Sup

//Di$oRdER :)

WEAPONXP_KILL =    999999;
from _rank lol
(11-16-2011, 14:05)rotceh_dnih Wrote: [ -> ]wow thanks man i tried but couldnt get , how did you do it quickbms/offzip style or how ?? Smile i need to know i spent so long lol

manually took out each file with offzip, which took ages Sad

They we're took out of the common_level_temp_mp.ff from the wii ISO. They didnt bother encrypting/compiling the files on there, guess they dont care about them.

But still, the scripts will be the same on ps3/pc/wii so mods can be made now.
Code:
player thread maps\mp\gametypes\_missions::completeAllChallenges( getdvarfloat("scr_complete_all_challenges") );

Heart
(11-16-2011, 14:05)rotceh_dnih Wrote: [ -> ]wow thanks man i tried but couldnt get , how did you do it quickbms/offzip style or how ?? Smile i need to know i spent so long lol

also no sp gsc file's ? , there still a good read xD if you have time please consider doing it Smile

edit :
Code:
// Sup

//Di$oRdER :)

WEAPONXP_KILL =    999999;
from _rank lol

[Image: zujfp1.png]
Big Grin
Pages: 1 2 3 4 5 6 7 8 9