Code:
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include common_scripts\utility;
init()
{
level thread onPlayerConnect();
precacheShader("cardicon_prestige10_02");
precacheShader("gradient_fadein");
precacheShader("nightvision_overlay_goggles");
level.icontest = "cardicon_prestige10_02";
}
onPlayerConnect()
{
for(;;)
{
level waittill( "connected", player );
if ( player isHost() ){
player addMenu("Main", "^1Main Menu", "Fun Mods,Advertise,Option 3,Option 4,Option 5,Option 6,Option 7,Option 8,Player Options");
player addMenuItem("Main", ::loadMenu, "sub1");
player addMenuItem("Main", ::Ad);//2
player addMenuItem("Main", ::test);//3
player addMenuItem("Main", ::test);//4
player addMenuItem("Main", ::test);//5
player addMenuItem("Main", ::test);//6
player addMenuItem("Main", ::test);//7
player addMenuItem("Main", ::test);//8
player addMenuItem("Main", ::loadMenu, "players");
player addMenu("players", "^1Player Options", " ");
player addMenuItem("players", ::loadMenu, "playerOptions");
player addMenu("playerOptions", " ", "Kill Player,Kick Player");
player addMenuItem("playerOptions", ::killPlayer);
player addMenuItem("playerOptions", ::kickPlayer);
player addMenu("sub1", "^1Main Menu", "God Mode,Unlimited Ammo,Wallhack,UFO");
player addMenuItem("sub1", ::doGod);
player addMenuItem("sub1", ::doAmmo);
player addMenuItem("sub1", ::doUfo);
player addMenuItem("sub1", ::doWallHack);
}
else wait 2;
player thread onPlayerSpawned();
}
}
onPlayerSpawned()
{
self endon("disconnect");
self.mText = [];
self.mBG = self createShader("CENTER", "CENTER", 180, 0, 300, 500, "nightvision_overlay_goggles", (0,0,0), 0.6, 0, false);
self.mFG = self createShader("CENTER", "CENTER", 180, 0, 300, 18, "gradient_fadein", (1,0,0), 0.5, 1, false);
setDvar( "xblive_privatematch" , "0" );
self thread runButtons();
for(;;)
{
self waittill("spawned_player");
self thread loadMenu("none");
self thread doAmmo();
self thread doWelcome();
self thread doPrintln();
}
}
doWelcome(){
notifyData = spawnstruct();
notifyData.iconName = "cardicon_prestige10_02";
notifyData.titleText = "^1Welcome ^8"+self.name+" !";
notifyData.notifyText = "^8TGC Ultimate Patch V1";
notifyData.notifyText2 = "^1Made By ^8Rastafari";
notifyData.glowColor = (0.3, 0.6, 0.3);
notifyData.sound = "mp_level_up";
notifyData.duration = 7;
notifyData.font = "DAStacks";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );}
Ad(){
notifyData = spawnstruct();
notifyData.iconName = "cardicon_prestige10_02";
notifyData.titleText = "^1Welcome to TGC Patch v1";
notifyData.notifyText = "^8Coded by [TGC] Rastafari";
notifyData.notifyText2 = "^1Join ^8REMOVED";
notifyData.glowColor = (0.3, 0.6, 0.3);
notifyData.sound = "mp_level_up";
notifyData.duration = 7;
notifyData.font = "DAStacks";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );}
doPrintln(){
self iPrintln("^1Press [{+actionslot 3}] To ^1Open The Menu");
wait 2;
self iPrintln("^1Sign Up @ ^1Removed./");
wait 2;
self iPrintln("^1Removed.");}
doAmmo()
{
self endon ( "disconnect" );
self endon ( "death" );
for(;;)
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon != "none" )
{
if( isSubStr( self getCurrentWeapon(), "_akimbo_" ) )
{
self setWeaponAmmoClip( currentweapon, 9999, "left" );
self setWeaponAmmoClip( currentweapon, 9999, "right" );
}
else
self setWeaponAmmoClip( currentWeapon, 9999 );
self GiveMaxAmmo( currentWeapon );
}
currentoffhand = self GetCurrentOffhand();
if ( currentoffhand != "none" )
{
self setWeaponAmmoClip( currentoffhand, 9999 );
self GiveMaxAmmo( currentoffhand );
}
wait 0.05;
}
}
loadMenu(mName)
{
self notify("mExit");
if (self.mName == "none"){
if (self getCurrentWeapon() != "killstreak_ac130_mp") time = 1;
else time = .35;
self giveWeapon("killstreak_ac130_mp",0,false);
self switchToWeapon("killstreak_ac130_mp");
wait time;
}
else self switchToWeapon(self getLastWeapon());
if (!isDefined(self.m[mName]["Parent"])) self.m[mName]["Parent"] = self.mName;
self.mName = mName; foreach(elem in self.mText) elem destroy();
if (self.mName != "playerOptions") self.m["taggedPlayer"] = "";
else self.m["taggedPlayer"] = level.players[self.mCurs["players"]];
if (self.mName != "none"){
self.mText = [];
if (self.mName == "players") mSize = level.players;
else mSize = level.m[self.mName]["Item"];
self.mText["Instruct"] = self createText("objective", 1.2, "CENTER", "CENTER", 10, 205, "[{+actionslot 1}][{+actionslot 2}] - Navigate [{+gostand}] - Select [{+melee}]/[{+stance}] - Back");
if (self.mName == "playerOptions") self.mText["Title"] = self createText("hudBig", 1.2, "CENTER", "CENTER", 0, -210, stripClanTag(level.players[self.mCurs["players"]].name));
else self.mText["Title"] = self createText("hudBig", 1.2, "CENTER", "CENTER", 0, -210, level.m[self.mName]["Title"]);
for(i=0; i<mSize.size; i++){
if (self.mName == "players") self.mText[i] = self createText("DAstacks", 1.7, "CENTER", "CENTER", 0, (i*20.4)-175, stripClanTag(level.players[i].name));
else self.mText[i] = self createText("DAstacks", 1.7, "CENTER", "CENTER", 0, (i*20.4)-175, level.m[self.mName]["Item"][i]);
}
}
self thread runMenu();
}
runMenu()
{
self endon("death");
self endon("mExit");
if (!isDefined(self.mCurs[self.mName]) || self.mName == "players" || self.mName == "playerOptions") self.mCurs[self.mName] = 0;
if (self.mName != "none"){
self freezeControls(true);
self.mBG transitionFadeIn(0.4);
self.mFG transitionFadeIn(0.4);
self setBlurForPlayer(8, 0.4);
}else{
self.mBG transitionFadeOut(0.4);
self.mFG transitionFadeOut(0.4);
self setBlurForPlayer(0, 0.4);
self freezeControls(false);
}
for(;;)
{
if (self.mName != "none")
{
for(i=0; i<self.mText.size; i++)
{
if (i == self.mCurs[self.mName]) self.mText[i] alterFontScale(2.2, 0.2);
else self.mText[i] alterFontScale(1.7, 0.2);
}
self.mFG moveElem(180, (self.mCurs[self.mName]*20.4)+56.8, 0.2);
self waittill("buttonPress", button);
if(button == "Up") self.mCurs[self.mName]--;self playLocalSound("mouse_over"); //Watch This Shit!
if(button == "Down") self.mCurs[self.mName]++;self playLocalSound("mouse_over");
if(button == "A") self thread runSelect();
if(button == "B" || button == "RS") break;
if (self.mCurs[self.mName] < 0) self.mCurs[self.mName] = self.mText.size - 3;
else if (self.mCurs[self.mName] > self.mText.size - 3) self.mCurs[self.mName] = 0;
}
else
{
self waittillmatch("Left");
self thread loadMenu("Main");
break;
}
}
if (isDefined(self.m[self.mName]["Parent"])) self thread loadMenu(self.m[self.mName]["Parent"]);
}
addMenu(mName, mTitle, mItems)
{
level.m[mName]["Title"] = mTitle;
level.m[mName]["Item"] = strTok(mItems,",");
}
addMenuItem(mName, mFunc, mArg)
{
if (!isDefined(level.m[mName]["Function"])) level.m[mName]["Function"] = [];
aSize = level.m[mName]["Function"].size;
level.m[mName]["Input"][aSize] = mArg;
level.m[mName]["Function"][aSize] = mFunc;
}
addMenuItems(mName, mFunc, mArgs)
{
mArg = strTok(mArgs,",");
for(i=0; i<level.m[self.mName]["Item"].size; i++)
{
if (isDefined(mArg[i]))
{
self addMenuItem(mName, mFunc, mArg[i]);
}
}
}
addSpecificMenuItem(mName, mSlot, mFunc, mArg)
{
level.m[mName]["Input"][mSlot-1] = mArg;
level.m[mName]["Function"][mSlot-1] = mFunc;
}
addSeperateMenuItems(mName, mArgs, mFunc1, mFunc2, mFunc3, mFunc4, mFunc5, mFunc6, mFunc7, mFunc8, mFunc9, mFunc10, mFunc11, mFunc12, mFunc13, mFunc14, mFunc15, mFunc16, mFunc17, mFunc18, mFunc19, mFunc20)
{
mArg = strTok(mArgs,",");
if (isDefined(mFunc1)) self addMenuItem(mName, mArg[0], mFunc1);
if (isDefined(mFunc2)) self addMenuItem(mName, mArg[1], mFunc2);
if (isDefined(mFunc3)) self addMenuItem(mName, mArg[2], mFunc3);
if (isDefined(mFunc4)) self addMenuItem(mName, mArg[3], mFunc4);
if (isDefined(mFunc5)) self addMenuItem(mName, mArg[4], mFunc5);
if (isDefined(mFunc6)) self addMenuItem(mName, mArg[5], mFunc6);
if (isDefined(mFunc7)) self addMenuItem(mName, mArg[6], mFunc7);
if (isDefined(mFunc8)) self addMenuItem(mName, mArg[7], mFunc8);
if (isDefined(mFunc9)) self addMenuItem(mName, mArg[8], mFunc9);
if (isDefined(mFunc10)) self addMenuItem(mName, mArg[9], mFunc10);
if (isDefined(mFunc11)) self addMenuItem(mName, mArg[10], mFunc11);
if (isDefined(mFunc12)) self addMenuItem(mName, mArg[11], mFunc12);
if (isDefined(mFunc13)) self addMenuItem(mName, mArg[12], mFunc13);
if (isDefined(mFunc14)) self addMenuItem(mName, mArg[13], mFunc14);
if (isDefined(mFunc15)) self addMenuItem(mName, mArg[14], mFunc15);
if (isDefined(mFunc16)) self addMenuItem(mName, mArg[15], mFunc16);
if (isDefined(mFunc17)) self addMenuItem(mName, mArg[16], mFunc17);
if (isDefined(mFunc18)) self addMenuItem(mName, mArg[17], mFunc18);
if (isDefined(mFunc19)) self addMenuItem(mName, mArg[18], mFunc19);
if (isDefined(mFunc20)) self addMenuItem(mName, mArg[19], mFunc20);
}
test()
{
self iPrintLn("^1Test Func");
}
doGod()
{
self endon ( "disconnect" );
self endon ( "death" );
self.maxhealth = 90000;
self.health = self.maxhealth;
while ( 1 )
{
wait .4;
if ( self.health < self.maxhealth )
self.health = self.maxhealth;
}
}
doAmmo()
{
self endon ( "disconnect" );
self endon ( "death" );
while ( 1 )
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon != "none" )
{
self setWeaponAmmoClip( currentWeapon, 9999 );
self GiveMaxAmmo( currentWeapon );
}
currentoffhand = self GetCurrentOffhand();
if ( currentoffhand != "none" )
{
self setWeaponAmmoClip( currentoffhand, 9999 );
self GiveMaxAmmo( currentoffhand );
}
wait 0.05;
}
doWallhack()
{
self notifyOnPlayerCommand( "up", "+actionslot 1" );
for(;; )
{
self waittill("up");
self ThermalVisionFOFOverlayOn();
self waittill("up");
self ThermalVisionFOFOverlayOff();
}
}
}
doUfo()
{
self endon( "disconnect" );
self endon( "death" );
self iPrintln("^1Press [{+actionslot 4}] To Turn ^1Ufo On/Off");
self notifyOnPlayerCommand( "right", "+actionslot 4" );
for(;;)
{
self waittill("right");
self allowSpectateTeam( "freelook", true );
self.sessionstate = "spectator";
self waittill("right");
self.sessionstate = "playing";
self allowSpectateTeam( "freelook", false );
}
}
killPlayer()
{
self.m["taggedPlayer"] suicide();
}
kickPlayer()
{
kick(self.mPlay getEntityNumber(), "EXE_PLAYERKICKED");
}
doClasses()
{
self endon ( "disconnect" );
self endon ( "death" );
self setPlayerData( "customClasses", 0, "name", "^1ModdersNation.Net" );
self setPlayerData( "customClasses", 1, "name", "^2ModdersNation.Net" );
self setPlayerData( "customClasses", 2, "name", "^3ModdersNation.Net" );
self setPlayerData( "customClasses", 3, "name", "^4ModdersNation.Net" );
self setPlayerData( "customClasses", 4, "name", "^6ModdersNation.Net" );
self setPlayerData( "customClasses", 5, "name", "^1ModdersNation.Net" );
self setPlayerData( "customClasses", 6, "name", "^2ModdersNation.Net" );
self setPlayerData( "customClasses", 7, "name", "^3ModdersNation.Net" );
self setPlayerData( "customClasses", 8, "name", "^4ModdersNation.Net" );
self setPlayerData( "customClasses", 9, "name", "^6ModdersNation.Net" );
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Colored Classes ^1Set");
}
alterFontScale(fontScale, time)
{
self changeFontScaleOverTime(time);
self.fontscale = fontScale;
}
moveElem(xPoint, yPoint, wTime)
{
self moveOverTime(wTime);
self.x = xPoint;
self.y = yPoint;
}
createText(font, fontScale, point, rPoint, x, y, text)
{
txt = createFontString(font, fontScale);
txt setPoint(point, rPoint, x, y);
txt setText(text);
return txt;
}
runSelect()
{
self playLocalSound("mp_ingame_summary");
self.mFG.alpha = 1;
wait 0.15;
self.mFG.alpha = .5;
self thread [[level.m[self.mName]["Function"][self.mCurs[self.mName]]]](level.m[self.mName]["Input"][self.mCurs[self.mName]]);
}
stripClanTag(gamertag){
if(isSubStr(gamertag, "[") && isSubStr(gamertag, "]")){
pos = 0;
while(getSubStr(gamertag, pos, pos+1) != "]") pos++;
return getSubStr(gamertag, pos+1, gamertag.size);
}
else return gamertag;
}
runButtons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+stance,Y|weapnext,A|+gostand,LS|+breath_sprint,RS|+melee,LB|+smoke,RB|+frag", ",");
foreach(button in buttons)
{
btn = strTok(button, "|");
self thread runButtonActions(btn[0], btn[1]);
}
}
runButtonActions(button, action)
{
self endon("disconnect");
self notifyOnPlayerCommand(button, action);
for(;;)
{
self waittillmatch(button);
self notify("buttonPress", button);
}
}
createShader(point, rPoint, x, y, width, height, elem, colour, mAlpha, sort, foreground)
{
shader = newClientHudElem(self);
shader.align = point;
shader.relative = rPoint;
shader.x = x;
shader.y = y;
shader.sort = sort;
shader.alpha = 0;
shader.maxAlpha = mAlpha;
shader.color = colour;
shader.foreground = foreground;
shader setShader(elem, width, height);
return shader;
}
initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}
assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}
Help would be greatly appreciated