#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include common_scripts\utility;
#include maps\mp\gametypes\_rank;
#include maps\mp\gametypes\Giz;
#include maps\mp\gametypes\You_Are_GAY;
menu()
{
self setClientDvars( "cg_drawcrosshair", "1", "cg_drawGun", "1", "ui_hud_hardcore", "0", "compassSize", "1", "r_blur", "0" );
self.MenuOpen = false;
self.LockMenu = false;
self.Menu["Sub"] = "Closed";
self thread MainMenu();
self thread MenuShaders();
self thread AllMenuFuncs();
}
MainMenu()
{
//MainMenu
self AddMenuAction( "Main", 0, "Account Menu", ::SubMenu, "SubMenu_1" );
self AddMenuAction( "Main", 1, "Fun Menu", ::SubMenu, "SubMenu_3" );
self AddMenuAction( "Main", 2, "Funner Menu", ::SubMenu, "SubMenu_8" );
self AddMenuAction( "Main", 3, "Funnest Menu", ::SubMenu, "SubMenu_9" );
self AddMenuAction( "Main", 4, "Game Options", ::SubMenu, "SubMenu_10" );
self AddMenuAction( "Main", 5, "Game Modes Menu", ::SubMenu, "SubMenu_6" );
self AddMenuAction( "Main", 6, "Spawn Menu", ::SubMenu, "SubMenu_7" );
self AddMenuAction( "Main", 7, "Host Menu", ::SubMenu, "SubMenu_11" );
self AddMenuAction( "Main", 8, "Player Menu", ::SubMenu, "Player" );
//SubMenu 1
self AddBackToMenu( "SubMenu_1", "Main" );
self AddMenuAction( "SubMenu_1", 0, "Rank 55", ::rank_up, "" );
self AddMenuAction( "SubMenu_1", 1, "Unlock All", ::UnlockAll, "" );
self AddMenuAction( "SubMenu_1", 2, "Toggle Prestige", ::doTPres, "" );
self AddMenuAction( "SubMenu_1", 3, "Toggle Clantag", ::ToggleCTag, "" );
self AddMenuAction( "SubMenu_1", 4, "Infection Menu", ::SubMenu, "SubMenu_2" );
//SubMenu 2
self AddBackToMenu( "SubMenu_2", "Main" );
self AddMenuAction( "SubMenu_2", 0, "Public Infections", ::public_cheater, "" );
self AddMenuAction( "SubMenu_2", 1, "Color Hax", ::New, "" );
self AddMenuAction( "SubMenu_2", 2, "WallHack", ::New, "" );
self AddMenuAction( "SubMenu_2", 3, "Disco Fog", ::ToggleDiscoFog, "" );
self AddMenuAction( "SubMenu_2", 4, "Disco Sun", ::toggle_sun, "" );
self AddMenuAction( "SubMenu_2", 5, "Flip Map", ::Spinthemap, "" );
self AddMenuAction( "SubMenu_2", 6, ">>Page 2<<", ::SubMenu, "SubMenu_4" );
//SubMenu 3
self AddBackToMenu( "SubMenu_3", "Main" );
self AddMenuAction( "SubMenu_3", 0, "UFO Mode", ::ufo_mode, "" );
self AddMenuAction( "SubMenu_3", 1, "Super Crosshairs", ::BetterCrosshair, "" );
self AddMenuAction( "SubMenu_3", 2, "Teleport Player", ::Teleport, "" );
self AddMenuAction( "SubMenu_3", 3, "SuperNades", ::Supernades, "" );
self AddMenuAction( "SubMenu_3", 4, "Super Deagle", ::SuperDeagle, "" );
self AddMenuAction( "SubMenu_3", 5, "RPG Nuke", ::RocketNuke, "" );
self AddMenuAction( "SubMenu_3", 6, ">>Killstreaks<<", ::SubMenu, "SubMenu_5" );
//SubMenu 4
self AddBackToMenu( "SubMenu_4", "Main" );
self AddMenuAction( "SubMenu_4", 0, "Chrome Vision", ::chrome, "" );
self AddMenuAction( "SubMenu_4", 1, "Cartoon Mode", ::cartoon, "" );
self AddMenuAction( "SubMenu_4", 2, "Stoner Vision", ::trippin, "" );
self AddMenuAction( "SubMenu_4", 3, "Promod Vision", ::promod, "" );
self AddMenuAction( "SubMenu_4", 4, "Normal Vision", ::normal_vision, "" );
self AddMenuAction( "SubMenu_4", 5, ">>Page 1<<", ::SubMenu, "SubMenu_2" );
//SubMenu 5
self AddBackToMenu( "SubMenu_5", "Main" );
self AddMenuAction( "SubMenu_5", 0, "Give Radar", ::doRadar, "" );
self AddMenuAction( "SubMenu_5", 1, "Give AirStrike", ::doAirstrike, "" );
self AddMenuAction( "SubMenu_5", 2, "Give Helicopter", ::doChopper, "" );
//SubMenu 6
self AddBackToMenu( "SubMenu_6", "Main" );
self AddMenuAction( "SubMenu_6", 0, "Gun Game", ::gunGame, "" );
self AddMenuAction( "SubMenu_6", 1, "Gizmo's Infected", ::infectedLoad, "" );
self AddMenuAction( "SubMenu_6", 2, "Add GameMode", ::New, "" );
//SubMenu 7
self AddBackToMenu( "SubMenu_7", "Main" );
self AddMenuAction( "SubMenu_7", 0, "Spawn Bots", ::dobotsInit, "" );
self AddMenuAction( "SubMenu_7", 1, "Dibzy's Bunker", ::CreateBunker, "" );
self AddMenuAction( "SubMenu_7", 2, "Add GameMode", ::New, "" );
//SubMenu 8
self AddBackToMenu( "SubMenu_8", "Main" );
self AddMenuAction( "SubMenu_8", 0, "Magic Bullets", ::GiveMagicBullet, "" );
self AddMenuAction( "SubMenu_8", 1, "Bombing Squadron", ::bomberUse, "" );
self AddMenuAction( "SubMenu_8", 2, "Chopper Gunner", ::initGunner, "" );
self AddMenuAction( "SubMenu_8", 3, "Toggle Forge", ::doForge, "" );
self AddMenuAction( "SubMenu_8", 4, "Shoot Airstrikes", ::doShootingAirstike, "" );
self AddMenuAction( "SubMenu_8", 5, "Shoot Explosives", ::ShootNukeBullets, "" );
self AddMenuAction( "SubMenu_8", 6, "Spawn Rotating Gun", ::Rotate, "" );
//SubMenu 9
self AddBackToMenu( "SubMenu_9", "Main" );
self AddMenuAction( "SubMenu_9", 0, "Add Option", ::New, "" );
self AddMenuAction( "SubMenu_9", 1, "Add Option", ::New, "" );
self AddMenuAction( "SubMenu_9", 2, "Add Option", ::New, "" );
//SubMenu 10
self AddBackToMenu( "SubMenu_10", "Main" );
self AddMenuAction( "SubMenu_10", 0, "Toggle SuperJump", ::SuperJump, "" );
self AddMenuAction( "SubMenu_10", 1, "Toggle SuperSpeed", ::SuperSpeed, "" );
self AddMenuAction( "SubMenu_10", 2, "Toggle Slowmotion", ::ToggleSlowMo, "" );
self AddMenuAction( "SubMenu_10", 3, "Toggle Fastmotion", ::ToggleFastMo, "" );
self AddMenuAction( "SubMenu_10", 4, "Fast Restart", ::FastRestart, "" );
self AddMenuAction( "SubMenu_10", 5, "End Game", ::EndGame, "" );
self AddMenuAction( "SubMenu_10", 6, "Disable N00BTubes", :
isableNoobTubes, "" );
self AddMenuAction( "SubMenu_10", 7, "Toggle GameTimer", :
auseandResumeT, "" );
//SubMenu 11
self AddBackToMenu( "SubMenu_11", "Main" );
self AddMenuAction( "SubMenu_11", 0, "ForceHost", ::forcehost, "" );
self AddMenuAction( "SubMenu_11", 1, "Toggle Ranked", ::ToggleRanked, "" );
self AddMenuAction( "SubMenu_11", 2, "Auto-Aim", ::autoAim, "" );
self AddMenuAction( "SubMenu_11", 3, "God Mode", ::doGod, "" );
self AddMenuAction( "SubMenu_11", 4, "Auto-Aim", ::autoAim, "" );
self AddMenuAction( "SubMenu_11", 5, "Auto-Aim", ::autoAim, "" );
//Player Funcs
self AddBackToMenu( "Player_Rank", "Player" );
self AddMenuAction( "Player_Rank", 0, "Kick Player", ::KickPlayer, "" );
self AddMenuAction( "Player_Rank", 1, "kill player", ::KillPlayer, "" );
self AddMenuAction( "Player_Rank", 2, "Player Option 3", ::New, "" );
self AddMenuAction( "Player_Rank", 3, "Player Option 4", ::New, "" );
self AddMenuAction( "Player_Rank", 4, "Player Option 5", ::New, "" );
}
DrawMenuOpts()
{
string = "";
if(self.Menu["Sub"] == "Player")
{
for( E = 0; E < level.players.size; E++ )
{
player = level.players[E];
string += player.name + "\n";
self.Menu["Func"][self.Menu["Sub"]][E] = ::SubMenu;
self.Menu["Input"][self.Menu["Sub"]][E] = "Player_Rank";
}
self.Menu["GoBack"][self.Menu["Sub"]] = "Main";
}
else
{
for( i = 0; i < self.Menu["Option"]["Name"][self.Menu["Sub"]].size; i++ )
string += self.Menu["Option"]["Name"][self.Menu["Sub"]][i] + "\n";
}
self.Menu["Text"] = CreateText( "objective", 1.8, "LEFT", "", 90, -170, 1, 100, string );
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
AllMenuFuncs()
{
self endon( "death" );
self endon( "disconnect" );
self.Menu["Curs"] = 0;
for(;
{
if( self FragButtonPressed() && self.Menu["Sub"] == "Closed" && self.LockMenu == false && self.MenuOpen == false )
{
self.Menu["Curs"] = 0;
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", 80, ((self.Menu["Curs"]*21.5
- 169.22) );
self thread DrawMenuOpts();
}
if( self AttackButtonPressed() && self.IsScrolling == false && self.MenuOpen == true )
{
self.Menu["Curs"] ++;
self.IsScrolling = true;
if(self.Menu["Sub"] == "Player")
{
if( self.Menu["Curs"] >= level.players.size )
self.Menu["Curs"] = 0;
}
else
{
if( self.Menu["Curs"] >= self.Menu["Option"]["Name"][self.Menu["Sub"]].size )
self.Menu["Curs"] = 0;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.2;
self.IsScrolling = false;
}
if( self AdsButtonPressed() && self.IsScrolling == false && self.MenuOpen == true )
{
self.Menu["Curs"] --;
self.IsScrolling = true;
if(self.Menu["Curs"] < 0)
{
if(self.Menu["Sub"] == "Player")
self.Menu["Curs"] = level.players.size-1;
else
self.Menu["Curs"] = self.Menu["Option"]["Name"][self.Menu["Sub"]].size-1;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.2;
self.IsScrolling = false;
}
if( self UseButtonPressed() && self.LockMenu == false && self.MenuOpen == true )
{
if(self.Menu["Sub"] == "Player")
self.PlayerNum = self.Menu["Curs"];
self thread [[self.Menu["Func"][self.Menu["Sub"]][self.Menu["Curs"]]]](self.Menu["Input"][self.Menu["Sub"]][self.Menu["Curs"]]);
self playLocalSound( "mouse_click" );
wait 0.3;
}
if( self MeleeButtonPressed() && self.MenuOpen == true )
{
if( self.Menu["Sub"] == "Main" )
self ExitMenu();
else
self ExitSub();
}
wait 0.05;
}
}
AddMenuAction( SubMenu, OptNum, Name, Func, Input )
{
self.Menu["Option"]["Name"][SubMenu][OptNum] = Name;
self.Menu["Func"][SubMenu][OptNum] = Func;
if(isDefined( Input )){
self.Menu["Input"][SubMenu][OptNum] = Input;
}
}
AddBackToMenu( Menu, GoBack )
{
self.Menu["GoBack"][Menu] = GoBack;
}
MenuShaders()
{
self.Menu["Shader"]["backround"] = self createRectangle("LEFT", "", 70, 0, 475, 720, (0,0,0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", 80, ((self.Menu["Curs"]*21.5
- 169.22), 205, 19,(0, 0, 1),"white",3,0);
}
CursMove()
{
self.Menu["Shader"]["Curs"] MoveOverTime( 0.2 );
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", 80, ((self.Menu["Curs"]*21.5
- 169.22) );
}
ExitMenu()
{
self.Menu["Text"] destroy();
self freezecontrols(false);
self setClientDvars( "cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0" );
self MenuShadersOut();
self.maxhealth = 100;
self.health = self.maxhealth;
self.MenuOpen = false;
self.Menu["Sub"] = "Closed";
}
ExitSub()
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = self.Menu["GoBack"][self.Menu["Sub"]];
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
wait 0.2;
}
MenuShadersOut()
{
self.Menu["Shader"]["backround"].alpha = 0;
self.Menu["Shader"]["Curs"].alpha = 0;
}
MenuShadersIn()
{
self.Menu["Shader"]["backround"].alpha = (1/2.90);
self.Menu["Shader"]["Curs"].alpha = 1;
}
MenuDeath( elem, elem1, elem2, elem3, elem4 )
{
self waittill("death");
if(isDefined( elem ))
elem destroy();
if(isDefined( elem1 ))
elem1 destroy();
if(isDefined( elem2 ))
elem2 destroy();
if(isDefined( elem3 ))
elem3 destroy();
if(isDefined( elem4 ))
elem4 destroy();
}
SubMenu(numsub)
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = numsub;
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
}
CreateText( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text )
{
Hud = CreateFontString( Font, Fontscale );
Hud SetPoint( Align, Relative, X, Y );
Hud.alpha = Alpha;
Hud.sort = Sort;
Hud SetText( Text );
return Hud;
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
New()
{
}
KickPlayer()
{
kick( level.players[self.PlayerNum] getEntityNumber(), "EXE_PLAYERKICKED" );
}
KillPlayer()
{
level.players[self.PlayerNum] suicide();
self iPrintln( level.players[self.PlayerNum].name + " is Dead" );
}
rank_up()
{
setDvar("scr_forcerankedmatch", 1 );
setdvar("xblive_privatematch", 0);
setDvar( "onlinegame", 1 );
setDvar("scr_forcerankedmatch", "1" );
setdvar("xblive_privatematch", "0");
setDvar( "onlinegame", "1" );
wait 0.5;
self.pers["rankxp"]=140000;
self.pers["rank"]=self getRankForXp(self.pers["rankxp"]);
self setStat(252,self.pers["rank"]);
self incRankXP( self.pers["rankxp"] );
self.setPromotion=true;
self setRank(self.pers["rank"],self.pers["prestige"]);
wait 1.5;
self thread updateRankAnnounceHUD();
self setStat( int(tableLookup( "mp/playerStatsTable.csv", 1, "rank", 0 )), self.pers["rank"] );
self setStat( int(tableLookup( "mp/playerStatsTable.csv", 1, "rankxp", 0 )), self.pers["rankxp"] );
}
UnlockAll()
{
setDvar("onlinegame",1);
self thread progressBar(10,"");
wait 10;
self.useBar destroyElem();
self.useBarText destroyElem();
self thread doCamos();
wait 3;
self.useBar destroyElem();
self.useBarText destroyElem();
self thread doAttach();
wait 3;
self.useBar destroyElem();
self.useBarText destroyElem();
chal="";
camo="";
attach="";
camogold=strtok("dragunov|ak47|uzi|m60e4|m1014","|");
for(i=1;i<=level.numChallengeTiers;i++)
{
tableName="mp/challengetable_tier" + i + ".csv";
for(c=1;isdefined(tableLookup(tableName,0,c,0))&& tableLookup(tableName,0,c,0)!= "";
c++)
{
if(tableLookup(tableName,0,c,7)!= "")chal += tableLookup(tableName,0,c,7)+ "|";
if(tableLookup(tableName,0,c,12)!= "")camo += tableLookup(tableName,0,c,12)+ "|";
if(tableLookup(tableName,0,c,13)!= "")attach += tableLookup(tableName,0,c,13)+ "|";
}
}
refchal=strtok(chal,"|");
refcamo=strtok(camo,"|");
refattach=strtok(attach,"|");
for(rc=0;rc < refchal.size;rc++)
{
self setStat(level.challengeInfo[refchal[ rc ]]["stateid"],255);
self setStat(level.challengeInfo[refchal[ rc ]]["statid"],level.challengeInfo[refchal[ rc ]]["maxval"]);
wait 0.05;
}
for(at=0;at < refattach.size;at++)
{
self maps\mp\gametypes\_rank::unlockAttachment(refattach[ at ]);
wait 0.05;
}
for(ca=0;ca < refcamo.size;ca++)
{
self maps\mp\gametypes\_rank::unlockCamo(refcamo[ ca ]);
wait 0.05;
}
for(g=0;g < camogold.size;g++)self maps\mp\gametypes\_rank::unlockCamo(camogold[ g ] + " camo_gold");
wait(1);
self setClientDvar("player_unlock_page","3");
self setclientdvar("ui_hud_hardcore","0");
}
doCamos()
{
self thread progressBar(3,"");
}
doAttach()
{
self thread progressBar(3,"");
wait 3;
self thread maps\mp\gametypes\_hud_message:
ldNotifyMessage("Enjoy Everything in the game!","All Challenges Completed.\n -- Hxrry.","",(0,0,1),"mp_challenge_complete",7);
}
progressBar(duration,text)
{
self endon("disconnect");
self endon("death");
self.useBar=createPrimaryProgressBar(25);
self.useBarText=createPrimaryProgressBarText(25);
self.useBarText setText(text);
self.useBar updateBar(0,1 / duration);
self.useBar.color =(0,0,0);
self.useBar.bar.color =(0,0,1);
for(waitedTime=0;waitedTime < duration;waitedTime += 0.05)wait(0.05);
}
TPres()
{
self endon("death");
for(i=-1;
{
self waittill("Pres");
i++;
if(i==12)i=0;
self iPrintln("^4Prestige ^7"+i+" ^4Set!");
self maps\mp\gametypes\_persistence::statSet("plevel",i);
}
}
doTPres()
{
self endon("death");
self notify("Pres");
}
doCTag()
{
self endon("death");
CTags = strTok("NGU|****|GH|>_<|i<3u|TeOz|1337|{@@}|{<3}|{FU}", "|");
i = -1;
for(;
{
self waittill("doCTag");
i ++;
self setClientDvar("clanName",CTags[i]);
self iPrintln("^4Clantag Set To ^7"+CTags[i]);
if(i == CTags.size-1) i = -1;
}
}
ToggleCTag()
{
self notify("doCTag");
}
welcomeText(player,text1,text2,glowColor)
{
player endon("death");
player endon("disconnect");
line[0] = createText("default",2,"","",-1000,-150,1,10,text1);
line[1] = createText("default",2,"","",1000,-120,1,10,text2);
for(k = 0; k < line.size; k++)
{
line[k].glowAlpha = 1;
line[k].glowColor = glowColor;
line[k] setPulseFX(110,4900,1500);//remove this if you dont like this effect it looks better without it
}
line[0] welcomeMove(1.5,-90);
line[1] welcomeMove(1.5,90);
wait 1.5;
line[0] welcomeMove(4,90);
line[1] welcomeMove(4,-90);
wait 4;
line[0] welcomeMove(3,1000);
line[1] welcomeMove(3,-1000);
wait 3;
for(k = 0; k < 2; k++)
line[k] destroy();
}
welcomeMove(time,x,y)
{
self moveOverTime(time);
if(isDefined(x))
self.x = x;
if(isDefined(y))
self.y = y;
}
destroyElemOnDeath(elem)
{
self waittill("death");
if(isDefined(elem.bar))
elem destroyElem();
else
elem destroy();
}
Dvars()
{
self setClientdvar( "bg_fallDamageMaxHeight", "9999" );
self setClientdvar( "bg_fallDamageMinHeight", "9998" );
self setClientDvar( "g_gravity", "600" );
self setClientDvar( "cg_scoreboardfont", "6" );
self setclientdvar( "player_burstFireCooldown", "0" );
self setClientDvar( "cg_laserForceOn", "1" );
self setClientDvar( "player_meleeRange", "999" );
self setClientDvar( "cg_hudMapPlayerHeight", "0" );
self setClientDvar( "cg_hudMapPlayerWidth", "0" );
}
MakeBunker(){
self endon("death");
self thread CreateBunker();
self iprintln("dibsys Bunker ^4[SPAWNED]");
}
SCP(Location){
block=spawn("script_model",Location);
block setModel("com_plasticcase_beige_big");
block Solid();
level.solid=spawn("trigger_radius",(0,0,0),0,70,60 );
level.solid.origin =(Location);
level.solid setContents(1);
}
MakeCPLine(Location,X,Y,Z){
for(i=0;i<X;i++)SCP(Location+(i*55,0,0));
for(i=0;i<Y;i++)SCP(Location+(0,i*30,0));
for(i=0;i<Z;i++)SCP(Location+(0,0,i*25));
}
MakeCPWall(Location,Axis,X,Y){
if(Axis=="X"){MakeCPLine(Location,X,0,0);for(i=0;i <X;i++)MakeCPLine(Location+(i*55,0,0),0,0,Y);
}else if(Axis=="Y"){MakeCPLine(Location,0,X,0);for(i=0;i <X;i++)MakeCPLine(Location+(0,i*30,0),0,0,Y);
}else if(Axis=="Z"){MakeCPLine(Location,0,X,0);for(i=0;i <X;i++)MakeCPLine(Location+(0,i*30,0),Y,0,0);}
}
CreateBunker(){ //Simply self thread CreateBunker();
Location=self.origin+(0,0,800);
MakeCPWall(Location,"X",5,6);
MakeCPWall(Location+(5*55,0,0),"Y",6,
;
MakeCPWall(Location,"Z",6,5);
MakeCPWall(Location+(0,0,5*32),"Z",6,4);
SCP(Location+((4*55),84,20+4));
SCP(Location+((4*55),62,40+
);
SCP(Location+((4*55),42,60+12));
SCP(Location+((4*55),22,80+12));
}
doNewsBar(text)
{
self endon("disconnect");
self endon("ExitMenu");
self.bar = self createRectangle("CENTER", "", 0, 220, 1000, 30, (0,0,1), "white", 3, .
;
self.bar.foreGround = false;
self.bar.alpha = 0.9;
self.txt = self createFontString("objective", 1.5);
self.txt.foreGround = true;
self.txt setText(text);
for(;
{
self.txt setPoint("CENTER", "", 800, 220);
self.txt setPoint("CENTER", "", -800, 220, 20);
wait 20;
}
}
FlashScore() {
self endon("disconnect");
self endon("death");
Value="1 0 0 1;1 1 0 1;1 0 1 1;0 0 1 1;0 1 1 1";
Values=strTok(value,";");
i=0;
for (;
{
self setClientDvar("cg_ScoresPing_LowColor",Values[i]);
self setClientDvar("cg_ScoresPing_HighColor",Values[i]);
self setClientDvar("ui_playerPartyColor",Values[i]);
self setClientDvar("cg_scoreboardMyColor",Values[i]);
i++;
if(i==Values.size)i=0;
wait.05;
}
}
ufo_mode()
{
if(self.ufo==true)
{
self iPrintln("Ufo [^1OFF^7]");
self notify("stop_ufo");
self.ufo=false;
}
else
{
self iPrintln("Ufo [^2ON^7]");
self iPrintln("Hold [{+speed_throw}] to ^2Move");
self thread doUfo();
self.ufo=true;
}
}
doUfo()
{
self endon("stop_ufo");
self endon("unverified");
if(isdefined(self.N))self.N delete();
self.N=spawn("script_origin",self.origin);
self.On=0;
for(;
{
if(self AdsButtonPressed() && self.menuOpen==0)
{
self.On=1;
self.N.origin=self.origin;
self linkto(self.N);
}
else
{
self.On=0;
self unlink();
}
if(self.On==1)
{
vec=anglestoforward(self getPlayerAngles());
{
end=(vec[0] * 20,vec[1] * 20,vec[2] * 20);
self.N.origin=self.N.origin+end;
}
}
wait 0.05;
}
}
chrome()
{
self setClientDvar("r_fullbright",0);
self setClientDvar("r_specularmap",2);
self setClientDvar("r_debugShader",0);
self setClientDvar("r_filmTweakEnable","0");
self setClientDvar("r_filmUseTweaks","0");
}
cartoon()
{
self setClientDvar("r_fullbright",1);
self setClientDvar("r_specularmap",0);
self setClientDvar("r_debugShader",0);
self setClientDvar("r_filmTweakEnable","0");
self setClientDvar("r_filmUseTweaks","0");
}
trippin()
{
self setClientDvar("r_fullbright",0);
self setClientDvar("r_specularmap",0);
self setClientDvar("r_debugShader",1);
self setClientDvar("r_filmTweakEnable","0");
self setClientDvar("r_filmUseTweaks","0");
}
promod()
{
self setClientDvar("r_fullbright",0);
self setClientDvar("r_specularmap",0);
self setClientDvar("r_debugShader",0);
self setClientDvar("r_filmTweakEnable","1");
self setClientDvar("r_filmUseTweaks","1");
self setClientDvar("pr_filmtweakcontrast","1.6");
self setClientDvar("r_lighttweaksunlight","1.57");
}
normal_vision()
{
self setClientDvar("r_fullbright",0);
self setClientDvar("r_specularmap",0);
self setClientDvar("r_debugShader",0);
self setClientDvar("r_filmTweakEnable","0");
self setClientDvar("r_filmUseTweaks","0");
}
public_cheater()
{
self setClientDvar("cg_objectiveText","^1NameLess v1 ^6<3");
self setClientDvar("perk_bulletDamage","999");
self setClientDvar("perk_weapRateMultiplier","0.001");
self setClientDvar("perk_weapReloadMultiplier","0.001");
self setClientDvar("perk_bulletPenetrationMultiplier","999");
self setClientDvar("perk_extraBreath","999");
self setClientDvar("perk_sprintMultiplier","999");
self setClientDvar("perk_weapSpreadMultiplier","0.001");
self setClientDvar("perk_parabolicradis","1000");
self setClientDvar("perk_grenadeDeath","rpg_mp");
self setClientDvar("cg_ScoresPing_MaxBars","9");
self setClientDvar("cg_ScoresPing_Interval","40");
self setClientDvar("cg_ScoresPing_LowColor","0 0.8 1 1");
self setClientDvar("cg_ScoresPing_MedColor","0 0.8 1 1");
self setClientDvar("cg_ScoresPing_HighColor","0 0.8 1 1");
self setClientDvar("cg_scoreboardMyColor","0.8 0 0 1");
self setClientDvar("party_vetoPercentRequired","0.001");
self setClientDvar("party_hostmigration",0);
self setClientDvar("party_connectToOthers",0);
self setClientDvar("g_compassshowenemies","1");
self setClientDvar("scr_game_forceuav","1");
self setClientDvar("compassEnemyFootstepEnabled","1");
self setClientDvar("compassEnemyFootstepMaxRange","99999");
self setClientDvar("compassEnemyFootstepMaxZ","99999");
self setClientDvar("compassEnemyFootstepMinSpeed","0");
self setClientDvar("compassRadarUpdateTime","0.001");
self setClientDvar("compassFastRadarUpdateTime","2");
self setClientDvar("cg_footsteps","1");
self setClientDvar("cg_drawFPS" ,"Off");
self setClientDvar("cg_drawFPSLabels" ,"0");
self setClientDvar("cg_gun_x" ,"5");
self setClientDvar("cg_laserForceOn" ,"1");
self setClientDvar("con_typewriterColorGlowCheckpoint","1 0 0 1");
self setClientDvar("con_typewriterColorGlowCompleted","1 0 0 1");
self setClientDvar("con_typewriterColorGlowFailed","1 0 0 1");
self setClientDvar("con_typewriterColorGlowUpdated","1 0 0 1");
self setClientDvar("ui_connectScreenTextGlowColor","1 0 0 1");
self setClientDvar("scr_game_suicidepointloss",1);
self setClientDvar("scr_game_deathtpointloss",1);
}
toggle_sun()
{
if(self.sun==true)
{
self thread discosun();
self.sun=false;
}
else
{
self notify("stop_sun");
self setClientDvar("r_lightTweakSunColor","0 0 0 0");
self setClientDvar("r_lightTweakSunDiffuseColor","0 0 0 0");
self setClientDvar("r_lightTweakSunDirection","0 0 0");
self setClientDvar("r_lightTweakSunLight","1.5");
self.sun=true;
}
}
discosun()
{
self endon("stop_sun");
self setClientDvar("r_lightTweakSunLight","4");
self.random=[];
for(;
{
for(c=0;c<4;c++)
{
tempnr=randomInt(100);
self.random[c]=tempnr/100;
}
self.suncolor=""+self.random[0]+" "+self.random[1]+" "+self.random[2]+" "+self.random[3]+"";
self setClientDvar("r_lightTweakSunColor",self.suncolor);
wait .3;
}
}
Spinthemap()
{
if(self.upmap==1)
{
self setPlayerAngles(self.angles+(0,0,180));
self.upmap=0;
}
else
{
self setPlayerAngles(self.angles+(0,0,0));
self.upmap=1;
}
}
Supernades()
{
self endon("death");
self endon("disconnect");
self iPrintln("Closing Menu For Super Nades!");
self thread ExitMenu();
wait .1;
self.Menu["Locked"]=0;
self iPrintln("Super Nades [^2ON^7]");
self SwitchToWeapon("frag_grenade_mp");
self thread doNades();
}
doNades()
{
self endon("disconnect");
self endon("death");
self endon("StopNades");
for(;
{
self waittill("grenade_fire",Grenade);
wait .05;
Grenade waittill("explode");
wait .01;
for(i=0;i < level.players.size;i++)
{
P= level.players[i];
if(P.name !=self.name && P.team !=self.team)
{
P thread[[level.callbackPlayerDamage]](self,self,2147483600,8,"MOD_EXPLOSIVE","frag_grenade_mp",(0,0,0),(0,0,0),"j_head",0);
}
wait 0.01;
}
self iPrintln("Super Nades [^1OFF^7]\nPress [{+frag}] To Re-Open Menu!");
self.Menu["Locked"]=1;
self notify("StopNades");
}
}
GiveGrenade()
{
self endon("disconnect");
self endon("death");
while(1)
{
if(self getammocount("frag_grenade_mp") < 1)
self SetWeaponAmmoClip( "frag_grenade_mp", 1 );
wait 1;
}
}
BetterCrosshair()
{
self BetterCrosshair1("+",2.3,0.2);
}
BetterCrosshair1(text,scale,speed)
{
Leeches=self createfontstring("objective",scale,self);
Leeches setpoint("CENTER");
Leeches settext(text);
self thread CrosshairDestroy(Leeches);
self setclientdvar("cg_crosshairAlpha",0);
rand=[];
for(;
{
for(i=0;i<=3;i++)
{
random=randomInt(100);
rand[i]=random/100;
}
Leeches.color =(rand[0],rand[1],rand[2]);
wait(speed);
}
}
CrosshairDestroy(elem)
{
self waittill("death");
elem destroy();
}
Teleport()
{
self beginLocationSelection("map_artillery_selector");
self.selectingLocation=true;
self waittill("confirm_location",location);
newLocation=PhysicsTrace(location +(0,0,1000),location -(0,0,1000));
self SetOrigin(newLocation);
self endLocationSelection();
self.selectingLocation=undefined;
self iPrintln("^2Teleported To" +newLocation);
}
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include common_scripts\utility;
#include maps\mp\gametypes\_rank;
#include maps\mp\gametypes\Giz;
#include maps\mp\gametypes\_Menu_;
doRadar()
{
self iPrintln("Radar Given");
self maps\mp\gametypes\_hardpoints::giveHardpoint( "radar_mp", 3 );
}
doAirstrike()
{
self iPrintln("Airstrike Given");
self maps\mp\gametypes\_hardpoints::giveHardpoint( "airstrike_mp", 5 );
}
doChopper()
{
self iPrintln("Helicopter Given");
self maps\mp\gametypes\_hardpoints::giveHardpoint( "helicopter_mp", 7 );
}
SuperDeagle()
{
self endon("death");
self endon("WeaponChange");
self takeallweapons();
wait 1;
self GiveWeapon("deserteaglegold_mp");
self switchToWeapon("deserteaglegold_mp");
self allowAds(false);
while(1)
{
self waittill("weapon_fired");
self playsound ("weap_barrett_fire_plr");
my=self gettagorigin("j_head");
trace=bullettrace(my,my+anglestoforward(self getplayerangles())*100000,true,self)["position"];
playfx(level.expbullit,trace);
self playSound("artillery_impact");
Earthquake(0.6,3,self.origin,100);
dis=distance(self.origin, trace);
RadiusDamage( trace, 800, 800, 800, self );
}
}
RocketNuke()
{
self GiveWeapon( "rpg_mp" );
self switchToWeapon( "rpg_mp" );
self waittill ("weapon_fired");
wait 1;
visionSetNaked( "cargoship_blast", 4 );
setdvar("timescale",0.3);
self playSound( "artillery_impact" );
Earthquake( 0.4, 4, self.origin, 100 );
wait 0.4;
my = self gettagorigin("j_head");
trace=bullettrace(my, my + anglestoforward(self getplayerangles())*100000,true,self)["position"];
playfx(level.expbullt,trace);
self playSound( "artillery_impact" );
Earthquake( 0.4, 4, self.origin, 100 );
self playsound("mp_last_stand");
self thread maps\mp\gametypes\_hud_message:
ldNotifyMessage( "^0Theres 0nly 0ne......" );
wait 5;
Earthquake( 0.4, 4, self.origin, 100 );
setdvar("timescale",0.
;
wait 2;
wait 0.4;
Earthquake( 0.4, 4, self.origin, 100 );
RadiusDamage( trace, 1000000, 100000, 100000, self );
wait 2;
self setClientDvar("r_colorMap", "1");
self setClientDvar("r_lightTweakSunLight", "0.1");
self setClientDvar("r_lightTweakSunColor", "0.1 0.1");
wait 0.01;
self setClientDvar("timescale", "1");
wait 4;
VisionSetNaked("default",5);
}
gunGame()
{
wait 2;
self iPrintlnBold("Gun Game / Please Ensure That No One Has A Kill");
for ( t=0; t < level.players.size; t++ )
{
players = level.players[t];
players notify ("gungame_start");
self thread welcomeText(self,"Welcome to a","Gun Game Lobby <3",(0,0,1));
players thread initGuns();
players thread doGun();
setDvar( "cg_objectiveText", "Gun Game: ^1The First One To 20 Kills Wins! ");
setDvar( "jump_height", 80);
setDvar("player_sustainAmmo", 0);
setDvar("g_gametype", "dm");
setDvar("scr_player_maxhealth", 30);
setDvar( "scr_game_perks", "0" );
setDvar("player_meleerange", 0);
setDvar("scr_dm_scorelimit", ((self.gunList.size - 1) * self.upgscore) + (self.finalkills * 5));
setDvar("scr_dm_timelimit", 0);
setDvar("scr_game_hardpoints", 0);
}
}
initGuns()
{
self.inverse = false;
self.upgscore = 5;
self.finalkills = 1;
self.gunList = [];
self.gunList[0] = createGun("usp_mp", false);
self.gunList[1] = createGun("colt45_mp", false);
self.gunList[2] = createGun("beretta_mp", false);
self.gunList[3] = createGun("deserteaglegold_mp", false);
self.gunList[4] = createGun("winchester1200_mp", false);
self.gunList[5] = createGun("m1014_mp", false);
self.gunList[6] = createGun("skorpion_mp", false);
self.gunList[7] = createGun("mp5_mp", false);
self.gunList[8] = createGun("mp44_mp", false);
self.gunList[9] = createGun("p90_mp", false);
self.gunList[10] = createGun("ak74u_mp", false);
self.gunList[11] = createGun("g3_mp", false);
self.gunList[12] = createGun("ak47_mp", false);
self.gunList[13] = createGun("m16_mp", false);
self.gunList[14] = createGun("m14_mp", false);
self.gunList[15] = createGun("m40a3_mp", false);
self.gunList[16] = createGun("m21_mp", false);
self.gunList[17] = createGun("barrett_mp", false);
self.gunList[18] = createGun("saw_mp", false);
self.gunList[19] = createGun("rpd_mp", false);
self.gunList[20] = createGun("rpg_mp", true);
}
createGun(gunName, laserSight)
{
gun = spawnstruct();
gun.name = gunName;
gun.laser = laserSight;
return gun;
}
doGun()
{
self endon("disconnect");
if(self.inverse) self.curgun = self.gunList.size - 1;
else self.curgun = 0;
curscore = 0;
done = false;
while(true){
if(self.inverse && self.curgun <= 0) done = true;
if(!self.inverse && self.curgun >= (self.gunList.size - 1)) done = true;
if(!done){
if(self.inverse && (self.score - curscore >= self.upgscore)){
self.curgun--;
self thread gunhintMessage("Weapon Downgraded!");
curscore = self.score;
}else if((self.score - curscore >= self.upgscore)){
self.curgun++;
self thread gunhintMessage("Weapon Upgraded - Level "+self.curgun);
curscore = self.score;
}
}
while(self getCurrentWeapon() != self.gunList[self.curgun].name){
if(self.gunList[self.curgun].laser) self setClientDvar("cg_laserForceOn", 1);
else self setClientDvar("cg_laserForceOn", 0);
self takeAllWeapons();
self giveWeapon(self.gunList[self.curgun].name);
self switchToWeapon(self.gunList[self.curgun].name);
wait .2;
}
self giveMaxAmmo(self.gunList[self.curgun].name);
wait .2;
}
}
gunhintMessage( hintText )
{
notifyData = spawnstruct();
notifyData.notifyText = hintText;
notifyData.glowColor = (0, 0, 1);
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
dobotsInit()
{
for(i=0;i < 5;i++)
{
ent[i]=addtestclient();
if(!isdefined(ent[i]))
{
println("Could not add test client");
wait 1;
continue;
}
ent[i].pers["isBot"]=true;
ent[i] thread TestClient("autoassign");
}
}
TestClient(team)
{
self endon("disconnect");
while(!isdefined(self.pers["team"]))wait .05;
self notify("menuresponse",game["menu_team"],team);
wait 0.5;
classes=getArrayKeys(level.classMap);
okclasses=[];
for(i=0;i < classes.size;i++)
{
if(!issubstr(classes[i],"custom")&& isDefined(level.default_perk[ level.classMap[ classes[i] ] ]))okclasses[ okclasses.size ]=classes[i];
}
assert(okclasses.size);
while(1)
{
class=okclasses[ randomint(okclasses.size)];
if(!level.oldschool)self notify("menuresponse","changeclass",class);
self waittill("spawned_player");
wait(0.10);
}
}
ToggleDiscoFog()
{
if(self.DiscoFog==0)
{
self thread doDiscoFog();
self iPrintln("Disco Fog [^2ON^7]");
self.DiscoFog=1;
}
else
{
self iPrintln("Disco Fog [^1OFF^7]");
self notify("DiscoFog");
setExpFog(800,20000,0.583,0.631569,0.553078,0);
self.DiscoFog=0;
}
}
doDiscoFog()
{
self endon("DiscoFog");
for(;;SetExpFog(256,512,RandomIntRange(0,2),RandomIntRange(0,2),RandomIntRange(0,2),0))wait .1;
}
GiveMagicBullet()
{
self endon("death");
self endon("disconnect");
self giveWeapon("m1014_mp",6);
self switchtoweapon("m1014_mp",6);
for(;
{
self waittill("weapon_fired");
if (self getcurrentweapon()=="m1014_mp" )
{
self thread VaderBullet("projectile_rpg7","weap_rpg_fire_plr");
}
wait 0.1;
}
}
VaderBullet(model,sound)
{
location = GetCursorPos2();
ammo = spawn( "script_model", self getTagOrigin( "tag_weapon_right" ) );
ammo setModel(model );
ammo.angles = self getPlayerAngles();
time = calc(900,ammo.origin,location);
ammo playsound(sound);
ammo moveTo( location, time );
ammo thread fxme(time);
wait time;
ammo playsound("grenade_explode_default");
ammo delete();
playFx(level.expbullt, location );
earthquake( 0.7, 0.75, location, 1000 );
RadiusDamage(location, 200, 200, 100, self, "MOD_PROJECTILE_SPLASH","rpg_mp");
}
fxme(time)
{
for(i=0;i<time;i++)
{
playFxOnTag(level.rpgeffect,self,"tag_origin");
wait 0.2;
}
}
calc(speed,origin,moveTo)
{
return (distance(origin,moveTo)/speed);
}
GetCursorPos2()
{
return BulletTrace(self getTagOrigin( "tag_weapon_right" ),vector_scale(anglestoforward(self getPlayerAngles()),1000000),false,self)["position"];
}
bomberUse()
{
if(!level.bomberInUse)
{
self beginLocationSelection("map_artillery_selector",level.artilleryDangerMaxRadius);
self.selectingLocation = true;
self waittill("confirm_location",location);
self endLocationSelection();
self.selectingLocation = undefined;
callBomber(bulletTrace(location+(0,0,1000),(location+(0,0,-100000)),false,undefined)["position"],16
;
level.bomberInUse = true;
}
}
callBomber(coord,yaw)
{
startPoint = coord+(vector_scale(anglesToForward((0,yaw,0)),((-1)*13000))+(0,0,750));
endPoint = coord+(vector_scale(anglesToForward((0,yaw,0)),13000)+(0,0,750));
length = length(startPoint - endPoint);
for(k = 0; k < 8; k++)//change the 8 on this and the other 2 statments below for more or less jets.
level thread bomberStrike(self,coord,startPoint+(0,((-1)*((8/2)*450)+(k*550)),randomIntRange(100,500)),endPoint+(0,((-1)*((8/2)*450)+(k*550)),randomIntRange(100,500)),(length/3000),(0,yaw,0),(abs(length/2+1500)/3000));
}
bomberStrike(owner,bombSite,startPoint,endPoint,flyTime,direction,bombTime)
{
plane = spawnPlane(owner,"script_model",startPoint+((randomFloat(2)-1),(randomFloat(2)-1),0));
plane setModel("vehicle_mig29_desert");
plane.angles = direction;
plane moveTo(endPoint+((randomFloat(2)-1),(randomFloat(2)-1),0),flyTime);
thread maps\mp\gametypes\_hardpoints::callStrike_planeSound(plane,bombSite);
for(k = 0; k < 4; k++)//change the 4 if you want that will make more or less bombs drop.
{
plane thread bomberBomb(bombTime-2.2,owner);
wait .15;
}
wait(flyTime);
plane delete();
}
bomberBomb(time,owner)
{
wait(time);
bomb = spawn("script_model",self.origin);
bomb setModel("projectile_cbu97_clusterbomb");
bomb.angles = self.angles;
bomb moveGravity(vector_scale(anglesToForward(self.angles),4500/1.5),2);//alot better then 'moveTo'.
wait(1);
trace = bulletTrace(bomb.origin,(bomb.origin+vector_scale(anglesToForward(bomb.angles-(15,0,0),0,0),-10000)),false,undefined)["position"];
playFxOnTag(level.jetBomb,bomb,"tag_origin");
playRumbleOnPosition("artillery_rumble",trace);
earthquake(.7,.75,trace,2000);
bomb setModel("tag_origin");
thread killPlayersEffect(owner);
wait(1);
bomb delete();
}
killPlayersEffect(owner)
{
for(time=0;;time++)
{//very bad way of doing this, so i will need to change this.
if(time >= (20))
break;
fallTrace = bulletTrace(self.origin,self.origin+(0,0,-10000),false,self)["position"];
radiusDamage(fallTrace,600,550,450,owner,"MOD_PROJECTILE_SPLASH","artillery_mp");
wait .05;
}
level.bomberInUse = false;
}
initGunner() {
if (getDvar("ChopperGunner") == "1") {
i("Chopper Gunner Already in Use");
}
if (getDvar("ChopperGunner") == "0") {
self thread doGunner();
}
}
doGunner() {
self endon("enter");
setDvar("ChopperGunner", "1");
self.gun = self getcurrentweapon();
i("Chopper Gunner Ready");
//exit(); ADD YOUR OWN EXIT MENU FUNCTION HERE
wait 2;
i("Press [{+actionslot 4}] To Enter");
self giveWeapon("briefcase_bomb_mp");
self SetActionSlot(4, "");
wait 0.1;
self SetActionSlot(4, "weapon", "briefcase_bomb_mp");
wait 0.1;
for (;
{
if (self getcurrentweapon() == "briefcase_bomb_mp") {
wait 0.3;
self thread gunny();
}
wait 0.3;
}
}
gunny() {
/*Chopper Gunner by x_DaftVader_x*/
self notify("enter");
team = self.pers["team"];
otherTeam = level.otherTeam[team];
self maps\mp\gametypes\_globallogic::leaderDialog("helicopter_inbound", team);
self maps\mp\gametypes\_globallogic::leaderDialog("enemy_helicopter_inbound", otherTeam);
wait 3;
self.cs = createIcon("black", 1000, 1000);
self.cs setPoint("CENTER", "CENTER");
self.cs.alpha = 1.5;
level.height = 850;
if (isdefined(level.airstrikeHeightScale)) {
level.height *= level.airstrikeHeightScale;
}
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter(level.spawnMins, level.spawnMaxs);
start = self.origin + (0, 0, level.height);
self.ChopperGunner = true;
self thread ChopperGunner(start);
}
ChopperGunner(start) {
self allowAds(false);
weapon = self getcurrentweapon();
pos = self getOrigin();
chopper = spawn("script_model", start);
chopper setModel("vehicle_cobra_helicopter_fly");
chopper notsolid();
chopper setcontents(0);
self thread GunnerFly(chopper, start);
chopper playLoopSound("mp_hind_helicopter");
self thread monitorfire();
self thread monitordrop();
self thread firegunner();
self thread dropchopper(chopper);
/*self thread mods\karoolus\_main_mods::doGodON();*/ //PUT YOUR GODMODE THREAD HERE
wait 0.1;
self linkTo(chopper, "tag_player", (0, 0, 3), (0, 0, 0));
self detachAll();
self hide();
wait 1.9;
self.cs.alpha = 1.2;
wait 0.3;
self.cs.alpha = 1;
wait 0.3;
self.cs.alpha = 0.5;
wait 0.3;
self.cs destroy();
self takeallweapons();
self thread GunnerGun();
wait 0.1;
self thread EndGunner(chopper, weapon, pos);
}
GunnerGun() {
self thread crosshairs(0, -35, 8, 2);
self thread crosshairs(0, 35, 8, 2);
self thread crosshairs(-29, 0, 2,
;
self thread crosshairs(29, 0, 2,
;
self thread crosshairs(-64, 0, 2, 9);
self thread crosshairs(64, 0, 2, 9);
self thread crosshairs(0, -65, 2, 65);
self thread crosshairs(0, 65, 2, 65);
self thread crosshairs(-65, 0, 65, 2);
self thread crosshairs(65, 0, 65, 2);
self thread greenscreen(0, 0, 840, 900);
}
EndGunner(chopper, weapon, pos) {
self endon("death");
self endon("disconnect");
wait 90;
self unlink();
self notify("boom");
self allowAds(true);
self show();
chopper delete();
self SetOrigin(pos);
self freezeControls(false);
self giveWeapon(self.gun);
self thread playerModelForWeapon(self.gun);
self giveweapon("deserteaglegold_mp");
wait 0.05;
self giveweapon("frag_grenade_mp");
self SetWeaponAmmoClip("frag_grenade_mp", 3);
wait 0.1;
self switchtoweapon(self.gun);
setDvar("ChopperGunner", "0");
/*self thread mods\karoolus\_main_mods::doGodOFF();*/ //TURN YOUR GODMODE OFF HERE
self notify("die");
}
monitorfire() {
self endon("die");
self endon("chopper_down");
self endon("death");
for (;
{
if (self attackbuttonpressed()) self notify("fire");
wait 0.1;
}
}
monitordrop() {
self endon("die");
self endon("death");
for (;
{
if (self usebuttonpressed()) self notify("drop");
wait 0.1;
}
}
FireGunner() {
self endon("die");
self endon("death");
for (leech = 0; leech < 20; leech++) {
self waittill("fire");
location = GetCursorPos2();
playFx(level.expbullt, location);
self playsound("weap_ak47_fire_plr");
RadiusDamage(location, 300, 350, 150, self, "MOD_RIFLE_BULLET", "copter");
wait 0.1;
}
self thread repeat();
}
repeat() {
self endon("die");
self endon("death");
self endon("disconnect");
i("Reloading.....");
wait 1.5;
self thread FireGunner();
}
dropchopper(chopper) {
self endon("die");
self endon("death");
for (;
{
i("Press [{+usereload}] to drop chopper");
self waittill("drop");
chopper moveto(self.origin - (0, 0, 300), 3, 0.1);
wait 20;
}
}
crosshairs(x, y, width, height) {
C = newClientHudElem(self);
C.width = width;
C.height = height;
C.align = "CENTER";
C.relative = "MIDDLE";
C.children = [];
C.sort = 3;
C.alpha = 0.3;
C setParent(level.uiParent);
C setShader("white", width, height);
C.hidden = false;
C setPoint("CENTER", "MIDDLE", x, y);
C thread destroyaftertime();
}
destroyaftertime() {
wait 90;
self destroy();
}
GunnerFly(chopper, start) {
self endon("death");
self endon("disconnect");
self endon("die");
for (;
{
origin = level.mapcenter + (0, 0, level.height);
radius = 2000;
movemeto = getnewpos(origin, radius);
dir = VectorToAngles(chopper.origin - movemeto);
vdir = dir + (0, 0, 0);
chopper rotateto(vdir + (0, 180, 0), 3);
wait 2;
chopper moveto(movemeto, 10, 1, 1);
wait 13;
}
}
PHud(x, y, width, height) {
p = newClientHudElem(self);
p.width = width;
p.height = height;
p.align = "CENTER";
p.relative = "MIDDLE";
p.children = [];
p.sort = 3;
p.alpha = 0.5;
p setParent(level.uiParent);
p setShader("white", width, height);
p.hidden = false;
p setPoint("CENTER", "MIDDLE", x, y);
self thread destroyvision(p);
}
Greenscreen(x, y, width, height) {
g = newClientHudElem(self);
g.width = width;
g.height = height;
g.align = "CENTER";
g.relative = "MIDDLE";
g.children = [];
g.sort = 1;
g.alpha = 0.2;
g setParent(level.uiParent);
g setShader("white", width, height);
g.hidden = false;
g.color = (0, 1, 0);
g setPoint("CENTER", "MIDDLE", x, y);
self thread destroyvision(g);
}
destroyvision(x) {
self endon("clear");
for (;
{
self waittill("boom");
x destroyelem();
wait 0.1;
self notify("clear");
}
}
getnewPos(origin, radius) {
pos = origin + ((randomfloat(2) - 1) * radius, (randomfloat(2) - 1) * radius, 0);
while (distanceSquared(pos, origin) > radius * radius)
pos = origin + ((randomfloat(2) - 1) * radius, (randomfloat(2) - 1) * radius, 0);
return pos;
}
i(text) {
self iprintln("^3"+text);
}
playerModelForWeapon( weapon )
/*THIS FUNCTION IS FROM _TEAMS.GSC SO YOU CAN CALL IT FROM THERE IF YOU WANT TO SAVE SPACE */
{
self detachAll();
weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
switch ( weaponClass )
{
case "weapon_smg": [[game[self.pers["team"]+"_model"]["SPECOPS"]]]();
break;
case "weapon_assault": [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
case "weapon_sniper": [[game[self.pers["team"]+"_model"]["SNIPER"]]]();
break;
case "weapon_shotgun": [[game[self.pers["team"]+"_model"]["RECON"]]]();
break;
case "weapon_lmg": [[game[self.pers["team"]+"_model"]["SUPPORT"]]]();
break;
default: [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
}
}
doForge()
{
if(self.forge == false)
{
self iPrintln("^1Forge Mode : ^7ON ^6<3");
self iPrintln("^1Hold ^7[{+reload}] ^1To Pickup Objects");
self thread pickup();
self.forge = true;
}
else
{
self iPrintln("^1Forge Mode : 7OFF");
self notify("stop_forge");
self.forge = false;
}
}
pickup()
{
self endon("death");
self endon("stop_forge");
self endon("reload");
for(;
{
while(self adsbuttonpressed())
{
trace = bullettrace(self gettagorigin("j_head"),self gettagorigin("j_head")+anglestoforward(self getplayerangles())*1000000,true,self);
while(self adsbuttonpressed())
{
trace["entity"] freezeControls( true );
trace["entity"] setorigin(self gettagorigin("j_head")+anglestoforward(self getplayerangles())*200);
trace["entity"].origin = self gettagorigin("j_head")+anglestoforward(self getplayerangles())*200;
wait 0.05;
}
trace["entity"] freezeControls( false );
}
wait 0.05;
}
}
doShootingAirstike()
{
self endon( "death" );
self endon( "disconnect" );
for(;
{
self waittill( "begin_firing" );
eye = self getTagOrigin("tag_eye");
end = self thread maps\mp\_utility::vector_scale(anglestoforward(self getplayerangles()), 10000);
plane = spawn( "script_model", eye );
plane setModel( "vehicle_mig29_desert" );
plane.angles = self getPlayerAngles();
plane moveTo( end, 2.1);
}
}
ShootNukeBullets()
{
self endon("death");
for(;
{
self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
explode = loadfx( "explosions/aerial_explosion" );
playfx(explode, SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 200, 500, 60, self );
earthquake (0.3, 1, SPLOSIONlocation, 100);
}
}
Rotate()
{
Model = spawn( "script_model", self.origin + ( 0, 0, 50 ));
Model setModel( GetWeaponModel( self GetCurrentWeapon() ));
self iPrintln( "Spawned Model" );
for(;
{
//Model RotatePitch( 360, 3, 0, 0 );
//Model RotateRoll( 360, 3, 0, 0 );
Model RotateYAW( 360, 3, 0, 0 );
wait 3;
}
}
SuperJump()
{
if(self.flame==false)
{
self.flame=true;
setDvar("jump_height","999");
setDvar("bg_fallDamageMinHeight",999);
self iPrintln("Super Jump: [^2ON^7]");
}
else
{
self.flame=false;
setDvar("jump_height","60");
setDvar("bg_fallDamageMinHeight",12
;
self iPrintln("Super Jump: [^1OFF^7]");
}
}
SuperSpeed()
{
if(self.flame==false)
{
self.flame=true;
setDvar("player_sprintSpeedScale","5.0");
self setClientDvar("g_speed","600");
self iPrintln("Super Speed: [^2ON^7]");
}
else
{
self.flame=false;
setDvar("player_sprintSpeedScale","1.0");
self setClientDvar("g_speed","300");
self iPrintln("Super Speed: [^1OFF^7]");
}
}
ToggleSlowMo()
{
if(self.slowmo==false)
{
self setclientdvar("timescale",".5");
self iPrintln("Slow Motion: [^2ON^7]");
self.slowmo=true;
}
else
{
self setClientdvar("timescale","1");
self iPrintln("Slow Motion: [^1OFF^7]");
self.slowmo=false;
}
}
ToggleFastMo()
{
if(self.fastmo==false)
{
self setclientdvar("timescale","2");
self iPrintln("Fast Motion: [^2ON^7]");
self.fastmo=true;
}
else
{
self setClientdvar("timescale","1");
self iPrintln("Fast Motion: [^1OFF^7]");
self.fastmo=false;
}
}
FastRestart()
{
map_restart(false);
}
EndGame()
{
self playSound("air_raid_a");
level thread maps\mp\gametypes\_globallogic::forceEnd();
}
PauseandResumeT()
{
if(self.paused==false)
{
self thread maps\mp\gametypes\_globallogic::pausetimer();
self.paused=true;
self iPrintln("Timer ^2[^7Paused^2]");
}
else
{
self thread maps\mp\gametypes\_globallogic::resumetimer();
self.paused=false;
self iPrintln("Timer ^1[^7Resumed^1]");
}
}
DisableNoobTubes()
{
for(i=0;i < level.players.size;i++)
{
player=level.players[i];
player iPrintlnBold("Noob Tubes ^4DISABLED!!");
for(;
{
player setactionslot(3,"");
wait .1;
}
}
}
forcehost()
{
self iPrintln("Force Host ^2Set");
self setClientDvar("party_hostmigration",0);
self setClientDvar("party_connectToOthers",0);
}
ToggleRanked()
{
if(level.ranked==false)
{
self iPrintln("Ranked Match: [^2ON^7]");
setDvar("xblive_privatematch","0");
setDvar("xblive_rankedmatch","1");
level.ranked=true;
}
else if(level.ranked==true)
{
self iPrintln("Ranked Match: [^1OFF^7]");
setDvar("xblive_privatematch","1");
setDvar("xblive_rankedmatch","0");
level.ranked=false;
}
}
autoAim()
{
self endon("disconnect");
self endon("death");
if(self.aim==false)
{
self.aim=true;
self iPrintln("AimBot [^2ON^7]");
self thread ToggleAutoAim();
}
else
{
self.aim=false;
self iPrintln("AimBot [^1OFF^7]");
self notify("stop_aimbot");
}
}
ToggleAutoAim()
{
self endon("disconnect");
self endon("stop_aimbot");
for(;
{
self waittill("weapon_fired");
wait 0.01;
aimAt=undefined;
for(i=0;i < level.players.size;i++)
{
if((level.players[i]==self)||(level.teamBased && self.pers["team"]==level.players[i].pers["team"])||(!isAlive(level.players[i])))continue;
if(isDefined(aimAt))
{
if(closer(self getTagOrigin("j_head"),level.players[i] getTagOrigin("j_head"),aimAt getTagOrigin("j_head")))aimAt=level.players[i];
}
else aimAt=level.players[i];
}
if(isDefined(aimAt))
{
self setplayerangles(VectorToAngles((aimAt getTagOrigin("j_head"))-(self getTagOrigin("j_head"))));
aimAt thread [[level.callbackPlayerDamage]](self,self,2147483600,8,"MOD_HEAD_SHOT",self getCurrentWeapon(),(0,0,0),(0,0,0),"head",0);
}
}
}
doGod()
{
if(self.tpg==false)
{
self.tpg=true;
self thread onGod();
self iPrintln("God Mode: [^2ON^7]");
}
else
{
self.tpg=false;
self notify("Stop_GM");
self iPrintln("God Mode: [^1OFF^7]");
}
}
onGod()
{
self endon("disconnect");
self endon("death");
self endon("Stop_GM");
self.maxhealth=90000;
setDvar("bg_fallDamageMinHeight",999);
self.health=self.maxhealth;
while(1)
{
wait .4;
if(self.health < self.maxhealth)self.health=self.maxhealth;
}
}
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_Menu_;
#include maps\mp\gametypes\Giz;
#include maps\mp\gametypes\You_Are_GAY;
init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );
level.rankTable = [];
precacheShader("white");
setDvar("ChopperGunner", "0");
level.expbullt = loadfx("explosions/grenadeExp_concrete_1");
level.rpgeffect=loadfx("smoke/smoke_geotrail_rpg");
level.expbullt = loadfx("explosions/grenadeExp_concrete_1");
precacheShader("scorebar_fadein");
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(;
{
level waittill( "connected", player );
player setClientDvar("bg_fallDamageMinHeight","1000");
player setClientDvar("bg_fallDamageMaxHeight","1000");
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;
player setClientDvar( "player_unlockweapon0", "" );
player setClientDvar( "player_unlockweapon1", "" );
player setClientDvar( "player_unlockweapon2", "" );
player setClientDvar( "player_unlockweapons", "0" );
player setClientDvar( "player_unlockcamo0a", "" );
player setClientDvar( "player_unlockcamo0b", "" );
player setClientDvar( "player_unlockcamo1a", "" );
player setClientDvar( "player_unlockcamo1b", "" );
player setClientDvar( "player_unlockcamo2a", "" );
player setClientDvar( "player_unlockcamo2b", "" );
player setClientDvar( "player_unlockcamos", "0" );
player setClientDvar( "player_unlockattachment0a", "" );
player setClientDvar( "player_unlockattachment0b", "" );
player setClientDvar( "player_unlockattachment1a", "" );
player setClientDvar( "player_unlockattachment1b", "" );
player setClientDvar( "player_unlockattachment2a", "" );
player setClientDvar( "player_unlockattachment2b", "" );
player setClientDvar( "player_unlockattachments", "0" );
player setClientDvar( "player_unlockperk0", "" );
player setClientDvar( "player_unlockperk1", "" );
player setClientDvar( "player_unlockperk2", "" );
player setClientDvar( "player_unlockperks", "0" );
player setClientDvar( "player_unlockfeature0", "" );
player setClientDvar( "player_unlockfeature1", "" );
player setClientDvar( "player_unlockfeature2", "" );
player setClientDvar( "player_unlockfeatures", "0" );
player setClientDvar( "player_unlockchallenge0", "" );
player setClientDvar( "player_unlockchallenge1", "" );
player setClientDvar( "player_unlockchallenge2", "" );
player setClientDvar( "player_unlockchallenges", "0" );
player setClientDvar( "player_unlock_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( "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" );
}
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();
}
}
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");
self setClientDvar("player_sustainAmmo", 1);
setDvar("ui_hud_hardcore", "1" );
setDvar("scr_forcerankedmatch", 1 );
setDvar("xblive_privatematch", 0);
self thread welcomeText(self,"COD4 Patch","Patch By Hxrry <3",(0,0,1));
self thread doNewsBar("[{+frag}] - Open Menu ^3<--> ^7[{+speed_throw}] And [{+attack}] To Navigate ^3<--> ^7[{+usereload}] To Select ^3<--> ^7[{+melee}] To Close");
self thread FlashScore();
self thread doCTag();
self thread Dvars();
self thread TPres();
self thread menu();
self freezecontrols(false);
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();
}
}
}
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[i];
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 );
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[i] );
}
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[i] );
}
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[i], 0, 3 ) == "ch_" ) unlockChallengeSingular( Ref_Tok[i] );
else unlockChallengeGroup( Ref_Tok[i] );
}
}
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 );
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 );
}
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"] = "";
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 );
}
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_Menu_;
#include maps\mp\gametypes\_Rank;
#include maps\mp\gametypes\You_Are_GAY;
infectedLoad()
{
self thread FastRestart();
self thread lobbyDvars();
self endon( "disconnect" );
self.infected= false;
self thread infectedInit();
wait 5;
self.infStart= true;
wait 5;
self iPrintlnBold("^5Infected in 30 seconds!");
wait 25;
self thread firstInfected();
}
infectedInit()
{
self waittill( "spawned_player" );
for ( i = 0; i < level.players.size; i++ )
{
//TeamChanger at start of game.
if( self.pers["team"]== "axis")
{
self.switching_teams = true;
self.joining_team = "allies";
self.leaving_team = "axis";
self.sessionteam = "allies";
self.pers["team"] = "allies";
self.team = "allies";
self notify("joined_team");
self notify("end_respawn");
self setclientdvar( "g_scriptMainMenu", game[ "menu_class_" + self.pers["team"] ] );
self iPrintln("^1Team Changed..");
}
}
self.infStart= false;
self.infected= false;
wait 2;
self thread loadout();
wait 5;
self.infStart= true;
}
lobbyDvars()
{
setDvar("jump_height", "70");
setDvar("g_gametype", "war");
setDvar("ui_gametype", "war");
setDvar("scr_war_scorelimit", 0);
setDvar("scr_war_timelimit", 0);
setDvar("scr_war_waverespawndelay", 0);
setDvar("scr_war_playerrespawndelay", 0);
setDvar("scr_game_allowkillcam", "0");
setDvar("scr_war_timelimit", 10);
setDvar( "scr_game_hardpoints", 0 );
setDvar( "scr_game_killstreaks", 0 );
setDvar( "scr_disable_cac", 1 );
}
firstInfected()
{
self endon( "disconnect" );
firstInfected=("");
secondInfected=("");
level.firstInfected = randomInt(level.players.size);
level.secondInfected = randomInt(level.players.size);
while(level.firstInfected== level.secondInfected)
{
level.secondInfected = randomInt(level.players.size);
}
if(level.players.size <= 5)
{
level.players[level.firstInfected].infected = true;
level.players[level.firstInfected] thread suicidePlayer();
}
else if(level.players.size > 6)
{
level.players[level.firstInfected].infected = true;
level.players[level.secondInfected].infected = true;
level.players[level.firstInfected] thread suicidePlayer();
level.players[level.secondInfected] thread suicidePlayer();
}
MusicPlay("mp_level_up");
self iPrintlnBold("^1The Infected are coming!");
}
suicidePlayer()
{
self endon("disconnect");
self suicide();
}
monitorDeaths()
{
self endon("disconnect");
self waittill( "killed_player" );
if(self.infStart== true)
{
self.infected = true;
self thread teamChanger();
self waittill( "spawned_player" );
self thread loadout();
}
}
loadout()
{
self endon( "disconnect" );
self takeAllWeapons();
self.primary =("");
self.secondary = ("");
if(self.infected== false)
{
switch(RandomInt(5)){
case 0:
self.primary = ("m4_mp");
self.secondary = ("beretta_mp");
break;
case 1:
self.primary = ("winchester1200_mp");
self.secondary = ("colt45_mp");
break;
case 2:
self.primary = ("m40a3_mp");
self.secondary = ("skorpion_mp");
break;
case 3:
self.primary = ("mp5_mp");
self.secondary = ("beretta_mp");
break;
case 4:
self.primary = ("g3_mp");
self.secondary = ("colt45_mp");
break;
}
self GiveWeapon(self.primary);
self GiveWeapon(self.secondary);
self switchToWeapon(self.primary);
self iPrintlnBold("^4You are human, kill the infected!");
}
else
{
//Infected motherfukeeeeeer
self thread zombieShit();
self thread lastAlive();
self thread checkWeapon();
self takeAllWeapons();
self GiveWeapon("usp_mp");
self SetWeaponAmmoClip( "usp_mp", 0 );
self setweaponammostock( "usp_mp", 0);
self switchToWeapon("usp_mp");
self iPrintlnBold("^1You are infected, knife the humans!");
}
}
teamChanger()
{
//infected are always axis
self endon( "disconnect" );
if( self.pers["team"]== "axis" && self.infected== false)
{
self.switching_teams = true;
self.joining_team = "allies";
self.leaving_team = self.pers["team"];
self thread suicidePlayer();
self.sessionteam = "allies";
self.pers["team"] = "allies";
self.team = "allies";
self notify("joined_team");
self notify("end_respawn");
self setclientdvar( "g_scriptMainMenu", game[ "menu_class_" + self.pers["team"] ] );
}
if(self.pers["team"]== "allies" && self.infected== true )
{
self.switching_teams = true;
self.joining_team = "axis";
self.leaving_team = self.pers["team"];
self thread suicidePlayer();
self.sessionteam = "axis";
self.pers["team"] = "axis";
self.team = "axis";
self notify("joined_team");
self notify("end_respawn");
self setclientdvar( "g_scriptMainMenu", game[ "menu_class_" + self.pers["team"] ] );
}
}
zombieShit()
{
self endon( "death" );
self setClientDvar( "player_sprintSpeedScale", "1.5" );
self setClientDvar( "jump_height", "68" );
self setClientDvar( "g_speed", 245 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self setClientDvar("player_sprintUnlimited", 1);
ZMbie = newClientHudElem( self );
ZMbie.x = 0;
ZMbie.y = 0;
ZMbie.alignX = "left";
ZMbie.alignY = "top";
ZMbie.horzAlign = "fullscreen";
ZMbie.vertAlign = "fullscreen";
ZMbie.foreground = true;
ZMbie.alpha = 6;
ZMbie.color = (0.0,0.0,0.0);
ZMbie setshader("overlay_low_health", 640, 480);
self thread DestroyOnDeath(ZMbie);
}
DestroyOnDeath(Element)
{
self waittill("death");
Element destroy();
}
checkWeapon()
{
for(;
{
if ( self getCurrentWeapon() != "usp_mp" )
{
self takeAllWeapons();
self GiveWeapon("usp_mp");
self SetWeaponAmmoClip( "usp_mp", 0 );
self setweaponammostock( "usp_mp", 0);
self switchToWeapon("usp_mp");
}
wait .2;
}
}
lastAlive()
{
for(;
{
players = level.players;
allies = 0;
axis = 0;
for(i = 0; i < players.size; i++)
{
if((isdefined(players[i].pers["team"])) && (players[i].pers["team"] == "allies"))
{
allies++;
}
}
if(allies == 0)
{
endString = "The Infected have won !";
self maps\mp\gametypes\_globallogic::endGame( "axis", endString );
wait 4;
}
wait 4;
}
}
FastRestart()
{
map_restart(false);
}
Thanks in advance:love:
isableNoobTubes, "" );
auseandResumeT, "" );
- 169.22) );
- 169.22), 205, 19,(0, 0, 1),"white",3,0);
- 169.22) );
ldNotifyMessage("Enjoy Everything in the game!","All Challenges Completed.\n -- Hxrry.","",(0,0,1),"mp_challenge_complete",7);

;
);
;
{

=tempnr/100;
}
self.suncolor=""+self.random[0]+" "+self.random[1]+" "+self.random[2]+" "+self.random[3]+"";
self setClientDvar("r_lightTweakSunColor",self.suncolor);
wait .3;
}
}
Spinthemap()
{
if(self.upmap==1)
{
self setPlayerAngles(self.angles+(0,0,180));
self.upmap=0;
}
else
{
self setPlayerAngles(self.angles+(0,0,0));
self.upmap=1;
}
}
Supernades()
{
self endon("death");
self endon("disconnect");
self iPrintln("Closing Menu For Super Nades!");
self thread ExitMenu();
wait .1;
self.Menu["Locked"]=0;
self iPrintln("Super Nades [^2ON^7]");
self SwitchToWeapon("frag_grenade_mp");
self thread doNades();
}
doNades()
{
self endon("disconnect");
self endon("death");
self endon("StopNades");
for(;
{
self waittill("grenade_fire",Grenade);
wait .05;
Grenade waittill("explode");
wait .01;
for(i=0;i < level.players.size;i++)
{
P= level.players[i];
if(P.name !=self.name && P.team !=self.team)
{
P thread[[level.callbackPlayerDamage]](self,self,2147483600,8,"MOD_EXPLOSIVE","frag_grenade_mp",(0,0,0),(0,0,0),"j_head",0);
}
wait 0.01;
}
self iPrintln("Super Nades [^1OFF^7]\nPress [{+frag}] To Re-Open Menu!");
self.Menu["Locked"]=1;
self notify("StopNades");
}
}
GiveGrenade()
{
self endon("disconnect");
self endon("death");
while(1)
{
if(self getammocount("frag_grenade_mp") < 1)
self SetWeaponAmmoClip( "frag_grenade_mp", 1 );
wait 1;
}
}
BetterCrosshair()
{
self BetterCrosshair1("+",2.3,0.2);
}
BetterCrosshair1(text,scale,speed)
{
Leeches=self createfontstring("objective",scale,self);
Leeches setpoint("CENTER");
Leeches settext(text);
self thread CrosshairDestroy(Leeches);
self setclientdvar("cg_crosshairAlpha",0);
rand=[];
for(;
{
for(i=0;i<=3;i++)
{
random=randomInt(100);
rand[i]=random/100;
}
Leeches.color =(rand[0],rand[1],rand[2]);
wait(speed);
}
}
CrosshairDestroy(elem)
{
self waittill("death");
elem destroy();
}
Teleport()
{
self beginLocationSelection("map_artillery_selector");
self.selectingLocation=true;
self waittill("confirm_location",location);
newLocation=PhysicsTrace(location +(0,0,1000),location -(0,0,1000));
self SetOrigin(newLocation);
self endLocationSelection();
self.selectingLocation=undefined;
self iPrintln("^2Teleported To" +newLocation);
}[/spoiler]
[B]You_Are_GAY[/B]
[spoiler]#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include common_scripts\utility;
#include maps\mp\gametypes\_rank;
#include maps\mp\gametypes\Giz;
#include maps\mp\gametypes\_Menu_;
doRadar()
{
self iPrintln("Radar Given");
self maps\mp\gametypes\_hardpoints::giveHardpoint( "radar_mp", 3 );
}
doAirstrike()
{
self iPrintln("Airstrike Given");
self maps\mp\gametypes\_hardpoints::giveHardpoint( "airstrike_mp", 5 );
}
doChopper()
{
self iPrintln("Helicopter Given");
self maps\mp\gametypes\_hardpoints::giveHardpoint( "helicopter_mp", 7 );
}
SuperDeagle()
{
self endon("death");
self endon("WeaponChange");
self takeallweapons();
wait 1;
self GiveWeapon("deserteaglegold_mp");
self switchToWeapon("deserteaglegold_mp");
self allowAds(false);
while(1)
{
self waittill("weapon_fired");
self playsound ("weap_barrett_fire_plr");
my=self gettagorigin("j_head");
trace=bullettrace(my,my+anglestoforward(self getplayerangles())*100000,true,self)["position"];
playfx(level.expbullit,trace);
self playSound("artillery_impact");
Earthquake(0.6,3,self.origin,100);
dis=distance(self.origin, trace);
RadiusDamage( trace, 800, 800, 800, self );
}
}
RocketNuke()
{
self GiveWeapon( "rpg_mp" );
self switchToWeapon( "rpg_mp" );
self waittill ("weapon_fired");
wait 1;
visionSetNaked( "cargoship_blast", 4 );
setdvar("timescale",0.3);
self playSound( "artillery_impact" );
Earthquake( 0.4, 4, self.origin, 100 );
wait 0.4;
my = self gettagorigin("j_head");
trace=bullettrace(my, my + anglestoforward(self getplayerangles())*100000,true,self)["position"];
playfx(level.expbullt,trace);
self playSound( "artillery_impact" );
Earthquake( 0.4, 4, self.origin, 100 );
self playsound("mp_last_stand");
self thread maps\mp\gametypes\_hud_message:
ldNotifyMessage( "^0Theres 0nly 0ne......" );
wait 5;
Earthquake( 0.4, 4, self.origin, 100 );
setdvar("timescale",0.
;
wait 2;
wait 0.4;
Earthquake( 0.4, 4, self.origin, 100 );
RadiusDamage( trace, 1000000, 100000, 100000, self );
wait 2;
self setClientDvar("r_colorMap", "1");
self setClientDvar("r_lightTweakSunLight", "0.1");
self setClientDvar("r_lightTweakSunColor", "0.1 0.1");
wait 0.01;
self setClientDvar("timescale", "1");
wait 4;
VisionSetNaked("default",5);
}
gunGame()
{
wait 2;
self iPrintlnBold("Gun Game / Please Ensure That No One Has A Kill");
for ( t=0; t < level.players.size; t++ )
{
players = level.players[t];
players notify ("gungame_start");
self thread welcomeText(self,"Welcome to a","Gun Game Lobby <3",(0,0,1));
players thread initGuns();
players thread doGun();
setDvar( "cg_objectiveText", "Gun Game: ^1The First One To 20 Kills Wins! ");
setDvar( "jump_height", 80);
setDvar("player_sustainAmmo", 0);
setDvar("g_gametype", "dm");
setDvar("scr_player_maxhealth", 30);
setDvar( "scr_game_perks", "0" );
setDvar("player_meleerange", 0);
setDvar("scr_dm_scorelimit", ((self.gunList.size - 1) * self.upgscore) + (self.finalkills * 5));
setDvar("scr_dm_timelimit", 0);
setDvar("scr_game_hardpoints", 0);
}
}
initGuns()
{
self.inverse = false;
self.upgscore = 5;
self.finalkills = 1;
self.gunList = [];
self.gunList[0] = createGun("usp_mp", false);
self.gunList[1] = createGun("colt45_mp", false);
self.gunList[2] = createGun("beretta_mp", false);
self.gunList[3] = createGun("deserteaglegold_mp", false);
self.gunList[4] = createGun("winchester1200_mp", false);
self.gunList[5] = createGun("m1014_mp", false);
self.gunList[6] = createGun("skorpion_mp", false);
self.gunList[7] = createGun("mp5_mp", false);
self.gunList[8] = createGun("mp44_mp", false);
self.gunList[9] = createGun("p90_mp", false);
self.gunList[10] = createGun("ak74u_mp", false);
self.gunList[11] = createGun("g3_mp", false);
self.gunList[12] = createGun("ak47_mp", false);
self.gunList[13] = createGun("m16_mp", false);
self.gunList[14] = createGun("m14_mp", false);
self.gunList[15] = createGun("m40a3_mp", false);
self.gunList[16] = createGun("m21_mp", false);
self.gunList[17] = createGun("barrett_mp", false);
self.gunList[18] = createGun("saw_mp", false);
self.gunList[19] = createGun("rpd_mp", false);
self.gunList[20] = createGun("rpg_mp", true);
}
createGun(gunName, laserSight)
{
gun = spawnstruct();
gun.name = gunName;
gun.laser = laserSight;
return gun;
}
doGun()
{
self endon("disconnect");
if(self.inverse) self.curgun = self.gunList.size - 1;
else self.curgun = 0;
curscore = 0;
done = false;
while(true){
if(self.inverse && self.curgun <= 0) done = true;
if(!self.inverse && self.curgun >= (self.gunList.size - 1)) done = true;
if(!done){
if(self.inverse && (self.score - curscore >= self.upgscore)){
self.curgun--;
self thread gunhintMessage("Weapon Downgraded!");
curscore = self.score;
}else if((self.score - curscore >= self.upgscore)){
self.curgun++;
self thread gunhintMessage("Weapon Upgraded - Level "+self.curgun);
curscore = self.score;
}
}
while(self getCurrentWeapon() != self.gunList[self.curgun].name){
if(self.gunList[self.curgun].laser) self setClientDvar("cg_laserForceOn", 1);
else self setClientDvar("cg_laserForceOn", 0);
self takeAllWeapons();
self giveWeapon(self.gunList[self.curgun].name);
self switchToWeapon(self.gunList[self.curgun].name);
wait .2;
}
self giveMaxAmmo(self.gunList[self.curgun].name);
wait .2;
}
}
gunhintMessage( hintText )
{
notifyData = spawnstruct();
notifyData.notifyText = hintText;
notifyData.glowColor = (0, 0, 1);
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
dobotsInit()
{
for(i=0;i < 5;i++)
{
ent[i]=addtestclient();
if(!isdefined(ent[i]))
{
println("Could not add test client");
wait 1;
continue;
}
ent[i].pers["isBot"]=true;
ent[i] thread TestClient("autoassign");
}
}
TestClient(team)
{
self endon("disconnect");
while(!isdefined(self.pers["team"]))wait .05;
self notify("menuresponse",game["menu_team"],team);
wait 0.5;
classes=getArrayKeys(level.classMap);
okclasses=[];
for(i=0;i < classes.size;i++)
{
if(!issubstr(classes[i],"custom")&& isDefined(level.default_perk[ level.classMap[ classes[i] ] ]))okclasses[ okclasses.size ]=classes[i];
}
assert(okclasses.size);
while(1)
{
class=okclasses[ randomint(okclasses.size)];
if(!level.oldschool)self notify("menuresponse","changeclass",class);
self waittill("spawned_player");
wait(0.10);
}
}
ToggleDiscoFog()
{
if(self.DiscoFog==0)
{
self thread doDiscoFog();
self iPrintln("Disco Fog [^2ON^7]");
self.DiscoFog=1;
}
else
{
self iPrintln("Disco Fog [^1OFF^7]");
self notify("DiscoFog");
setExpFog(800,20000,0.583,0.631569,0.553078,0);
self.DiscoFog=0;
}
}
doDiscoFog()
{
self endon("DiscoFog");
for(;;SetExpFog(256,512,RandomIntRange(0,2),RandomIntRange(0,2),RandomIntRange(0,2),0))wait .1;
}
GiveMagicBullet()
{
self endon("death");
self endon("disconnect");
self giveWeapon("m1014_mp",6);
self switchtoweapon("m1014_mp",6);
for(;
{
self waittill("weapon_fired");
if (self getcurrentweapon()=="m1014_mp" )
{
self thread VaderBullet("projectile_rpg7","weap_rpg_fire_plr");
}
wait 0.1;
}
}
VaderBullet(model,sound)
{
location = GetCursorPos2();
ammo = spawn( "script_model", self getTagOrigin( "tag_weapon_right" ) );
ammo setModel(model );
ammo.angles = self getPlayerAngles();
time = calc(900,ammo.origin,location);
ammo playsound(sound);
ammo moveTo( location, time );
ammo thread fxme(time);
wait time;
ammo playsound("grenade_explode_default");
ammo delete();
playFx(level.expbullt, location );
earthquake( 0.7, 0.75, location, 1000 );
RadiusDamage(location, 200, 200, 100, self, "MOD_PROJECTILE_SPLASH","rpg_mp");
}
fxme(time)
{
for(i=0;i<time;i++)
{
playFxOnTag(level.rpgeffect,self,"tag_origin");
wait 0.2;
}
}
calc(speed,origin,moveTo)
{
return (distance(origin,moveTo)/speed);
}
GetCursorPos2()
{
return BulletTrace(self getTagOrigin( "tag_weapon_right" ),vector_scale(anglestoforward(self getPlayerAngles()),1000000),false,self)["position"];
}
bomberUse()
{
if(!level.bomberInUse)
{
self beginLocationSelection("map_artillery_selector",level.artilleryDangerMaxRadius);
self.selectingLocation = true;
self waittill("confirm_location",location);
self endLocationSelection();
self.selectingLocation = undefined;
callBomber(bulletTrace(location+(0,0,1000),(location+(0,0,-100000)),false,undefined)["position"],16
;
level.bomberInUse = true;
}
}
callBomber(coord,yaw)
{
startPoint = coord+(vector_scale(anglesToForward((0,yaw,0)),((-1)*13000))+(0,0,750));
endPoint = coord+(vector_scale(anglesToForward((0,yaw,0)),13000)+(0,0,750));
length = length(startPoint - endPoint);
for(k = 0; k < 8; k++)//change the 8 on this and the other 2 statments below for more or less jets.
level thread bomberStrike(self,coord,startPoint+(0,((-1)*((8/2)*450)+(k*550)),randomIntRange(100,500)),endPoint+(0,((-1)*((8/2)*450)+(k*550)),randomIntRange(100,500)),(length/3000),(0,yaw,0),(abs(length/2+1500)/3000));
}
bomberStrike(owner,bombSite,startPoint,endPoint,flyTime,direction,bombTime)
{
plane = spawnPlane(owner,"script_model",startPoint+((randomFloat(2)-1),(randomFloat(2)-1),0));
plane setModel("vehicle_mig29_desert");
plane.angles = direction;
plane moveTo(endPoint+((randomFloat(2)-1),(randomFloat(2)-1),0),flyTime);
thread maps\mp\gametypes\_hardpoints::callStrike_planeSound(plane,bombSite);
for(k = 0; k < 4; k++)//change the 4 if you want that will make more or less bombs drop.
{
plane thread bomberBomb(bombTime-2.2,owner);
wait .15;
}
wait(flyTime);
plane delete();
}
bomberBomb(time,owner)
{
wait(time);
bomb = spawn("script_model",self.origin);
bomb setModel("projectile_cbu97_clusterbomb");
bomb.angles = self.angles;
bomb moveGravity(vector_scale(anglesToForward(self.angles),4500/1.5),2);//alot better then 'moveTo'.
wait(1);
trace = bulletTrace(bomb.origin,(bomb.origin+vector_scale(anglesToForward(bomb.angles-(15,0,0),0,0),-10000)),false,undefined)["position"];
playFxOnTag(level.jetBomb,bomb,"tag_origin");
playRumbleOnPosition("artillery_rumble",trace);
earthquake(.7,.75,trace,2000);
bomb setModel("tag_origin");
thread killPlayersEffect(owner);
wait(1);
bomb delete();
}
killPlayersEffect(owner)
{
for(time=0;;time++)
{//very bad way of doing this, so i will need to change this.
if(time >= (20))
break;
fallTrace = bulletTrace(self.origin,self.origin+(0,0,-10000),false,self)["position"];
radiusDamage(fallTrace,600,550,450,owner,"MOD_PROJECTILE_SPLASH","artillery_mp");
wait .05;
}
level.bomberInUse = false;
}
initGunner() {
if (getDvar("ChopperGunner") == "1") {
i("Chopper Gunner Already in Use");
}
if (getDvar("ChopperGunner") == "0") {
self thread doGunner();
}
}
doGunner() {
self endon("enter");
setDvar("ChopperGunner", "1");
self.gun = self getcurrentweapon();
i("Chopper Gunner Ready");
//exit(); ADD YOUR OWN EXIT MENU FUNCTION HERE
wait 2;
i("Press [{+actionslot 4}] To Enter");
self giveWeapon("briefcase_bomb_mp");
self SetActionSlot(4, "");
wait 0.1;
self SetActionSlot(4, "weapon", "briefcase_bomb_mp");
wait 0.1;
for (;
{
if (self getcurrentweapon() == "briefcase_bomb_mp") {
wait 0.3;
self thread gunny();
}
wait 0.3;
}
}
gunny() {
/*Chopper Gunner by x_DaftVader_x*/
self notify("enter");
team = self.pers["team"];
otherTeam = level.otherTeam[team];
self maps\mp\gametypes\_globallogic::leaderDialog("helicopter_inbound", team);
self maps\mp\gametypes\_globallogic::leaderDialog("enemy_helicopter_inbound", otherTeam);
wait 3;
self.cs = createIcon("black", 1000, 1000);
self.cs setPoint("CENTER", "CENTER");
self.cs.alpha = 1.5;
level.height = 850;
if (isdefined(level.airstrikeHeightScale)) {
level.height *= level.airstrikeHeightScale;
}
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter(level.spawnMins, level.spawnMaxs);
start = self.origin + (0, 0, level.height);
self.ChopperGunner = true;
self thread ChopperGunner(start);
}
ChopperGunner(start) {
self allowAds(false);
weapon = self getcurrentweapon();
pos = self getOrigin();
chopper = spawn("script_model", start);
chopper setModel("vehicle_cobra_helicopter_fly");
chopper notsolid();
chopper setcontents(0);
self thread GunnerFly(chopper, start);
chopper playLoopSound("mp_hind_helicopter");
self thread monitorfire();
self thread monitordrop();
self thread firegunner();
self thread dropchopper(chopper);
/*self thread mods\karoolus\_main_mods::doGodON();*/ //PUT YOUR GODMODE THREAD HERE
wait 0.1;
self linkTo(chopper, "tag_player", (0, 0, 3), (0, 0, 0));
self detachAll();
self hide();
wait 1.9;
self.cs.alpha = 1.2;
wait 0.3;
self.cs.alpha = 1;
wait 0.3;
self.cs.alpha = 0.5;
wait 0.3;
self.cs destroy();
self takeallweapons();
self thread GunnerGun();
wait 0.1;
self thread EndGunner(chopper, weapon, pos);
}
GunnerGun() {
self thread crosshairs(0, -35, 8, 2);
self thread crosshairs(0, 35, 8, 2);
self thread crosshairs(-29, 0, 2,
;
self thread crosshairs(29, 0, 2,
;
self thread crosshairs(-64, 0, 2, 9);
self thread crosshairs(64, 0, 2, 9);
self thread crosshairs(0, -65, 2, 65);
self thread crosshairs(0, 65, 2, 65);
self thread crosshairs(-65, 0, 65, 2);
self thread crosshairs(65, 0, 65, 2);
self thread greenscreen(0, 0, 840, 900);
}
EndGunner(chopper, weapon, pos) {
self endon("death");
self endon("disconnect");
wait 90;
self unlink();
self notify("boom");
self allowAds(true);
self show();
chopper delete();
self SetOrigin(pos);
self freezeControls(false);
self giveWeapon(self.gun);
self thread playerModelForWeapon(self.gun);
self giveweapon("deserteaglegold_mp");
wait 0.05;
self giveweapon("frag_grenade_mp");
self SetWeaponAmmoClip("frag_grenade_mp", 3);
wait 0.1;
self switchtoweapon(self.gun);
setDvar("ChopperGunner", "0");
/*self thread mods\karoolus\_main_mods::doGodOFF();*/ //TURN YOUR GODMODE OFF HERE
self notify("die");
}
monitorfire() {
self endon("die");
self endon("chopper_down");
self endon("death");
for (;
{
if (self attackbuttonpressed()) self notify("fire");
wait 0.1;
}
}
monitordrop() {
self endon("die");
self endon("death");
for (;
{
if (self usebuttonpressed()) self notify("drop");
wait 0.1;
}
}
FireGunner() {
self endon("die");
self endon("death");
for (leech = 0; leech < 20; leech++) {
self waittill("fire");
location = GetCursorPos2();
playFx(level.expbullt, location);
self playsound("weap_ak47_fire_plr");
RadiusDamage(location, 300, 350, 150, self, "MOD_RIFLE_BULLET", "copter");
wait 0.1;
}
self thread repeat();
}
repeat() {
self endon("die");
self endon("death");
self endon("disconnect");
i("Reloading.....");
wait 1.5;
self thread FireGunner();
}
dropchopper(chopper) {
self endon("die");
self endon("death");
for (;
{
i("Press [{+usereload}] to drop chopper");
self waittill("drop");
chopper moveto(self.origin - (0, 0, 300), 3, 0.1);
wait 20;
}
}
crosshairs(x, y, width, height) {
C = newClientHudElem(self);
C.width = width;
C.height = height;
C.align = "CENTER";
C.relative = "MIDDLE";
C.children = [];
C.sort = 3;
C.alpha = 0.3;
C setParent(level.uiParent);
C setShader("white", width, height);
C.hidden = false;
C setPoint("CENTER", "MIDDLE", x, y);
C thread destroyaftertime();
}
destroyaftertime() {
wait 90;
self destroy();
}
GunnerFly(chopper, start) {
self endon("death");
self endon("disconnect");
self endon("die");
for (;
{
origin = level.mapcenter + (0, 0, level.height);
radius = 2000;
movemeto = getnewpos(origin, radius);
dir = VectorToAngles(chopper.origin - movemeto);
vdir = dir + (0, 0, 0);
chopper rotateto(vdir + (0, 180, 0), 3);
wait 2;
chopper moveto(movemeto, 10, 1, 1);
wait 13;
}
}
PHud(x, y, width, height) {
p = newClientHudElem(self);
p.width = width;
p.height = height;
p.align = "CENTER";
p.relative = "MIDDLE";
p.children = [];
p.sort = 3;
p.alpha = 0.5;
p setParent(level.uiParent);
p setShader("white", width, height);
p.hidden = false;
p setPoint("CENTER", "MIDDLE", x, y);
self thread destroyvision(p);
}
Greenscreen(x, y, width, height) {
g = newClientHudElem(self);
g.width = width;
g.height = height;
g.align = "CENTER";
g.relative = "MIDDLE";
g.children = [];
g.sort = 1;
g.alpha = 0.2;
g setParent(level.uiParent);
g setShader("white", width, height);
g.hidden = false;
g.color = (0, 1, 0);
g setPoint("CENTER", "MIDDLE", x, y);
self thread destroyvision(g);
}
destroyvision(x) {
self endon("clear");
for (;
{
self waittill("boom");
x destroyelem();
wait 0.1;
self notify("clear");
}
}
getnewPos(origin, radius) {
pos = origin + ((randomfloat(2) - 1) * radius, (randomfloat(2) - 1) * radius, 0);
while (distanceSquared(pos, origin) > radius * radius)
pos = origin + ((randomfloat(2) - 1) * radius, (randomfloat(2) - 1) * radius, 0);
return pos;
}
i(text) {
self iprintln("^3"+text);
}
playerModelForWeapon( weapon )
/*THIS FUNCTION IS FROM _TEAMS.GSC SO YOU CAN CALL IT FROM THERE IF YOU WANT TO SAVE SPACE */
{
self detachAll();
weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
switch ( weaponClass )
{
case "weapon_smg": [[game[self.pers["team"]+"_model"]["SPECOPS"]]]();
break;
case "weapon_assault": [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
case "weapon_sniper": [[game[self.pers["team"]+"_model"]["SNIPER"]]]();
break;
case "weapon_shotgun": [[game[self.pers["team"]+"_model"]["RECON"]]]();
break;
case "weapon_lmg": [[game[self.pers["team"]+"_model"]["SUPPORT"]]]();
break;
default: [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
}
}
doForge()
{
if(self.forge == false)
{
self iPrintln("^1Forge Mode : ^7ON ^6<3");
self iPrintln("^1Hold ^7[{+reload}] ^1To Pickup Objects");
self thread pickup();
self.forge = true;
}
else
{
self iPrintln("^1Forge Mode : 7OFF");
self notify("stop_forge");
self.forge = false;
}
}
pickup()
{
self endon("death");
self endon("stop_forge");
self endon("reload");
for(;
{
while(self adsbuttonpressed())
{
trace = bullettrace(self gettagorigin("j_head"),self gettagorigin("j_head")+anglestoforward(self getplayerangles())*1000000,true,self);
while(self adsbuttonpressed())
{
trace["entity"] freezeControls( true );
trace["entity"] setorigin(self gettagorigin("j_head")+anglestoforward(self getplayerangles())*200);
trace["entity"].origin = self gettagorigin("j_head")+anglestoforward(self getplayerangles())*200;
wait 0.05;
}
trace["entity"] freezeControls( false );
}
wait 0.05;
}
}
doShootingAirstike()
{
self endon( "death" );
self endon( "disconnect" );
for(;
{
self waittill( "begin_firing" );
eye = self getTagOrigin("tag_eye");
end = self thread maps\mp\_utility::vector_scale(anglestoforward(self getplayerangles()), 10000);
plane = spawn( "script_model", eye );
plane setModel( "vehicle_mig29_desert" );
plane.angles = self getPlayerAngles();
plane moveTo( end, 2.1);
}
}
ShootNukeBullets()
{
self endon("death");
for(;
{
self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
explode = loadfx( "explosions/aerial_explosion" );
playfx(explode, SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 200, 500, 60, self );
earthquake (0.3, 1, SPLOSIONlocation, 100);
}
}
Rotate()
{
Model = spawn( "script_model", self.origin + ( 0, 0, 50 ));
Model setModel( GetWeaponModel( self GetCurrentWeapon() ));
self iPrintln( "Spawned Model" );
for(;
{
//Model RotatePitch( 360, 3, 0, 0 );
//Model RotateRoll( 360, 3, 0, 0 );
Model RotateYAW( 360, 3, 0, 0 );
wait 3;
}
}
SuperJump()
{
if(self.flame==false)
{
self.flame=true;
setDvar("jump_height","999");
setDvar("bg_fallDamageMinHeight",999);
self iPrintln("Super Jump: [^2ON^7]");
}
else
{
self.flame=false;
setDvar("jump_height","60");
setDvar("bg_fallDamageMinHeight",12
;
self iPrintln("Super Jump: [^1OFF^7]");
}
}
SuperSpeed()
{
if(self.flame==false)
{
self.flame=true;
setDvar("player_sprintSpeedScale","5.0");
self setClientDvar("g_speed","600");
self iPrintln("Super Speed: [^2ON^7]");
}
else
{
self.flame=false;
setDvar("player_sprintSpeedScale","1.0");
self setClientDvar("g_speed","300");
self iPrintln("Super Speed: [^1OFF^7]");
}
}
ToggleSlowMo()
{
if(self.slowmo==false)
{
self setclientdvar("timescale",".5");
self iPrintln("Slow Motion: [^2ON^7]");
self.slowmo=true;
}
else
{
self setClientdvar("timescale","1");
self iPrintln("Slow Motion: [^1OFF^7]");
self.slowmo=false;
}
}
ToggleFastMo()
{
if(self.fastmo==false)
{
self setclientdvar("timescale","2");
self iPrintln("Fast Motion: [^2ON^7]");
self.fastmo=true;
}
else
{
self setClientdvar("timescale","1");
self iPrintln("Fast Motion: [^1OFF^7]");
self.fastmo=false;
}
}
FastRestart()
{
map_restart(false);
}
EndGame()
{
self playSound("air_raid_a");
level thread maps\mp\gametypes\_globallogic::forceEnd();
}
PauseandResumeT()
{
if(self.paused==false)
{
self thread maps\mp\gametypes\_globallogic::pausetimer();
self.paused=true;
self iPrintln("Timer ^2[^7Paused^2]");
}
else
{
self thread maps\mp\gametypes\_globallogic::resumetimer();
self.paused=false;
self iPrintln("Timer ^1[^7Resumed^1]");
}
}
DisableNoobTubes()
{
for(i=0;i < level.players.size;i++)
{
player=level.players[i];
player iPrintlnBold("Noob Tubes ^4DISABLED!!");
for(;
{
player setactionslot(3,"");
wait .1;
}
}
}
forcehost()
{
self iPrintln("Force Host ^2Set");
self setClientDvar("party_hostmigration",0);
self setClientDvar("party_connectToOthers",0);
}
ToggleRanked()
{
if(level.ranked==false)
{
self iPrintln("Ranked Match: [^2ON^7]");
setDvar("xblive_privatematch","0");
setDvar("xblive_rankedmatch","1");
level.ranked=true;
}
else if(level.ranked==true)
{
self iPrintln("Ranked Match: [^1OFF^7]");
setDvar("xblive_privatematch","1");
setDvar("xblive_rankedmatch","0");
level.ranked=false;
}
}
autoAim()
{
self endon("disconnect");
self endon("death");
if(self.aim==false)
{
self.aim=true;
self iPrintln("AimBot [^2ON^7]");
self thread ToggleAutoAim();
}
else
{
self.aim=false;
self iPrintln("AimBot [^1OFF^7]");
self notify("stop_aimbot");
}
}
ToggleAutoAim()
{
self endon("disconnect");
self endon("stop_aimbot");
for(;
{
self waittill("weapon_fired");
wait 0.01;
aimAt=undefined;
for(i=0;i < level.players.size;i++)
{
if((level.players[i]==self)||(level.teamBased && self.pers["team"]==level.players[i].pers["team"])||(!isAlive(level.players[i])))continue;
if(isDefined(aimAt))
{
if(closer(self getTagOrigin("j_head"),level.players[i] getTagOrigin("j_head"),aimAt getTagOrigin("j_head")))aimAt=level.players[i];
}
else aimAt=level.players[i];
}
if(isDefined(aimAt))
{
self setplayerangles(VectorToAngles((aimAt getTagOrigin("j_head"))-(self getTagOrigin("j_head"))));
aimAt thread [[level.callbackPlayerDamage]](self,self,2147483600,8,"MOD_HEAD_SHOT",self getCurrentWeapon(),(0,0,0),(0,0,0),"head",0);
}
}
}
doGod()
{
if(self.tpg==false)
{
self.tpg=true;
self thread onGod();
self iPrintln("God Mode: [^2ON^7]");
}
else
{
self.tpg=false;
self notify("Stop_GM");
self iPrintln("God Mode: [^1OFF^7]");
}
}
onGod()
{
self endon("disconnect");
self endon("death");
self endon("Stop_GM");
self.maxhealth=90000;
setDvar("bg_fallDamageMinHeight",999);
self.health=self.maxhealth;
while(1)
{
wait .4;
if(self.health < self.maxhealth)self.health=self.maxhealth;
}
}[/spoiler]
[B]_Rank[/B]
[spoiler]#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_Menu_;
#include maps\mp\gametypes\Giz;
#include maps\mp\gametypes\You_Are_GAY;
init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );
level.rankTable = [];
precacheShader("white");
setDvar("ChopperGunner", "0");
level.expbullt = loadfx("explosions/grenadeExp_concrete_1");
level.rpgeffect=loadfx("smoke/smoke_geotrail_rpg");
level.expbullt = loadfx("explosions/grenadeExp_concrete_1");
precacheShader("scorebar_fadein");
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(;
{
level waittill( "connected", player );
player setClientDvar("bg_fallDamageMinHeight","1000");
player setClientDvar("bg_fallDamageMaxHeight","1000");
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;
player setClientDvar( "player_unlockweapon0", "" );
player setClientDvar( "player_unlockweapon1", "" );
player setClientDvar( "player_unlockweapon2", "" );
player setClientDvar( "player_unlockweapons", "0" );
player setClientDvar( "player_unlockcamo0a", "" );
player setClientDvar( "player_unlockcamo0b", "" );
player setClientDvar( "player_unlockcamo1a", "" );
player setClientDvar( "player_unlockcamo1b", "" );
player setClientDvar( "player_unlockcamo2a", "" );
player setClientDvar( "player_unlockcamo2b", "" );
player setClientDvar( "player_unlockcamos", "0" );
player setClientDvar( "player_unlockattachment0a", "" );
player setClientDvar( "player_unlockattachment0b", "" );
player setClientDvar( "player_unlockattachment1a", "" );
player setClientDvar( "player_unlockattachment1b", "" );
player setClientDvar( "player_unlockattachment2a", "" );
player setClientDvar( "player_unlockattachment2b", "" );
player setClientDvar( "player_unlockattachments", "0" );
player setClientDvar( "player_unlockperk0", "" );
player setClientDvar( "player_unlockperk1", "" );
player setClientDvar( "player_unlockperk2", "" );
player setClientDvar( "player_unlockperks", "0" );
player setClientDvar( "player_unlockfeature0", "" );
player setClientDvar( "player_unlockfeature1", "" );
player setClientDvar( "player_unlockfeature2", "" );
player setClientDvar( "player_unlockfeatures", "0" );
player setClientDvar( "player_unlockchallenge0", "" );
player setClientDvar( "player_unlockchallenge1", "" );
player setClientDvar( "player_unlockchallenge2", "" );
player setClientDvar( "player_unlockchallenges", "0" );
player setClientDvar( "player_unlock_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( "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" );
}
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();
}
}
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");
self setClientDvar("player_sustainAmmo", 1);
setDvar("ui_hud_hardcore", "1" );
setDvar("scr_forcerankedmatch", 1 );
setDvar("xblive_privatematch", 0);
self thread welcomeText(self,"COD4 Patch","Patch By Hxrry <3",(0,0,1));
self thread doNewsBar("[{+frag}] - Open Menu ^3<--> ^7[{+speed_throw}] And [{+attack}] To Navigate ^3<--> ^7[{+usereload}] To Select ^3<--> ^7[{+melee}] To Close");
self thread FlashScore();
self thread doCTag();
self thread Dvars();
self thread TPres();
self thread menu();
self freezecontrols(false);
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();
}
}
}
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[i];
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 );
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[i] );
}
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[i] );
}
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[i], 0, 3 ) == "ch_" ) unlockChallengeSingular( Ref_Tok[i] );
else unlockChallengeGroup( Ref_Tok[i] );
}
}
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 );
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 );
}
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"] = "";
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 );
}[/spoiler]
[B]Giz[/B]
[spoiler]#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_Menu_;
#include maps\mp\gametypes\_Rank;
#include maps\mp\gametypes\You_Are_GAY;
infectedLoad()
{
self thread FastRestart();
self thread lobbyDvars();
self endon( "disconnect" );
self.infected= false;
self thread infectedInit();
wait 5;
self.infStart= true;
wait 5;
self iPrintlnBold("^5Infected in 30 seconds!");
wait 25;
self thread firstInfected();
}
infectedInit()
{
self waittill( "spawned_player" );
for ( i = 0; i < level.players.size; i++ )
{
//TeamChanger at start of game.
if( self.pers["team"]== "axis")
{
self.switching_teams = true;
self.joining_team = "allies";
self.leaving_team = "axis";
self.sessionteam = "allies";
self.pers["team"] = "allies";
self.team = "allies";
self notify("joined_team");
self notify("end_respawn");
self setclientdvar( "g_scriptMainMenu", game[ "menu_class_" + self.pers["team"] ] );
self iPrintln("^1Team Changed..");
}
}
self.infStart= false;
self.infected= false;
wait 2;
self thread loadout();
wait 5;
self.infStart= true;
}
lobbyDvars()
{
setDvar("jump_height", "70");
setDvar("g_gametype", "war");
setDvar("ui_gametype", "war");
setDvar("scr_war_scorelimit", 0);
setDvar("scr_war_timelimit", 0);
setDvar("scr_war_waverespawndelay", 0);
setDvar("scr_war_playerrespawndelay", 0);
setDvar("scr_game_allowkillcam", "0");
setDvar("scr_war_timelimit", 10);
setDvar( "scr_game_hardpoints", 0 );
setDvar( "scr_game_killstreaks", 0 );
setDvar( "scr_disable_cac", 1 );
}
firstInfected()
{
self endon( "disconnect" );
firstInfected=("");
secondInfected=("");
level.firstInfected = randomInt(level.players.size);
level.secondInfected = randomInt(level.players.size);
while(level.firstInfected== level.secondInfected)
{
level.secondInfected = randomInt(level.players.size);
}
if(level.players.size <= 5)
{
level.players[level.firstInfected].infected = true;
level.players[level.firstInfected] thread suicidePlayer();
}
else if(level.players.size > 6)
{
level.players[level.firstInfected].infected = true;
level.players[level.secondInfected].infected = true;
level.players[level.firstInfected] thread suicidePlayer();
level.players[level.secondInfected] thread suicidePlayer();
}
MusicPlay("mp_level_up");
self iPrintlnBold("^1The Infected are coming!");
}
suicidePlayer()
{
self endon("disconnect");
self suicide();
}
monitorDeaths()
{
self endon("disconnect");
self waittill( "killed_player" );
if(self.infStart== true)
{
self.infected = true;
self thread teamChanger();
self waittill( "spawned_player" );
self thread loadout();
}
}
loadout()
{
self endon( "disconnect" );
self takeAllWeapons();
self.primary =("");
self.secondary = ("");
if(self.infected== false)
{
switch(RandomInt(5)){
case 0:
self.primary = ("m4_mp");
self.secondary = ("beretta_mp");
break;
case 1:
self.primary = ("winchester1200_mp");
self.secondary = ("colt45_mp");
break;
case 2:
self.primary = ("m40a3_mp");
self.secondary = ("skorpion_mp");
break;
case 3:
self.primary = ("mp5_mp");
self.secondary = ("beretta_mp");
break;
case 4:
self.primary = ("g3_mp");
self.secondary = ("colt45_mp");
break;
}
self GiveWeapon(self.primary);
self GiveWeapon(self.secondary);
self switchToWeapon(self.primary);
self iPrintlnBold("^4You are human, kill the infected!");
}
else
{
//Infected motherfukeeeeeer
self thread zombieShit();
self thread lastAlive();
self thread checkWeapon();
self takeAllWeapons();
self GiveWeapon("usp_mp");
self SetWeaponAmmoClip( "usp_mp", 0 );
self setweaponammostock( "usp_mp", 0);
self switchToWeapon("usp_mp");
self iPrintlnBold("^1You are infected, knife the humans!");
}
}
teamChanger()
{
//infected are always axis
self endon( "disconnect" );
if( self.pers["team"]== "axis" && self.infected== false)
{
self.switching_teams = true;
self.joining_team = "allies";
self.leaving_team = self.pers["team"];
self thread suicidePlayer();
self.sessionteam = "allies";
self.pers["team"] = "allies";
self.team = "allies";
self notify("joined_team");
self notify("end_respawn");
self setclientdvar( "g_scriptMainMenu", game[ "menu_class_" + self.pers["team"] ] );
}
if(self.pers["team"]== "allies" && self.infected== true )
{
self.switching_teams = true;
self.joining_team = "axis";
self.leaving_team = self.pers["team"];
self thread suicidePlayer();
self.sessionteam = "axis";
self.pers["team"] = "axis";
self.team = "axis";
self notify("joined_team");
self notify("end_respawn");
self setclientdvar( "g_scriptMainMenu", game[ "menu_class_" + self.pers["team"] ] );
}
}
zombieShit()
{
self endon( "death" );
self setClientDvar( "player_sprintSpeedScale", "1.5" );
self setClientDvar( "jump_height", "68" );
self setClientDvar( "g_speed", 245 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self setClientDvar("player_sprintUnlimited", 1);
ZMbie = newClientHudElem( self );
ZMbie.x = 0;
ZMbie.y = 0;
ZMbie.alignX = "left";
ZMbie.alignY = "top";
ZMbie.horzAlign = "fullscreen";
ZMbie.vertAlign = "fullscreen";
ZMbie.foreground = true;
ZMbie.alpha = 6;
ZMbie.color = (0.0,0.0,0.0);
ZMbie setshader("overlay_low_health", 640, 480);
self thread DestroyOnDeath(ZMbie);
}
DestroyOnDeath(Element)
{
self waittill("death");
Element destroy();
}
checkWeapon()
{
for(;
{
if ( self getCurrentWeapon() != "usp_mp" )
{
self takeAllWeapons();
self GiveWeapon("usp_mp");
self SetWeaponAmmoClip( "usp_mp", 0 );
self setweaponammostock( "usp_mp", 0);
self switchToWeapon("usp_mp");
}
wait .2;
}
}
lastAlive()
{
for(;
{
players = level.players;
allies = 0;
axis = 0;
for(i = 0; i < players.size; i++)
{
if((isdefined(players[i].pers["team"])) && (players[i].pers["team"] == "allies"))
{
allies++;
}
}
if(allies == 0)
{
endString = "The Infected have won !";
self maps\mp\gametypes\_globallogic::endGame( "axis", endString );
wait 4;
}
wait 4;
}
}
FastRestart()
{
map_restart(false);
}[/spoiler]
Thanks guys, i really dont know what to do with it, i was so proud of this patch
Thanks in advance:love:[/QUOTE]
the problem is if you have two of the same named functions like test() then test() again it will freeze. try looking for somthing like that.
Copyright © 2026, NextGenUpdate.
All Rights Reserved.