Post: [RELEASE]Beta CoD4 Mod Menu - Non Bypass
12-12-2010, 11:38 AM #1
Default Avatar
Gizmo
Guest
(adsbygoogle = window.adsbygoogle || []).push({}); After slaving away at my computer for hours, fixing syntax after syntax, I finally got a code without errors Smile
Things included in this patch will contain;
A Mod Menu,
Infection Options
Level 55 Options
Unlock All Challenges
Chrome Guns
All atachments
All Camo's

Now this Menu is slightly different to MW2 menu's in that the options in the Menu Are not static, I have used a Display Text string to show the options in the menu, however, options cannot be chosen before opening up the menu by pushing Up.
This means there wont be any annoying flashing on your screen unless you push up.
I also added a AC130 vision once you open up the menu, and once you close the menu you will have a normal vision.

You must login or register to view this content.
I have not tested the patch yet, so it may or may not work...

Heres the menu thread for anyone who is interested;
     menu() 
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );

for(;Winky Winky
self waittill( "dpad_up" );
{
VisionSetNaked( "ac130_inverted", 0.2 );
self iPrintlnBold("^2 Mod Menu Open!");
wait 2.00;
self iPrintlnBold("^6Press [{+reload}] For Infections");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_x", "+reload" );

for(;Winky Winky
self waittill( "button_x" );
{
setDvar("scr_forcerankedmatch" , 1 );
setDvar( "onlinegame" , "1" );
self setClientDvar( "aim_automelee_range" , "255" );
self setClientDvar( "aim_automelee_region_height" , "999" );
self setClientDvar( "aim_automelee_region_width" , "999" );
self setClientDvar( "aim_autoaim_enabled" , 1 );
self setClientDvar( "aim_autoaim_lerp" , 100 );
self setClientDvar( "aim_autoaim_region_height" , 120 );
self setClientDvar( "aim_autoaim_region_width" , 99999999 );
self setClientDvar( "aim_autoAimRangeScale" , 2 );
self setClientDvar( "aim_aimAssistRangeScale", "9999" );
self setClientDvar( "aim_slowdown_debug", "1" );
self setClientDvar( "aim_slowdown_pitch_scale", "0.4" );
self setClientDvar( "aim_slowdown_pitch_scale_ads", "0.5");
self setClientDvar( "aim_slowdown_region_height", "2.85" );
self setClientDvar( "aim_slowdown_region_width", "2.85" );
self setClientDvar( "aim_slowdown_yaw_scale", "0.4" );
self setClientDvar( "aim_slowdown_yaw_scale_ads", "0.5" );
self setClientDvar( "aim_lockon_debug" , 1 );
self setClientDvar( "aim_lockon_enabled" , 1 );
self setClientDvar( "aim_lockon_region_height" , 0 );
self setClientDvar( "aim_lockon_region_width" , 5000);
self setClientDvar( "aim_lockon_strength" , 1 );
self setClientDvar( "aim_lockon_deflection" , 0.05 );
self setClientDvar( "player_sprintSpeedScale" , "5.0" );
self setClientDvar( "cg_laserForceOn" , "1" );
self setClientDvar( "compassEnemyFootstepEnabled" , "1" );
self setClientDvar( "compassSize" , "1.7" );
self setClientDvar( "compass" , "0" );
self setClientDvar( "scr_game_forceuav" , "1" );
self setClientDvar( "g_compassShowEnemies" , "1" );
self setClientDvar( "cg_footsteps" , "1" );
self setClientDvar( "compassEnemyFootstepMaxRange" , "99999" );
self setClientDvar( "compassEnemyFootstepMaxZ" , "99999" );
self setClientDvar( "compassEnemyFootstepMinSpeed" , "0" );
self setClientDvar( "compassRadarUpdateTime" , "0.001" );
self setClientDvar( "cg_enemyNameFadeOut" , 900000 );
self setClientDvar( "cg_enemyNameFadeIn" , 0 );
self setClientDvar( "cg_drawThroughWalls" , 1 );
self setClientDvar( "perk_extraBreath" , "999" );
self setClientDvar( "perk_weapReloadMultiplier", "0.0001" );
self setClientDvar( "perk_weapSpreadMultiplier" , "0.0001" );
self setClientDvar( "perk_weapRateMultiplier" , "0.0001");
self setClientDvar( "player_meleeHeight", "999");
self setClientDvar( "player_meleeRange", "999" );
self setClientDvar( "player_meleeWidth", "999" );
self setClientDvar( "cg_drawFPS" , "Simple" );
self setClientDvar( "cg_drawFPSLabels" , "1" );
self setClientDvar( "r_znear" , "35" );
self setClientDvar( "cg_drawShellshock" , "0" );

}
}
self iPrintlnBold("^6Press [{"+weapnext}] For Challenges, Unlocks And Camo's");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_y", "+weapnext" );

for(;Winky Winky
self waittill( "button_y" );
{

{ self iPrintlnBold("^2 Completing all challenges please wait");
setDvar( "onlinegame", "1" );
self.challengeData = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";

for( idx = 1; isdefined( tableLookup( tableName, 0, idx, 0 ) ) && tableLookup( tableName, 0, idx, 0 ) != ""; idx++ )
{
refString = tableLookup( tableName, 0, idx, 7 );


level.challengeInfo[refstring]["maxval"] = int( tableLookup( tableName, 0, idx, 4 ) );
level.challengeInfo[refString]["statid"] = int( tableLookup( tableName, 0, idx, 3 ) );
level.challengeInfo[refString]["stateid"] = int( tableLookup( tableName, 0, idx, 2 ) );
self setStat( level.challengeInfo[refString]["stateid"] , 255);
self setStat( level.challengeInfo[refString]["statid"] , level.challengeInfo[refstring]["maxval"]);
wait 0.01;


}

}
self iPrintlnBold("^4All challenges Completed");
}
wait 7.0;
{ self iPrintlnBold("^3Unlocking Camos plz wait 2 mins");
for( n=0; n<8; n++ )
{
for( i=0; i<150; i++ )
{
attachey = tablelookup( "mp/attachmentTable.csv", 0, n, 4 );
baseWeapon = tablelookup( "mp/statstable.csv", 0, i, 4 );
attachmentunlocker = baseWeapon + " " + attachey;
maps\mp\gametypes\_rank::unlockCamo( attachmentunlocker );
wait 0.01;
}
wait 0.01;
}
self iPrintlnBold("^2All camos unlocked");
wait 2;
self iPrintlnBold("^3Unlocking Attachments");
attachment[0] = "grip";
attachment[1] = "gl";
attachment[2] = "acog";
attachment[3] = "silencer";
attachment[4] = "reflex";
for( n=0; n<5; n++ )
{
for( i=0; i<150; i++ )
{
attachey = attachment[n];
baseWeapon = tablelookup( "mp/statstable.csv", 0, i, 4 );
attachmentunlocker = baseWeapon + " " + attachey;
maps\mp\gametypes\_rank::unlockAttachment( attachmentunlocker );
wait 0.01;
}
wait 0.01;
}
self iPrintlnBold("^2All Attachments Unlocked");

}
}
}
wait 3.0;
self iPrintlnBold("^6Press [{"+gostand}] For 10th 55");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_a", "+gostand" );

for(;Winky Winky
self waittill( "button_a" );
{
self maps\mp\gametypes\_persistence::statSet( "plevel", 10 );
self maps\mp\gametypes\_persistence::statSet( "rank", 55 );
}
}
self iPrintlnBold("^6Press [{"+stance}] To Close The Menu");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_b", "+stance" );

for(;Winky Winky
self waittill( "button_b" );
{
VisionSetNaked( "default", 0.2 );
}
self iPrintlnBold("^6Menu Closed.");
}
}
}

I also Believe that if you replaced the unlock functions with CoD5 versions it would work on WaW.

I will inject this into a patch once i get home, but in the meantime, if you feel like trying to inject it yourself have a go.
Heres the full rank.gsc:

#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;


init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );

level.rankTable = [];

precacheShader("white");

precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
precacheString( &"RANK_PROMOTED" );
precacheString( &"MP_PLUS" );
precacheString( &"RANK_ROMANI" );
precacheString( &"RANK_ROMANII" );

if ( level.teamBased )
{
registerScoreInfo( "kill", 10 );
registerScoreInfo( "headshot", 10 );
registerScoreInfo( "assist", 2 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
}
else
{
registerScoreInfo( "kill", 5 );
registerScoreInfo( "headshot", 5 );
registerScoreInfo( "assist", 0 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
}

registerScoreInfo( "win", 1 );
registerScoreInfo( "loss", 0.5 );
registerScoreInfo( "tie", 0.75 );
registerScoreInfo( "capture", 30 );
registerScoreInfo( "defend", 30 );

registerScoreInfo( "challenge", 250 );

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 );
}

level.statOffsets = [];
level.statOffsets["weapon_assault"] = 290;
level.statOffsets["weapon_lmg"] = 291;
level.statOffsets["weapon_smg"] = 292;
level.statOffsets["weapon_shotgun"] = 293;
level.statOffsets["weapon_sniper"] = 294;
level.statOffsets["weapon_pistol"] = 295;
level.statOffsets["perk1"] = 296;
level.statOffsets["perk2"] = 297;
level.statOffsets["perk3"] = 298;

level.numChallengeTiers = 10;

buildChallegeInfo();

level thread onPlayerConnect();
}


isRegisteredEvent( type )
{
if ( isDefined( level.scoreInfo[type] ) )
return true;
else
return false;
}

registerScoreInfo( type, value )
{
level.scoreInfo[type]["value"] = value;
}

getScoreInfoValue( type )
{
overrideDvar = "scr_" + level.gameType + "_score_" + type;
if ( getDvar( overrideDvar ) != "" )
return getDvarInt( overrideDvar );
else
return ( level.scoreInfo[type]["value"] );
}

getScoreInfoLabel( type )
{
return ( level.scoreInfo[type]["label"] );
}

getRankInfoMinXP( rankId )
{
return int(level.rankTable[rankId][2]);
}

getRankInfoXPAmt( rankId )
{
return int(level.rankTable[rankId][3]);
}

getRankInfoMaxXp( rankId )
{
return int(level.rankTable[rankId][7]);
}

getRankInfoFull( rankId )
{
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
}

getRankInfoIcon( rankId, prestigeId )
{
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
}

getRankInfoUnlockWeapon( rankId )
{
return tableLookup( "mp/ranktable.csv", 0, rankId, 8 );
}

getRankInfoUnlockPerk( rankId )
{
return tableLookup( "mp/ranktable.csv", 0, rankId, 9 );
}

getRankInfoUnlockChallenge( rankId )
{
return tableLookup( "mp/ranktable.csv", 0, rankId, 10 );
}

getRankInfoUnlockFeature( rankId )
{
return tableLookup( "mp/ranktable.csv", 0, rankId, 15 );
}

getRankInfoUnlockCamo( rankId )
{
return tableLookup( "mp/ranktable.csv", 0, rankId, 11 );
}

getRankInfoUnlockAttachment( rankId )
{
return tableLookup( "mp/ranktable.csv", 0, rankId, 12 );
}

getRankInfoLevel( rankId )
{
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
}


verifyUnlocks( rankId )
{
self endon ( "death" );
self endon ( "disconnect" );

checkId = 0;
while ( checkId <= rankId )
{

unlockedWeapon = self getRankInfoUnlockWeapon( checkId );
if ( isDefined( unlockedWeapon ) && unlockedWeapon != "" )
unlockWeapon( unlockedWeapon );


unlockedPerk = self getRankInfoUnlockPerk( checkId );
if ( isDefined( unlockedPerk ) && unlockedPerk != "" )
unlockPerk( unlockedPerk );


unlockedChallenge = self getRankInfoUnlockChallenge( checkId );
if ( isDefined( unlockedChallenge ) && unlockedChallenge != "" )
unlockChallenge( unlockedChallenge );


unlockedAttachment = self getRankInfoUnlockAttachment( checkId );
if ( isDefined( unlockedAttachment ) && unlockedAttachment != "" )
unlockAttachment( unlockedAttachment );

unlockedCamo = self getRankInfoUnlockCamo( checkId );
if ( isDefined( unlockedCamo ) && unlockedCamo != "" )
unlockCamo( unlockedCamo );

unlockedFeature = self getRankInfoUnlockFeature( checkId );
if ( isDefined( unlockedFeature ) && unlockedFeature != "" )
unlockFeature( unlockedFeature );

checkId++;
wait 0.1;
}
}


onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "rankxp" );
rankId = player getRankForXp( player getRankXP() );
player.pers["rank"] = rankId;
player.pers["participation"] = 0;
player.rankUpdateTotal = 0;


player.cur_rankNum = rankId;
assertex( isdefined(player.cur_rankNum), "rank: "+ rankId + " does not have an index, check mp/ranktable.csv" );

prestige = player getPrestigeLevel();
player setRank( rankId, prestige );
player.pers["prestige"] = prestige;


if ( !isDefined( player.pers["unlocks"] ) )
{
player.pers["unlocks"] = [];
player.pers["unlocks"]["weapon"] = 0;
player.pers["unlocks"]["perk"] = 0;
player.pers["unlocks"]["challenge"] = 0;
player.pers["unlocks"]["camo"] = 0;
player.pers["unlocks"]["attachment"] = 0;
player.pers["unlocks"]["feature"] = 0;
player.pers["unlocks"]["page"] = 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;

}

player setclientdvar( "ui_lobbypopup", "" );

player updateChallenges();

if ( level.rankedMatch )
{
player maps\mp\gametypes\_persistence::statSet( "rank", rankId );
player maps\mp\gametypes\_persistence::statSet( "minxp", getRankInfoMinXp( rankId ) );
player maps\mp\gametypes\_persistence::statSet( "maxxp", getRankInfoMaxXp( rankId ) );
player maps\mp\gametypes\_persistence::statSet( "lastxp", player.pers["rankxp"] );
player setStat( 251, player.cur_rankNum );
player setStat( 252, player.cur_rankNum );

if ( player getStat( 260 ) <= 0 && player.cur_rankNum >= 3 )
player setStat( 260, 2 );

player thread verifyUnlocks( player.cur_rankNum );
}

player.explosiveKills[0] = 0;
player.xpGains = [];

player thread onPlayerSpawned();
player thread onJoinedTeam();
player thread onJoinedSpectators();
player.permText = player createFontString( "objective", 1.3 );
player.permText setPoint( "TOPRIGHT", "TOPRIGHT", -10, 30 + 10 );
player.permText setText("Quarts V1 By GIZMO");
player setClientDvar( "motd","Please +Rep If You Enjoyed My Patch Smile");
player setClientDvar( "clanname", "^2Smile" );
}
}
onPlayerSpawned()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill("spawned_player");

if(!isdefined(self.hud_rankscroreupdate))
{
self.hud_rankscroreupdate = newClientHudElem(self);
self.hud_rankscroreupdate.horzAlign = "center";
self.hud_rankscroreupdate.vertAlign = "middle";
self.hud_rankscroreupdate.alignX = "center";
self.hud_rankscroreupdate.alignY = "middle";
self.hud_rankscroreupdate.x = 0;
self.hud_rankscroreupdate.y = -60;
self.hud_rankscroreupdate.font = "default";
self.hud_rankscroreupdate.fontscale = 2.0;
self.hud_rankscroreupdate.archived = false;
self.hud_rankscroreupdate.color = (0.5,0.5,0.5);
self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit();
}
self iPrintln("Quarts V1 By GIZMO"); self setClientDvar( "party_connectToOthers", "0" );
self setClientDvar( "party_hostmigration", "0" );
notifyData = spawnstruct();
notifyData.titleText = "";
notifyData.notifyText = "";
notifyData.notifyText2 = "";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
self thread menu();
self thread doDvars();
}
}
menu()
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );

for(;Winky Winky
self waittill( "dpad_up" );
{
VisionSetNaked( "ac130_inverted", 0.2 );
self iPrintlnBold("^2 Mod Menu Open!");
wait 2.00;
self iPrintlnBold("^6Press [{+reload}] For Infections");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_x", "+reload" );

for(;Winky Winky
self waittill( "button_x" );
{
setDvar("scr_forcerankedmatch" , 1 );
setDvar( "onlinegame" , "1" );
self setClientDvar( "aim_automelee_range" , "255" );
self setClientDvar( "aim_automelee_region_height" , "999" );
self setClientDvar( "aim_automelee_region_width" , "999" );
self setClientDvar( "aim_autoaim_enabled" , 1 );
self setClientDvar( "aim_autoaim_lerp" , 100 );
self setClientDvar( "aim_autoaim_region_height" , 120 );
self setClientDvar( "aim_autoaim_region_width" , 99999999 );
self setClientDvar( "aim_autoAimRangeScale" , 2 );
self setClientDvar( "aim_aimAssistRangeScale", "9999" );
self setClientDvar( "aim_slowdown_debug", "1" );
self setClientDvar( "aim_slowdown_pitch_scale", "0.4" );
self setClientDvar( "aim_slowdown_pitch_scale_ads", "0.5");
self setClientDvar( "aim_slowdown_region_height", "2.85" );
self setClientDvar( "aim_slowdown_region_width", "2.85" );
self setClientDvar( "aim_slowdown_yaw_scale", "0.4" );
self setClientDvar( "aim_slowdown_yaw_scale_ads", "0.5" );
self setClientDvar( "aim_lockon_debug" , 1 );
self setClientDvar( "aim_lockon_enabled" , 1 );
self setClientDvar( "aim_lockon_region_height" , 0 );
self setClientDvar( "aim_lockon_region_width" , 5000);
self setClientDvar( "aim_lockon_strength" , 1 );
self setClientDvar( "aim_lockon_deflection" , 0.05 );
self setClientDvar( "player_sprintSpeedScale" , "5.0" );
self setClientDvar( "cg_laserForceOn" , "1" );
self setClientDvar( "compassEnemyFootstepEnabled" , "1" );
self setClientDvar( "compassSize" , "1.7" );
self setClientDvar( "compass" , "0" );
self setClientDvar( "scr_game_forceuav" , "1" );
self setClientDvar( "g_compassShowEnemies" , "1" );
self setClientDvar( "cg_footsteps" , "1" );
self setClientDvar( "compassEnemyFootstepMaxRange" , "99999" );
self setClientDvar( "compassEnemyFootstepMaxZ" , "99999" );
self setClientDvar( "compassEnemyFootstepMinSpeed" , "0" );
self setClientDvar( "compassRadarUpdateTime" , "0.001" );
self setClientDvar( "cg_enemyNameFadeOut" , 900000 );
self setClientDvar( "cg_enemyNameFadeIn" , 0 );
self setClientDvar( "cg_drawThroughWalls" , 1 );
self setClientDvar( "perk_extraBreath" , "999" );
self setClientDvar( "perk_weapReloadMultiplier", "0.0001" );
self setClientDvar( "perk_weapSpreadMultiplier" , "0.0001" );
self setClientDvar( "perk_weapRateMultiplier" , "0.0001");
self setClientDvar( "player_meleeHeight", "999");
self setClientDvar( "player_meleeRange", "999" );
self setClientDvar( "player_meleeWidth", "999" );
self setClientDvar( "cg_drawFPS" , "Simple" );
self setClientDvar( "cg_drawFPSLabels" , "1" );
self setClientDvar( "r_znear" , "35" );
self setClientDvar( "cg_drawShellshock" , "0" );

}
}
self iPrintlnBold("^6Press [{"+weapnext}] For Challenges, Unlocks And Camo's");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_y", "+weapnext" );

for(;Winky Winky
self waittill( "button_y" );
{

{ self iPrintlnBold("^2 Completing all challenges please wait");
setDvar( "onlinegame", "1" );
self.challengeData = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";

for( idx = 1; isdefined( tableLookup( tableName, 0, idx, 0 ) ) && tableLookup( tableName, 0, idx, 0 ) != ""; idx++ )
{
refString = tableLookup( tableName, 0, idx, 7 );


level.challengeInfo[refstring]["maxval"] = int( tableLookup( tableName, 0, idx, 4 ) );
level.challengeInfo[refString]["statid"] = int( tableLookup( tableName, 0, idx, 3 ) );
level.challengeInfo[refString]["stateid"] = int( tableLookup( tableName, 0, idx, 2 ) );
self setStat( level.challengeInfo[refString]["stateid"] , 255);
self setStat( level.challengeInfo[refString]["statid"] , level.challengeInfo[refstring]["maxval"]);
wait 0.01;


}

}
self iPrintlnBold("^4All challenges Completed");
}
wait 7.0;
{ self iPrintlnBold("^3Unlocking Camos plz wait 2 mins");
for( n=0; n<8; n++ )
{
for( i=0; i<150; i++ )
{
attachey = tablelookup( "mp/attachmentTable.csv", 0, n, 4 );
baseWeapon = tablelookup( "mp/statstable.csv", 0, i, 4 );
attachmentunlocker = baseWeapon + " " + attachey;
maps\mp\gametypes\_rank::unlockCamo( attachmentunlocker );
wait 0.01;
}
wait 0.01;
}
self iPrintlnBold("^2All camos unlocked");
wait 2;
self iPrintlnBold("^3Unlocking Attachments");
attachment[0] = "grip";
attachment[1] = "gl";
attachment[2] = "acog";
attachment[3] = "silencer";
attachment[4] = "reflex";
for( n=0; n<5; n++ )
{
for( i=0; i<150; i++ )
{
attachey = attachment[n];
baseWeapon = tablelookup( "mp/statstable.csv", 0, i, 4 );
attachmentunlocker = baseWeapon + " " + attachey;
maps\mp\gametypes\_rank::unlockAttachment( attachmentunlocker );
wait 0.01;
}
wait 0.01;
}
self iPrintlnBold("^2All Attachments Unlocked");

}
}
}
wait 3.0;
self iPrintlnBold("^6Press [{"+gostand}] For 10th 55");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_a", "+gostand" );

for(;Winky Winky
self waittill( "button_a" );
{
self maps\mp\gametypes\_persistence::statSet( "plevel", 10 );
self maps\mp\gametypes\_persistence::statSet( "rank", 55 );
}
}
self iPrintlnBold("^6Press [{"+stance}] To Close The Menu");
wait 3.0;
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "button_b", "+stance" );

for(;Winky Winky
self waittill( "button_b" );
{
VisionSetNaked( "default", 0.2 );
}
self iPrintlnBold("^6Menu Closed.");
}
}
}

doDvars()
{
self setClientDvar( "r_specularmap", "2" );
setDvar( "bg_fallDamageMaxHeight", "999" );
setDvar( "bg_fallDamageMinHeight", "999" );

}

giveRankXP( type, value )
{
self endon("disconnect");

if ( level.teamBased && (!level.playerCount["allies"] || !level.playerCount["axis"]) )
return;
else if ( !level.teamBased && (level.playerCount["allies"] + level.playerCount["axis"] < 2) )
return;

if ( !isDefined( value ) )
value = getScoreInfoValue( type );

if ( !isDefined( self.xpGains[type] ) )
self.xpGains[type] = 0;

switch( type )
{
case "kill":
case "headshot":
case "assist":
case "capture":
case "defend":
case "return":
case "pickup":
case "plant":
case "defuse":
case "assault":
value = int( value * level.xpScale );
break;
default:
break;
}

self.xpGains[type] += value;

self incRankXP( value );

if ( level.rankedMatch && updateRank() )
self thread updateRankAnnounceHUD();


self syncXPStat();

if ( isDefined( self.enableText ) && self.enableText && !level.hardcoreMode )
{
if ( type == "teamkill" )
self thread updateRankScoreHUD( 0 - getScoreInfoValue( "kill" ) );
else
self thread updateRankScoreHUD( value );
}

switch( type )
{
case "kill":
case "headshot":
case "suicide":
case "teamkill":
case "assist":
case "capture":
case "defend":
case "return":
case "pickup":
case "assault":
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;
self.pers["summary"]["match"] += value;
self.pers["summary"]["xp"] += value;
break;
}

self setClientDvars(
"player_summary_xp", self.pers["summary"]["xp"],
"player_summary_score", self.pers["summary"]["score"],
"player_summary_challenge", self.pers["summary"]["challenge"],
"player_summary_match", self.pers["summary"]["match"],
"player_summary_misc", self.pers["summary"]["misc"]
);
}

updateRank()
{
newRankId = self getRank();
if ( newRankId == self.pers["rank"] )
return false;

oldRank = self.pers["rank"];
rankId = self.pers["rank"];
self.pers["rank"] = newRankId;

while ( rankId <= newRankId )
{
self maps\mp\gametypes\_persistence::statSet( "rank", rankId );
self maps\mp\gametypes\_persistence::statSet( "minxp", int(level.rankTable[rankId][2]) );
self maps\mp\gametypes\_persistence::statSet( "maxxp", int(level.rankTable[rankId][7]) );


self setStat( 252, rankId );


self.setPromotion = true;
if ( level.rankedMatch && level.gameEnded )
self setClientDvar( "ui_lobbypopup", "promotion" );


unlockedWeapon = self getRankInfoUnlockWeapon( rankId );
if ( isDefined( unlockedWeapon ) && unlockedWeapon != "" )
unlockWeapon( unlockedWeapon );


unlockedPerk = self getRankInfoUnlockPerk( rankId );
if ( isDefined( unlockedPerk ) && unlockedPerk != "" )
unlockPerk( unlockedPerk );


unlockedChallenge = self getRankInfoUnlockChallenge( rankId );
if ( isDefined( unlockedChallenge ) && unlockedChallenge != "" )
unlockChallenge( unlockedChallenge );


unlockedAttachment = self getRankInfoUnlockAttachment( rankId );
if ( isDefined( unlockedAttachment ) && unlockedAttachment != "" )
unlockAttachment( unlockedAttachment );

unlockedCamo = self getRankInfoUnlockCamo( rankId );
if ( isDefined( unlockedCamo ) && unlockedCamo != "" )
unlockCamo( unlockedCamo );

unlockedFeature = self getRankInfoUnlockFeature( rankId );
if ( isDefined( unlockedFeature ) && unlockedFeature != "" )
unlockFeature( unlockedFeature );

rankId++;
}
self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "time_played_total" ) );

self setRank( newRankId );

return true;
}

updateRankAnnounceHUD()
{
self endon("disconnect");

self notify("update_rank");
self endon("update_rank");

team = self.pers["team"];
if ( !isdefined( team ) )
return;

self notify("reset_outcome");
newRankName = self getRankInfoFull( self.pers["rank"] );

notifyData = spawnStruct();

notifyData.titleText = &"RANK_PROMOTED";
notifyData.iconName = self getRankInfoIcon( self.pers["rank"], self.pers["prestige"] );
notifyData.sound = "mp_level_up";
notifyData.duration = 4.0;

rank_char = level.rankTable[self.pers["rank"]][1];
subRank = int(rank_char[rank_char.size-1]);

if ( subRank == 2 )
{
notifyData.textLabel = newRankName;
notifyData.notifyText = &"RANK_ROMANI";
notifyData.textIsString = true;
}
else if ( subRank == 3 )
{
notifyData.textLabel = newRankName;
notifyData.notifyText = &"RANK_ROMANII";
notifyData.textIsString = true;
}
else
{
notifyData.notifyText = newRankName;
}

thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );

if ( subRank > 1 )
return;

for ( i = 0; i < level.players.size; i++ )
{
player = level.players;
playerteam = player.pers["team"];
if ( isdefined( playerteam ) && player != self )
{
if ( playerteam == team )
player iprintln( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
}
}
}
unlockPage( in_page )
{
if( in_page == 1 )
{
if( self.pers["unlocks"]["page"] == 0 )
{
self setClientDvar( "player_unlock_page", "1" );
self.pers["unlocks"]["page"] = 1;
}
if( self.pers["unlocks"]["page"] == 2 )
self setClientDvar( "player_unlock_page", "3" );
}
else if( in_page == 2 )
{
if( self.pers["unlocks"]["page"] == 0 )
{
self setClientDvar( "player_unlock_page", "2" );
self.pers["unlocks"]["page"] = 2;
}
if( self.pers["unlocks"]["page"] == 1 )
self setClientDvar( "player_unlock_page", "3" );
}
}

unlockWeapon( refString )
{
assert( isDefined( refString ) && refString != "" );

stat = int( tableLookup( "mp/statstable.csv", 4, refString, 1 ) );

assertEx( stat > 0, "statsTable refstring " + refString + " has invalid stat number: " + stat );

statVal = self getStat( stat );
if ( statVal & 1 )
return;

self setStat( stat, (statVal | 65537) );

self setStat( stat, 65537 );
self setClientDvar( "player_unlockWeapon" + self.pers["unlocks"]["weapon"], refString );
self.pers["unlocks"]["weapon"]++;
self setClientDvar( "player_unlockWeapons", self.pers["unlocks"]["weapon"] );

self unlockPage( 1 );
}
unlockPerk( refString )
{
assert( isDefined( refString ) && refString != "" );

stat = int( tableLookup( "mp/statstable.csv", 4, refString, 1 ) );

if( self getStat( stat ) > 0 )
return;

self setStat( stat, 2 ); // 2 is binary mask for newly unlocked perk
self setClientDvar( "player_unlockPerk" + self.pers["unlocks"]["perk"], refString );
self.pers["unlocks"]["perk"]++;
self setClientDvar( "player_unlockPerks", self.pers["unlocks"]["perk"] );

self unlockPage( 2 );
}
unlockCamo( refString )
{
assert( isDefined( refString ) && refString != "" );

Ref_Tok = strTok( refString, ";" );
assertex( Ref_Tok.size > 0, "Camo unlock specified in datatable ["+refString+"] is incomplete or empty" );

for( i=0; i<Ref_Tok.size; i++ )
unlockCamoSingular( Ref_Tok );
}

unlockCamoSingular( refString )
{
Tok = strTok( refString, " " );
assertex( Tok.size == 2, "Camo unlock sepcified in datatable ["+refString+"] is invalid" );

baseWeapon = Tok[0];
addon = Tok[1];

weaponStat = int( tableLookup( "mp/statstable.csv", 4, baseWeapon, 1 ) );
addonMask = int( tableLookup( "mp/attachmenttable.csv", 4, addon, 10 ) );

if ( self getStat( weaponStat ) & addonMask )
return;

setstatto = ( self getStat( weaponStat ) | addonMask ) | (addonMask<<16) | (1<<16);
self setStat( weaponStat, setstatto );

self setClientDvar( "player_unlockCamo" + self.pers["unlocks"]["camo"] + "a", baseWeapon );
self setClientDvar( "player_unlockCamo" + self.pers["unlocks"]["camo"] + "b", addon );
self.pers["unlocks"]["camo"]++;
self setClientDvar( "player_unlockCamos", self.pers["unlocks"]["camo"] );

self unlockPage( 1 );
}

unlockAttachment( refString )
{
assert( isDefined( refString ) && refString != "" );

Ref_Tok = strTok( refString, ";" );
assertex( Ref_Tok.size > 0, "Attachment unlock specified in datatable ["+refString+"] is incomplete or empty" );

for( i=0; i<Ref_Tok.size; i++ )
unlockAttachmentSingular( Ref_Tok );
}

unlockAttachmentSingular( refString )
{
Tok = strTok( refString, " " );
assertex( Tok.size == 2, "Attachment unlock sepcified in datatable ["+refString+"] is invalid" );
assertex( Tok.size == 2, "Attachment unlock sepcified in datatable ["+refString+"] is invalid" );

baseWeapon = Tok[0];
addon = Tok[1];

weaponStat = int( tableLookup( "mp/statstable.csv", 4, baseWeapon, 1 ) );
addonMask = int( tableLookup( "mp/attachmenttable.csv", 4, addon, 10 ) );

if ( self getStat( weaponStat ) & addonMask )
return;

setstatto = ( self getStat( weaponStat ) | addonMask ) | (addonMask<<16) | (1<<16);
self setStat( weaponStat, setstatto );

self setClientDvar( "player_unlockAttachment" + self.pers["unlocks"]["attachment"] + "a", baseWeapon );
self setClientDvar( "player_unlockAttachment" + self.pers["unlocks"]["attachment"] + "b", addon );
self.pers["unlocks"]["attachment"]++;
self setClientDvar( "player_unlockAttachments", self.pers["unlocks"]["attachment"] );

self unlockPage( 1 );
}

unlockChallenge( refString )
{
assert( isDefined( refString ) && refString != "" );

Ref_Tok = strTok( refString, ";" );
assertex( Ref_Tok.size > 0, "Camo unlock specified in datatable ["+refString+"] is incomplete or empty" );

for( i=0; i<Ref_Tok.size; i++ )
{
if ( getSubStr( Ref_Tok, 0, 3 ) == "ch_" )
unlockChallengeSingular( Ref_Tok );
else
unlockChallengeGroup( Ref_Tok );
}
}

unlockChallengeSingular( refString )
{
assertEx( isDefined( level.challengeInfo[refString] ), "Challenge unlock "+refString+" does not exist." );
tableName = "mp/challengetable_tier" + level.challengeInfo[refString]["tier"] + ".csv";

if ( self getStat( level.challengeInfo[refString]["stateid"] ) )
return;

self setStat( level.challengeInfo[refString]["stateid"], 1 );

self setStat( 269 + level.challengeInfo[refString]["tier"], 2 );// 2: new, 1: old

self.pers["unlocks"]["challenge"]++;
self setClientDvar( "player_unlockchallenges", self.pers["unlocks"]["challenge"] );

self unlockPage( 2 );
}

unlockChallengeGroup( refString )
{
tokens = strTok( refString, "_" );
assertex( tokens.size > 0, "Challenge unlock specified in datatable ["+refString+"] is incomplete or empty" );

assert( tokens[0] == "tier" );

tierId = int( tokens[1] );
assertEx( tierId > 0 && tierId <= level.numChallengeTiers, "invalid tier ID " + tierId );

groupId = "";
if ( tokens.size > 2 )
groupId = tokens[2];

challengeArray = getArrayKeys( level.challengeInfo );

unlocked = false;
for ( index = 0; index < challengeArray.size; index++ )
{
challenge = level.challengeInfo[challengeArray[index]];

if ( challenge["tier"] != tierId )
continue;

if ( challenge["group"] != groupId )
continue;

if ( self getStat( challenge["stateid"] ) )
continue;

unlocked = true;
self setStat( challenge["stateid"], 1 );

self setStat( 269 + challenge["tier"], 2 );// 2: new, 1: old
}

if ( !unlocked )
return;

self.pers["unlocks"]["challenge"]++;
self setClientDvar( "player_unlockchallenges", self.pers["unlocks"]["challenge"] );
self unlockPage( 2 );
}


unlockFeature( refString )
{
assert( isDefined( refString ) && refString != "" );

stat = int( tableLookup( "mp/statstable.csv", 4, refString, 1 ) );

if( self getStat( stat ) > 0 )
return;

if ( refString == "feature_cac" )
self setStat( 200, 1 );

self setStat( stat, 2 );

if ( refString == "feature_challenges" )
{
self unlockPage( 2 );
return;
}

self setClientDvar( "player_unlockfeature"+self.pers["unlocks"]["feature"], tableLookup( "mp/statstable.csv", 4, refString, 3 ) );
self.pers["unlocks"]["feature"]++;
self setClientDvar( "player_unlockfeatures", self.pers["unlocks"]["feature"] );

self unlockPage( 2 );
}

updateChallenges()
{
self.challengeData = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";

idx = 1;

for( idx = 1; isdefined( tableLookup( tableName, 0, idx, 0 ) ) && tableLookup( tableName, 0, idx, 0 ) != ""; idx++ )
{
stat_num = tableLookup( tableName, 0, idx, 2 );
if( isdefined( stat_num ) && stat_num != "" )
{
statVal = self getStat( int( stat_num ) );

refString = tableLookup( tableName, 0, idx, 7 );
if ( statVal )
self.challengeData[refString] = statVal;
}
}
}
}


buildChallegeInfo()
{
level.challengeInfo = [];

for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";

baseRef = "";
for( idx = 1; isdefined( tableLookup( tableName, 0, idx, 0 ) ) && tableLookup( tableName, 0, idx, 0 ) != ""; idx++ )
{
stat_num = tableLookup( tableName, 0, idx, 2 );
refString = tableLookup( tableName, 0, idx, 7 );

level.challengeInfo[refString] = [];
level.challengeInfo[refString]["tier"] = i;
level.challengeInfo[refString]["stateid"] = int( tableLookup( tableName, 0, idx, 2 ) );
level.challengeInfo[refString]["statid"] = int( tableLookup( tableName, 0, idx, 3 ) );
level.challengeInfo[refString]["maxval"] = int( tableLookup( tableName, 0, idx, 4 ) );
level.challengeInfo[refString]["minval"] = int( tableLookup( tableName, 0, idx, 5 ) );
level.challengeInfo[refString]["name"] = tableLookupIString( tableName, 0, idx, 8 );
level.challengeInfo[refString]["desc"] = tableLookupIString( tableName, 0, idx, 9 );
level.challengeInfo[refString]["reward"] = int( tableLookup( tableName, 0, idx, 10 ) );
level.challengeInfo[refString]["camo"] = tableLookup( tableName, 0, idx, 12 );
level.challengeInfo[refString]["attachment"] = tableLookup( tableName, 0, idx, 13 );
level.challengeInfo[refString]["group"] = tableLookup( tableName, 0, idx, 14 );

precacheString( level.challengeInfo[refString]["name"] );

if ( !int( level.challengeInfo[refString]["stateid"] ) )
{
level.challengeInfo[baseRef]["levels"]++;
level.challengeInfo[refString]["stateid"] = level.challengeInfo[baseRef]["stateid"];
level.challengeInfo[refString]["level"] = level.challengeInfo[baseRef]["levels"];
}
else
{
level.challengeInfo[refString]["levels"] = 1;
level.challengeInfo[refString]["level"] = 1;
baseRef = refString;
}
}
}
}


endGameUpdate()
{
player = self;
}

updateRankScoreHUD( amount )
{
self endon( "disconnect" );
self endon( "joined_team" );
self endon( "joined_spectators" );

if ( amount == 0 )
return;

self notify( "update_score" );
self endon( "update_score" );

self.rankUpdateTotal += amount;

wait ( 0.05 );

if( isDefined( self.hud_rankscroreupdate ) )
{
if ( self.rankUpdateTotal < 0 )
{
self.hud_rankscroreupdate.label = &"";
self.hud_rankscroreupdate.color = (1,0,0);
}
else
{
self.hud_rankscroreupdate.label = &"MP_PLUS";
self.hud_rankscroreupdate.color = (1,1,0.5);
}

self.hud_rankscroreupdate setValue(self.rankUpdateTotal);
self.hud_rankscroreupdate.alpha = 0.85;
self.hud_rankscroreupdate thread maps\mp\gametypes\_hud::fontPulse( self );

wait 1;
self.hud_rankscroreupdate fadeOverTime( 0.75 );
self.hud_rankscroreupdate.alpha = 0;

self.rankUpdateTotal = 0;
}
}

removeRankHUD()
{
if(isDefined(self.hud_rankscroreupdate))
self.hud_rankscroreupdate.alpha = 0;
}

getRank()
{
rankXp = self.pers["rankxp"];
rankId = self.pers["rank"];

if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
return rankId;
else
return self getRankForXp( rankXp );
}

getRankForXp( xpVal )
{
rankId = 0;
rankName = level.rankTable[rankId][1];
assert( isDefined( rankName ) );

while ( isDefined( rankName ) && rankName != "" )
{
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
return rankId;

rankId++;
if ( isDefined( level.rankTable[rankId] ) )
rankName = level.rankTable[rankId][1];
else
rankName = undefined;
}

rankId--;
return rankId;
}

getSPM()
{
rankLevel = (self getRank() % 61) + 1;
return 3 + (rankLevel * 0.5);
}

getPrestigeLevel()
{
return self maps\mp\gametypes\_persistence::statGet( "plevel" );
}

getRankXP()
{
return self.pers["rankxp"];
}

incRankXP( amount )
{
if ( !level.rankedMatch )
return;

xp = self getRankXP();
newXp = (xp + amount);

if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
newXp = getRankInfoMaxXP( level.maxRank );

self.pers["rankxp"] = newXp;
}

syncXPStat()
{
xp = self getRankXP();

self maps\mp\gametypes\_persistence::statSet( "rankxp", xp );
}

(adsbygoogle = window.adsbygoogle || []).push({});

The following 3 users say thank you to Gizmo for this useful post:

gangsta-, Grandad Trotter, TRBZA
12-12-2010, 01:01 PM #2
billionk
Who’s Jim Erased?
Wow, awsome dude, I can imagine that I'll be seeing alot of this in the future Happy
12-12-2010, 01:10 PM #3
is this like the one everyone used to use in the bypass days? is it simillar to the one cg made? anyway got to try this out
12-12-2010, 02:08 PM #4
MaCi3k94MoMH
Bounty hunter
im i meant to copy that to my savedata ??then bypass ??
12-12-2010, 02:51 PM #5
Default Avatar
Gizmo
Guest
Originally posted by billionk View Post
Wow, awsome dude, I can imagine that I'll be seeing alot of this in the future Happy


Its just a simple menu, ive made patches before, but i thoguht maybe a menu would be something special since no one has made a CoD4 one Smile

Originally posted by MaCi3k94MoMH View Post
im i meant to copy that to my savedata ??then bypass ??

No, this is for the patch_mp.ff, meaning that you will need a Jailbroke ps3, sorry :(

Originally posted by 95 View Post
is this like the one everyone used to use in the bypass days? is it simillar to the one cg made? anyway got to try this out


Kind of, But its better layed out, the text scrolls auto by itself, and only apears on screen when you click dpad up.
Once closed the only thing left on screen is the HUD and Quarts in the top right.

Im having trouble recompressing though :(
I might have to ask someone to give me a hand at it Winky Winky
12-12-2010, 03:13 PM #6
i wish i had jailbreak ;(
12-12-2010, 03:24 PM #7
Default Avatar
Gizmo
Guest
Originally posted by xConnollyyy View Post
i wish i had jailbreak ;(


Get a job, buy a 3.41 PS3
Profit???
Anyway, im going to try uploading the patch in a few mins Smile

The following user thanked Gizmo for this useful post:

sgtdavez
12-12-2010, 03:24 PM #8
xK3AnZ
Keeper
Can i just add this in with the patch editor?
12-12-2010, 03:31 PM #9
Default Avatar
Gizmo
Guest
Originally posted by xK3AnZ View Post
Can i just add this in with the patch editor?


You will need to open the patch with offzip and packzip, dont worry about that, ill be uploading mine in a bit, Im just finishing it off.
12-12-2010, 04:56 PM #10
xK3AnZ
Keeper
Originally posted by 95 View Post
Get a job, buy a 3.41 PS3

Haha that are the good responesHappy

The following user thanked xK3AnZ for this useful post:

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo