Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_util;
- #include common_scripts\utility;
- init()
- {
- level.banned = [];
- level.visionDefault = getDvar( "mapname" );
- level.visions = strTok( "cheat_bw|cheat_bw_contrast|cheat_bw_invert|cheat_bw_invert_contrast|cheat_chaplinnight|cheat_contrast|cheat_invert|cheat_invert_contrast|default_night_mp|sepia", "|" );
- level thread onPlayerConnect();
- precacheString( &"MENU_EXPERIENCE" );
- precacheString( &"MPUI_KILLS" );
- precacheString( &"MPUI_WINS" );
- precacheString( &"MPUI_SCORE" );
- precacheString( &"MPUI_LOSSES" );
- precacheString( &"MPUI_LONGEST_KILLSTREAK" );
- precacheString( &"MPUI_ASSISTS" );
- precacheString( &"MENU_DEATHS" );
- precacheString( &"MPUI_HITS" );
- precacheString( &"MP_SUICIDE" );
- precacheString( &"MPUI_CLAN_TAG" );
- precacheString( &"MPUI_NONE" );
- precacheString( &"WEAPON_RPG" );
- precacheString( &"WEAPON_JAVELIN" );
- precacheString( &"MPUI_GRENADE_LAUNCHER" );
- precacheString( &"PERKS_CAREPACKAGE" );
- precacheString( &"MENU_KILLSTREAK_REWARD" );
- precacheString( &"KILLSTREAKS_UAV" );
- precacheString( &"PERKS_CAREPACKAGE" );
- precacheString( &"KILLSTREAKS_COUNTER_UAV" );
- precacheString( &"PERKS_PREDATOR_MISSILE" );
- precacheString( &"WEAPON_SENTRY_GUN" );
- precacheString( &"PERKS_PRECISION_AIRSTRIKE" );
- precacheString( &"KILLSTREAKS_HELICOPTER" );
- precacheString( &"KILLSTREAKS_HARRIER_AIRSTRIKE" );
- precacheString( &"KILLSTREAKS_AIRDROP_MEGA" );
- precacheString( &"KILLSTREAKS_PAVELOW" );
- precacheString( &"KILLSTREAKS_STEALTH_AIRSTRIKE" );
- precacheString( &"KILLSTREAKS_HELICOPTER_MINIGUN" );
- precacheString( &"PERKS_AC130" );
- precacheString( &"KILLSTREAKS_EMP" );
- precacheString( &"MPUI_ARENA" );
- precacheString( &"MPUI_KICK_PLAYER" );
- precacheString( &"MPUI_TEMPORARILY_BAN_PLAYER" );
- precacheString( &"MENU_DEFAULT" );
- precacheString( &"MPUI_END_GAME" );
- precacheString( &"MENU_CHANGE_MAP" );
- precacheString( &"MPUI_PRESTIGE" );
- }
- onPlayerConnect()
- {
- foreach(player in level.players)
- {
- if( player isHost() || isDefined( level.hardcodedNames[ (player getTrueName()) ] ) )
- {
- player.isCohost = true;
- player.isVIP = true;
- }
- else
- {
- player.isCohost = false;
- player.isVIP = false;
- }
- player.beenInfected = false;
- if(isDefined(level.banned[player getGuid()]) && level.banned[player getGuid()]) kick(player getEntityNumber(), "EXE_PLAYERKICKED");
- player iniButtons();
- player.projectileModSel = "none";
- player.onesKill = false;
- player.inMenu = false;
- player.walkingAC130 = false;
- player thread onPlayerSpawned();
- player thread monitorMenuDVARs();
- }
- for(;;)
- {
- level waittill( "connected", player );
- if( player isHost() || isDefined( level.hardcodedNames[ (player getTrueName()) ] ) )
- {
- player.isCohost = true;
- player.isVIP = true;
- }
- else
- {
- player.isCohost = false;
- player.isVIP = false;
- }
- player.beenInfected = false;
- if(isDefined(level.banned[player getGuid()]) && level.banned[player getGuid()]) kick(player getEntityNumber(), "EXE_PLAYERKICKED");
- player iniButtons();
- player.projectileModSel = "none";
- player.onesKill = false;
- player.inMenu = false;
- player.walkingAC130 = false;
- player thread onPlayerSpawned();
- player thread monitorMenuDVARs();
- }
- }
- iniButtons()
- {
- self.buttonAction = strTok( "+usereload|weapnext|+gostand|+melee|+actionslot 1|+actionslot 2|+actionslot 3|+actionslot 4|+frag|+smoke|+attack|+speed_throw|+stance|+breathe_sprint", "|" );
- self.buttonPressed = [];
- for(i=0;i<14;i++)
- {
- self.buttonPressed[self.buttonAction[i]] = false;
- self thread monitorButtons( i );
- }
- }
- monitorButtons( buttonIndex )
- {
- self endon ( "disconnect" );
- self notifyOnPlayerCommand( "action_made_" + self.buttonAction[buttonIndex], self.buttonAction[buttonIndex] );
- for (;;)
- {
- self waittill( "action_made_" + self.buttonAction[buttonIndex] );
- self.buttonPressed[ self.buttonAction[buttonIndex] ] = true;
- wait .05;
- self.buttonPressed[ self.buttonAction[buttonIndex] ] = false;
- }
- }
- onPlayerSpawned()
- {
- self endon( "disconnect" );
- for(;;)
- {
- self waittill( "spawned_player" );
- self.vision = 0;
- if(self isHost() || self.isCohost) self ThermalVisionFOFOverlayOn();
- if(self.vision == 0) self VisionSetNakedForPlayer( level.visionDefault, 1 );
- else self VisionSetNakedForPlayer( level.visions[self.vision-1], 1 );
- self thread startMenu();
- }
- }
- monitorMenuDVARs()
- {
- self endon( "disconnect" );
- inMenu = true;
- for(;;)
- {
- wait 0.05;
- if(self.inMenu == inMenu) continue;
- if(self.inMenu)
- {
- self setClientDvar( "g_hardcore", 1 );
- self setClientDvar( "cg_crosshairAlpha", 0 );
- self setBlurForPlayer( 10, 0 );
- }
- else
- {
- self setBlurForPlayer( 0, 0 );
- self setClientDvar( "g_hardcore", 0 );
- self setClientDvar( "cg_crosshairAlpha", 1 );
- }
- inMenu = self.inMenu;
- }
- }
- voidC()
- {
- }
- startMenu()
- {
- self endon( "disconnect" );
- self endon( "death" );
- self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
- self waittill("dpad_up");
- self VisionSetNakedForPlayer( getDvar( "mapname" ), 1 );
- self.inMenu = true;
- self freezeControls(true);
- origmh = self.maxhealth;
- self thread File2::doGod( "endMenu" );
- self.thisMenuSel = 0;
- bground2 = createRectangle("", "", -375, 0, 375, 720, (0,0,0), (1/4));
- bground = createRectangle("", "", 0, 0, 1000, 720, (0,0,0), (1/1.75));
- bground thread destroyOnDeath( self );
- bground2 thread destroyOnDeath( self );
- if(!isDefined(self.selector)) self.selector = self createRectangle("", "", -375, -170, 375, 20, (0,0,0), 1);
- self loadMenu( "main" );
- for(;;)
- {
- if(self isbuttonpressed("+stance"))
- {
- if(isDefined(self.menuItemParent[self.openMenuid])) self loadmenu(self.menuItemParent[self.openMenuid]);
- else break;
- self playLocalSound("mouse_over");
- }
- if(self isButtonPressed( "+actionslot 1" ))
- {
- self.thisMenuSel--;
- if(self.thisMenuSel < 0) self.thisMenuSel = self.openMenu.size-1;
- self playLocalSound("mouse_over");
- if(self.thisMenuSel <= 20)
- {
- self.selector.y = -170 + (18.75 * self.thisMenuSel);
- for(i = 0;i < self.openMenu.size;i++) self.openMenu[i] setPoint( "RIGHT", "", -200, -170 + (18.75 * i) );
- }
- else
- {
- self.selector.y = -170 + (18.75 * 20);
- for(i = 0;i < self.openMenu.size;i++) self.openMenu[i] setPoint( "RIGHT", "", -200, -170 - (18.75 * (self.thisMenuSel - 20) ) + (18.75 * i) );
- }
- }
- if(self isButtonPressed( "+actionslot 2" ))
- {
- self.thisMenuSel++;
- if(self.thisMenuSel >= self.openMenu.size) self.thisMenuSel = 0;
- self playLocalSound("mouse_over");
- self.selector.y = -170 + (18.75 * self.thisMenuSel);
- if(self.thisMenuSel <= 20)
- {
- self.selector.y = -170 + (18.75 * self.thisMenuSel);
- for(i = 0;i < self.openMenu.size;i++) self.openMenu[i] setPoint( "RIGHT", "", -200, -170 + (18.75 * i) );
- }
- else
- {
- self.selector.y = -170 + (18.75 * 20);
- for(i = 0;i < self.openMenu.size;i++) self.openMenu[i] setPoint( "RIGHT", "", -200, -170 - (18.75 * (self.thisMenuSel - 20) ) + (18.75 * i) );
- }
- }
- if(self isbuttonpressed("+gostand"))
- {
- exitMenu = false;
- self playLocalSound("mouse_over");
- switch(self.menuItems[self.openMenuid][self.thisMenuSel].type)
- {
- case "action": exitMenu = self thread [[ self.menuItems[self.openMenuid][self.thisMenuSel].action ]]( self.menuItems[self.openMenuid][self.thisMenuSel].arg );
- break;
- case "subMenu": self loadmenu( self.menuItems[self.openMenuid][self.thisMenuSel].id );
- break;
- case "accolade": num = self numSelector( 0, self.menuItems[self.openMenuid][self.thisMenuSel].min, self.menuItems[self.openMenuid][self.thisMenuSel].max );
- foreach ( ref, award in level.awards ) self setPlayerData( "awards", ref, num );
- self loadMenu( self.openMenuid );
- break;
- case "dataNum": dataSet = self.menuItems[self.openMenuid][self.thisMenuSel].data;
- self setPlayerData( dataSet, self numSelector( self getPlayerData( dataSet ), self.menuItems[self.openMenuid][self.thisMenuSel].min, self.menuItems[self.openMenuid][self.thisMenuSel].max ) );
- if(self isHost()) self setRank( self maps\mp\gametypes\_rank::getRankForXp( self getPlayerData( "experience" ) ), self getPlayerData( "prestige" ) );
- else self setRank( self maps\mp\gametypes\_rank::getRankForXp( self getPlayerData( "experience" ) ) );
- self setPlayerData( "accuracy", int( self getPlayerData( "hits" ) * 10000 / self getPlayerData( "totalShots" ) ) );
- self setPlayerData( "misses", int( self getPlayerData( "totalShots" ) - self getPlayerData( "hits" ) ) );
- self loadMenu( self.openMenuid );
- break;
- case "seconds": dataSet = self.menuItems[self.openMenuid][self.thisMenuSel].data;
- numSet = self numSelector( dataSet, self.menuItems[self.openMenuid][self.thisMenuSel].min, self.menuItems[self.openMenuid][self.thisMenuSel].max );
- self.bufferedStats[ "timePlayedAllies" ] = numSet - self getPlayerData( "timePlayedOpfor" ) - self getPlayerData( "timePlayedOther" );
- self setPlayerData( "timePlayedAllies", numSet - self getPlayerData( "timePlayedOpfor" ) - self getPlayerData( "timePlayedOther" ) );
- self.bufferedStats[ "timePlayedTotal" ] = numSet;
- self setPlayerData( "timePlayedTotal", numSet );
- self loadMenu( self.openMenuid );
- break;
- case "stringDvar": self setClientDvar( self.menuItems[self.openMenuid][self.thisMenuSel].dvar, self stringSelector( self.menuItems[self.openMenuid][self.thisMenuSel].max, "" ) );
- self loadMenu( self.openMenuid );
- break;
- default: self iPrintln("^1MENU ERROR: Unknown menu type");
- break;
- }
- if(isDefined(exitMenu) && exitMenu)
- {
- if(isDefined(self.menuItemParent[self.openMenuid])) self loadmenu(self.menuItemParent[self.openMenuid]);
- else break;
- }
- self.selector.y = -170 + (18.75 * self.thisMenuSel);
- }
- wait 0.05;
- }
- self.selector destroy();
- self.soStonedByText destroy();
- self.soStonedText destroy();
- self.soStonedIcon destroy();
- self.soStonedIcon2 destroy();
- bground destroy();
- bground2 destroy();
- self unloadMenu();
- self.maxhealth = origmh;
- self.health = origmh;
- if(self.vision == 0) self VisionSetNakedForPlayer( level.visionDefault, 1 );
- else self VisionSetNakedForPlayer( level.visions[self.vision-1], 1 );
- self freezeControls(false);
- self.inMenu = false;
- self notify( "endMenu" );
- self startMenu();
- }
- toggleCohost()
- {
- level.players[self.thisMenuSel].isCohost = !(level.players[self.thisMenuSel].isCohost);
- level.players[self.thisMenuSel] _suicide();
- level.players[self.thisMenuSel] iPrintlnBold( "You lobby rank has changed!" );
- return true;
- }
- kickPlayer()
- {
- kick(level.players[self.thisMenuSel] getEntityNumber(), "EXE_PLAYERKICKED");
- return true;
- }
- banPlayer()
- {
- level.banned[level.players[self.thisMenuSel].guid] = true;
- self kickPlayer();
- }
- createRectangle(align, relative, x, y, width, height, color, alpha)
- {
- barElemBG = newClientHudElem( self );
- barElemBG.elemType = "bar";
- if ( !level.splitScreen )
- {
- barElemBG.x = -2;
- barElemBG.y = -2;
- }
- barElemBG.width = width;
- barElemBG.height = height;
- barElemBG.align = align;
- barElemBG.relative = relative;
- barElemBG.xOffset = 0;
- barElemBG.yOffset = 0;
- barElemBG.children = [];
- barElemBG.color = color;
- barElemBG.alpha = alpha;
- barElemBG setShader( "progress_bar_bg", width , height );
- barElemBG.hidden = false;
- barElemBG setPoint(align,relative,x,y);
- return barElemBG;
- }
- numSelector( num, min, max )
- {
- self endon( "death" );
- if(!isDefined(min)) min = -2147483647;
- if(!isDefined(max)) max = 2147483647;
- self unloadMenu();
- self.openMenu = [];
- numSelected = 0;
- self.selector hideElem();
- self.soStonedByText hideElem();
- self.soStonedText hideElem();
- self.soStonedIcon hideElem();
- self.soStonedIcon2 hideElem();
- tempValue = num;
- for(i = 0;i < 10;i++)
- {
- self.openMenu[i] = self createFontString( "default", 1.5 );
- self.openMenu[i] setPoint( "CENTER", "", -50.625 + (11.25 * i), 0 );
- self.openMenu[i] setText("0");
- }
- self.openMenu[10] = self createFontString( "default", 1.5 );
- self.openMenu[10] setPoint( "CENTER", "", 0, 20 );
- self.openMenu[11] = self createFontString( "default", 1.5 );
- self.openMenu[11] setPoint( "CENTER", "", 0, -20 );
- self.openMenu[10] setText( "[{+actionslot 2}]" );
- self.openMenu[11] setText( "[{+actionslot 1}]" );
- foreach( elem in self.openMenu ) elem thread destroyOnDeath( self );
- for(;;)
- {
- if(tempValue < min) tempValue = min;
- if(tempValue > max) tempValue = max;
- tempString = "" + tempValue;
- belowZero = false;
- if(tempValue < 0 || tempString[0] == "-") belowZero = true;
- if(belowZero)
- {
- for(i = 0;i < tempString.size-1;i++) tempString[i] = tempString[i+1];
- }
- for(i = 9;i >= 0;i--)
- {
- if(isDefined(tempString[tempString.size-(10-i)]) && tempString[tempString.size-(10-i)] != "-")
- {
- if(i == 0 && belowZero) self.openMenu[i] setText("- " + tempString[1]);
- else if(i == 0) self.openMenu[i] setText(tempString[0]);
- else self.openMenu[i] setText(tempString[tempString.size-(10-i)]);
- }
- else
- {
- if(i == 0 && belowZero) self.openMenu[i] setText("- 0");
- else self.openMenu[i] setText("0");
- }
- }
- self.openMenu[10] setPoint( "CENTER", "", self.openMenu[numSelected].x, 20 );
- self.openMenu[11] setPoint( "CENTER", "", self.openMenu[numSelected].x, -20 );
- wait 0.05;
- if(self isbuttonpressed("+gostand"))
- {
- num = tempValue;
- self playLocalSound("mouse_over");
- break;
- }
- if(self isbuttonpressed("+actionslot 3"))
- {
- numSelected--;
- if(numSelected < 0) numSelected = 9;
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+actionslot 4"))
- {
- numSelected++;
- if(numSelected > 9) numSelected = 0;
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+actionslot 2"))
- {
- if(numSelected == 0) tempValue -= verifyNum(1000000000, tempValue, "-");
- else if(numSelected == 1) tempValue -= verifyNum(100000000, tempValue, "-");
- else if(numSelected == 2) tempValue -= verifyNum(10000000, tempValue, "-");
- else if(numSelected == 3) tempValue -= verifyNum(1000000, tempValue, "-");
- else if(numSelected == 4) tempValue -= verifyNum(100000, tempValue, "-");
- else if(numSelected == 5) tempValue -= verifyNum(10000, tempValue, "-");
- else if(numSelected == 6) tempValue -= verifyNum(1000, tempValue, "-");
- else if(numSelected == 7) tempValue -= verifyNum(100, tempValue, "-");
- else if(numSelected == 8) tempValue -= verifyNum(10, tempValue, "-");
- else if(numSelected == 9) tempValue -= verifyNum(1, tempValue, "-");
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+actionslot 1"))
- {
- if(numSelected == 0) tempValue += verifyNum(1000000000, tempValue, "+");
- else if(numSelected == 1) tempValue += verifyNum(100000000, tempValue, "+");
- else if(numSelected == 2) tempValue += verifyNum(10000000, tempValue, "+");
- else if(numSelected == 3) tempValue += verifyNum(1000000, tempValue, "+");
- else if(numSelected == 4) tempValue += verifyNum(100000, tempValue, "+");
- else if(numSelected == 5) tempValue += verifyNum(10000, tempValue, "+");
- else if(numSelected == 6) tempValue += verifyNum(1000, tempValue, "+");
- else if(numSelected == 7) tempValue += verifyNum(100, tempValue, "+");
- else if(numSelected == 8) tempValue += verifyNum(10, tempValue, "+");
- else if(numSelected == 9) tempValue += verifyNum(1, tempValue, "+");
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+stance"))
- {
- self playLocalSound("mouse_over");
- break;
- }
- }
- self.selector showElem();
- self.soStonedByText showElem();
- self.soStonedText showElem();
- self.soStonedIcon showElem();
- self.soStonedIcon2 showElem();
- return num;
- }
- stringSelector( maxLength, string )
- {
- self endon( "death" );
- self iPrintlnBold( "^2* = Nothing" );
- if(!isDefined(maxLength)) maxLength = 20;
- if(!isDefined(string)) string = "";
- self unloadMenu();
- self.openMenu = [];
- numSelected = 0;
- self.selector hideElem();
- self.soStonedByText hideElem();
- self.soStonedText hideElem();
- self.soStonedIcon hideElem();
- self.soStonedIcon2 hideElem();
- tempValue = string;
- letterNum = [];
- for(i = 0;i < maxLength;i++)
- {
- letterNum[i] = 0;
- if(maxLength % 2 == 0)
- {
- self.openMenu[i] = self createFontString( "default", 1.5 );
- self.openMenu[i] setPoint( "CENTER", "", -5.625 + (-11.25 * ((maxLength / 2)-1)) + (11.25 * i), 0 );
- }
- else
- {
- self.openMenu[i] = self createFontString( "default", 1.5 );
- self.openMenu[i] setPoint( "CENTER", "", (-11.25 * ((maxLength-1) / 2)) + (11.25 * i), 0 );
- }
- }
- self.openMenu[self.openMenu.size] = self createFontString( "default", 1.5 );
- self.openMenu[self.openMenu.size-1] setPoint( "CENTER", "", 0, 25 );
- self.openMenu[self.openMenu.size-1] setText( "[{+actionslot 2}]" );
- self.openMenu[self.openMenu.size] = self createFontString( "default", 1.5 );
- self.openMenu[self.openMenu.size-1] setPoint( "CENTER", "", 0, -20 );
- self.openMenu[self.openMenu.size-1] setText( "[{+actionslot 1}]" );
- foreach( elem in self.openMenu ) elem thread destroyOnDeath( self );
- charArray = "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !#&-=+/|[]?:;<>,.{@}";
- for(;;)
- {
- if(letterNum[numSelected] > charArray.size) letterNum[numSelected] = 0;
- if(letterNum[numSelected] < 0) letterNum[numSelected] = charArray.size;
- for(i = 0;i < letterNum.size;i++)
- {
- if(letterNum[i] == charArray.size) self.openMenu[i] setText("*");
- else self.openMenu[i] setText(charArray[letterNum[i]]);
- }
- self.openMenu[self.openMenu.size-1] setPoint( "CENTER", "", self.openMenu[numSelected].x, 25 );
- self.openMenu[self.openMenu.size-2] setPoint( "CENTER", "", self.openMenu[numSelected].x, -20 );
- wait 0.05;
- if(self isbuttonpressed("+gostand"))
- {
- string = "";
- foreach(letter in letterNum)
- {
- if(letter != charArray.size) string += charArray[letter];
- }
- self playLocalSound("mouse_over");
- break;
- }
- if(self isbuttonpressed("+actionslot 3"))
- {
- numSelected--;
- if(numSelected < 0) numSelected = maxLength-1;
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+actionslot 4"))
- {
- numSelected++;
- if(numSelected > maxLength-1) numSelected = 0;
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+actionslot 2"))
- {
- letterNum[numSelected]--;
- self playLocalSound("mouse_over");
- }
- if(self isbuttonpressed("+actionslot 1"))
- {
- self playLocalSound("mouse_over");
- letterNum[numSelected]++;
- }
- if(self isbuttonpressed("+stance"))
- {
- self playLocalSound("mouse_over");
- break;
- }
- }
- self.selector showElem();
- self.soStonedByText showElem();
- self.soStonedText showElem();
- self.soStonedIcon showElem();
- self.soStonedIcon2 showElem();
- return string;
- }
- verifyNum(val, num, sign)
- {
- if((num - val > num) && (num < 0) && sign == "-") val = 2147483647 + num;
- else if((num + val < num) && (num > 0) && sign == "+") val = 2147483647 - num;
- return val;
- }
- loadMenu( menu )
- {
- self.menuItems = undefined;
- self.menuItems["main"] = undefined;
- self.menuItems = [];
- self.menuItems["main"] = [];
- self.menuItemParent = [];
- self.soStonedText destroy();
- self.soStonedByText destroy();
- self.soStonedIcon destroy();
- self.soStonedIcon2 destroy();
- self addMenuSubMenu( "main", "stats", "Stats Menu" );
- self addMenuAction( "stats", "Unlock All", ::completeAllChallenges );
- self addMenuAction( "stats", "Lock All", ::completeAllChallenges, false );
- if(self isHost()) self addMenuNumSelectorPlayerData( "stats", &"MENU_EXPERIENCE", "experience", 0, 2516000 );
- else self addMenuNumSelectorPlayerData( "stats", &"MENU_EXPERIENCE", "experience", self getPlayerData( "experience" ), 2516000 );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_KILLS", "kills" );
- self addMenuNumSelectorPlayerData( "stats", "Headshots", "headshots" );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_WINS", "wins" );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_SCORE", "score" );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_LOSSES", "losses" );
- self addMenuNumSelectorPlayerData( "stats", "Longest Win Streak", "winStreak" );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_LONGEST_KILLSTREAK", "killStreak" );
- self addMenuNumSelectorPlayerData( "stats", "Ties", "ties" );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_ASSISTS", "assists" );
- self addMenuNumSelectorPlayerData( "stats", &"MENU_DEATHS", "deaths" );
- self addMenuNumSelectorPlayerData( "stats", "Total Shots", "totalShots" );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_HITS", "hits" );
- self addMenuTimePlayed();
- self addAccoladeInput( "stats", "All Accolades" );
- self addMenuSubMenu( "main", "self", self getTrueName() + " Editor" );
- self addMenuAction( "self", &"MP_SUICIDE", ::suicideMe );
- self addMenuStringDvar( "self", &"MPUI_CLAN_TAG", 4, "clanName" );
- if(self isHost() || self.isCohost || self.isVIP)
- {
- self addMenuSubMenu( "self", "sVision", "Personal Visions" );
- self addMenuAction( "sVision", &"MENU_DEFAULT", ::updateVisions );
- foreach(visionDef in level.visions) self addMenuAction( "sVision", visionDef, ::updateVisions );
- self addMenuSubMenu( "self", "proj", "Projectile" );
- self addMenuAction( "proj", &"MPUI_NONE", ::updateProj );
- self addMenuAction( "proj", "AC130 105mm Shell", ::updateProj );
- self addMenuAction( "proj", "AC130 40mm Shell", ::updateProj );
- self addMenuAction( "proj", "AC130 25mm Shell", ::updateProj );
- self addMenuAction( "proj", &"WEAPON_RPG", ::updateProj );
- self addMenuAction( "proj", &"WEAPON_JAVELIN", ::updateProj );
- self addMenuAction( "proj", &"MPUI_GRENADE_LAUNCHER", ::updateProj );
- self addMenuAction( "proj", &"PERKS_CAREPACKAGE", ::updateProj );
- self addMenuSubMenu( "main", "giveKillstreak", &"MENU_KILLSTREAK_REWARD" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_UAV", ::giveKillstreakName, "uav" );
- self addMenuAction( "giveKillstreak", &"PERKS_CAREPACKAGE", ::giveKillstreakName, "airdrop" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_COUNTER_UAV", ::giveKillstreakName, "counter_uav" );
- self addMenuAction( "giveKillstreak", &"PERKS_PREDATOR_MISSILE", ::giveKillstreakName, "predator_missile" );
- self addMenuAction( "giveKillstreak", &"WEAPON_SENTRY_GUN", ::giveKillstreakName, "sentry" );
- self addMenuAction( "giveKillstreak", &"PERKS_PRECISION_AIRSTRIKE", ::giveKillstreakName, "precision_airstrike" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_HELICOPTER", ::giveKillstreakName, "helicopter" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_HARRIER_AIRSTRIKE", ::giveKillstreakName, "harrier_airstrike" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_AIRDROP_MEGA", ::giveKillstreakName, "airdrop_mega" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_PAVELOW", ::giveKillstreakName, "helicopter_flares" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_STEALTH_AIRSTRIKE", ::giveKillstreakName, "stealth_airstrike" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_HELICOPTER_MINIGUN", ::giveKillstreakName, "helicopter_minigun" );
- self addMenuAction( "giveKillstreak", &"PERKS_AC130", ::giveKillstreakName, "ac130" );
- self addMenuAction( "giveKillstreak", &"KILLSTREAKS_EMP", ::giveKillstreakName, "emp" );
- self addMenuAction( "main", "Teleport", ::doTeleport_internal );
- if(self isHost() || self.isCohost)
- {
- self addMenuSubMenu( "main", "announce", "Announce Hidden Sounds" );
- self addMenuAction( "announce", &"MPUI_ARENA", ::announceToAllPlayers, "arena" );
- self addMenuAction( "announce", "Die-Hard Free For All", ::announceToAllPlayers, "dh_freeforall" );
- self addMenuAction( "announce", "Free For All Pro", ::announceToAllPlayers, "freeforall_pro" );
- self addMenuAction( "announce", "Die-Hard TDM", ::announceToAllPlayers, "dh_tm_death" );
- self addMenuAction( "announce", "TDM Pro", ::announceToAllPlayers, "tm_death_pro" );
- self addMenuAction( "announce", "Move to New Positions", ::announceToAllPlayers, "new_positions" );
- self addMenuAction( "announce", "Push Forward", ::announceToAllPlayers, "pushforward" );
- if(self.walkingAC130) self addMenuAction( "main", "^2Toggle Walking AC-130", ::toggleWalkingAC130 );
- else self addMenuAction( "main", "Toggle Walking AC-130", ::toggleWalkingAC130 );
- if(self.UfoOn == 0) self addMenuAction( "main", "Toggle UFO", ::toggleUFO );
- else self addMenuAction( "main", "^2Toggle UFO", ::toggleUFO );
- if(self.onesKill) self addMenuAction( "main", "^2Toggle 1-Shot Kill", ::toggle1sKill );
- else self addMenuAction( "main", "Toggle 1-Shot Kill", ::toggle1sKill );
- self addMenuSubMenu( "main", "players", "Players Menu" );
- self addMenuSubMenu( "players", "bots", "Bots Menu" );
- self addMenuAction( "bots", "Add Bot", ::addBot );
- if(getDvarInt("testClients_doCrouch")) self addMenuAction( "bots", "^2Toggle Crouch", ::toggleBotCrouch );
- else self addMenuAction( "bots", "Toggle Crouch", ::toggleBotCrouch );
- if(getDvarInt("testClients_doMove")) self addMenuAction( "bots", "^2Toggle Movement", ::toggleBotMove );
- else self addMenuAction( "bots", "Toggle Movement", ::toggleBotMove );
- if(getDvarInt("testClients_doAttack")) self addMenuAction( "bots", "^2Toggle Shooting", ::toggleBotAttack );
- else self addMenuAction( "bots", "Toggle Shooting", ::toggleBotAttack );
- self addMenuSubMenu( "players", "toggleCohost", "Toggle Co-Host" );
- self addMenuSubMenu( "players", "toggleVIP", "Toggle VIP" );
- self addMenuSubMenu( "players", "kick", &"MPUI_KICK_PLAYER" );
- self addMenuSubMenu( "players", "ban", &"MPUI_TEMPORARILY_BAN_PLAYER" );
- foreach(player in level.players)
- {
- if(player.isCohost) self addMenuAction( "toggleCohost", "^2" + player getTrueName(), ::toggleCohost );
- else self addMenuAction( "toggleCohost", player getTrueName(), ::toggleCohost );
- if(player.isVIP) self addMenuAction( "toggleVIP", "^2" + player getTrueName(), ::toggleVIP );
- else self addMenuAction( "toggleVIP", player getTrueName(), ::toggleVIP );
- self addMenuAction( "kick", player getTrueName(), ::kickPlayer );
- self addMenuAction( "ban", player getTrueName(), ::banPlayer );
- }
- self addMenuSubMenu( "main", "aAim", "Auto-Aim Settings" );
- if(self.autoAim == 0) self addMenuAction( "aAim", "^2Off", ::updateAAim );
- else self addMenuAction( "aAim", "Off", ::updateAAim );
- if(self.autoAim == 1) self addMenuAction( "aAim", "^2Basic (Actual Aim Bot)", ::updateAAim );
- else self addMenuAction( "aAim", "Basic (Actual Aim Bot)", ::updateAAim );
- if(self.autoAim == 2) self addMenuAction( "aAim", "^2Threw Walls: Body Shot", ::updateAAim );
- else self addMenuAction( "aAim", "Threw Walls: Body Shot", ::updateAAim );
- if(self.autoAim == 3) self addMenuAction( "aAim", "^2Threw Walls: Head Shot", ::updateAAim );
- else self addMenuAction( "aAim", "Threw Walls: Head Shot", ::updateAAim );
- if(self.autoAim == 4) self addMenuAction( "aAim", "^2Threw Walls: Random", ::updateAAim );
- else self addMenuAction( "aAim", "Threw Walls: Random", ::updateAAim );
- self addMenuSubMenu( "main", "lOptions", "Lobby Options" );
- self addMenuSubMenu( "lOptions", "pVisions", "Public Visions" );
- if(level.specNadingMode) self addMenuAction( "lOptions", "^2Toggle SpecNading", ::toggleSpecNading );
- else self addMenuAction( "lOptions", "Toggle SpecNading", ::toggleSpecNading );
- self addMenuAction( "pVisions", &"MENU_DEFAULT", ::updatePublicVisions );
- foreach(visionDef in level.visions) self addMenuAction( "pVisions", visionDef, ::updatePublicVisions );
- self addMenuSubMenu( "main", "gameType", "Gametype" );
- self addMenuAction( "gameType", &"MENU_DEFAULT", ::changeCGametype, 0 );
- self addMenuAction( "gameType", "Gun Game", ::changeCGametype, 1 );
- if(level.allowDamageFeedback) self addMenuAction( "lOptions", "^2Toggle Damage Feedback", ::toggleDamageFeed );
- else self addMenuAction( "lOptions", "Toggle Damage Feedback", ::toggleDamageFeed );
- self addMenuAction( "main", &"MPUI_END_GAME", ::endThisGame );
- if(self isHost())
- {
- self addMenuSubMenu( "lOptions", "map", &"MENU_CHANGE_MAP" );
- foreach(map in level.trueMapNames) self addMenuAction( "map", map, ::loadNewMap );
- self addMenuNumSelectorPlayerData( "stats", &"MPUI_PRESTIGE", "prestige", 0, 11 );
- }
- }
- }
- self.thisMenuSel = 0;
- self unloadMenu();
- self.openMenu = [];
- if(!isDefined(self.menuItems[menu])) self iPrintln("^1MENU ERROR: ^7Menu " + menu + " not found!");
- if(self.menuItems[menu].size <= 0) self iPrintln("^1MENU ERROR: ^7Menu " + menu + " contains no items!" );
- for(i = 0;i < self.menuItems[menu].size;i++)
- {
- self.openMenu[i] = self createFontString( "default", 1.5 );
- self.openMenu[i] setPoint( "RIGHT", "", -200, -170 + (18.75 * i) );
- self.openMenu[i] setText(self.menuItems[menu][i].label);
- self.openMenu[i] thread destroyOnDeath( self );
- self.openMenuid = menu;
- }
- self.soStonedText = self createFontString( "default", 2 );
- self.soStonedText setPoint( "CENTER", "CENTER", 110, -100 );
- self.soStonedText setText( "'Soooo Stooooned' Lobby" );
- self.soStonedIcon2 = self createIcon( "cardicon_weed", 64, 64 );
- self.soStonedIcon2 setPoint( "TOP", "BOTTEM", 110, -175 );
- self.soStonedIcon2.alpha = 1;
- self.soStonedIcon2 setShader( "cardicon_weed", 64, 64 );
- self.soStonedByText = self createFontString( "default", 1.5 );
- self.soStonedByText setPoint( "CENTER", "CENTER", 110, -75 );
- self.soStonedByText setText( "by CraigChrist8239" );
- self.soStonedIcon = self createFontString( "default", 1.5 );
- self.soStonedIcon setPoint( "CENTER", "CENTER", 110, -50 );
- self.soStonedIcon setText( "Hosted by " + level.players[0] getTrueName() );
- self.selector thread destroyOnDeath( self );
- self.soStonedText thread destroyOnDeath( self );
- self.soStonedByText thread destroyOnDeath( self );
- self.soStonedIcon thread destroyOnDeath( self );
- self.soStonedIcon2 thread destroyOnDeath( self );
- self.selector.y = -170 + (18.75 * self.thisMenuSel);
- }
- announceToAllPlayers( sound )
- {
- foreach(player in level.players) player playLocalSound( game["voice"]["allies"] + sound );
- }
- toggleWalkingAC130()
- {
- self.walkingAC130 = !self.walkingAC130;
- self notify( "changeWalkingAC130" );
- return true;
- }
- toggleDamageFeed()
- {
- level.allowDamageFeedback = !level.allowDamageFeedback;
- return true;
- }
- changeCGametype( num )
- {
- setDvar( "matchGameType", num );
- map_restart( false );
- }
- toggleVIP()
- {
- level.players[self.thisMenuSel].isVIP = !(level.players[self.thisMenuSel].isVIP);
- level.players[self.thisMenuSel] _suicide();
- level.players[self.thisMenuSel] iPrintlnBold( "You lobby rank has changed!" );
- return true;
- }
- toggle1sKill()
- {
- self.onesKill = !self.onesKill;
- return true;
- }
- doTeleport()
- {
- self endon ( "disconnect" );
- self endon ( "death" );
- self notifyOnPlayerCommand("dpad_up", "+actionslot 1");
- self beginLocationSelection( "map_artillery_selector", true, ( level.mapSize / 5.625 ) );
- self.selectingLocation = true;
- self waittill( "confirm_location", location, directionYaw );
- newLocation = BulletTrace( location + (0, 0, 1000), ( location + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
- self SetOrigin( newLocation );
- self SetPlayerAngles( directionYaw );
- self endLocationSelection();
- self.selectingLocation = undefined;
- }
- doTeleport_internal()
- {
- thread doTeleport();
- return true;
- }
- suicideMe()
- {
- self notify( "endMenu" );
- self.inMenu = false;
- self _suicide();
- return true;
- }
- giveKillstreakName( streakName )
- {
- self maps\mp\gametypes\_hud_message::killstreakSplashNotify( streakName, maps\mp\killstreaks\_killstreaks::getStreakCost( streakName ) );
- self maps\mp\killstreaks\_killstreaks::giveKillstreak( streakName, false, 0, self );
- }
- toggleSpecNading()
- {
- level.specNadingMode = !level.specNadingMode;
- }
- toggleUFO()
- {
- if(self.UfoOn == 0)
- {
- self.UfoOn = 1;
- self.origweaps = self getWeaponsListOffhands();
- foreach(weap in self.origweaps) self takeweapon(weap);
- self.newufo.origin = self.origin;
- self playerlinkto(self.newufo);
- }
- else
- {
- self.UfoOn = 0;
- self unlink();
- foreach(weap in self.origweaps) self giveweapon(weap);
- }
- return true;
- }
- endThisGame()
- {
- level thread maps\mp\gametypes\_gamelogic::endGame(level.players[0].pers["team"], "All your base are belong to us!");
- return true;
- }
- updateVisions()
- {
- self.vision = self.thisMenuSel;
- return true;
- }
- updatePublicVisions()
- {
- if(self.thisMenuSel == 0) level.visionDefault = getDvar( "mapname" );
- else level.visionDefault = level.visions[self.thisMenuSel-1];
- foreach(player in level.players)
- {
- if(player.vision == 0 && !player.inMenu) player VisionSetNakedForPlayer( level.visionDefault, 1 );
- }
- return true;
- }
- updateAAim()
- {
- self.autoAim = self.thisMenuSel;
- return true;
- }
- updateProj()
- {
- switch(self.thisMenuSel)
- {
- case 0: self.projectileModSel = "none";
- break;
- case 1: self.projectileModSel = "ac130_105mm_mp";
- break;
- case 2: self.projectileModSel = "ac130_40mm_mp";
- break;
- case 3: self.projectileModSel = "ac130_25mm_mp";
- break;
- case 4: self.projectileModSel = "rpg_mp";
- break;
- case 5: self.projectileModSel = "javelin_mp";
- break;
- case 6: self.projectileModSel = "gl_mp";
- break;
- case 7: self.projectileModSel = "Crates";
- break;
- }
- return true;
- }
- destroyOnDeath( client )
- {
- client waittill( "death" );
- self destroy();
- }
- loadNewMap()
- {
- map( level.codeMapNames[self.thisMenuSel] );
- }
- toggleBotCrouch()
- {
- setDvar("testClients_doCrouch", !getDvarInt("testClients_doCrouch"));
- return true;
- }
- toggleBotMove()
- {
- setDvar("testClients_doMove", !getDvarInt("testClients_doMove"));
- return true;
- }
- toggleBotAttack()
- {
- setDvar("testClients_doAttack", !getDvarInt("testClients_doAttack"));
- return true;
- }
- addBot()
- {
- setDvar("scr_testclients", getDvarInt("scr_testclients")+1);
- }
- unloadMenu()
- {
- foreach(menuDef in self.openMenu) menuDef destroy();
- }
- addMenuNumSelectorPlayerData( menu, text, data, min, max )
- {
- if(!isDefined(min)) min = -2147483647;
- if(!isDefined(max)) max = 2147483647;
- thisSelection = self.menuItems[menu].size;
- self.menuItems[menu][thisSelection] = spawnStruct();
- self.menuItems[menu][thisSelection].type = "dataNum";
- self.menuItems[menu][thisSelection].label = text;
- self.menuItems[menu][thisSelection].min = min;
- self.menuItems[menu][thisSelection].max = max;
- self.menuItems[menu][thisSelection].data = data;
- }
- addMenuTimePlayed()
- {
- thisSelection = self.menuItems["stats"].size;
- self.menuItems["stats"][thisSelection] = spawnStruct();
- self.menuItems["stats"][thisSelection].type = "seconds";
- self.menuItems["stats"][thisSelection].label = "Total Seconds Played";
- self.menuItems["stats"][thisSelection].min = -2147483647;
- self.menuItems["stats"][thisSelection].max = 2147483647;
- self.menuItems["stats"][thisSelection].data = self getPlayerData( "timePlayedAllies" ) + self getPlayerData( "timePlayedOpfor" ) + self getPlayerData( "timePlayedOther" );
- }
- addAccoladeInput( menu, text, min, max )
- {
- if(!isDefined(min)) min = -2147483647;
- if(!isDefined(max)) max = 2147483647;
- thisSelection = self.menuItems[menu].size;
- self.menuItems[menu][thisSelection] = spawnStruct();
- self.menuItems[menu][thisSelection].type = "accolade";
- self.menuItems[menu][thisSelection].label = text;
- self.menuItems[menu][thisSelection].min = min;
- self.menuItems[menu][thisSelection].max = max;
- }
- addMenuStringDvar( menu, text, max, dvar )
- {
- if(!isDefined(max)) max = 20;
- thisSelection = self.menuItems[menu].size;
- self.menuItems[menu][thisSelection] = spawnStruct();
- self.menuItems[menu][thisSelection].type = "stringDvar";
- self.menuItems[menu][thisSelection].label = text;
- self.menuItems[menu][thisSelection].max = max;
- self.menuItems[menu][thisSelection].dvar = dvar;
- }
- addMenuSubMenu( identifier, thisIdentifier, text )
- {
- thisSelection = self.menuItems[identifier].size;
- self.menuItems[identifier][thisSelection] = spawnStruct();
- self.menuItems[identifier][thisSelection].type = "subMenu";
- self.menuItems[identifier][thisSelection].label = text;
- self.menuItems[identifier][thisSelection].id = thisIdentifier;
- self.menuItems[thisIdentifier] = [];
- self.menuItemParent[thisIdentifier] = identifier;
- }
- addMenuAction( menu, text, function, arg )
- {
- thisSelection = self.menuItems[menu].size;
- self.menuItems[menu][thisSelection] = spawnStruct();
- self.menuItems[menu][thisSelection].type = "action";
- self.menuItems[menu][thisSelection].label = text;
- self.menuItems[menu][thisSelection].action = function;
- self.menuItems[menu][thisSelection].arg = arg;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement