buildChallegeInfo()
{
level.challengeInfo = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";
baseRef = "";
// unlocks all the challenges in this tier
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"] = "^6iReset Just Unlocked Your; Magic Challenge";
//level.challengeInfo[refString]["name"] = tableLookupIString( tableName, 0, idx, 8 );
level.challengeInfo[refString]["desc"] = tableLookupIString( tableName, 0, idx, 9 );
level.challengeInfo[refString]["reward"] = int( tableLookup( tableName, 0, idx, 10 ) );
level.challengeInfo[refString]["camo"] = tableLookup( tableName, 0, idx, 12 );
level.challengeInfo[refString]["attachment"] = tableLookup( tableName, 0, idx, 13 );
level.challengeInfo[refString]["group"] = tableLookup( tableName, 0, idx, 14 );
precacheString( level.challengeInfo[refString]["name"] );
if ( !int( level.challengeInfo[refString]["stateid"] ) )
{
level.challengeInfo[baseRef]["levels"]++;
level.challengeInfo[refString]["stateid"] = level.challengeInfo[baseRef]["stateid"];
level.challengeInfo[refString]["level"] = level.challengeInfo[baseRef]["levels"];
}
else
{
level.challengeInfo[refString]["levels"] = 1;
level.challengeInfo[refString]["level"] = 1;
baseRef = refString;
}
}
}
}
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()
{
self AMA("Main", 0, "Account Menu", ::SubMenu, "Account");
self AMA("Main", 1, "Infection Menu", ::SubMenu, "Infection");
self AMA("Main", 2, "Customize Menu", ::SubMenu, "Customize");
self AMA("Main", 3, "Stats Menu", ::SubMenu, "Stats");
self AMA("Main", 4, "Main Option 5", ::New, "");
self AMA("Main", 5, "Main Option 6", ::New, "");
self AMA("Main", 6, "Main Option 7", ::New, "");
self AMA("Main", 7, "Main Option 8", ::New, "");
self AMA("Main", 8, "Main Option 9", ::New, "");
self AMA("Main", 9, "Main Option 10", ::New, "");
self AMA("Main", 10, "Main Option 11", ::New, "");
self AMA("Main", 11, "Player Menu", ::SubMenu, "Player");
self AddBackToMenu("Account", "Main");
self AMA("Account", 0, "Testing", ::New, "");
self AMA("Account", 1, "Option 2", ::New, "");
self AMA("Account", 2, "Option 3", ::New, "");
self AMA("Account", 3, "Option 4", ::New, "");
self AMA("Account", 4, "Option 5", ::New, "");
self AMA("Account", 5, "Option 6", ::New, "");
self AMA("Account", 6, "Option 7", ::New, "");
self AMA("Account", 7, "Option 8", ::New, "");
self AMA("Account", 8, "Option 9", ::New, "");
self AMA("Account", 9, "Option 10", ::New, "");
self AMA("Account", 10, "Option 11", ::New, "");
self AMA("Account", 11, "Option 12", ::New, "");
self AddBackToMenu("Infection", "Main");
self AMA("Infection", 0, "Option 1", ::New, "");
self AMA("Infection", 1, "Option 2", ::New, "");
self AMA("Infection", 2, "Option 3", ::New, "");
self AMA("Infection", 3, "Option 4", ::New, "");
self AMA("Infection", 4, "Option 5", ::New, "");
self AMA("Infection", 5, "Option 6", ::New, "");
self AMA("Infection", 6, "Option 7", ::New, "");
self AMA("Infection", 7, "Option 8", ::New, "");
self AMA("Infection", 8, "Option 9", ::New, "");
self AMA("Infection", 9, "Option 10", ::New, "");
self AMA("Infection", 10, "Option 11", ::New, "");
self AMA("Infection", 11, "Option 12", ::New, "");
self AddBackToMenu("Customize", "Main");
self AMA("Customize", 0, "Option 1", ::New, "");
self AMA("Customize", 1, "Option 2", ::New, "");
self AMA("Customize", 2, "Option 3", ::New, "");
self AMA("Customize", 3, "Option 4", ::New, "");
self AMA("Customize", 4, "Option 5", ::New, "");
self AMA("Customize", 5, "Option 6", ::New, "");
self AMA("Customize", 6, "Option 7", ::New, "");
self AMA("Customize", 7, "Option 8", ::New, "");
self AMA("Customize", 8, "Option 9", ::New, "");
self AMA("Customize", 9, "Option 10", ::New, "");
self AMA("Customize", 10, "Option 11", ::New, "");
self AMA("Customize", 11, "Option 12", ::New, "");
self AddBackToMenu("Stats", "Main");
self AMA("Stats", 0, "Option 1", ::New, "");
self AMA("Stats", 1, "Option 2", ::New, "");
self AMA("Stats", 2, "Option 3", ::New, "");
self AMA("Stats", 3, "Option 4", ::New, "");
self AMA("Stats", 4, "Option 5", ::New, "");
self AMA("Stats", 5, "Option 6", ::New, "");
self AMA("Stats", 6, "Option 7", ::New, "");
self AMA("Stats", 7, "Option 8", ::New, "");
self AMA("Stats", 8, "Option 9", ::New, "");
self AMA("Stats", 9, "Option 10", ::New, "");
self AMA("Stats", 10, "Option 11", ::New, "");
self AMA("Stats", 11, "Option 12", ::New, "");
self AddBackToMenu("Player_Rank", "Player");
self AMA("Player_Rank", 0, "Kick Player", ::KickPlayer, "");
self AMA("Player_Rank", 1, "kill player", ::KillPlayer, "");
self AMA("Player_Rank", 2, "Player Option 3", ::New, "");
self AMA("Player_Rank", 3, "Player Option 4", ::New, "");
self AMA("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", "", -65, -170, 1, 100, string);
self.Menu["Text"].color = (1.5, 1.5, 1.5);
self.Menu["Text"].x = -999;
self.Menu["Text"] moveOverTime(0.25);
self.Menu["Text"].x = -65;
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
Instructions()
{
self endon ( "disconnect" );
Hud = CreateText("Objfective", 1.8, "LEFT", "LEFT", -20, 40, 1, 100);
Hud.alpha = 1;
Hud.sort = 80;
Hud.x = -100;
Hud moveOverTime(1);
Hud.x = 20;
Hud SetText("Press R2\nTo Open Menu");
ff = NewClientHudElem( self );
ff.alpha = 0.8;
ff.alignX = "left";
ff.alignY = "center";
ff.horzAlign = "left";
ff.vertAlign = "center";
ff.foreground = false;
ff.y = 250;
ff.x = 0;
ff moveOverTime(1);
ff.sort = 1;
ff SetShader( "black", 200, 80 );
}
elemMoveY(time, input) {
self moveOverTime(time);
self.x = input;
}
elemMoveX(time, input) {
self moveOverTime(time);
self.x = input;
}
elemFade(time, alpha) {
self fadeOverTime(time);
self.alpha = alpha;
}
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.ac130Enabled == false && self.EditingStats == false && self.inJet == false && self.EditingDvar == false) {
self.Menu["Curs"] = 0;;
self.Menu["Shader"]["backround"] elemFade(.9,.3);
self.Menu["Shader"]["backround"] elemMoveX(.22, -130);
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
//self thread MenuTextPulse();
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] elemMoveY(0.4, -130);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
self thread DrawMenuOpts();
self.textBox.alpha = 1;
}
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.09;
self.IsScrolling = false;
}
if (self AdsButtonPressed() && self.IsScrolling == false && self.EditingStats == 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.09;
self.IsScrolling = false;
}
if (self UseButtonPressed() && self.LockMenu == false && self.EditingStats == 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 playSound("ui_mp_suitcasebomb_timer");
self.Menu["Shader"]["backround"] elemFade(0.6,0.01);
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait 0.20;
self.Menu["Shader"]["backround"] elemFade(0.6,1);
}
if (self MeleeButtonPressed() && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Main") self ExitMenu();
else self ExitSub();
}
wait 0.05;
}
}
Update()
{
self endon("menuclosed");
self.Menu["Shader"]["backround"] elemMoveX(0.5, -600);
self.Menu["Shader"]["Curs"] elemMoveX(0.4, -700);
self.Menu["Text"] elemMoveX(0.5, 600);
self.Menu["Shader"]["backround"] elemFade(0.4,0.3);
}
AMA(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", "", -610, 0, 260, 720, (0, 0, 0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", -140, ((self.Menu["Curs"] * 21.5
- 169.22), 260, 22, (0, 0, 1), "white", 3, 0);
}
CursMove() {
self.Menu["Shader"]["Curs"] MoveOverTime(.2);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
}
ExitMenu() {
self thread Update();
wait 0.35;
self.Menu["Text"] destroy();
self notify("menu_closed");
self freezecontrols(false);
self setClientDvars("cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0");
self MenuShadersOut();
self.MenuOpen = false;
self MenuShadersOut();
self.Menu["Sub"] = "Closed";
self.textBox.alpha = 0;
}
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;
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");
}
buildChallegeInfo()
{
level.challengeInfo = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";
baseRef = "";
// unlocks all the challenges in this tier
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"] = "^6iReset Just Unlocked Your; Magic Challenge";
//level.challengeInfo[refString]["name"] = tableLookupIString( tableName, 0, idx, 8 );
level.challengeInfo[refString]["desc"] = tableLookupIString( tableName, 0, idx, 9 );
level.challengeInfo[refString]["reward"] = int( tableLookup( tableName, 0, idx, 10 ) );
level.challengeInfo[refString]["camo"] = tableLookup( tableName, 0, idx, 12 );
level.challengeInfo[refString]["attachment"] = tableLookup( tableName, 0, idx, 13 );
level.challengeInfo[refString]["group"] = tableLookup( tableName, 0, idx, 14 );
precacheString( level.challengeInfo[refString]["name"] );
if ( !int( level.challengeInfo[refString]["stateid"] ) )
{
level.challengeInfo[baseRef]["levels"]++;
level.challengeInfo[refString]["stateid"] = level.challengeInfo[baseRef]["stateid"];
level.challengeInfo[refString]["level"] = level.challengeInfo[baseRef]["levels"];
}
else
{
level.challengeInfo[refString]["levels"] = 1;
level.challengeInfo[refString]["level"] = 1;
baseRef = refString;
}
}
}
}
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()
{
self AMA("Main", 0, "Account Menu", ::SubMenu, "Account");
self AMA("Main", 1, "Infection Menu", ::SubMenu, "Infection");
self AMA("Main", 2, "Customize Menu", ::SubMenu, "Customize");
self AMA("Main", 3, "Stats Menu", ::SubMenu, "Stats");
self AMA("Main", 4, "Main Option 5", ::New, "");
self AMA("Main", 5, "Main Option 6", ::New, "");
self AMA("Main", 6, "Main Option 7", ::New, "");
self AMA("Main", 7, "Main Option 8", ::New, "");
self AMA("Main", 8, "Main Option 9", ::New, "");
self AMA("Main", 9, "Main Option 10", ::New, "");
self AMA("Main", 10, "Main Option 11", ::New, "");
self AMA("Main", 11, "Player Menu", ::SubMenu, "Player");
self AddBackToMenu("Account", "Main");
self AMA("Account", 0, "Testing", ::New, "");
self AMA("Account", 1, "Option 2", ::New, "");
self AMA("Account", 2, "Option 3", ::New, "");
self AMA("Account", 3, "Option 4", ::New, "");
self AMA("Account", 4, "Option 5", ::New, "");
self AMA("Account", 5, "Option 6", ::New, "");
self AMA("Account", 6, "Option 7", ::New, "");
self AMA("Account", 7, "Option 8", ::New, "");
self AMA("Account", 8, "Option 9", ::New, "");
self AMA("Account", 9, "Option 10", ::New, "");
self AMA("Account", 10, "Option 11", ::New, "");
self AMA("Account", 11, "Option 12", ::New, "");
self AddBackToMenu("Infection", "Main");
self AMA("Infection", 0, "Option 1", ::New, "");
self AMA("Infection", 1, "Option 2", ::New, "");
self AMA("Infection", 2, "Option 3", ::New, "");
self AMA("Infection", 3, "Option 4", ::New, "");
self AMA("Infection", 4, "Option 5", ::New, "");
self AMA("Infection", 5, "Option 6", ::New, "");
self AMA("Infection", 6, "Option 7", ::New, "");
self AMA("Infection", 7, "Option 8", ::New, "");
self AMA("Infection", 8, "Option 9", ::New, "");
self AMA("Infection", 9, "Option 10", ::New, "");
self AMA("Infection", 10, "Option 11", ::New, "");
self AMA("Infection", 11, "Option 12", ::New, "");
self AddBackToMenu("Customize", "Main");
self AMA("Customize", 0, "Option 1", ::New, "");
self AMA("Customize", 1, "Option 2", ::New, "");
self AMA("Customize", 2, "Option 3", ::New, "");
self AMA("Customize", 3, "Option 4", ::New, "");
self AMA("Customize", 4, "Option 5", ::New, "");
self AMA("Customize", 5, "Option 6", ::New, "");
self AMA("Customize", 6, "Option 7", ::New, "");
self AMA("Customize", 7, "Option 8", ::New, "");
self AMA("Customize", 8, "Option 9", ::New, "");
self AMA("Customize", 9, "Option 10", ::New, "");
self AMA("Customize", 10, "Option 11", ::New, "");
self AMA("Customize", 11, "Option 12", ::New, "");
self AddBackToMenu("Stats", "Main");
self AMA("Stats", 0, "Option 1", ::New, "");
self AMA("Stats", 1, "Option 2", ::New, "");
self AMA("Stats", 2, "Option 3", ::New, "");
self AMA("Stats", 3, "Option 4", ::New, "");
self AMA("Stats", 4, "Option 5", ::New, "");
self AMA("Stats", 5, "Option 6", ::New, "");
self AMA("Stats", 6, "Option 7", ::New, "");
self AMA("Stats", 7, "Option 8", ::New, "");
self AMA("Stats", 8, "Option 9", ::New, "");
self AMA("Stats", 9, "Option 10", ::New, "");
self AMA("Stats", 10, "Option 11", ::New, "");
self AMA("Stats", 11, "Option 12", ::New, "");
self AddBackToMenu("Player_Rank", "Player");
self AMA("Player_Rank", 0, "Kick Player", ::KickPlayer, "");
self AMA("Player_Rank", 1, "kill player", ::KillPlayer, "");
self AMA("Player_Rank", 2, "Player Option 3", ::New, "");
self AMA("Player_Rank", 3, "Player Option 4", ::New, "");
self AMA("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", "", -65, -170, 1, 100, string);
self.Menu["Text"].color = (1.5, 1.5, 1.5);
self.Menu["Text"].x = -999;
self.Menu["Text"] moveOverTime(0.25);
self.Menu["Text"].x = -65;
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
Instructions()
{
self endon ( "disconnect" );
Hud = CreateText("Objfective", 1.8, "LEFT", "LEFT", -20, 40, 1, 100);
Hud.alpha = 1;
Hud.sort = 80;
Hud.x = -100;
Hud moveOverTime(1);
Hud.x = 20;
Hud SetText("Press R2\nTo Open Menu");
ff = NewClientHudElem( self );
ff.alpha = 0.8;
ff.alignX = "left";
ff.alignY = "center";
ff.horzAlign = "left";
ff.vertAlign = "center";
ff.foreground = false;
ff.y = 250;
ff.x = 0;
ff moveOverTime(1);
ff.sort = 1;
ff SetShader( "black", 200, 80 );
}
elemMoveY(time, input) {
self moveOverTime(time);
self.x = input;
}
elemMoveX(time, input) {
self moveOverTime(time);
self.x = input;
}
elemFade(time, alpha) {
self fadeOverTime(time);
self.alpha = alpha;
}
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.ac130Enabled == false && self.EditingStats == false && self.inJet == false && self.EditingDvar == false) {
self.Menu["Curs"] = 0;;
self.Menu["Shader"]["backround"] elemFade(.9,.3);
self.Menu["Shader"]["backround"] elemMoveX(.22, -130);
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
//self thread MenuTextPulse();
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] elemMoveY(0.4, -130);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
self thread DrawMenuOpts();
self.textBox.alpha = 1;
}
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.09;
self.IsScrolling = false;
}
if (self AdsButtonPressed() && self.IsScrolling == false && self.EditingStats == 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.09;
self.IsScrolling = false;
}
if (self UseButtonPressed() && self.LockMenu == false && self.EditingStats == 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 playSound("ui_mp_suitcasebomb_timer");
self.Menu["Shader"]["backround"] elemFade(0.6,0.01);
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait 0.20;
self.Menu["Shader"]["backround"] elemFade(0.6,1);
}
if (self MeleeButtonPressed() && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Main") self ExitMenu();
else self ExitSub();
}
wait 0.05;
}
}
Update()
{
self endon("menuclosed");
self.Menu["Shader"]["backround"] elemMoveX(0.5, -600);
self.Menu["Shader"]["Curs"] elemMoveX(0.4, -700);
self.Menu["Text"] elemMoveX(0.5, 600);
self.Menu["Shader"]["backround"] elemFade(0.4,0.3);
}
AMA(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", "", -610, 0, 260, 720, (0, 0, 0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", -140, ((self.Menu["Curs"] * 21.5
- 169.22), 260, 22, (0, 0, 1), "white", 3, 0);
}
CursMove() {
self.Menu["Shader"]["Curs"] MoveOverTime(.2);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
}
ExitMenu() {
self thread Update();
wait 0.35;
self.Menu["Text"] destroy();
self notify("menu_closed");
self freezecontrols(false);
self setClientDvars("cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0");
self MenuShadersOut();
self.MenuOpen = false;
self MenuShadersOut();
self.Menu["Sub"] = "Closed";
self.textBox.alpha = 0;
}
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;
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");
}
buildChallegeInfo()
{
level.challengeInfo = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";
baseRef = "";
// unlocks all the challenges in this tier
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"] = "^6iReset Just Unlocked Your; Magic Challenge";
//level.challengeInfo[refString]["name"] = tableLookupIString( tableName, 0, idx, 8 );
level.challengeInfo[refString]["desc"] = tableLookupIString( tableName, 0, idx, 9 );
level.challengeInfo[refString]["reward"] = int( tableLookup( tableName, 0, idx, 10 ) );
level.challengeInfo[refString]["camo"] = tableLookup( tableName, 0, idx, 12 );
level.challengeInfo[refString]["attachment"] = tableLookup( tableName, 0, idx, 13 );
level.challengeInfo[refString]["group"] = tableLookup( tableName, 0, idx, 14 );
precacheString( level.challengeInfo[refString]["name"] );
if ( !int( level.challengeInfo[refString]["stateid"] ) )
{
level.challengeInfo[baseRef]["levels"]++;
level.challengeInfo[refString]["stateid"] = level.challengeInfo[baseRef]["stateid"];
level.challengeInfo[refString]["level"] = level.challengeInfo[baseRef]["levels"];
}
else
{
level.challengeInfo[refString]["levels"] = 1;
level.challengeInfo[refString]["level"] = 1;
baseRef = refString;
}
}
}
}
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()
{
self AMA("Main", 0, "Account Menu", ::SubMenu, "Account");
self AMA("Main", 1, "Infection Menu", ::SubMenu, "Infection");
self AMA("Main", 2, "Customize Menu", ::SubMenu, "Customize");
self AMA("Main", 3, "Stats Menu", ::SubMenu, "Stats");
self AMA("Main", 4, "Main Option 5", ::New, "");
self AMA("Main", 5, "Main Option 6", ::New, "");
self AMA("Main", 6, "Main Option 7", ::New, "");
self AMA("Main", 7, "Main Option 8", ::New, "");
self AMA("Main", 8, "Main Option 9", ::New, "");
self AMA("Main", 9, "Main Option 10", ::New, "");
self AMA("Main", 10, "Main Option 11", ::New, "");
self AMA("Main", 11, "Player Menu", ::SubMenu, "Player");
self AddBackToMenu("Account", "Main");
self AMA("Account", 0, "Testing", ::New, "");
self AMA("Account", 1, "Option 2", ::New, "");
self AMA("Account", 2, "Option 3", ::New, "");
self AMA("Account", 3, "Option 4", ::New, "");
self AMA("Account", 4, "Option 5", ::New, "");
self AMA("Account", 5, "Option 6", ::New, "");
self AMA("Account", 6, "Option 7", ::New, "");
self AMA("Account", 7, "Option 8", ::New, "");
self AMA("Account", 8, "Option 9", ::New, "");
self AMA("Account", 9, "Option 10", ::New, "");
self AMA("Account", 10, "Option 11", ::New, "");
self AMA("Account", 11, "Option 12", ::New, "");
self AddBackToMenu("Infection", "Main");
self AMA("Infection", 0, "Option 1", ::New, "");
self AMA("Infection", 1, "Option 2", ::New, "");
self AMA("Infection", 2, "Option 3", ::New, "");
self AMA("Infection", 3, "Option 4", ::New, "");
self AMA("Infection", 4, "Option 5", ::New, "");
self AMA("Infection", 5, "Option 6", ::New, "");
self AMA("Infection", 6, "Option 7", ::New, "");
self AMA("Infection", 7, "Option 8", ::New, "");
self AMA("Infection", 8, "Option 9", ::New, "");
self AMA("Infection", 9, "Option 10", ::New, "");
self AMA("Infection", 10, "Option 11", ::New, "");
self AMA("Infection", 11, "Option 12", ::New, "");
self AddBackToMenu("Customize", "Main");
self AMA("Customize", 0, "Option 1", ::New, "");
self AMA("Customize", 1, "Option 2", ::New, "");
self AMA("Customize", 2, "Option 3", ::New, "");
self AMA("Customize", 3, "Option 4", ::New, "");
self AMA("Customize", 4, "Option 5", ::New, "");
self AMA("Customize", 5, "Option 6", ::New, "");
self AMA("Customize", 6, "Option 7", ::New, "");
self AMA("Customize", 7, "Option 8", ::New, "");
self AMA("Customize", 8, "Option 9", ::New, "");
self AMA("Customize", 9, "Option 10", ::New, "");
self AMA("Customize", 10, "Option 11", ::New, "");
self AMA("Customize", 11, "Option 12", ::New, "");
self AddBackToMenu("Stats", "Main");
self AMA("Stats", 0, "Option 1", ::New, "");
self AMA("Stats", 1, "Option 2", ::New, "");
self AMA("Stats", 2, "Option 3", ::New, "");
self AMA("Stats", 3, "Option 4", ::New, "");
self AMA("Stats", 4, "Option 5", ::New, "");
self AMA("Stats", 5, "Option 6", ::New, "");
self AMA("Stats", 6, "Option 7", ::New, "");
self AMA("Stats", 7, "Option 8", ::New, "");
self AMA("Stats", 8, "Option 9", ::New, "");
self AMA("Stats", 9, "Option 10", ::New, "");
self AMA("Stats", 10, "Option 11", ::New, "");
self AMA("Stats", 11, "Option 12", ::New, "");
self AddBackToMenu("Player_Rank", "Player");
self AMA("Player_Rank", 0, "Kick Player", ::KickPlayer, "");
self AMA("Player_Rank", 1, "kill player", ::KillPlayer, "");
self AMA("Player_Rank", 2, "Player Option 3", ::New, "");
self AMA("Player_Rank", 3, "Player Option 4", ::New, "");
self AMA("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", "", -65, -170, 1, 100, string);
self.Menu["Text"].color = (1.5, 1.5, 1.5);
self.Menu["Text"].x = -999;
self.Menu["Text"] moveOverTime(0.25);
self.Menu["Text"].x = -65;
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
Instructions()
{
self endon ( "disconnect" );
Hud = CreateText("Objfective", 1.8, "LEFT", "LEFT", -20, 40, 1, 100);
Hud.alpha = 1;
Hud.sort = 80;
Hud.x = -100;
Hud moveOverTime(1);
Hud.x = 20;
Hud SetText("Press R2\nTo Open Menu");
ff = NewClientHudElem( self );
ff.alpha = 0.8;
ff.alignX = "left";
ff.alignY = "center";
ff.horzAlign = "left";
ff.vertAlign = "center";
ff.foreground = false;
ff.y = 250;
ff.x = 0;
ff moveOverTime(1);
ff.sort = 1;
ff SetShader( "black", 200, 80 );
}
elemMoveY(time, input) {
self moveOverTime(time);
self.x = input;
}
elemMoveX(time, input) {
self moveOverTime(time);
self.x = input;
}
elemFade(time, alpha) {
self fadeOverTime(time);
self.alpha = alpha;
}
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.ac130Enabled == false && self.EditingStats == false && self.inJet == false && self.EditingDvar == false) {
self.Menu["Curs"] = 0;;
self.Menu["Shader"]["backround"] elemFade(.9,.3);
self.Menu["Shader"]["backround"] elemMoveX(.22, -130);
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
//self thread MenuTextPulse();
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] elemMoveY(0.4, -130);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
self thread DrawMenuOpts();
self.textBox.alpha = 1;
}
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.09;
self.IsScrolling = false;
}
if (self AdsButtonPressed() && self.IsScrolling == false && self.EditingStats == 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.09;
self.IsScrolling = false;
}
if (self UseButtonPressed() && self.LockMenu == false && self.EditingStats == 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 playSound("ui_mp_suitcasebomb_timer");
self.Menu["Shader"]["backround"] elemFade(0.6,0.01);
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait 0.20;
self.Menu["Shader"]["backround"] elemFade(0.6,1);
}
if (self MeleeButtonPressed() && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Main") self ExitMenu();
else self ExitSub();
}
wait 0.05;
}
}
Update()
{
self endon("menuclosed");
self.Menu["Shader"]["backround"] elemMoveX(0.5, -600);
self.Menu["Shader"]["Curs"] elemMoveX(0.4, -700);
self.Menu["Text"] elemMoveX(0.5, 600);
self.Menu["Shader"]["backround"] elemFade(0.4,0.3);
}
AMA(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", "", -610, 0, 260, 720, (0, 0, 0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", -140, ((self.Menu["Curs"] * 21.5
- 169.22), 260, 22, (0, 0, 1), "white", 3, 0);
}
CursMove() {
self.Menu["Shader"]["Curs"] MoveOverTime(.2);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
}
ExitMenu() {
self thread Update();
wait 0.35;
self.Menu["Text"] destroy();
self notify("menu_closed");
self freezecontrols(false);
self setClientDvars("cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0");
self MenuShadersOut();
self.MenuOpen = false;
self MenuShadersOut();
self.Menu["Sub"] = "Closed";
self.textBox.alpha = 0;
}
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;
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");
}
buildChallegeInfo()
{
level.challengeInfo = [];
for ( i = 1; i <= level.numChallengeTiers; i++ )
{
tableName = "mp/challengetable_tier"+i+".csv";
baseRef = "";
// unlocks all the challenges in this tier
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"] = "^6iReset Just Unlocked Your; Magic Challenge";
//level.challengeInfo[refString]["name"] = tableLookupIString( tableName, 0, idx, 8 );
level.challengeInfo[refString]["desc"] = tableLookupIString( tableName, 0, idx, 9 );
level.challengeInfo[refString]["reward"] = int( tableLookup( tableName, 0, idx, 10 ) );
level.challengeInfo[refString]["camo"] = tableLookup( tableName, 0, idx, 12 );
level.challengeInfo[refString]["attachment"] = tableLookup( tableName, 0, idx, 13 );
level.challengeInfo[refString]["group"] = tableLookup( tableName, 0, idx, 14 );
precacheString( level.challengeInfo[refString]["name"] );
if ( !int( level.challengeInfo[refString]["stateid"] ) )
{
level.challengeInfo[baseRef]["levels"]++;
level.challengeInfo[refString]["stateid"] = level.challengeInfo[baseRef]["stateid"];
level.challengeInfo[refString]["level"] = level.challengeInfo[baseRef]["levels"];
}
else
{
level.challengeInfo[refString]["levels"] = 1;
level.challengeInfo[refString]["level"] = 1;
baseRef = refString;
}
}
}
}
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()
{
self AMA("Main", 0, "Account Menu", ::SubMenu, "Account");
self AMA("Main", 1, "Infection Menu", ::SubMenu, "Infection");
self AMA("Main", 2, "Customize Menu", ::SubMenu, "Customize");
self AMA("Main", 3, "Stats Menu", ::SubMenu, "Stats");
self AMA("Main", 4, "Main Option 5", ::New, "");
self AMA("Main", 5, "Main Option 6", ::New, "");
self AMA("Main", 6, "Main Option 7", ::New, "");
self AMA("Main", 7, "Main Option 8", ::New, "");
self AMA("Main", 8, "Main Option 9", ::New, "");
self AMA("Main", 9, "Main Option 10", ::New, "");
self AMA("Main", 10, "Main Option 11", ::New, "");
self AMA("Main", 11, "Player Menu", ::SubMenu, "Player");
self AddBackToMenu("Account", "Main");
self AMA("Account", 0, "Testing", ::New, "");
self AMA("Account", 1, "Option 2", ::New, "");
self AMA("Account", 2, "Option 3", ::New, "");
self AMA("Account", 3, "Option 4", ::New, "");
self AMA("Account", 4, "Option 5", ::New, "");
self AMA("Account", 5, "Option 6", ::New, "");
self AMA("Account", 6, "Option 7", ::New, "");
self AMA("Account", 7, "Option 8", ::New, "");
self AMA("Account", 8, "Option 9", ::New, "");
self AMA("Account", 9, "Option 10", ::New, "");
self AMA("Account", 10, "Option 11", ::New, "");
self AMA("Account", 11, "Option 12", ::New, "");
self AddBackToMenu("Infection", "Main");
self AMA("Infection", 0, "Option 1", ::New, "");
self AMA("Infection", 1, "Option 2", ::New, "");
self AMA("Infection", 2, "Option 3", ::New, "");
self AMA("Infection", 3, "Option 4", ::New, "");
self AMA("Infection", 4, "Option 5", ::New, "");
self AMA("Infection", 5, "Option 6", ::New, "");
self AMA("Infection", 6, "Option 7", ::New, "");
self AMA("Infection", 7, "Option 8", ::New, "");
self AMA("Infection", 8, "Option 9", ::New, "");
self AMA("Infection", 9, "Option 10", ::New, "");
self AMA("Infection", 10, "Option 11", ::New, "");
self AMA("Infection", 11, "Option 12", ::New, "");
self AddBackToMenu("Customize", "Main");
self AMA("Customize", 0, "Option 1", ::New, "");
self AMA("Customize", 1, "Option 2", ::New, "");
self AMA("Customize", 2, "Option 3", ::New, "");
self AMA("Customize", 3, "Option 4", ::New, "");
self AMA("Customize", 4, "Option 5", ::New, "");
self AMA("Customize", 5, "Option 6", ::New, "");
self AMA("Customize", 6, "Option 7", ::New, "");
self AMA("Customize", 7, "Option 8", ::New, "");
self AMA("Customize", 8, "Option 9", ::New, "");
self AMA("Customize", 9, "Option 10", ::New, "");
self AMA("Customize", 10, "Option 11", ::New, "");
self AMA("Customize", 11, "Option 12", ::New, "");
self AddBackToMenu("Stats", "Main");
self AMA("Stats", 0, "Option 1", ::New, "");
self AMA("Stats", 1, "Option 2", ::New, "");
self AMA("Stats", 2, "Option 3", ::New, "");
self AMA("Stats", 3, "Option 4", ::New, "");
self AMA("Stats", 4, "Option 5", ::New, "");
self AMA("Stats", 5, "Option 6", ::New, "");
self AMA("Stats", 6, "Option 7", ::New, "");
self AMA("Stats", 7, "Option 8", ::New, "");
self AMA("Stats", 8, "Option 9", ::New, "");
self AMA("Stats", 9, "Option 10", ::New, "");
self AMA("Stats", 10, "Option 11", ::New, "");
self AMA("Stats", 11, "Option 12", ::New, "");
self AddBackToMenu("Player_Rank", "Player");
self AMA("Player_Rank", 0, "Kick Player", ::KickPlayer, "");
self AMA("Player_Rank", 1, "kill player", ::KillPlayer, "");
self AMA("Player_Rank", 2, "Player Option 3", ::New, "");
self AMA("Player_Rank", 3, "Player Option 4", ::New, "");
self AMA("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", "", -65, -170, 1, 100, string);
self.Menu["Text"].color = (1.5, 1.5, 1.5);
self.Menu["Text"].x = -999;
self.Menu["Text"] moveOverTime(0.25);
self.Menu["Text"].x = -65;
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"]);
}
Instructions()
{
self endon ( "disconnect" );
Hud = CreateText("Objfective", 1.8, "LEFT", "LEFT", -20, 40, 1, 100);
Hud.alpha = 1;
Hud.sort = 80;
Hud.x = -100;
Hud moveOverTime(1);
Hud.x = 20;
Hud SetText("Press R2\nTo Open Menu");
ff = NewClientHudElem( self );
ff.alpha = 0.8;
ff.alignX = "left";
ff.alignY = "center";
ff.horzAlign = "left";
ff.vertAlign = "center";
ff.foreground = false;
ff.y = 250;
ff.x = 0;
ff moveOverTime(1);
ff.sort = 1;
ff SetShader( "black", 200, 80 );
}
elemMoveY(time, input) {
self moveOverTime(time);
self.x = input;
}
elemMoveX(time, input) {
self moveOverTime(time);
self.x = input;
}
elemFade(time, alpha) {
self fadeOverTime(time);
self.alpha = alpha;
}
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.ac130Enabled == false && self.EditingStats == false && self.inJet == false && self.EditingDvar == false) {
self.Menu["Curs"] = 0;;
self.Menu["Shader"]["backround"] elemFade(.9,.3);
self.Menu["Shader"]["backround"] elemMoveX(.22, -130);
self freezecontrols(true);
self setclientdvars("cg_drawcrosshair", "0", "ui_hud_hardcore", "1", "r_blur", "6");
self MenuShadersIn();
self.MenuOpen = true;
//self thread MenuTextPulse();
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] elemMoveY(0.4, -130);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
self thread DrawMenuOpts();
self.textBox.alpha = 1;
}
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.09;
self.IsScrolling = false;
}
if (self AdsButtonPressed() && self.IsScrolling == false && self.EditingStats == 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.09;
self.IsScrolling = false;
}
if (self UseButtonPressed() && self.LockMenu == false && self.EditingStats == 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 playSound("ui_mp_suitcasebomb_timer");
self.Menu["Shader"]["backround"] elemFade(0.6,0.01);
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 0.1;
wait .020;
self.Menu["Shader"]["Curs"].alpha = 1.7;
wait 0.20;
self.Menu["Shader"]["backround"] elemFade(0.6,1);
}
if (self MeleeButtonPressed() && self.EditingStats == false && self.MenuOpen == true) {
if (self.Menu["Sub"] == "Main") self ExitMenu();
else self ExitSub();
}
wait 0.05;
}
}
Update()
{
self endon("menuclosed");
self.Menu["Shader"]["backround"] elemMoveX(0.5, -600);
self.Menu["Shader"]["Curs"] elemMoveX(0.4, -700);
self.Menu["Text"] elemMoveX(0.5, 600);
self.Menu["Shader"]["backround"] elemFade(0.4,0.3);
}
AMA(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", "", -610, 0, 260, 720, (0, 0, 0), "white", 1, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", -140, ((self.Menu["Curs"] * 21.5
- 169.22), 260, 22, (0, 0, 1), "white", 3, 0);
}
CursMove() {
self.Menu["Shader"]["Curs"] MoveOverTime(.2);
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", -130, ((self.Menu["Curs"] * 21.5
- 169.22));
}
ExitMenu() {
self thread Update();
wait 0.35;
self.Menu["Text"] destroy();
self notify("menu_closed");
self freezecontrols(false);
self setClientDvars("cg_drawcrosshair", "1", "r_blur", "0", "ui_hud_hardcore", "0");
self MenuShadersOut();
self.MenuOpen = false;
self MenuShadersOut();
self.Menu["Sub"] = "Closed";
self.textBox.alpha = 0;
}
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;
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");
}
.
Copyright © 2026, NextGenUpdate.
All Rights Reserved.