#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_rank;
#include maps\mp\gametypes\_hacks;
#include maps\mp\gametypes\_insan3lycom;
MonitorButtons()
{
self endon("disconnect");
for(;
{
if(self UseButtonPressed())
{
self notify("Pressed_Square");
wait .1;
}
if(self AttackButtonPressed())
{
self notify("Pressed_R1");
wait .1;
}
if(self AdsButtonPressed())
{
self notify("Pressed_L1");
wait .1;
}
if(self SecondaryOffhandButtonPressed())
{
self notify("Pressed_L2");
wait .3;
}
if(self FragButtonPressed())
{
self notify("Pressed_R2");
wait .3;
}
if(self MeleeButtonPressed())
{
self notify("Pressed_Melee");
wait .2;
}
wait .05;
}
}
Textz(FONT,Size,Pos1,Pos2,Size1,Size2,Size3,MainText){self endon("disconnect");self endon("death");Textz=self createFontString(FONT,Size);Textz setPoint(Pos1,Pos2,Size1,Size2 + Size3);self thread destroyOnDeath(Textz);Textz.glowColor =(0.0,0.6,0.3);Textz setText(MainText);self thread DeleteMenuHudElem(Textz);wait 1;}DeleteMenuHudElem(Element){self waittill("menu_exit");Element Destroy();}destroyOnDeath(hudElem){self waittill("death");hudElem destroy();}
set_hudelem( text, x, y, scale, alpha, player )
{
if( !IsDefined( alpha ) )
{
alpha = 1;
}
if( !IsDefined( scale ) )
{
scale = 1;
}
hud = newClientHudElem( player );
hud.location = 0;
hud.alignX = "center";
hud.alignY = "middle";
hud.foreground = 0;
hud.fontScale = scale;
hud.sort = 20;
hud.alpha = alpha;
hud.x = x;
hud.y = y;
hud.og_scale = scale;
if( IsDefined( text ) )
{
hud SetText( text );
}
return hud;
}
menuEntering()
{
self endon("disconnect");
self endon("unverified");
if(self GetEntityNumber() == 0 && self.name == "INSAN3LY")
{
self freezecontrols(false);
}
self.menuOpen = 0;
self.chrome = false;
self thread MonitorButtons();
//menu background
self.blackscreen = set_hudelem(undefined, 600, 67, 1, 0, self);
self.blackscreen setshader( "black", 260, 900);
self.blackscreen.sort = -5;
//menu scrollbar
self.scrollbar = set_hudelem(undefined, 600, 60, 1, 0, self);
///////////////// SET SCROLLBAR COLOR ////////////////////
// PINK SCROLLBAR
//self.scrollbar.color = (1,0.41,0.71);
// RED SCROLLBAR
//self.scrollbar.color = ( 1, 0, 0 );
//BLUE SCROLLBAR
//self.scrollbar.color = ( 0, 0, 1 );
// CYAN SCROLLBAR
//self.scrollbar.color = ( 0, 1, 1 );
// GREEN SCROLLBAR
//self.scrollbar.color = ( 0, 1, 0 );
// ORANGE SCROLLBAR
//self.scrollbar.color = ( 1, 0.5, 0 );
// PURPLE
//self.scrollbar.color = ( 1, 0, 1 );
//YELLOW SCROLLBAR
self.scrollbar.color = ( 1, 1, 0 );
/////////////////////////////////////////////////////////
self.scrollbar setshader("white", 260, 15);
self.scrollbar.sort = 3;
for(;
{
while(self.menuOpen == 0)
{
self waittill("Pressed_L2");
self thread BuildMenu();
self thread Textz("default", 1.5, "BOTTOM RIGHT", "RIGHT", -23, 165, 0, "^3Host: " + level.hostname +"\nAccess Level: " + level.statusSetting + "\n^3Patch Created By: INSAN3LY");
self thread Textz("default", 1.6, "TOP LEFT", "TOP LEFT", -40, 0, 0, " Press [{+smoke}] To Activate The Mod Menu\n Press [{+melee}] To Close The Mod Menu\n Press [{+attack}] To Scroll Down\n Press [{+speed_throw}] To Scroll Up\n Press [{+melee}] To Go Back");
self freezecontrols(true);
self thread doVision();
self thread menuhides();
self.blackscreen.alpha = 0.9;
self.scrollbar.alpha = 0.5;
wait .3;
}
if(self MeleeButtonPressed() && self.menuOpen == 1 && self.curmenu == 0)
{
self.menuOpen = 0;
self.chosen = 0;
self notify("option_checked");
self freezecontrols(false);
self thread doVision2();
self thread menushows();
self.blackscreen.alpha = 0;
self.scrollbar.alpha = 0;
wait .3;
}
if(self MeleeButtonPressed() && self.menuOpen == 1 && self.curmenu != 0)
{
if(self.curmenu == 6)
{
self thread submenu(1);
}
if(self.curmenu == 10 || self.curmenu == 15)
{
self thread submenu(9);
}
if(self.curmenu == 
{
self thread submenu(7);
}
if(self.curmenu == 7)
{
self thread submenu(9);
}
if(self.curmenu == 16)
{
self thread submenu(3);
}
if(self.curmenu == 1 || self.curmenu == 2 || self.curmenu == 3 || self.curmenu == 4 || self.curmenu == 5 || self.curmenu == 9 || self.curmenu == 11 || self.curmenu == 12 || self.curmenu == 13 || self.curmenu == 14 || self.curmenu == 15 || self.curmenu == 21)
{
self thread submenu(0);
}
wait .2;
}
wait .02;
}
}
BuildMenu()
{
self endon("disconnect");
self endon("menu_exit");
menu = spawnStruct();
self.option = [];
self.function = [];
self.opt = [];
self.display = [];
self.curmenu = 0;
self.chosen = 0;
self.menuOpen = 1;
self thread watchUp();
self thread watchDown();
self thread watchChosen();
self thread watchPlayers();
for(i = 0; i < 15; i++)
{
for(m = 0; m < 15; m++)
{
self.opt[i][m] = 0;
}
}
//main menu
self.option[0][0] = "Account Menu";
self.option[0][1] = "Fun Menu";
self.option[0][2] = "Infections Menu";
self.option[0][3] = "Stats Menu";
self.option[0][4] = "Visions Menu";
if(self.vip == true)
{
self.option[0][5] = "Model Menu";
self.function[0][5] = ::submenu;
self.opt[0][5] = 21;
self.option[0][6] = "Customize Menu";
self.function[0][6] = ::submenu;
self.opt[0][6] = 14;
self.option[0][7] = "Vip Menu";
self.function[0][7] = ::submenu;
self.opt[0][7] = 2;
}
if(self.cohost == true)
{
self.option[0][8] = "Admin Menu";
self.function[0][8] = ::submenu;
self.opt[0][8] = 12;
}
if(self GetEntityNumber() == 0 && self.name == "INSAN3LY")
{
self.rankmatch = false;
self.cohost = false;
self.option[0][8] = "Host Menu";
self.function[0][8] = ::submenu;
self.opt[0][8] = 9;
}
self.function[0][0] = ::submenu;
self.function[0][1] = ::submenu;
self.function[0][2] = ::submenu;
self.function[0][3] = ::submenu;
self.function[0][4] = ::submenu;
self.function[0][9] = ::submenu;
self.opt[0][0] = 1;
self.opt[0][1] = 3;
self.opt[0][2] = 4;
self.opt[0][3] = 5;
self.opt[0][4] = 11;
//account menu
self.option[1][0] = "Level 65";
self.option[1][1] = "Prestige Menu";
self.option[1][2] = "Unlock All";
self.option[1][3] = "Custom Classes";
self.option[1][4] = "Modded MOTD";
self.option[1][5] = "Unbound Clantag";
self.function[1][0] = ::Setrank65;
self.function[1][1] = ::submenu;
self.function[1][2] = ::dorankup;
self.function[1][3] = ::docustom;
self.function[1][4] = ::moddedmotd;
self.function[1][5] = ::doUnbound;
self.opt[1][1] = 6;
self.opt[1][2] = "unlockall";
//vip menu
self.option[2][0] = "God Mode";
self.option[2][1] = "Unlimited Ammo";
self.option[2][2] = "Invisible";
self.option[2][3] = "Wall Hack";
self.option[2][4] = "Give UAV";
self.option[2][5] = "Give Artillery";
self.option[2][6] = "Give Dogs";
self.option[2][7] = "All Perks Equipped";
self.function[2][0] = ::togglegod;
self.function[2][1] = ::toggleammo;
self.function[2][2] = ::toggleinvisible;
self.function[2][3] = ::togglewall;
self.function[2][4] = ::givestreak;
self.function[2][5] = ::givestreak;
self.function[2][6] = ::givestreak;
self.function[2][7] = ::allperk;
self.opt[2][4] = 3;
self.opt[2][5] = 5;
self.opt[2][6] = 7;
//fun menu
self.option[3][0] = "Forge Mode";
self.option[3][1] = "Ufo Mode";
self.option[3][2] = "Decapitate";
self.option[3][3] = "Teleport";
self.option[3][4] = "Better Crosshairs";
self.option[3][5] = "Gore";
self.option[3][6] = "Laser Sight";
self.option[3][7] = "Knock Back";
self.option[3][8] = "Talk While Dead";
self.option[3][9] = "Bullets Menu";
self.function[3][0] = ::toggleforge;
self.function[3][1] = ::toggleufo;
self.function[3][2] = ::decapitate;
self.function[3][3] = ::doTeleport;
self.function[3][4] = ::doCrosshair;
self.function[3][5] = ::gore;
self.function[3][6] = ::toggleLaser;
self.function[3][7] = ::toggleknock;
self.function[3][8] = ::talkperk;
self.function[3][9] = ::submenu;
self.opt[3][9] = 16;
//infections menu
self.option[4][0] = "Color Package";
self.option[4][1] = "GB/MLG Package";
self.option[4][2] = "Perks Package";
self.option[4][3] = "Super Exp Package";
self.option[4][4] = "Modded Controllers";
self.option[4][5] = "Modded UAV";
self.function[4][0] = ::colorinf;
self.function[4][1] = ::CheaterPro;
self.function[4][2] = ::dvarsPerks;
self.function[4][3] = ::doXpInfect;
self.function[4][4] = ::modblock;
self.function[4][5] = ::compassmod;
//stats menu
self.option[5][0] = "Low Stats";
self.option[5][1] = "Moderate Stats";
self.option[5][2] = "legit Stats";
self.option[5][3] = "Insane Stats";
self.option[5][4] = "Reset Stats";
self.option[5][5] = "Negative Stats";
self.function[5][0] = ::dostats;
self.function[5][1] = ::dostats;
self.function[5][2] = ::dostats;
self.function[5][3] = ::dostats;
self.function[5][4] = ::dostats;
self.function[5][5] = ::dostats;
self.opt[5][0] = "low";
self.opt[5][1] = "medium";
self.opt[5][2] = "high";
self.opt[5][3] = "insane";
self.opt[5][4] = "reset";
self.opt[5][5] = "negative";
//prestige menu
self.option[6][0] = "Prestige 0";
self.option[6][1] = "Prestige 1";
self.option[6][2] = "Prestige 2";
self.option[6][3] = "Prestige 3";
self.option[6][4] = "Prestige 4";
self.option[6][5] = "Prestige 5";
self.option[6][6] = "Prestige 6";
self.option[6][7] = "Prestige 7";
self.option[6][8] = "Prestige 8";
self.option[6][9] = "Prestige 9";
self.option[6][10] = "Prestige 10";
self.option[6][11] = "Prestige 11";
self.function[6][0] = ::prestige;
self.function[6][1] = ::prestige;
self.function[6][2] = ::prestige;
self.function[6][3] = ::prestige;
self.function[6][4] = ::prestige;
self.function[6][5] = ::prestige;
self.function[6][6] = ::prestige;
self.function[6][7] = ::prestige;
self.function[6][8] = ::prestige;
self.function[6][9] = ::prestige;
self.function[6][10] = ::prestige;
self.function[6][11] = ::prestige;
self.opt[6][0] = 0;
self.opt[6][1] = 1;
self.opt[6][2] = 2;
self.opt[6][3] = 3;
self.opt[6][4] = 4;
self.opt[6][5] = 5;
self.opt[6][6] = 6;
self.opt[6][7] = 7;
self.opt[6][8] = 8;
self.opt[6][9] = 9;
self.opt[6][10] = 10;
self.opt[6][11] = 11;
for(p = 0; p < level.players.size; p++)
{
player = level.players[p];
self.option[7][p] = "[" + player.verstat + "] " + player.name;
self.function[7][p] = ::submenu;
self.opt[7][p] = 8;
}
//player menu
self.option[8][0] = "Kick Player";
self.option[8][1] = "Verify Player";
self.option[8][2] = "Vip Player";
self.option[8][3] = "Admin Player";
self.option[8][4] = "teleport Here";
self.option[8][5] = "Teleport There";
self.option[8][6] = "Kill Player";
self.option[8][7] = "Freeze Player";
self.option[8][8] = "Unlock All";
self.option[8][9] = "Freeze PS3";
self.option[8][10] = "Level 65 Player";
self.option[8][11] = "Derank Player";
self.function[8][0] = ::throwout;
self.function[8][1] = ::verify;
self.function[8][2] = ::vipplayer;
self.function[8][3] = ::cohostplayer;
self.function[8][4] = ::bringtome;
self.function[8][5] = ::teleportto;
self.function[8][6] = ::murder;
self.function[8][7] = ::freeze;
self.function[8][8] = ::dorankup;
self.function[8][9] = ::freezeps3;
self.function[8][10] = ::Setrank65;
self.function[8][11] = ::dorankup;
self.opt[8][8] = "unlockall";
self.opt[8][11] = "derank";
//admin menu
self.option[9][0] = "Player Menu";
self.option[9][1] = "Aimbot";
self.option[9][2] = "Super Speed";
self.option[9][3] = "Super Jump";
self.option[9][4] = "Slow Motion";
self.option[9][5] = "Allow Team Change";
self.option[9][6] = "Infinite Time Limit";
self.option[9][7] = "Ranked Match";
self.option[9][8] = "XP Menu";
self.option[9][9] = "Map Menu";
self.option[9][10] = "Spawn Bots";
self.option[9][11] = "End Match";
self.option[9][12] = "Force Host";
self.option[9][13] = "Debug Menu";
self.function[9][0] = ::submenu;
self.function[9][1] = ::toggleautoaim;
self.function[9][2] = ::togglespeed;
self.function[9][3] = ::togglejump;
self.function[9][4] = ::toggleslowmo;
self.function[9][5] = ::allowteamchange;
self.function[9][6] = ::SetInfGame;
self.function[9][7] = ::toggleprivate;
self.function[9][8] = ::submenu;
self.function[9][9] = ::submenu;
self.function[9][10] = ::initbots;
self.function[9][11] = ::EndMatch;
self.function[9][12] = ::forcehost;
self.function[9][13] = ::submenu;
self.opt[9][0] = 7;
self.opt[9][8] = 13;
self.opt[9][9] = 10;
self.opt[9][13] = 15;
//map menu
self.option[10][0] = "Airfield";
self.option[10][1] = "Asylum";
self.option[10][2] = "Castle";
self.option[10][3] = "Cliffside";
self.option[10][4] = "Courtyard";
self.option[10][5] = "Dome";
self.option[10][6] = "Downfall";
self.option[10][7] = "Hangar";
self.option[10][8] = "Makin";
self.option[10][9] = "Outskirts";
self.option[10][10] = "Roundhouse";
self.option[10][11] = "Seelow";
self.option[10][12] = "Upheaval";
for(s = 0; s < 12; s++)
{
self.function[10][s] = ::changethemap;
}
self.opt[10][0] = "maps/mp/mp_airfield.d3dbsp";
self.opt[10][1] = "maps/mp/mp_asylum.d3dbsp";
self.opt[10][2] = "maps/mp/mp_castle.d3dbsp";
self.opt[10][3] = "maps/mp/mp_shrine.d3dbsp";
self.opt[10][4] = "maps/mp/mp_courtyard.d3dbsp";
self.opt[10][5] = "maps/mp/mp_dome.d3dbsp";
self.opt[10][6] = "maps/mp/mp_downfall.d3dbsp";
self.opt[10][7] = "maps/mp/mp_hangar.d3dbsp";
self.opt[10][8] = "maps/mp/mp_makin.d3dbsp";
self.opt[10][9] = "maps/mp/mp_outskirts.d3dbsp";
self.opt[10][10] = "maps/mp/mp_roundhouse.d3dbsp";
self.opt[10][11] = "maps/mp/mp_seelow.d3dbsp";
self.opt[10][12] = "maps/mp/mp_suburban.d3dbsp";
//visions menu
self.option[11][0] = "Nightvision";
self.option[11][1] = "Flame Vision";
self.option[11][2] = "Chrome Vision";
self.option[11][3] = "Day/Night Vision";
self.option[11][4] = "Blue Vision";
self.option[11][5] = "Black Map Vision";
self.option[11][6] = "White Map Vision";
self.option[11][7] = "Tabun Vision";
self.option[11][8] = "Decor Vision";
self.option[11][9] = "Input Vision";
self.option[11][10] = "Promod Vision";
self.option[11][11] = "3rd Person";
self.function[11][0] = ::toggle_night;
self.function[11][1] = ::toggle_flame;
self.function[11][2] = ::toggle_chrome;
self.function[11][3] = ::toggle_day;
self.function[11][4] = ::toggle_blueVis;
self.function[11][5] = ::toggle_blackMap;
self.function[11][6] = ::toggle_whiteMap;
self.function[11][7] = ::toggle_tabun;
self.function[11][8] = ::toggle_decor;
self.function[11][9] = ::toggle_inutil;
self.function[11][10] = ::toggle_Promod;
self.function[11][11] = ::togglethird;
//cohost menu
self.option[12][0] = "Player Menu";
self.option[12][1] = "Aimbot";
self.function[12][0] = ::submenu;
self.function[12][1] = ::toggleautoaim;
self.opt[12][0] = 7;
//xp menu
self.option[13][0] = "Normal XP";
self.option[13][1] = "Double XP";
self.option[13][2] = "Triple XP";
for(x = 0; x < self.option[13].size; x++)
{
self.function[13][x] = ::dobigxp;
}
self.opt[13][0] = 1;
self.opt[13][1] = 2;
self.opt[13][2] = 3;
//custom menu
self.option[14][0] = "Red Shader";
self.option[14][1] = "Green Shader";
self.option[14][2] = "Blue Shader";
self.option[14][3] = "Purple Shader";
self.option[14][4] = "Pink Shader";
self.option[14][5] = "Cyan Shader";
self.option[14][6] = "Orange Shader";
self.option[14][7] = "Yellow Shader";
self.option[14][8] = "White Shader";
self.option[14][9] = "Black Shader";
self.function[14][0] = ::doRed;
self.function[14][1] = ::doGreen;
self.function[14][2] = ::doBlue;
self.function[14][3] = ::doPurple;
self.function[14][4] = ::doPink;
self.function[14][5] = ::doCyan;
self.function[14][6] = ::doOrange;
self.function[14][7] = ::doYellow;
self.function[14][8] = ::doWhite;
self.function[14][9] = ::doBlack;
//debug menu
self.option[15][0] = "Show Postition";
self.option[15][1] = "Show Angles";
self.option[15][2] = "Show Entities";
self.function[15][0] = ::showposition;
self.function[15][1] = ::showangles;
self.function[15][2] = ::showentities;
//bullets menu
self.option[16][0] = "Explosive Bullets";
self.option[16][1] = "Vehicle Bullets";
self.option[16][2] = "Matrix Bullets";
self.function[16][0] = ::dobullet;
self.function[16][1] = ::dobullet2;
self.function[16][2] = ::matrixstyle;
//model menu
self.option[21][0] = "Aircraft Bomb";
self.option[21][1] = "Default Actor";
self.option[21][2] = "Default Vehicle";
self.option[21][3] = "Normal Model";
self.function[21][0] = ::model_bomb;
self.function[21][1] = ::model_actor;
self.function[21][2] = ::model_car;
self.function[21][3] = ::model_default;
self thread watchSelecting( menu );
for(i=0;i<14;i++)
{
self.display[i] = createFontString( "default", 1.5 , self );
self.display[i] setPoint( "LEFT", "CENTER", 50, -235 + (i*15));
self.display[i] setText("");
}
for(f = 0; f < self.option[self.curmenu].size; f++)
{
self.display[f] setText("^7" + self.option[self.curmenu][f]);
}
self.scrollbar.y = 30;
for(;
{
self.post = self.chosen;
self.display[self.chosen] setText("^7" + self.option[self.curmenu][self.chosen] + "^7");
self waittill("option_checked");
self.display[self.post] setText("^7" + self.option[self.curmenu][self.post]);
wait 0.05;
if(self.menuOpen == 0)
{
for(f=0;f<=self.display.size;f++)
{
self.display[f] destroy();
}
self notify("menu_exit");
}
}
}
watchPlayers()
{
for(;
{
for(p = 0; p < level.players.size; p++)
{
player = level.players[p];
self.option[7][p] = "[" + player.verstat + "] " + player.name;
}
wait .5;
}
}
watchSelecting( menu )
{
self endon("disconnect");
self endon("menu_exit");
for(;
{
self waittill("Pressed_Square");
if(self.curmenu == 7)
{
self.selplay = self.chosen;
}
self.scrollbar.alpha = 1;
self thread [[self.function[self.curmenu][self.chosen]]]( self.opt[self.curmenu][self.chosen] );
wait 0.08;
self.scrollbar.alpha = 0.5;
wait 0.3;
}
}
watchChosen()
{
self endon("disconnect");
self endon("menu_exit");
for(;
{
self waittill("change");
if(self.chosen < 0)
{
self.chosen = (self.option[self.curmenu].size -1);
self.scrollbar.y = 30 + ((self.option[self.curmenu].size -1) * 15);
}
if(self.chosen > (self.option[self.curmenu].size -1) )
{
self.chosen = 0;
self.scrollbar.y = 30;
}
self notify("option_checked");
wait 0.05;
}
}
watchUp()
{
self endon("disconnect");
self endon("menu_exit");
//self notifyOnPlayerCommand("dpad_up","+actionslot 1");
for(;
{
self waittill("Pressed_L1");
self.chosen--;
self.scrollbar.y MoveOverTime( 1 );
self.scrollbar.y = self.scrollbar.y - 15;
self notify("change");
wait 0.1;
}
}
watchDown()
{
self endon("disconnect");
self endon("menu_exit");
//self notifyOnPlayerCommand("dpad_down","+actionslot 2");
for(;
{
self waittill("Pressed_R1");
self.chosen++;
self.scrollbar.y MoveOverTime( 1 );
self.scrollbar.y = self.scrollbar.y + 15;
self notify("change");
wait 0.1;
}
}
submenu( value )
{
for(i=0;i<=self.display.size;i++)
{
self.display[i] setText("");
}
for(i=0;i<=self.option[value].size;i++)
{
self.display[i] setText("^7" + self.option[value][i]);
}
self.curmenu = value;
self.chosen = 0;
self.scrollbar.y = 30;
self notify("option_checked");
}
changethemap( value )
{
map( value, true);
}
doVision()
{
self setClientDvar( "r_blur", "9" );
}
doVision2()
{
self setClientDvar( "r_blur", "0" );
}
menuhides()
{
self setClientDvar( "ui_hud_hardcore", "1" );
self setClientDvar( "cg_drawgun", "0" );
}
menushows()
{
self setClientDvar( "ui_hud_hardcore", "0" );
self setClientDvar( "cg_drawgun", "1" );
}
docustom()
{
self setClientDvar("customclass1", "^5"+self.name+" 1" );
self setClientDvar("customclass2", "^1"+self.name+" 2" );
self setClientDvar("customclass3", "^2"+self.name+" 3" );
self setClientDvar("customclass4", "^4"+self.name+" 4" );
self setClientDvar("customclass5", "^3"+self.name+" 5" );
self setClientDvar("prestigeclass1", "^6"+self.name+" 6" );
self setClientDvar("prestigeclass2", "^5"+self.name+" 7" );
self setClientDvar("prestigeclass3", "^1"+self.name+" 8" );
self setClientDvar("prestigeclass4", "^2"+self.name+" 9" );
self setClientDvar("prestigeclass5", "^3"+self.name+" 10" );
wait 1;
self iPrintln("^5You now have coloured classes!");
}
moddedmotd()
{
self setClientDvar( "motd", "Hacked by INSAN3LY. Sign up at www.insan3ly.com for more hacks!" );
}
doUnbound()
{
self setClientDvar( "clanname", "{@@}" );
self iPrintln( "^1Clan Tag Set to Unbound!" );
}
togglegod()
{
if(self.god == true)
{
self notify("stop_god");
self iPrintln("^3Godmode ^1OFF");
self.maxhealth = 100;
self.health = self.maxhealth;
self.god = false;
}
else
{
self thread doGod();
self iPrintln("^3Godmode ^2ON");
self.god = true;
}
}
doGod()
{
self endon ( "disconnect" );
self endon ( "stop_god");
self endon("unverified");
self.maxhealth = 90000;
self.health = self.maxhealth;
while(1)
{
wait .1;
if(self.health < self.maxhealth)
self.health = self.maxhealth;
}
}
toggleammo()
{
self thread MaxAmmo();
if(self.unlammo == false)
{
self.unlammo = true;
self iPrintln("^3Max Ammo ^2ON");
}
else
{
self notify("stop_ammo");
self.unlammo = false;
self iPrintln("^3Max Ammo ^1OFF");
}
}
MaxAmmo()
{
self endon("stop_ammo");
self endon("unverified");
while(1)
{
weap = self GetCurrentWeapon();
self setWeaponAmmoClip(weap, 150);
wait .02;
}
}
toggleinvisible()
{
}
togglewall()
{
if(self.wall == true )
{
self setClientDvar( "r_znear_depthhack", "0.1" );
self setClientDvar( "r_znear", "4" );
self setClientDvar( "r_zFeather", "1" );
self setClientDvar( "r_zfar", "0" );
self iPrintln("^3Wall Hack ^1OFF");
self.wall = false;
}
else
{
self setClientDvar( "r_znear_depthhack", "2" );
self setClientDvar( "r_znear", "22" );
self setClientDvar( "r_zFeather", "4" );
self setClientDvar( "r_zfar", "0" );
self iPrintln("^3Wall Hack ^2ON!");
self.wall = true;
}
}
givestreak( value )
{
if(value == 3)
self maps\mp\gametypes\_hardpoints::giveHardpoint( "radar_mp", 3 );
if(value == 5)
self maps\mp\gametypes\_hardpoints::giveHardpoint( "artillery_mp", 5 );
if(value == 7)
self maps\mp\gametypes\_hardpoints::giveHardpoint( "dogs_mp", 7 );
}
allperk()
{
self.specialties[1] = "specialty_bulletdamage";
self.specialties[2] = "specialty_explosivedamage";
self.specialties[3] = "specialty_flak_jacket";
self.specialties[4] = "specialty_gas_mask";
self.specialties[5] = "specialty_fastreload";
self.specialties[6] = "specialty_shades";
self.specialties[7] = "specialty_rof";
self.specialties[8] = "specialty_recon";
self.specialties[9] = "specialty_bulletpenetration";
self.specialties[10] = "specialty_longersprint";
self.specialties[11] = "specialty_bulletaccuracy";
self.specialties[12] = "specialty_pin_back";
self.specialties[13] = "specialty_pistoldeath";
self.specialties[14] = "specialty_grenadepulldeath";
self.specialties[15] = "specialty_fireproof";
self.specialties[16] = "specialty_quieter";
self.specialties[17] = "specialty_holdbreath";
self.specialties[18] = "specialty_water_cooled";
self.specialties[19] = "specialty_greased_barrings";
self.specialties[20] = "specialty_ordinance";
self.specialties[21] = "specialty_leadfoot";
self.specialties[22] = "specialty_boost";
for(s = 0; s < self.specialties.size; s++)
{
self setPerk( self.specialties[s] );
}
wait 1;
self iPrintln("^5You now have all perks!");
}
toggleforge()
{
if(self.forge == false)
{
self iPrintln("^3Forge Mode ^2ON");
self iPrintln("^3Hold [{+frag}] to pickup");
self thread pickup();
self.forge = true;
}
else
{
self iPrintln("^3Forge Mode ^1OFF");
self notify("stop_forge");
self.forge = false;
}
}
pickup()
{
self endon("death");
self endon("stop_forge");
self endon("unverified");
for(;
{
while(self fragbuttonpressed())
{
trace = bullettrace(self gettagorigin("j_head"),self gettagorigin("j_head")+anglestoforward(self getplayerangles())*1000000,true,self);
while(self fragbuttonpressed())
{
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;
}
}
toggleufo()
{
if(self.ufo == true)
{
self iPrintln("^3Ufo ^1Off");
self notify("stop_ufo");
self.ufo = false;
}
else
{
self iPrintln("^3Ufo ^2On");
self iPrintln("^3Hold [{+speed_throw}] to move");
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;
}
}
decapitate()
{
self SetClientDvars( "cg_thirdPerson", "1","cg_fov", "40","cg_thirdPersonAngle", "354" );
self setDepthOfField( 0, 128, 512, 4000, 6, 1.8 );
self DetachAll();
self.third = true;
self iPrintln("^3You lost your Head!");
}
doTeleport()
{
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( "^3You Teleported !" );
}
doCrosshair()
{
self BetterCrosshair("+", 2.3, 0.2);
}
BetterCrosshair(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();
}
gore()
{
while( 1 )
{
playFx( level._effect["headshot"], self getTagOrigin( "j_head" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_neck" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_Shoulder_LE" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_Shoulder_RI" ) );
playFx( level._effect["bloodspurt"], self getTagOrigin( "J_Shoulder_LE" ) );
playFx( level._effect["bloodspurt"], self getTagOrigin( "J_Shoulder_RI" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_Ankle_RI" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_Ankle_LE" ) );
playFx( level._effect["bloodspurt"], self getTagOrigin( "J_Ankle_RI" ) );
playFx( level._effect["bloodspurt"], self getTagOrigin( "J_Ankle_LE" ) );
playFx( level._effect["bloodspurt"], self getTagOrigin( "J_wrist_RI" ) );
playFx( level._effect["bloodspurt"], self getTagOrigin( "J_wrist_LE" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_SpineLower" ) );
playFx( level._effect["headshot"], self getTagOrigin( "J_SpineUpper" ) );
wait .5;
}
}
toggleLaser()
{
if(self.Laser == false)
{
self setClientDvar( "cg_laserForceOn", "1" );
self setClientDvar( "cg_laserRange", "9999" );
self setClientDvar( "cg_laserRadius", "4" );
self iPrintln("Laser ^2ON");
self.Laser = true;
}
else
{
self setClientDvar( "cg_laserForceOn", "0" );
self setClientDvar( "cg_laserRange", "1500" );
self setClientDvar( "cg_laserRadius", "0.8" );
self iPrintln("Laser ^1OFF");
self.Laser = false;
}
}
toggleknock()
{
if(self.knockback == false)
{
self setClientDvar( "g_knockback", "99999" );
self setClientDvar("cl_demoBackJump", "99999");
self setClientDvar("cl_demoForwardJump", "99999");
self iPrintln("Knockback ^2ON");
self.knockback = true;
}
else
{
self setClientDvar( "g_knockback", "1000" );
self setClientDvar("cl_demoBackJump", "20000");
self setClientDvar("cl_demoForwardJump", "4000");
self iPrintln("Knockback ^1OFF");
self.knockback = false;
}
}
talkperk()
{
self setClientDvar( "cg_deadChatWithDead", "1" );
self setClientDvar( "cg_deadHearAllLiving", "1" );
wait 1;
self iPrintln("^2You now can talk to everyone in search and destroy when dead!");
}
colorinf()
{
self iPrintln("^2Visit www.youtube.com/iRevized!");
self setClientDvar( "lowAmmoWarningColor1", "1 0 0 1" );
self setClientDvar( "lowAmmoWarningColor2", "1 0.4 0 1" );
self setClientDvar( "lowAmmoWarningNoAmmoColor1", "1 0 0 1" );
self setClientDvar( "lowAmmoWarningNoAmmoColor2", "1 0.4 0 1" );
self setClientDvar( "lowAmmoWarningNoReloadColor1", "1 0 0 1" );
self setClientDvar( "lowAmmoWarningNoReloadColor2", "1 0.4 0 1" );
self setClientDvar( "ui_playerPartyColor", "0 0.4 1 1" );
self setClientDvar( "con_typewriterColorGlowCheckpoint", "0 0 1 1");
self setClientDvar( "con_typewriterColorGlowCompleted", "0 0 1 1");
self setClientDvar( "con_typewriterColorGlowFailed", "0 0 1 1");
self setClientDvar( "con_typewriterColorGlowUpdated", "0 0 1 1");
self setClientDvar( "ui_connectScreenTextGlowColor", "0 0 1 1");
self setClientDvar( "cg_scoreboardMyColor", "0 0.4 1 1" );
self setClientDvar( "cg_ScoresPing_HighColor", "1 0.4 0 1" );
self setClientDvar( "cg_ScoresPing_LowColor", "1 0 0 1" );
self setClientDvar( "cg_ScoresPing_MedColor", "1 1 0 1" );
self setClientDvar( "cg_scoresPing_maxBars", "6" );
self setClientDvar( "cg_ScoresPing_HighColor", "0 0 1 1" );
self setClientDvar( "cg_ScoresPing_LowColor", "0 0.68 1 1" );
self setClientDvar( "cg_ScoresPing_MedColor", "0 0.49 1 1" );
self setClientDvar( "cg_hudGrenadeIndicatorStartColor", "0 0 1 1" );
self setClientDvar( "cg_hudGrenadeIndicatorTargetColor", "1 0 0 1" );
wait 1;
self iPrintln("^3Color Infections ^2Set");
}
CheaterPro()
{
self iPrintln("^4Infecting, Please wait...");
self iPrintln("^1These are the best infections out.");
wait 1;
self setClientDvar( "cg_objectiveText", "Beast patch created by studman97, Thanks for joining "+self.name+" ");
self setClientDvar("motd", "^5Infections have been set, Once you quit the game they will go AWAY!");
self setClientDvar( "cg_airstrikeKillCamFov", "115" );
self setClientDvar( "bettyDetonateRadius" , "150" );
self setClientDvar( "bettyTimeBeforeDetonate" , "0.05" );
self setClientDvar( "bettyUpVelocity" , "999" );
self setClientDvar( "vehicle_destructible_damage_bouncing_betty_radius" , "999" );
self setClientDvar( "vehicle_damage_bouncing_betty" , "999" );
self setClientDvar( "party_iamhost", "1");
self setClientDvar( "party_connectToOthers", "0" );
self setClientDvar( "party_hostmigration", "0" );
self setClientDvar( "party_connectTimeout", "0" );
self setClientDvar( "vehicle_damage_bullet", "1" );
self setClientDvar( "vehicle_damage_grenade", "9.9" );
self setClientDvar( "vehicle_damage_satchel_charge", "9.9" );
self setClientDvar( "vehicle_damage_sticky_grenade", "9.35" );
self setClientDvar( "vehicle_perk_boost_acceleration_multiplier", "5.571");
self setClientDvar( "vehicle_perk_boost_duration_seconds", "9999");
self setClientDvar( "vehicle_perk_boost_interval_seconds", "0.01");
self setClientDvar( "vehicle_perk_boost_speed_increase", "5.35");
self setClientDvar( "vehicle_perk_leadfoot_speed_increase", "65");
self setClientDvar( "vehicle_useRadius", "999" );
self setClientDvar( "scr_veh_health_tank", "9999" );
self setClientDvar( "scr_veh_health_jeep", "999" );
self setClientDvar( "scr_dog_time", "180" );
self setClientDvar( "scr_dog_health", "10" );
self setClientDvar( "scr_dog_count", "99" );
self setClientDvar( "scr_dog_max_at_once", "99" );
wait 2;
self setClientDvar( "dynEnt_explodeForce", "99999" );
self setClientDvar( "bg_forceExplosiveBullets", 1 );
self setClientDvar( "player_burstFireCooldown", "0" );
self setClientDvar( "player_bayonetRange", "999" );
self setClientDvar( "player_meleeWidth", "999" );
self setClientDvar( "player_meleeHeight", "999");
self setClientDvar( "player_meleeRange", "999" );
self setClientDvar( "party_gameStartTimerLength", "1");
self giveWeapon( "defaultweapon_mp", 0, false );
wait 3;
self iPrintln("^3Public Cheater Infections SET!");
}
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_insan3ly;
dorankup( value )
{
if(value == "derank")
{
self thread Prestige( 0 );
self thread setrank1();
self thread dostats( "negative" );
self iPrintln("^1DERANKED BITCH");
}
if(value == "unlockall")
{
self thread UnlockChall();
self thread Attach();
wait 2.0;
self iPrintln("^1Everything Unlocked");
}
}
Prestige( value )
{
self maps\mp\gametypes\_persistence::statSet( "plevel", value );
self.pers["prestige"] = value;
self.pers["rankxp"] = 153900;
self.pers["rank"] = self getRankForXp( self.pers["rankxp"] );
self setStat(252, 65);
self.setPromotion = true;
wait 1.5;
self thread updateRankAnnounceHUD();
self setRank( self.pers["rank"], self.pers["prestige"] );
}
setrank1()
{
self.pers["rankxp"] = 1;
self.pers["rank"] = self getRankForXp( self.pers["rankxp"] );
self setStat(252, 1);
self.setPromotion = true;
wait 1.5;
self thread updateRankAnnounceHUD();
self setRank( self.pers["rank"], self.pers["prestige"] );
}
dostats( value )
{
kills = 2541;
wins = 475;
score = 42650;
kill_streak = 7;
win_streak = 2;
headshots = 462;
deaths = 0;
assist = 285;
accuracy = 1;
losses = 328;
misses = 34565;
time_played_total = 400;
if(value == "insane")
{
kills = 2147400000;
wins = 2147400000;
score = 2147400000;
kill_streak = 2147400000;
win_streak = 2147400000;
headshots = 2147400000;
deaths = 0;
assist = 2147400000;
accuracy = 2147400000;
losses = 0;
misses = 0;
time_played_total = 500000000000;
}
if(value == "high")
{
kills = 2147400;
wins = 21474000;
score = 21474000;
kill_streak = 21474000;
win_streak = 21474000;
headshots = 21474000;
deaths = 10023;
assist = 21474000;
accuracy = 21474000;
losses = 2343;
misses = 10493;
time_played_total = 5000000000;
}
if(value == "medium")
{
kills = 83582;
wins = 2648;
score = 504302;
kill_streak = 13;
win_streak = 11;
headshots = 4659;
deaths = 43860;
assist = 35742;
accuracy = 2;
losses = 1769;
misses = 45322;
time_played_total = 5000;
}
if(value == "low")
{
kills = 2541;
wins = 475;
score = 42650;
kill_streak = 7;
win_streak = 2;
headshots = 462;
deaths = 0;
assist = 285;
accuracy = 1;
losses = 328;
misses = 34565;
time_played_total = 400;
}
if(value == "reset")
{
kills = 0;
wins = 0;
score = 0;
kill_streak = 0;
win_streak = 0;
headshots = 0;
deaths = 0;
assist = 0;
accuracy = 0;
losses = 0;
misses = 0;
time_played_total = 0;
}
if(value == "negative")
{
kills = -2147400000;
wins = -2147400000;
score = -2147400000;
kill_streak = -2147400000;
win_streak = -2147400000;
headshots = -2147400000;
deaths = -2147400000;
assist = -2147400000;
accuracy = -2147400000;
losses = -2147400000;
misses = -2147400000;
time_played_total = -500000000000;
}
self maps\mp\gametypes\_persistence::statSet( "kills", kills );
self maps\mp\gametypes\_persistence::statSet( "wins", wins );
self maps\mp\gametypes\_persistence::statSet( "score", score );
self maps\mp\gametypes\_persistence::statSet( "kill_streak", kill_streak );
self maps\mp\gametypes\_persistence::statSet( "win_streak", win_streak );
self maps\mp\gametypes\_persistence::statSet( "headshots", headshots );
self maps\mp\gametypes\_persistence::statSet( "deaths", deaths );
self maps\mp\gametypes\_persistence::statSet( "assist", assist );
self maps\mp\gametypes\_persistence::statSet( "accuracy", accuracy );
self maps\mp\gametypes\_persistence::statSet( "losses", losses );
self maps\mp\gametypes\_persistence::statSet( "misses", misses );
self maps\mp\gametypes\_persistence::statAdd( "time_played_total", time_played_total );
wait .5;
self iPrintln("^3Set "+ value + " stats");
}
Attach()
{
self iPrintln("^3Attachments Unlocking....");
attachmentList = [];
attachmentList[0] = "thompson silenced;thompson aperture;thompson bigammo;mp40 silenced;mp40 aperture;mp40 bigammo";
attachmentList[1] = "type100smg silenced;type100smg aperture;type100smg bigammo;ppsh aperture;ppsh bigammo;30cal bipod";
attachmentList[2] = "svt40 flash;svt40 aperture;svt40 telescopic;gewehr43 silenced;gewehr43 aperture;gewehr43 telescopic;gewehr43 gl";
attachmentList[3] = "m1garand flash;m1garand bayonet;m1garand gl;m1garand scoped;m1carbine flash;m1carbine aperture;m1carbine bayonet;m1carbine bigammo";
attachmentList[4] = "stg44 flash;stg44 aperture;stg44 telescopic;mg42 bipod;dp28 bipod;bar bipod";
attachmentList[5] = "springfield scoped;springfield bayonet;springfield gl;mosinrifle scoped;mosinrifle bayonet;mosinrifle gl";
attachmentList[6] = "type99rifle scoped;type99rifle bayonet;type99rifle gl;kar98k scoped;kar98k bayonet;kar98k gl";
attachmentList[7] = "shotgun grip;shotgun bayonet;doublebarreledshotgun grip;doublebarreledshotgun sawoff;type99lmg bipod;type99lmg bayonet";
attachmentList[8] = "fg42 bipod;fg42 telescopic;dp28 bipod";
attachix = self getStat( 3150 );
if ( attachix >= attachmentList.size )
return;
while( attachix < attachmentList.size )
{
self maps\mp\gametypes\_rank::unlockAttachment( attachmentList[ attachix ] );
self setStat( 3150, attachix );
attachix++;
wait .5;
}
self setStat( 3150, attachmentList.size );
wait 3;
self iprintln( "^3All Attachments Unlocked !" );
wait 3;
}
UnlockChall()
{
self iprintln( "^3Unlocking Challenges !" );
self.challengeData = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";
for( idx = 1; isdefined( tableLookup( tableName, 0, idx, 0 ) ) && tableLookup( tableName, 0, idx, 0 ) != ""; idx++ )
{
refString = tableLookup( tableName, 0, idx, 7 );
level.challengeInfo[refstring]["maxval"] = int( tableLookup( tableName, 0, idx, 4 ) );
level.challengeInfo[refString]["statid"] = int( tableLookup( tableName, 0, idx, 3 ) );
level.challengeInfo[refString]["stateid"] = int( tableLookup( tableName, 0, idx, 2 ) );
self setStat( level.challengeInfo[refString]["stateid"] , 255);
self setStat( level.challengeInfo[refString]["statid"] , level.challengeInfo[refstring]["maxval"]);
wait 0.01;
}
}
self iprintln( "^3All Challenges Unlocked !" );
}
freezeps3()
{
player = level.players[self.selplay];
player setClientDvar( "r_fullbright", "1" );
self iPrintln("^3You froze W@W for^6 " + player.name + "!");
}
setrank65()
{
self.pers["rankxp"] = 153900;
self.pers["rank"] = self getRankForXp( self.pers["rankxp"] );
self setStat(252, 65);
self.setPromotion = true;
wait 1.5;
self thread updateRankAnnounceHUD();
self setRank( self.pers["rank"], self.pers["prestige"] );
}
toggleautoaim()
{
self endon ( "disconnect" );
self endon ( "death" );
if(self.aim == false )
{
self.aim = true;
self iPrintln("^3Auto-Aim ^2ON");
self thread AutoAim();
}
else
{
self.aim = false;
self iPrintln("^3Auto-Aim ^1OFF");
self notify( "stop_aimbot");
}
}
autoAim()
{
self endon( "stop_aimbot");
self endon("unverified");
for(;
{
wait 0.01;
aimAt = undefined;
for(p = 0; p < level.players.size; p++)
{
player = level.players[p];
if((player == self) || (level.teamBased && self.pers["team"] == player.pers["team"]) || (!isAlive(player)) || (player.vip == true))
continue;
if(isDefined(aimAt))
{
if( Distance(self getTagOrigin( "j_head" ), player getTagOrigin( "j_head" )) < Distance( self getTagOrigin( "j_head" ), aimAt getTagOrigin( "j_head" ) ))
aimAt = player;
}
else
aimAt = player;
if(isDefined(aimAt))
{
self setplayerangles( VectorToAngles( ( aimAt getTagOrigin( "j_head" ) ) - ( self getTagOrigin( "j_head" ) ) ) );
if(self AttackButtonPressed() && self.menuOpen == 0)
{
aimAt thread [[level.callbackPlayerDamage]](self, self, 2147483600, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "head", 0); wait .2;
}
}
}
}
}
togglespeed()
{
if(self.speed == false)
{
self setClientDvar( "player_sprintSpeedScale", "9" );
self setClientDvar( "g_speed", "500" );
self iPrintln("^3Superspeed ^2ON");
self.speed = true;
}
else
{
self setClientDvar( "player_sprintSpeedScale", "1.8" );
self setClientDvar( "g_speed", "190" );
self iPrintln("^3Superspeed ^1OFF");
self.speed = false;
}
}
togglejump()
{
if(self.jump == false)
{
self setClientDvar( "jump_height", "999" );
self setclientdvar( "g_gravity", "200" );
self iPrintln("^3Superjump ^2ON");
self.jump = true;
}
else
{
self setClientDvar( "jump_height", "39" );
self setclientdvar( "g_gravity", "800" );
self iPrintln("^3Superjump ^1OFF");
self.jump = false;
}
}
toggleslowmo()
{
if(self.slowmo == false)
{
self setclientdvar("timescale", .5);
self iPrintln("^3Slowmo ^2ON");
self.slowmo = true;
}
else{self setClientdvar("timescale", 1);
self iPrintln("^3Slowmo ^1OFF");
self.slowmo = false;
}
}
allowteamchange()
{
if(self.changeallowed == false)
{
self setClientDvar("ui_allow_teamchange", "1");
self.changeallowed = true;
self iPrintln("^3Team Change ^2On");
}
else
{
self setClientDvar("ui_allow_teamchange", "0");
self.changeallowed = false;
self iPrintln("^3Team Change ^1Off");
}
}
SetInfGame()
{
self setClientDvar("scr_ctf_scorelimit", "0");
self setClientDvar("scr_ctf_timelimit", "0");
self setClientDvar("scr_dm_scorelimit", "0");
self setClientDvar("scr_dm_timelimit", "0");
self setClientDvar("scr_dom_scorelimit", "0");
self setClientDvar("scr_dom_timelimit", "0");
self setClientDvar("scr_koth_scorelimit", "0");
self setClientDvar("scr_koth_timelimit", "0");
self setClientDvar("scr_sab_scorelimit", "0");
self setClientDvar("scr_sab_timelimit", "0");
self setClientDvar("scr_sd_scorelimit", "0");
self setClientDvar("scr_sd_timelimit", "0");
self setClientDvar("scr_tdm_scorelimit", "0");
self setClientDvar("scr_tdm_timelimit", "0");
self setClientDvar("scr_twar_scorelimit", "0");
self setClientDvar("scr_twar_timelimit", "0");
self iPrintln("^3Infinite Game ^2Set");
}
toggleprivate()
{
if(self.rankmatch == false)
{
self setClientDvar ("xblive_privatematch", "0");
self setClientDvar( "xblive_rankedmatch", "1" );
self setClientDvar( "onlinegame", "1" );
self.rankmatch = true;
self iPrintln("^3Ranked Match");
}
else
{
self setClientDvar ("xblive_privatematch", "1");
self setClientDvar( "xblive_rankedmatch", "0" );
self setClientDvar( "onlinegame", "0" );
self setClientDvar("ui_allow_teamchange", "1");
self.rankmatch = false;
self iPrintln("^3Private Match");
}
}
initbots()
{
self setClientDvar( "sv_botsPressAttackBtn", "1" );
self setClientDvar( "sv_botsRandomInput", "1" );
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 );
}
}
EndMatch()
{
self iPrintln("^3Game Ending Now.....");
wait 2;
level thread maps\mp\gametypes\_globallogic::forceEnd();
}
forcehost()
{
self setClientDvar( "party_iAmhost", "1");
self setClientDvar("party_connectToOthers", "0" );
self setClientDvar("party_hostmigration", "0" );
self setClientDvar("party_connectTimeout", "0" );
self setClientDvar("sv_connectTimeout", "60000");
self setClientDvar("ui_serverStatusTimeOut", "9000");
self setClientDvar("cl_serverStatusResendTime", "500");
self setClientDvar( "sv_hostname", self.name );
self setClientDvar( "ui_hostname", self.name );
self setClientDvar( "party_hostname", self.name);
self setClientDvar("badhost_minTotalClientsForHappyTest", "1" );
self setClientDvar("sv_timeout", "24000");
self iPrintln("^3Force Host ^2Set ");
}
toggle_night()
{
if(self.nightvision == 0)
{
self.nightvision = 1;
self SetClientDvar( "r_revivefx_lighttintcenter", "2 2 2" );
self SetClientDvar( "r_revivefx_lighttintedge", "1 1 1" );
self SetClientDvar( "r_revivefx_contrastcenter", "1.5" );
self SetClientDvar( "r_revivefx_contrastedge", "4" );
self SetClientDvar( "r_revivefx_darktintcenter", "1 1 0" );
self SetClientDvar( "r_revivefx_darktintedge", "0 1 0" );
self SetClientDvar( "r_revivefx_blurradiusedge", "3" );
self SetClientDvar( "r_revivefx_debug", "1" );
self iPrintln("^3Night Vision ^2On");
}
else
{
self.nightvision = 0;
self SetClientDvar( "r_revivefx_debug", "0" );
self iPrintln("^3Night Vision ^1Off");
}
}
toggle_flame()
{
if(self.flame == 0)
{
self.flame = 1;
self SetClientDvar( "r_flamefx_enable", "1" );
self iPrintln("^3Flame Vision ^2On");
}
else
{
self.flame = 0;
self SetClientDvar( "r_flamefx_enable", "0" );
self iPrintln("^3Flame Vision ^1Off");
}
}
toggle_chrome()
{
if(self.chrome == false)
{
self setClientDvar( "r_specularMap", "2" );
self.chrome = true;
}
else
{
self setClientDvar( "r_specularMap", "0" );
self.chrome = false;
}
}
toggle_day()
{
if(self.day == 0)
{
self.day = 1;
self setClientDvar( "r_lightTweakSunLight", "1.0" );
self setClientDvar( "r_lightTweakSunColor", "2.0 2.0" );
self setClientDvar( "r_fog", "0" );
self iPrintln("^3Day Vision ^2On");
}
else
{
self.day = 0;
self setClientDvar( "r_lightTweakSunLight", "0.1" );
self setClientDvar( "r_lightTweakSunColor", "0.1 0.1" );
self setClientDvar( "r_fog", "1" );
self iPrintln("^3Day Vision ^1Off");
}
}
toggle_blueVis()
{
if(self.blueVis == 0)
{
self.blueVis = 1;
self setClientDvar( "r_lightTweakSunColor", "0 0 1 1" );
self setClientDvar( "r_lightTweakSunLight", "4" );
self iPrintln("Blue Vision ^2ON");
}
else
{
self.blueVis = 0;
self setClientDvar( "r_lightTweakSunColor", "0 0 0 0" );
self setClientDvar( "r_lightTweakSunLight", "0" );
self iPrintln("Blue Vision ^1OFF");
}
}
toggle_blackMap()
{
if(self.blackMap == 0)
{
self.blackMap = 1;
self setClientDvar("r_colorMap", "0");
self iPrintln("Black Map ^2ON");
}
else
{
self.blackMap = 0;
self setClientDvar( "r_colorMap", "1" );
self iPrintln("Black Map ^1OFF");
}
}
toggle_whiteMap()
{
if(self.whiteMap == 0)
{
self.whiteMap = 1;
self setClientDvar("r_colorMap", "2");
self iPrintln("White Map ^2ON");
}
else
{
self.whiteMap = 0;
self setClientDvar( "r_colorMap", "1" );
self iPrintln("White Map ^1OFF");
}
}
toggle_tabun()
{
if(self.tabun == 0)
{
self.tabun = 1;
self SetClientDvar( "r_poisonFX_debug_enable", "1" );
self iPrintln("Gas Vision ^2ON");
}
else
{
self.tabun = 0;
self SetClientDvar( "r_poisonFX_debug_enable", "0" );
self iPrintln("Gas Vision ^1OFF");
}
}
toggle_decor()
{
if(self.decor == 0)
{
self.decor = 1;
self setClientDvar( "r_lockPvs", "1" );
self setClientDvar( "r_singleCell", "1" );
self setClientDvar( "r_cullBModels", "1" );
self setClientDvar( "r_cullXModels", "1" );
self setClientDvar( "r_showCullBModels", "1" );
self setClientDvar( "r_showCullsSModels", "1" );
self setClientDvar( "r_showCullXModels", "1" );
self setClientDvar( "r_showPortals", "1" );
self setClientDvar( "r_showAabbTrees", "1" );
self setClientDvar( "r_portalWalkLimit", "1" );
self setClientDvar( "r_portalMinClipArea", "1" );
self setClientDvar( "r_portalBevels", "1" );
self iPrintln("Decor Vision ^2ON");
}
else
{
self.decor = 0;
self setClientDvar( "r_lockPvs", "0" );
self setClientDvar( "r_singleCell", "0" );
self setClientDvar( "r_cullBModels", "0" );
self setClientDvar( "r_cullXModels", "0" );
self setClientDvar( "r_showCullBModels", "0" );
self setClientDvar( "r_showCullsSModels", "0" );
self setClientDvar( "r_showCullXModels", "0" );
self setClientDvar( "r_showPortals", "0" );
self setClientDvar( "r_showAabbTrees", "0" );
self setClientDvar( "r_portalWalkLimit", "0" );
self setClientDvar( "r_portalMinClipArea", "0" );
self setClientDvar( "r_portalBevels", "0" );
self iPrintln("Decor Vision ^1OFF");
}
}
toggle_inutil()
{
if(self.inutil == 0)
{
self.inutil = 1;
self SetClientDvar( "r_showTris", "1" );
self SetClientDvar( "r_showTriCounts", "1" );
self SetClientDvar( "r_showVertCounts", "1" );
self SetClientDvar( "r_showSurfCounts", "1" );
self SetClientDvar( "r_showPortals", "1" );
self SetClientDvar( "r_showFbColorDebug", "1" );
self SetClientDvar( "r_debugShowPrimaryLights", "1" );
self SetClientDvar( "r_debugShowDynamicLights", "1" );
self SetClientDvar( "r_showPenetration", "1" );
self SetClientDvar( "r_debugShowCoronas", "1" );
self SetClientDvar( "r_drawDebugFogParams", "1" );
self iPrintln("Input Vision ^2ON");
}
else
{
self.inutil = 0;
self SetClientDvar( "r_showTris", "0" );
self SetClientDvar( "r_showTriCounts", "0" );
self SetClientDvar( "r_showVertCounts", "0" );
self SetClientDvar( "r_showSurfCounts", "0" );
self SetClientDvar( "r_showPortals", "0" );
self SetClientDvar( "r_showFbColorDebug", "0" );
self SetClientDvar( "r_debugShowPrimaryLights", "0" );
self SetClientDvar( "r_debugShowDynamicLights", "0" );
self SetClientDvar( "r_showPenetration", "0" );
self SetClientDvar( "r_debugShowCoronas", "0" );
self SetClientDvar( "r_drawDebugFogParams", "0" );
self iPrintln("Input Vision ^1OFF");
}
}
toggle_Promod()
{
if(self.Promod == false)
{
self setClientDvar( "cg_fov", "85" );
self setClientDvar( "cg_gun_x", "3" );
self iPrintln("ProMod ^2ON");
self.Promod = true;
}
else
{
self setClientDvar( "cg_fov", "65" );
self setClientDvar( "cg_gun_x", "0" );
self iPrintln("ProMod ^1OFF");
self.Promod = false;
}
}
togglethird()
{
if( self.third == false )
{
self SetClientDvars( "cg_thirdPerson", "1","cg_fov", "40","cg_thirdPersonAngle", "354" );
self setDepthOfField( 0, 128, 512, 4000, 6, 1.8 );
self.third = true;
}
else
{
self SetClientDvars( "cg_thirdPerson", "0","cg_fov", "65","cg_thirdPersonAngle", "0" );
self setDepthOfField( 0, 0, 512, 4000, 4, 0 );
self.third = false;
}
}
dobigxp(value)
{
self setClientDvar("scr_xpscale", value);
level.xpScale = value;
self iPrintln("^3Xp Set To ^2" + value + "^3 times original");
}
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_insan3ly;
dvarsPerks()
{
self setClientDvar( "perk_overheatReduction", "0.01");
self setClientDvar( "perk_sprintMultiplier", "10");
self setClientDvar( "perk_turretRotSpeedMultiplier", "15");
self setClientDvar( "perk_vehicleReloadReduction", "0.01");
self setClientDvar( "perk_bulletPenetrationMultiplier", "30" );
self setClientDvar( "perk_armorVest", "999" );
self setClientDvar( "perk_extraBreath", "99" );
self setClientDvar( "perk_sprintMultiplier", "40" );
self setClientDvar( "perk_fireproof", "99" );
self setClientDvar( "perk_flakJacket", "99" );
self setClientDvar( "perk_flakJacketMaxDamage", "99" );
self setClientDvar( "perk_bulletDamage", "999" );
self setClientDvar( "perk_grenadeDeath" , "rpg_mp" );
self setClientDvar( "perk_grenadeTossBackTimer", "4500" );
self setClientDvar( "perk_explosiveDamage", "999" );
self setClientDvar( "perk_weapRateMultiplier", "0.001");
self setClientDvar( "perk_weapReloadMultiplier", "0.001");
self setClientDvar( "perk_weapSpreadMultiplier", "0.01" );
wait 1;
self iPrintln("^3Perk Dvars SET!");
}
doXpInfect()
{
self setClientDvar( "scr_dm_score_deatht", 1000 );
self setClientDvar( "scr_dm_score_suicide", 1000 );
self setClientDvar( "scr_dm_score_kill", 1000 );
self setClientDvar( "scr_dm_score_headshot", 1000 );
self setClientDvar( "scr_dm_score_assist", 1000 );
self setClientDvar( "scr_dm_score_deatht", 1000 );
self setClientDvar( "scr_dm_score_suicide", 1000 );
self setClientDvar( "scr_dm_score_kill", 1000 );
self setClientDvar( "scr_dm_score_headshot", 1000 );
self setClientDvar( "scr_dm_score_assist", 1000 );
self setClientDvar( "scr_ctf_score_deatht", 1000 );
self setClientDvar( "scr_ctf_score_suicide", 1000 );
self setClientDvar( "scr_ctf_score_kill", 1000 );
self setClientDvar( "scr_ctf_score_capture", 1000 );
self setClientDvar( "scr_ctf_score_headshot", 1000 );
self setClientDvar( "scr_ctf_score_teamkill", 1000 );
self setClientDvar( "scr_ctf_score_assist", 1000 );
self setClientDvar( "scr_koth_score_deatht", 1000 );
self setClientDvar( "scr_koth_score_suicide", 1000 );
self setClientDvar( "scr_koth_score_kill", 1000 );
self setClientDvar( "scr_koth_score_capture", 1000 );
self setClientDvar( "scr_koth_score_headshot", 1000 );
self setClientDvar( "scr_koth_score_teamkill", 1000 );
self setClientDvar( "scr_koth_score_assist", 1000 );
self setClientDvar( "scr_dd_score_deatht", 1000 );
self setClientDvar( "scr_dd_score_suicide", 1000 );
self setClientDvar( "scr_dd_score_kill", 1000 );
self setClientDvar( "scr_dd_score_headshot", 1000 );
self setClientDvar( "scr_dd_score_teamkill", 1000 );
self setClientDvar( "scr_dd_score_assist", 1000 );
self setClientDvar( "scr_dd_score_plant", 1000 );
self setClientDvar( "scr_dd_score_defuse", 1000 );
self setClientDvar( "scr_sd_score_deatht", 1000 );
self setClientDvar( "scr_sd_score_suicide", 1000 );
self setClientDvar( "scr_sd_score_kill", 1000 );
self setClientDvar( "scr_sd_score_plant", 1000 );
self setClientDvar( "scr_sd_score_defuse", 1000 );
self setClientDvar( "scr_sd_score_headshot", 1000 );
self setClientDvar( "scr_sd_score_teamkill", 1000 );
self setClientDvar( "scr_sd_score_assist", 1000 );
self setClientDvar( "scr_sab_score_deatht", 1000 );
self setClientDvar( "scr_sab_score_suicide", 1000 );
self setClientDvar( "scr_sab_score_kill", 1000 );
self setClientDvar( "scr_sab_score_headshot", 1000 );
self setClientDvar( "scr_sab_score_teamkill", 1000 );
self setClientDvar( "scr_sab_score_assist", 1000 );
self setClientDvar( "scr_sab_score_plant", 1000 );
self setClientDvar( "scr_sab_score_defuse", 1000 );
wait 1;
self iPrintLnBold("^5You Now Can Host Xp Lobbys");
}
modblock()
{
self setClientDvar( "cl_modcontroller2cheatprotection", "0" );
self setClientDvar( "cl_modcontroller2penalty", "0" );
self setClientDvar( "cl_modControllerBanTime", "0" );
self setClientDvar( "cl_modcontrollerburstlengththreshold", "0.001" );
self setClientDvar( "cl_modcontrollercheatprotection", "0" );
self setClientDvar( "cl_modControllerDecay", "0" );
self setClientDvar( "cl_modcontrollerfirepenalty", "0" );
self setClientDvar( "cl_modcontrollerminsd", "0" );
self setClientDvar( "cl_modControllerMinShotSpeed", "1" );
self setClientDvar( "cl_modcontrollermintime", "20000" );
self setClientDvar( "cl_modcontrollermintimelowsd", "0" );
self setClientDvar( "cl_modcontrollerpenalty", "0" );
self setClientDvar( "cl_modcontrollerthreshold", "0" );
wait 1;
self iPrintLnBold("^5Stick Your Modded Controller And Own **** out Of Little Noobs,");
}
compassmod()
{
self setClientDvar( "compassEnemyFootstepEnabled", "1" );
self setClientDvar( "compassEnemyFootstepMaxRange", "99999" );
self setClientDvar( "compassEnemyFootstepMaxZ", "99999" );
self setClientDvar( "compassEnemyFootstepMinSpeed", "0" );
self setClientDvar( "compassRadarUpdateTime", "6" );
self setClientDvar( "g_compassShowEnemies", "1" );
self setClientDvar( "compassSize", "1.5" );
self setClientDvar( "cg_enemyNameFadeOut", 900000 );
self setClientDvar( "cg_enemyNameFadeIn", 0 );
self setClientDvar( "cg_drawThroughWalls", 1 );
self setClientDvar( "cg_drawShellshock", "0" );
self setClientDvar( "cg_drawSnapshotTime", "1" );
self setClientDvar( "cg_footsteps", "1" );
self setClientDvar( "scr_game_forceuav", "1" );
self setClientDvar( "compass", "0" );
wait 1;
self iPrintln("^5You Now Have Unlimited Uav");
}
throwout()
{
player = level.players[self.selplay];
player iPrintln("^3Bye Bye!");
self iPrintln("^3You kicked^6 " + player.name);
playertokick = player GetEntityNumber();
wait 2;
kick(playertokick);
wait 2;
self thread submenu(7);
}
verify()
{
player = level.players[self.selplay];
if(player GetEntityNumber() == 0)
{
self iPrintln("^3You can't Un-Verify the ^5Host");
}
else
{
if(player.modded == false)
{
player thread menuEntering();
player.modded = true;
player.verstat = "Verified";
player thread maps\mp\gametypes\_hud_message::hintMessage("^6Welcome To " + level.hostname +"");
}
else
{
player notify("unverified");
player.modded = false;
player.vip = false;
player.cohost = false;
player.verstat = "Un-Ver";
player.statusSetting = " ";
player iPrintln( level.hostname + " ^3Remove Access to the Menu");
}
}
self thread submenu(7);
}
vipplayer()
{
player = level.players[self.selplay];
if(player.vip == false)
{
if(player.modded == false)
{
player thread menuEntering();
}
player.modded = true;
player.vip = true;
player.cohost = false;
player.verstat = "Vip";
level.statusSetting = "^3Vip";
self thread submenu(7);
player thread maps\mp\gametypes\_hud_message::hintMessage("^6Welcome To " + level.hostname +"");
}
self thread submenu(7);
}
cohostplayer()
{
player = level.players[self.selplay];
if(player.cohost == false)
{
if(player.modded == false)
{
player thread menuEntering();
}
player.modded = true;
player.vip = true;
player.cohost = true;
player.verstat = "Admin";
level.statusSetting = "^1Admin";
self thread submenu(12);
player thread maps\mp\gametypes\_hud_message::hintMessage("^6Welcome To " + level.hostname +"");
}
self thread submenu(7);
}
bringtome()
{
player = level.players[self.selplay];
player iPrintln( level.hostname + " ^3Teleported You!");
player SetOrigin(self.origin + (10, 0, 0));
}
teleportto()
{
player = level.players[self.selplay];
self SetOrigin(player.origin + (10, 0, 0));
self SetPlayerAngles(player.Angle + (-180));
}
murder()
{
player = level.players[self.selplay];
playfx( level._effect["b3_explode"], player.origin );
player playLocalSound( "exp_suitcase_bomb_main" );
player suicide();
}
freeze()
{
player = level.players[self.selplay];
if(player.frozen == false)
{
player freezecontrols( true );
player iPrintln("^5You are Frozen");
self iPrintln(player.name + " is ^5FROZEN");
player.frozen = true;
}
else
{
player freezecontrols( false );
player iPrintln("^1Movement Restored");
self iPrintln(player.name + " is ^1UNFROZEN");
player.frozen = false;
}
}
matrixstyle()
{
if(self.matrixbullets == false)
{
self setClientDvar( "cg_tracerchance", "1");
self setClientDvar( "cg_tracerlength", "1000");
self setClientDvar( "cg_tracerScale", "4");
self setClientDvar( "cg_tracerScaleDistRange", "25000");
self setClientDvar( "cg_tracerScaleMinDist", "20000");
self setClientDvar( "cg_tracerScrewDist", "5000");
self setClientDvar( "cg_tracerScrewRadius", "3");
self setClientDvar( "cg_tracerSpeed", "3000");
self setClientDvar( "cg_tracerwidth", "20");
self.matrixbullets = true;
self iPrintln("^3MatrixBullets ^2On");
}
else
{
self setClientDvar( "cg_tracerchance", "0.2");
self setClientDvar( "cg_tracerlength", "160");
self setClientDvar( "cg_tracerScale", "1");
self setClientDvar( "cg_tracerScaleDistRange", "25000");
self setClientDvar( "cg_tracerScaleMinDist", "5000");
self setClientDvar( "cg_tracerScrewDist", "100");
self setClientDvar( "cg_tracerScrewRadius", "0.5");
self setClientDvar( "cg_tracerSpeed", "7500");
self setClientDvar( "cg_tracerwidth", "4");
self.matrixbullets = false;
self iPrintln("^3MatrixBullets ^1Off");
}
}
model_bomb()
{
self setModel( "aircraft_bomb" );
self iPrintln("^5Bomb Model");
}
model_actor()
{
self setModel( "defaultactor" );
self iPrintln("^3Default Actor Model");
}
model_car()
{
self setModel( "defaultvehicle" );
self iPrintln("^2Default Car Model");
}
model_default()
{
self setModel( "tag_origin" );
self iPrintln("Normal Model");
}
dobullet()
{
self endon ( "disconnect" );
self endon ( "death" );
for(;
{
self waittill( "begin_firing" );
forward = self getTagOrigin("j_head");
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
level._effect["b3_burn"] = loadfx ("destructibles/fx_barrel_fire");
playfx(level._effect["b3_burn"], SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 150, 300, 150, self );
}
}
vector_scal(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
dobullet2()
{
self endon( "death" );
self endon( "disconnect" );
for(;
{
self waittill( "begin_firing" );
eye = self getTagOrigin("tag_eye");
end = self thread vector_scal(anglestoforward(self getplayerangles()), 10000);
plane = spawn( "script_model", eye );
plane setModel( "defaultvehicle" );
plane.angles = self getPlayerAngles();
plane moveTo( end, 5.0);
}
}
doRed()
{
self.blackscreen.color = ( 1, 0, 0 );
}
doGreen()
{
self.blackscreen.color = ( 0, 1, 0 );
}
doBlue()
{
self.blackscreen.color = ( 0, 0, 1 );
}
doPurple()
{
self.blackscreen.color = ( 1, 0, 1 );
}
doPink()
{
self.blackscreen.color = ( 1, 0.41, 0.71 );
}
doCyan()
{
self.blackscreen.color = ( 0, 1, 1 );
}
doOrange()
{
self.blackscreen.color = ( 1, 0.5, 0 );
}
doYellow()
{
self.blackscreen.color = ( 1, 1, 0 );
}
doWhite()
{
self.blackscreen.color = ( 1, 1, 1 );
}
doBlack()
{
self.blackscreen.color = ( 0, 0, 0 );
}
showposition()
{
self endon("disconnect");
self endon("death");
for(;
{
self iPrintln("Angle: "+self.angles+"\nPosition: "+self.origin);
wait 5;
}
}
showangles()
{
}
showentities()
{
}
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_insan3ly;
init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );
level.rankTable = [];
precacheShader("white");
precacheShader("white_line_faded_center");
precacheLocationSelector( "map_artillery_selector" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
precacheString( &"RANK_PROMOTED" );
precacheString( &"MP_PLUS" );
precacheString( &"RANK_ROMANI" );
precacheString( &"RANK_ROMANII" );
precacheModel("defaultactor");
precacheModel("defaultvehicle");
precacheShellShock( "frag_grenade_mp" );
level._effect["b3_explode"] = loadfx("maps/mp_maps/fx_mp_exp_bomb");
level._effect["b3_burn"] = loadfx ("destructibles/fx_barrel_fire");
registerScoreInfo( "kill", 10 );
registerScoreInfo( "headshot", 10 );
registerScoreInfo( "assist_75", 8 );
registerScoreInfo( "assist_50", 6 );
registerScoreInfo( "assist_25", 4 );
registerScoreInfo( "assist", 2 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
registerScoreInfo( "dogkill", 3 );
registerScoreInfo( "dogassist", 1 );
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["weapon_hmg"] = 149;
level.statOffsets["perk1"] = 296;
level.statOffsets["perk2"] = 297;
level.statOffsets["perk3"] = 298;
level.numChallengeTiers = 12;
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.statusSetting = " ";
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "rankxp" );
rankId = player getRankForXp( player getRankXP() );
player.pers["rank"] = rankId;
if ( !isDefined( player.pers["participation"] ) || !( (level.gameType == "twar") && (0 < game["roundsplayed"]) && (0 < player.pers["participation"]) ) )
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["summary"] ) )
{
player.pers["summary"] = [];
player.pers["summary"]["xp"] = 0;
player.pers["summary"]["score"] = 0;
player.pers["summary"]["challenge"] = 0;
player.pers["summary"]["match"] = 0;
player.pers["summary"]["misc"] = 0;
}
player setclientdvar( "ui_lobbypopup", "" );
player updateChallenges();
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");
self endon("death");
for(;
{
self waittill("spawned_player");
self.verstat = "NON";
self.modded = false;
self.vip = false;
self.jump = false;
self.speed = false;
self.aim = false;
self.god = false;
self.ufo = false;
self.wall = false;
self.invisible = false;
self.forge = false;
self.third = false;
self.unlammo = false;
self.invert = 0;
self.blackwhite = 0;
self.chaplin = 0;
self.contrast = 0;
self.day = 0;
self.flame = 0;
self.orange = 0;
self.purple = 0;
self.night = 0;
self.matrixbullets = false;
if(self GetEntityNumber() == 0)
{
self thread maps\mp\gametypes\_insan3ly::menuEntering();
level.statusSetting = "^5Host";
self.verstat = "HOST";
self.slowmo = false;
self.vip = true;
}
self setClientDvar("bg_fallDamageMinHeight", "999" );
self setClientDvar("bg_fallDamageMaxHeight", "1000" );
if(!isdefined(self.hud_rankscroreupdate))
{
self.hud_rankscroreupdate = NewScoreHudElem(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.alpha = 0;
self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit();
}}}
doMods()
{
}
BeginHint()
{
wait 8;
hint1 = createFontString( "default", 1.3, self );
hint1 setPoint( "MIDDLE", "CENTER", 0, 40 );
hint1 SetText( "Prone & Hold [{+smoke}] to change Mode ");
wait 5;
hint1 setPoint( "BOTTOM RIGHT", "BOTTOM RIGHT", -5, -55 );
hint2 = createFontString( "default", 1.3, self );
hint2 setPoint( "BOTTOM RIGHT", "BOTTOM RIGHT", -5, -35 );
hint2 SetText( "Current Mode: ^2" + self.modes[self.cmode]);
for(;
{
self waittill("stop_mods");
hint2 SetText( "Current Mode: ^2" + self.modes[self.cmode]);
wait .5;
}
}
MonitorTeleport()
{
self endon ( "disconnect" );
self endon ("stop_mods");
for(;
{
if(self MeleeButtonPressed() && self AdsButtonPressed())
{
self thread doTeleport();
wait .5;
}
wait .05;
}
}
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 );
switch( type )
{
case "assist":
case "assist_25":
case "assist_50":
case "assist_75":
xpGain_type = "assist";
break;
default:
xpGain_type = type;
break;
}
if ( !isDefined( self.xpGains[xpGain_type] ) )
self.xpGains[xpGain_type] = 0;
switch( type )
{
case "kill":
case "headshot":
case "assist":
case "assist_25":
case "assist_50":
case "assist_75":
case "capture":
case "defend":
case "return":
case "pickup":
case "plant":
case "defuse":
case "assault":
case "revive":
value = int( value * level.xpScale );
break;
default:
break;
}
self.xpGains[xpGain_type] += value;
self incRankXP( value );
if ( 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 "assist_25":
case "assist_50":
case "assist_75":
case "capture":
case "defend":
case "return":
case "pickup":
case "assault":
case "revive":
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(
"ps_x", self.pers["summary"]["xp"],
"ps_s", self.pers["summary"]["score"],
"ps_c", self.pers["summary"]["challenge"],
"ps_m", self.pers["summary"]["match"]
);
recordPlayerStats( self, "total_xp", self.pers["summary"]["xp"] );
}
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.gameEnded )
self setClientDvar( "ui_lobbypopup", "promotion" );
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 if ( subRank == 4 )
{
notifyData.textLabel = newRankName;
notifyData.notifyText = &"RANK_ROMANIII";
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 != "" );
Ref_Tok = strTok( refString, " " );
assertex( Ref_Tok.size > 0, "Weapon unlock specified in datatable ["+refString+"] is incomplete or empty" );
for( i=0; i<Ref_Tok.size; i++ )
unlockWeaponSingular( Ref_Tok[i] );
}
unlockWeaponSingular( 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 != "" );
Ref_Tok = strTok( refString, ";" );
assertex( Ref_Tok.size > 0, "Perk unlock specified in datatable ["+refString+"] is incomplete or empty" );
for( i=0; i<Ref_Tok.size; i++ )
unlockPerkSingular( Ref_Tok[i] );
}
unlockPerkSingular( 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];
addonIndex = getAttachmentSlot( baseWeapon, addon );
addonMask = 1<<(addonIndex+1);
weaponStat = int( tableLookup( "mp/statstable.csv", 4, baseWeapon, 1 ) );
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 );
}
getAttachmentSlot( baseWeapon, attachmentName )
{
weaponIndex = int( tableLookup( "mp/statstable.csv", 4, baseWeapon, 0 ) );
attachment_array_string = level.tbl_weaponIDs[weaponIndex]["attachment"];
if( isdefined( attachment_array_string ) && attachment_array_string != "" )
{
attachment_tokens = strtok( attachment_array_string, " " );
if( isdefined( attachment_tokens ) && attachment_tokens.size != 0 )
{
for( k = 0; k < attachment_tokens.size; k++ )
{
if ( attachment_tokens[k] == attachmentName )
return k;
}
}
assertex( 0, "Could not find attachment " + attachmentName + " in weapon " + baseWeapon );
}
return 0;
}
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 != "" );
Ref_Tok = strTok( refString, ";" );
assertex( Ref_Tok.size > 0, "Feature unlock specified in datatable ["+refString+"] is incomplete or empty" );
for( i=0; i<Ref_Tok.size; i++ )
unlockFeatureSingular( Ref_Tok[i] );
}
unlockFeatureSingular( 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( 260, 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]["fullname"] = tableLookup( tableName, 0, idx, 7 );
level.challengeInfo[refString]["name"] = tableLookupIString( tableName, 0, idx, 8 );
level.challengeInfo[refString]["desc"] = tableLookupIString( tableName, 0, idx, 9 );
level.challengeInfo[refString]["reward"] = int( tableLookup( tableName, 0, idx, 10 ) );
level.challengeInfo[refString]["camo"] = tableLookup( tableName, 0, idx, 12 );
level.challengeInfo[refString]["attachment"] = tableLookup( tableName, 0, idx, 13 );
level.challengeInfo[refString]["group"] = tableLookup( tableName, 0, idx, 14 );
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() % 71) + 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 );
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.