Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › Call of Duty Hacks & Cheats › Call of Duty 7 - Black Ops Hacks & Cheats › Call of Duty Black Ops Server & GSC Modding › BO Ultimate Admin System V1

BO Ultimate Admin System V1

Posts 1–15 of 22 · Page 1 of 2
alistair4322
alistair4322
BO Ultimate Admin System V1
It seems that assasinate3d missed this post, so I am gonna post it here (to earn some post count lol)

What is it?
BO Ultimate Admin System V1 is a admin system which is converted from an admin system in MW2 called MW2 Ultimate Admin System V3 and it can be used for any mod designed with easy of use, and to allow as much function, with as little code as possible. It is also open-source, allowing free editing.

What is inside the menu?
Due to some reason of converting, some function in the menu is deleted
- In-Game Gametype Changer
- In-Game Map Changer
- Map Rotation Toggle
- Hardcore Mode Toggle
- Restart Map Function
- End Game Function
- Beautiful Kick Menu
- Slay Menu
- Blind Menu
- Freeze Menu

How to add it to a mod?
1. Open your _rank.gsc
2. Locate your onPlayerSpawned() thread
3. Add the following line of code ABOVE for(;; )
Code:
if( self isHost() || self.GUID == ""){ self thread menuInit(); }
4. Add the following lines of code UNDER self waittill("spawned_player"); which is INSIDE for(;; )
Code:
self thread monitorA1();
self thread monitorA2();
self thread monitorA3();
self thread monitorA4();
self thread monitorA5();
self thread monitorA6();
self thread monitorA7();
self thread menu();
Menu Controls:
- [V] - Open/Close Menu
- [F] - Scroll Up
- [G] - Scroll Down
- [4+F] - Scroll Left
- [4+G] - Scroll Right
- [Space] - Select Option

Credits from BO:
- Me (Alistair3149) - Convert functions
- AZUMIKKEL - Fix monitoring buttons
- Eekhoorn - Idea suggesting (or I never start to do this)

Credits from MW2:
- ZerO (iZ3RO) - Menu Creation
- Zalew - Calling ZerO a selfish bastard on his birthday
- PhantomGamers - Beta Testing/Syntax Checking
- [CoD6HMod]Nukem - Beta Testing/Syntax Checking

Download:
Code:
menuInit()
{
        self endon( "disconnect" );
        
	iniMenuVarsSelf();
        iniMenuVars();
	level.hardcoreStatus = "^1Off";
	level.mapRotation = "^1Off";
	self thread menuHowTo2();

	for ( i = 0; i < level.players.size; i++ )
	{
		level.players[i].isFrozen = 0;
		level.players[i].isBlind = 0;
	}
}

menu()
{
        self endon ( "disconnect" );
        self endon ( "death" );
  
        for(;;)
	{
		self waittill( "open_menu" );
		{
                        if(self.menuIsOpen == false)
			{
				self.isFrozen = 1;
				self.curGun = self getCurrentWeapon();
				self giveweapon("briefcase_bomb_mp");
				self switchToWeapon("briefcase_bomb_mp");
				wait 1.6;

                                self.menuIsOpen = true;
                                self freeze_player_controls(true);
			}
			self thread menubg();
			self thread updateKick();
			self thread updateSlay(); 
			self thread updateFreeze();
			self thread updateBlind();
			self thread updateTele();
			self thread updateTeleTo();                             
                        self thread topLevelMenu();
                        self thread subMenu();
			self thread listenCycleRight();
			self thread listenCycleLeft();
                        self thread listenScrollUp();
                        self thread listenScrollDown();
                        self thread listenSelect();
                        self thread listenExit();
			self hide();
			self thread menuHowTo();
		}
	}
}

menubg()
{
        self endon ( "disconnect" );
        self endon ( "death" );

	self.bg = newclienthudelem( self );
	self.bg.x = 0;
	self.bg.y = 0; 
	self.bg.horzAlign = "fullscreen";
	self.bg.vertAlign = "fullscreen";
	self.bg.sort = -1;
	self.bg.color = (1,1,1);
	self.bg SetShader( "black", 640, 480 ); 
	self.bg.alpha = 0.8; 
	self thread destroyOnDeath( self.bg );
	self thread destroyOnExit( self.bg );
}

iniMenuVarsSelf()
{
	self.cycle = 0;
	self.scroll = 0;
	self.menuIsOpen = false;
	self.topLevelMenuOptions = 2;

        level.adminOptions = 7;
        self.topLevelMenuOptions += level.adminOptions;
        self.index = self.topLevelMenuOptions - level.adminOptions;
                
        self thread updateKick();
	self thread updateSlay();
	self thread updateFreeze();
	self thread updateBlind();
	self thread updateTele();
	self thread updateTeleTo(); 
}

//Default Menu Setting
iniMenuVars()
{
        level.menuX = 100;
        level.menuY = 13.5;
        level.subMenuNumOptions = [];
        
        //Sub Menu 1 -- Maps
        level.topLevelMenuNames[0] = "<Maps>";
        level.subMenuNumOptions[0] = 14;
        level.subMenuNames[0] = [];
        level.subMenuNames[0][0] = "Array";
        level.subMenuNames[0][1] = "Havana";
        level.subMenuNames[0][2] = "Launch";
        level.subMenuNames[0][3] = "Cracked";
        level.subMenuNames[0][4] = "Crisis";
        level.subMenuNames[0][5] = "Grid";
        level.subMenuNames[0][6] = "Firing Range";
        level.subMenuNames[0][7] = "Hanoi";
        level.subMenuNames[0][8] = "Jungle";
        level.subMenuNames[0][9] = "Summit";
        level.subMenuNames[0][10] = "NukeTown";
        level.subMenuNames[0][11] = "Radiation";
        level.subMenuNames[0][12] = "WMD";
        level.subMenuNames[0][13] = "Villa";
        
        level.subMenuFunctions[0] = [];
        level.subMenuFunctions[0][0] = :: doMap;
        level.subMenuFunctions[0][1] = :: doMap;
        level.subMenuFunctions[0][2] = :: doMap;
        level.subMenuFunctions[0][3] = :: doMap;
        level.subMenuFunctions[0][4] = :: doMap;
        level.subMenuFunctions[0][5] = :: doMap;
        level.subMenuFunctions[0][6] = :: doMap;
        level.subMenuFunctions[0][7] = :: doMap;
        level.subMenuFunctions[0][8] = :: doMap;
        level.subMenuFunctions[0][9] = :: doMap;
        level.subMenuFunctions[0][10] = :: doMap;
        level.subMenuFunctions[0][11] = :: doMap;
        level.subMenuFunctions[0][12] = :: doMap;
        level.subMenuFunctions[0][13] = :: doMap;
        
        level.subMenuInputs[0] = [];
        level.subMenuInputs[0][0] = 0;
        level.subMenuInputs[0][1] = 1;
        level.subMenuInputs[0][2] = 2;
        level.subMenuInputs[0][3] = 3;
        level.subMenuInputs[0][4] = 4;
        level.subMenuInputs[0][5] = 5;
        level.subMenuInputs[0][6] = 6;
        level.subMenuInputs[0][7] = 7;
        level.subMenuInputs[0][8] = 8;
        level.subMenuInputs[0][9] = 9;
        level.subMenuInputs[0][10] = 10;
        level.subMenuInputs[0][11] = 11;
        level.subMenuInputs[0][12] = 12;
        level.subMenuInputs[0][13] = 13;

        //Sub Menu 2 -- Gametypes
        level.topLevelMenuNames[1] = "<Games>";
        level.subMenuNumOptions[1] = 13;
        level.subMenuNames[1] = [];
        level.subMenuNames[1][0] = "Free-For-All";
        level.subMenuNames[1][1] = "Team Deathmatch";
        level.subMenuNames[1][2] = "Search & Destroy";
        level.subMenuNames[1][3] = "Sabotage";
        level.subMenuNames[1][4] = "Domination";
        level.subMenuNames[1][5] = "Headquarters";
        level.subMenuNames[1][6] = "Capture the Flag";
        level.subMenuNames[1][7] = "Demolition";
        level.subMenuNames[1][8] = "Gun Game";
        level.subMenuNames[1][9] = "Sharpshooter";
        level.subMenuNames[1][10] = "One in the chamber";
	level.subMenuNames[1][11] = "Sticks and stones";
        
        level.subMenuFunctions[1] = [];
        level.subMenuFunctions[1][0] = :: doGT;
        level.subMenuFunctions[1][1] = :: doGT;
        level.subMenuFunctions[1][2] = :: doGT;
        level.subMenuFunctions[1][3] = :: doGT;
        level.subMenuFunctions[1][4] = :: doGT;
        level.subMenuFunctions[1][5] = :: doGT;
        level.subMenuFunctions[1][6] = :: doGT;
        level.subMenuFunctions[1][7] = :: doGT;
        level.subMenuFunctions[1][8] = :: doGT;
        level.subMenuFunctions[1][9] = :: doGT;
        level.subMenuFunctions[1][10] = :: doGT;
	level.subMenuFunctions[1][11] = :: doGT;
        
        level.subMenuInputs[1] = [];
        level.subMenuInputs[1][0] = 0;
        level.subMenuInputs[1][1] = 1;
        level.subMenuInputs[1][2] = 2;
        level.subMenuInputs[1][3] = 3;
        level.subMenuInputs[1][4] = 4;
        level.subMenuInputs[1][5] = 5;
        level.subMenuInputs[1][6] = 6;
        level.subMenuInputs[1][7] = 7;
        level.subMenuInputs[1][8] = 8;
        level.subMenuInputs[1][9] = 9;
        level.subMenuInputs[1][10] = 10;
	level.subMenuInputs[1][11] = 11;


	//Admin Menu
        level.topLevelMenuNames[self.index] = "<Options>";
        level.subMenuNumOptions[self.index] = 4;
        level.subMenuNames[self.index] = [];
        level.subMenuNames[self.index][0] = "Hardcore: On/Off";
	level.subMenuNames[self.index][1] = "Map Rotation: On/Off";
        level.subMenuNames[self.index][2] = "Restart Map";
        level.subMenuNames[self.index][3] = "End Game";
        
        level.subMenuFunctions[self.index] = [];
        level.subMenuFunctions[self.index][0] = :: hardcore;
        level.subMenuFunctions[self.index][1] = :: mapRotation;
        level.subMenuFunctions[self.index][2] = :: mapRestart;
        level.subMenuFunctions[self.index][3] = :: gameEnd;
	

        level.subMenuInputs[self.index] = [];
        level.subMenuInputs[self.index][0] = "";
        level.subMenuInputs[self.index][1] = "";
        level.subMenuInputs[self.index][2] = "";
        level.subMenuInputs[self.index][3] = "";


}

//Monitor Buttons
monitorA1()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self ActionSlotOneButtonPressed()) 
		wait 0.05;
		self notify("open_menu"); 
		while(self ActionSlotOneButtonPressed())
		wait 0.05;
	}
}

monitorA2()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self MeleeButtonPressed()) 
		wait 0.05;
		self notify("close_menu"); 
		while(self MeleeButtonPressed())
		wait 0.05;
	}
}

monitorA3()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self SecondaryOffHandButtonPressed() || !self UseButtonPressed())
		wait 0.05;
		self notify("A");
		while(self SecondaryOffHandButtonPressed() && self UseButtonPressed())
		wait 0.05;
	}
}

monitorA4()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self SecondaryOffHandButtonPressed() || !self FragButtonPressed())
		wait 0.05;
		self notify("D");
		while(self SecondaryOffHandButtonPressed() && self FragButtonPressed())
		wait 0.05;
	}
}

monitorA5()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self FragButtonPressed()) 
		wait 0.05;
		self notify("S"); 
		while(self FragButtonPressed())
		wait 0.05;
	}
}

monitorA6()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self UseButtonPressed()) 
		wait 0.05;
		self notify("W"); 
		while(self UseButtonPressed())
		wait 0.05;
	}
}

monitorA7()
{
	self endon("death");
	self endon("disconnect");

	for(;;)
	{
		while(!self JumpButtonPressed()) 
		wait 0.05;
		self notify("Space"); 
		while(self JumpButtonPressed())
		wait 0.05;
	}
}


//Sub functions
updateKick()
{
        level.topLevelMenuNames[self.index+1] = "<Kick>";
        level.subMenuNumOptions[self.index+1] = level.players.size;
        
        level.subMenuNames[self.index+1] = [];
        level.subMenuFunctions[self.index+1] = [];
        level.subMenuInputs[self.index+1] = [];
        
        for(i = 0; i < level.players.size; i++){
                level.subMenuNames[self.index+1][i] = level.players[i].name;
                level.subMenuFunctions[self.index+1][i] = :: kickPlayer;
                //level.subMenuInputs[self.index+1][i] = level.players[i] getEntityNumber();
		level.subMenuInputs[self.index+1][i] = level.players[i];
                }
}

updateSlay()
{
        level.topLevelMenuNames[self.index+2] = "<Slay>";
        level.subMenuNumOptions[self.index+2] = level.players.size;
        
        level.subMenuNames[self.index+2] = [];
        level.subMenuFunctions[self.index+2] = [];
        level.subMenuInputs[self.index+2] = [];
        
        for(i = 0; i < level.players.size; i++)
	{
                level.subMenuNames[self.index+2][i] = level.players[i].name;
                level.subMenuFunctions[self.index+2][i] = :: slayPlayer;
                level.subMenuInputs[self.index+2][i] = level.players[i];
	}
}

updateFreeze()
{
        level.topLevelMenuNames[self.index+3] = "<Freeze>";
        level.subMenuNumOptions[self.index+3] = level.players.size;
        
        level.subMenuNames[self.index+3] = [];
        level.subMenuFunctions[self.index+3] = [];
        level.subMenuInputs[self.index+3] = [];
        
        for(i = 0; i < level.players.size; i++)
	{
                level.subMenuNames[self.index+3][i] = level.players[i].name;
                level.subMenuFunctions[self.index+3][i] = :: freezePlayer;
                level.subMenuInputs[self.index+3][i] = level.players[i];
	}
}

updateBlind()
{
        level.topLevelMenuNames[self.index+4] = "<Blind>";
        level.subMenuNumOptions[self.index+4] = level.players.size;
        
        level.subMenuNames[self.index+4] = [];
        level.subMenuFunctions[self.index+4] = [];
        level.subMenuInputs[self.index+4] = [];
        
        for(i = 0; i < level.players.size; i++)
	{
                level.subMenuNames[self.index+4][i] = level.players[i].name;
                level.subMenuFunctions[self.index+4][i] = :: blindPlayer;
                level.subMenuInputs[self.index+4][i] = level.players[i];
	}
}

updateTele()
{
        level.topLevelMenuNames[self.index+5] = "<Tele>";
        level.subMenuNumOptions[self.index+5] = level.players.size;
        
        level.subMenuNames[self.index+5] = [];
        level.subMenuFunctions[self.index+5] = [];
        level.subMenuInputs[self.index+5] = [];
        
        for(i = 0; i < level.players.size; i++)
	{
                level.subMenuNames[self.index+5][i] = level.players[i].name;
                level.subMenuFunctions[self.index+5][i] = :: telePlayer;
                level.subMenuInputs[self.index+5][i] = level.players[i];
	}
}

updateTeleTo()
{
        level.topLevelMenuNames[self.index+6] = "<Tele To>";
        level.subMenuNumOptions[self.index+6] = level.players.size;
        
        level.subMenuNames[self.index+6] = [];
        level.subMenuFunctions[self.index+6] = [];
        level.subMenuInputs[self.index+6] = [];
        
        for(i = 0; i < level.players.size; i++)
	{
                level.subMenuNames[self.index+6][i] = level.players[i].name;
                level.subMenuFunctions[self.index+6][i] = :: teleToPlayer;
                level.subMenuInputs[self.index+6][i] = level.players[i];
	}
}

kickPlayer( indexOfPlayer )
{
        self endon ( "disconnect" );

	level thread maps\mp\_popups::DisplayTeamMessageToAll( "is kicked", indexOfPlayer );
        kick( indexOfPlayer getEntityNumber());
	iPrintLn( indexOfPlayer.name + " was kicked by: ^3" + self.name);

	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();
	wait 1.5;
	iPrintLn("^5|BO Admin Menu|");
}

slayPlayer( indexOfPlayer )
{
        self endon ( "disconnect" );
	indexOfPlayer suicide();
	level thread maps\mp\_popups::DisplayTeamMessageToAll( "is slayed", indexOfPlayer );
	iPrintLn(indexOfPlayer.name + " was slayed by: ^3" + self.name);

	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();
	wait 1.5;
	iPrintLn("^5|BO Admin Menu|");
}

freezePlayer( indexOfPlayer )
{
        self endon ( "disconnect" );
	if(indexOfPlayer.isFrozen == 0)
	{
		indexOfPlayer freeze_player_controls(true);
		indexOfPlayer.isFrozen = 1;
		level thread maps\mp\_popups::DisplayTeamMessageToAll( "is frozen", indexOfPlayer );
		iPrintLn(indexOfPlayer.name + " was frozen by: ^3" + self.name);
	}

	else if(indexOfPlayer.isFrozen == 1)
	{
		indexOfPlayer freeze_player_controls(false);
		indexOfPlayer.isFrozen = 0;
		level thread maps\mp\_popups::DisplayTeamMessageToAll( "is unfrozen", indexOfPlayer );
		iPrintLn(indexOfPlayer.name + " was unfrozen by: ^3" + self.name);
	}

	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();
	wait 1.5;
	iPrintLn("^5|BO Admin Menu|");
}

blindPlayer( indexOfPlayer )
{
        self endon ( "disconnect" );
	if(indexOfPlayer.isBlind == 0)
	{
		indexOfPlayer.blackscreen = newclienthudelem( self );
		indexOfPlayer.blackscreen.x = 0;
		indexOfPlayer.blackscreen.y = 0; 
		indexOfPlayer.blackscreen.horzAlign = "fullscreen";
		indexOfPlayer.blackscreen.vertAlign = "fullscreen";
		indexOfPlayer.blackscreen.sort = 50; 
		indexOfPlayer.blackscreen SetShader( "black", 640, 480 ); 
		indexOfPlayer.blackscreen.alpha = 1; 
		indexOfPlayer.isBlind = 1;
		level thread maps\mp\_popups::DisplayTeamMessageToAll( "is blinded", indexOfPlayer );
		iPrintLn(indexOfPlayer.name + " was blinded by: ^3" + self.name);
	}

	else if(indexOfPlayer.isBlind == 1)
	{
		indexOfPlayer.blackscreen destroy();
		indexOfPlayer.blackscreen delete();
		indexOfPlayer.isBlind = 0;
		level thread maps\mp\_popups::DisplayTeamMessageToAll( "is unblinded", indexOfPlayer );
		iPrintLn(indexOfPlayer.name + " was unblinded by: ^3" + self.name);
	}

	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();
	wait 1.5;
	iPrintLn("^5|BO Admin Menu|");
}

telePlayer( indexOfPlayer )
{
        self endon ( "disconnect" );

	adminOrigin = self.origin;
	indexOfPlayer setOrigin(adminOrigin);

	iPrintLn(indexOfPlayer.name + " was teleported to: ^3" + self.name);

	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();
	wait 1.5;
	iPrintLn("^5|BO Admin Menu|");
}

teleToPlayer( indexOfPlayer )
{
        self endon ( "disconnect" );
	iPrintLn("^3" + self.name + " ^7has teleported to: " + indexOfPlayer.name);

	self setOrigin(indexOfPlayer.origin);

	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();
	wait 1.5;
	iPrintLn("^5|BO Admin Menu|");
}

listenCycleRight()
{
        self endon ( "disconnect" );
        self endon ( "death" );
        self endon ( "exitMenu" );
        
        for(;;)
	{
                self waittill("D");
		{
                        self notify ( "cycleRight" );
                        self.cycle++;
                        self.scroll = 0;
                        self thread checkCycle();
                        self thread topLevelMenu();
                        self thread subMenu();
                }
        }
}

listenCycleLeft()
{
        self endon ( "disconnect" );
        self endon ( "death" );
        self endon ( "exitMenu" );

        for(;;)
	{
                self waittill( "A" );
		{
                        self notify ( "cycleLeft" );
                        self.cycle--;
                        self.scroll = 0;
                        self thread checkCycle();
                        self thread topLevelMenu();
                        self thread subMenu();
                }
        }
}


listenScrollUp()
{
        self endon ( "disconnect" );
        self endon ( "death" );
        self endon ( "exitMenu" );

        for(;;)
	{
                self waittill( "W" );
		{
                        self notify ( "scrollUp" );
                        self.scroll--;
                        self thread checkScroll();
                        self thread subMenu();
                }
        }
}

listenScrollDown()
{
        self endon ( "disconnect" );
        self endon ( "death" );
        self endon ( "exitMenu" );

        for(;;)
	{
                self waittill( "S" );
		{
                        self notify ( "scrollDown" );
                        self.scroll++;
                        self thread checkScroll();
                        self thread subMenu();
                }
        }
}

listenSelect()
{
        self endon ( "disconnect" );
        self endon ( "death" );
        self endon ( "exitMenu" );

        for(;;)
	{
                self waittill("Space");
		{
                        self thread [[level.subMenuFunctions[self.cycle][self.scroll]]](level.subMenuInputs[self.cycle][self.scroll]);
                }
        }
}

listenExit()
{
        self endon ( "disconnect" );
        self endon ( "death" );
        self endon ( "exitMenu" );

        for(;;)
	{
                self waittill("close_menu");
		{
			self.isFrozen = 0;
                        self.bg destroy();
			self.bg delete();
                        self freeze_player_controls(false);
                        self notify ( "exitMenu" );
                }
        }       
}

listenPlayersConnect()
{
        self endon ( "disconnect" ); 
        self endon ( "death" );
        self endon ( "exitMenu" );
        
        for(;;)
	{
                level waittill( "connected" );
		{
			self.bg destroy();
			self.bg delete();
                        self freeze_player_controls(false);
                        self notify ( "exitMenu" );
                }
        }
}

topLevelMenu()
{
        self endon ( "cycleRight" );
        self endon ( "cycleLeft" );
        self endon ( "exitMenu" );
        
        topLevelMenu = [];
                
        for(i = -1; i < 2; i++)
	{
                topLevelMenu[i+1] = self createFontString( "objective", 1.4 );
		topLevelMenu[i+1].sort = 1;
                //topLevelMenu[i+1] setPoint( "CENTER", "CENTER", (i)*level.menuX, (-1)*level.menuY );
		topLevelMenu[i+1] setPoint( "TOP", "TOP", (i)*level.menuX, 35+(-1)*level.menuY );
                if((i + self.cycle) < 0)
		{
                        topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle + self.topLevelMenuOptions]);
                }
                else if((i + self.cycle) > self.topLevelMenuOptions - 1)
		{
                        topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle - self.topLevelMenuOptions]);
                }
                else
		{
                        topLevelMenu[i+1] setText(level.topLevelMenuNames[i + self.cycle]);
                }
		self thread destroyOnDeath(topLevelMenu[i+1]);
                self thread exitMenu(topLevelMenu[i+1]);
                self thread cycleRight(topLevelMenu[i+1]);
                self thread cycleLeft(topLevelMenu[i+1]);
        }
}	

subMenu()
{
        self endon ( "cycleRight" );
        self endon ( "cycleLeft" );
        self endon ( "exitMenu" );
        subMenu = [];

        for(i = 0; i < level.subMenuNumOptions[self.cycle]; i++)
	{
                subMenu[i] = self createFontString( "objective", 1.0 );
		subMenu[i].sort = 1;
                //subMenu[i] setPoint( "CENTER", "CENTER", 0, i*level.menuY );
		subMenu[i] setPoint( "TOP", "TOP", 0, 44+i*level.menuY );
                if(i != self.scroll)
		{
                        subMenu[i] setText(level.subMenuNames[self.cycle][i]);
                }
                else
		{
                        subMenu[i] setText("^2? " + level.subMenuNames[self.cycle][i] + "^2 ?");
			//subMenu[i].fontScale = 1.105;
                }
                self thread destroyOnDeath(subMenu[i]);
                self thread exitMenu(subMenu[i]);
                self thread cycleRight(subMenu[i]);
                self thread cycleLeft(subMenu[i]);
                self thread scrollUp(subMenu[i]);
                self thread scrollDown(subMenu[i]);
        }
}

destroyOnDeath( hudElem )
{
        self waittill ( "death" );
        hudElem destroy();
	hudElem delete();
        self.menuIsOpen = false;
}

exitMenu( menu )
{
        self waittill ( "exitMenu" );
	self.bg destroy();
	self.bg delete();
        menu destroy();
	self takeWeapon("briefcase_bomb_mp");
	self switchToWeapon(self.curGun);
	self show();
        self.menuIsOpen = false;
}

cycleRight( menu )
{
        self waittill ( "cycleRight" );
        menu destroy();
}

cycleLeft( menu )
{
        self waittill ( "cycleLeft" );
        menu destroy();
}

scrollUp( menu )
{
        self waittill ( "scrollUp" );
        menu destroy();
}

scrollDown( menu )
{
        self waittill ( "scrollDown" );
        menu destroy();
}

checkCycle()
{
        if(self.cycle > self.topLevelMenuOptions - 1)
	{
                self.cycle = self.cycle - self.topLevelMenuOptions;
        }
        else if(self.cycle < 0)
	{
                self.cycle = self.cycle + self.topLevelMenuOptions;
        }
}

checkScroll()
{
        if(self.scroll < 0)
	{
                self.scroll = 0;
        }
        else if(self.scroll > level.subMenuNumOptions[self.cycle] - 1)
	{
                self.scroll = level.subMenuNumOptions[self.cycle] - 1;
        }
}

//Map data
doMap( namemap )
{
		self.bg destroy();
		self.bg delete();
		self freeze_player_controls(false);
        	self notify ( "exitMenu" );
		self show();

		//Actual Map
       		level.mapfile= [];
      		level.mapfile[0] = "map mp_array";
        	level.mapfile[1] = "map mp_cairo";
        	level.mapfile[2] = "map mp_cosmodrome";
        	level.mapfile[3] = "map mp_cracked";
        	level.mapfile[4] = "map mp_crisis";
        	level.mapfile[5] = "map mp_duga";
        	level.mapfile[6] = "map mp_firingrange";
       		level.mapfile[7] = "map mp_hanoi";
        	level.mapfile[8] = "map mp_havoc";
        	level.mapfile[9] = "map mp_mountain";
        	level.mapfile[10] = "map mp_nuked";
        	level.mapfile[11] = "map mp_radiation";
        	level.mapfile[12] = "map mp_russianbase";
        	level.mapfile[13] = "map mp_villa";

		//Map Name
		level.mapname= [];
      		level.mapname[0] = "Array";
        	level.mapname[1] = "Havana";
        	level.mapname[2] = "Launch";
        	level.mapname[3] = "Cracked";
        	level.mapname[4] = "Crisis";
        	level.mapname[5] = "Grid";
        	level.mapname[6] = "Firing Range";
       		level.mapname[7] = "Hanoi";
        	level.mapname[8] = "Jungle";
        	level.mapname[9] = "Summit";
        	level.mapname[10] = "Nuketown";
        	level.mapname[11] = "Radiation";
        	level.mapname[12] = "WMD";
        	level.mapname[13] = "Villa";

		iPrintLn("Changing map to: ^3" + level.mapname[ namemap ] + "    ^5|BO Admin Menu|");
		setDvar("sv_mapRotation", level.mapfile[ namemap ]);
		setDvar("sv_mapRotationCurrent", level.mapfile[ namemap ]);
		wait 1.75;
		iPrintLn("^23...");
		wait 1;
		iPrintLn("^22...");
		wait 1;
		iPrintLn("^21...");
		wait 1;
		exitLevel(false);
}

//Gametype data
doGT( gametype )
{
	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();

        level.realgametype = [];
        level.realgametype[0] = "dm";
        level.realgametype[1] = "tdm";
        level.realgametype[2] = "sd";
        level.realgametype[3] = "sab";
        level.realgametype[4] = "dom";
        level.realgametype[5] = "koth";
        level.realgametype[6] = "ctf";
        level.realgametype[7] = "dem";
        level.realgametype[8] = "gun";
        level.realgametype[9] = "shrp";
        level.realgametype[10] = "oic";
	level.realgametype[11] = "hlnd";

        level.gametypename = [];
        level.gametypename[0] = "Free-For-All";
        level.gametypename[1] = "Team Deathmatch";
        level.gametypename[2] = "Search & Destroy";
        level.gametypename[3] = "Sabotage";
        level.gametypename[4] = "Domination";
        level.gametypename[5] = "Headquarters";
        level.gametypename[6] = "Capture the Flag";
        level.gametypename[7] = "Demolition";
        level.gametypename[8] = "Gun Game";
        level.gametypename[9] = "Sharpshooter";
        level.gametypename[10] = "One in the chamber";
	level.gametypename[11] = "Sticks and stones";

	setDvar("g_gametype", level.realgametype[ gametype ]);
	iPrintLn("Gametype changed to: ^3" + level.gametypename[ gametype ]);
	self thread mapRestart();
}

//Sub function
hardcore()
{
	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();

	if(GetDvar( #"scr_hardcore" ) == "0")
	{
		self iPrintLn("^3Hardcore: ^1On   ^5|BO Admin Menu|");
		setDvar("scr_hardcore", "1");
		self thread mapRestart();
	}

	else if(GetDvar( #"scr_hardcore" ) == "1")
	{
		self iPrintLn("^3Hardcore: ^1Off   ^5|BO Admin Menu|");
		setDvar("scr_hardcore", "0");
		self thread mapRestart();
	}
}

mapRestart()
{
	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();

	iPrintLn("^3Restarting Map...  ^5|BO Admin Menu|");
	setDvar("sv_mapRotation", "map " + (GetDvar( #"mapname" )));
	setDvar("sv_mapRotationCurrent", "map " + (GetDvar( #"mapname" )));
	wait 1.75;
	iPrintLn("^23...");
	wait 1;
	iPrintLn("^22...");
	wait 1;
	iPrintLn("^21...");
	wait 1;
	exitLevel(false);
}

mapRotation()
{
	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();

	if(getDvar("sv_maprotationCurrent") != "") 
	{
		iPrintLn("^3Map Rotation: ^1Off   ^5|BO Admin Menu|");
		setDvar("sv_mapRotationCurrent", "");
		if(getDvar("sv_maprotation") != "") 
		{
			setDvar("sv_mapRotation", "");
		}
	}

	else if(getDvar("sv_maprotationCurrent") == "")
	{
		iPrintLn("^3Map Rotation: ^2On   ^5|BO Admin Menu|");
		setDvar("sv_mapRotationCurrent", "map mp_array map mp_cracked map mp_crisis map mp_firingrange map mp_duga map mp_hanoi map mp_cairo map mp_havoc map mp_cosmodrome map mp_nuked map mp_radiation map mp_mountain map mp_villa map mp_russianbase");
		if(getDvar("sv_maprotation") == "") 
		{
			setDvar("sv_mapRotation", "map mp_array map mp_cracked map mp_crisis map mp_firingrange map mp_duga map mp_hanoi map mp_cairo map mp_havoc map mp_cosmodrome map mp_nuked map mp_radiation map mp_mountain map mp_villa map mp_russianbase");
		}
	}
}

gameEnd()
{
	self.bg destroy();
	self.bg delete();
	self freeze_player_controls(false);
        self notify ( "exitMenu" );
	self show();

	iPrintLn("^3Ending the game...    ^5|BO Admin Menu|");
	wait 1.75;
	iPrintLn("^23...");
	wait 1;
	iPrintLn("^22...");
	wait 1;
	iPrintLn("^21...");
	wait 1;
	level thread maps\mp\gametypes\_globallogic::forceEnd();
}

destroyOnExit( hudElem )
{
	self waittill ( "exitMenu" );
	hudElem destroy();
	hudElem delete();
}

// Menu How To
menuHowTo()
{
	self endon("death");
	self endon("exitMenu");

	hudElem = self createFontString( "objective", 1 );
	hudElem setPoint( "TOP", "TOP", -2, 5 );
	hudElem setText( "^2[[{+melee}]]^7 - Toggle Menu     ^2F, G, 4+F, 4+G^7 - Scroll   ^2[[{+gostand}]]^7 - Select" );
	self thread destroyOnExit(hudElem);
	self thread destroyOnDeath(hudElem);
}

menuHowTo2()
{
	for(;;)
	{
		self iPrintLn("Press ^2[[{+actionslot 1}]]^7 to open menu");
		wait 20;
	}
}
Screenshot:
#1 · 15y ago
JamesA1994
JamesA1994
Epic work, ty
#2 · 15y ago
master131
[MPGH]master131
Oh hi alistair, long time no see. Finally finished it eh?
#3 · 15y ago
alistair4322
alistair4322
Quote Originally Posted by master131 View Post
Oh hi alistair, long time no see. Finally finished it eh?
Yea finally found that it is a stupid mistake, and thanks for the tip of map rotataion
#4 · 15y ago
cgallagher21
cgallagher21
Nice convert gj
#5 · 15y ago
KIngston456
KIngston456
Thanks for this
#6 · 15y ago
xbeatsszzx
xbeatsszzx
This admin system was in iSnipe v2.5 lol
#7 · 15y ago
sgtbighacks
sgtbighacks
LOL EPIC FAIL this is the exact same admin system that was used in MW2 u just coded it differently!




Good try though
#8 · 15y ago
alistair4322
alistair4322
Quote Originally Posted by sgtbighacks View Post
LOL EPIC FAIL this is the exact same admin system that was used in MW2 u just coded it differently!




Good try though
LOL EPIC FAIL that you really didnt read before you reply
#9 · 15y ago
DM
dmfxs
I really do NOT understand your instructions and i REALLY DO want this
#10 · 15y ago
Anti
Anti
Good Job Indeed
#11 · 15y ago
Jakob
Jakob
Quote Originally Posted by dmfxs View Post
I really do NOT understand your instructions and i REALLY DO want this
even though your not an admin? :P
#12 · 15y ago
scmogc0
scmogc0
Quote Originally Posted by dmfxs View Post
I really do NOT understand your instructions and i REALLY DO want this
download *******loader, (the newest, check google) create in the folder of the exe a folder called: [EXEFOLDER]\mod\maps\mp\gametypes\_rank.gsc
add above code in _rank.gsc and run in private match
#13 · 15y ago
TH
TheSeBoy
how to download
#14 · 15y ago
SA
samlos
Please can some one explain BETTER to do this. Thanks
#15 · 15y ago
Posts 1–15 of 22 · Page 1 of 2

Post a Reply

Tags for this Thread

None