sourcescodes/BossamV6.gsc
bl4d3rvnner7 4a7aa81721
🧿 BOSSAM V6 MOD MENU [BO2]
Old Black Ops 2 Mod Menu. Source code for coders to see how a menu was made in earlier call of duty's

To use this "Mod Menu" if you have a modded console such as PS3, XBOX or Desktop PC, you need to download GSC studio. It's deprecated but archive.org have a backup

GSC Studio : https://archive.org/download/setup-gscstudio-160215_202109/setup-gscstudio-160215.exe

You can find on Youtube tutorial about injecting a gsc file
2023-06-18 16:14:13 +02:00

770 lines
22 KiB
Text

#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_hud_message;
init()
{
PrecacheShader("lui_loader_no_offset");
PrecacheShader("compass_emp");
PrecacheShader("black");
level thread onPlayerConnect();
level.clientid = 0;
level.result = 0;
}
onPlayerConnect()
{
for(;;)
{
level waittill("connected", player);
player.MenuInit = false;
if(player isHost())
player.status = "Boss";
else
player.status = "Unverified";
if(player isVerified())
player giveMenu();
player thread onPlayerSpawned();
player.clientid = level.clientid;
level.clientid++;
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
isFirstSpawn = true;
self freezecontrols(false);
for(;;)
{
self waittill("spawned_player");
if(isFirstSpawn)
{
if (self isHost())
{
thread overflowfix();
}
isFirstSpawn = false;
}
if(self isHost())
{
self iprintln("Press [{+stance}] & [{+actionslot 3}] Bind Text Goes Here");
self iprintln("Press [{+stance}] & [{+actionslot 3}] Bind Text Goes Here");
}
if(self isVerified())
{
self thread welcomeMessage();
self iprintln("Welcome To Bossam V6 Menu Base");
}
}
}
welcomeMessage()
{
notifyData = spawnstruct();
notifyData.titleText = "^5Welcome ^2" + self.name + "^5 To Bossam V6 Menu Base";
notifyData.notifyText = "^5Hope You Enjoy!";
notifyData.iconName = "lui_loader_no_offset";
notifyData.glowColor = (0, 0, 1);
notifyData.duration = 12;
notifyData.font = "hudbig";
notifyData.hideWhenInMenu = false;
self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
}
overflowfix()
{
level endon("game_ended");
level.test = createServerFontString("default",1.5);
level.test setText("xTUL");
level.test.alpha = 0;
for(;;)
{
level waittill("textset");
if(level.result >= 50)
{
level.test ClearAllTextAfterHudElem();
level.result = 0;
foreach(player in level.players)
{
if(player.menu.open == true)
{
player recreateText();
}
}
}
wait 0.01;
}
}
recreateText()
{
self endon("disconnect");
self endon("death");
input = self.CurMenu;
title = self.CurTitle;
self thread submenu(input, title);
}
giveMenu()
{
if (self isVerified())
{
if (!self.MenuInit)
{
self.MenuInit = 1;
self thread MenuInit();
}
}
}
isVerified()
{
if (self.status == "Boss" || self.status == "Verified" || self.status == "VIP" || self.status == "Admin" || self.status == "Co-Host")
{
return true;
}
else
{
return false;
}
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
level.result += 1;
hud setText(text);
level notify("textset");
return hud;
}
drawShader(shader, x, y, width, height, color, alpha, sort)
{
hud = newClientHudElem(self);
hud.elemtype = "icon";
hud.color = color;
hud.alpha = alpha;
hud.sort = sort;
hud.children = [];
hud setParent(level.uiParent);
hud setShader(shader, width, height);
hud.x = x;
hud.y = y;
return hud;
}
changeVerificationMenu(player, verlevel)
{
if (player.status != verlevel && !player isHost())
{
player notify("statusChanged");
player.status = verlevel;
wait 0.05;
player giveMenu();
if(player.status == "Unverified")
{
player thread destroyMenu(player);
}
if(player isVerified())
{
self iprintln("^7 " + getPlayerName(player) + " Is Now " + verificationToColor(verlevel));
player iPrintln("^3Your Are Now " + verificationToColor(verlevel));
player iprintln("Press [{+speed_throw}]+[{+melee}] To Open Mod Menu");
}
}
else
{
if (player isHost())
self iPrintln("You Cannot Change The Access Level of The " + verificationToColor(player.status));
else
self iPrintln("Access Level For " + getPlayerName(player) + " Is Already Set To " + verificationToColor(verlevel));
}
}
changeVerification(player, verlevel)
{
player notify("statusChanged");
player.status = verlevel;
wait 0.05;
player giveMenu();
if(player.status == "Unverified")
{
player thread destroyMenu(player);
player iPrintln("You Are Now Unverified!");
}
if(player isVerified())
{
player iPrintln("^3You Are Now " + verificationToColor(verlevel));
player iprintln("Press [{+speed_throw}]+[{+melee}] To Open");
}
}
getPlayerName(player)
{
playerName = getSubStr(player.name, 0, player.name.size);
for(i=0; i < playerName.size; i++)
{
if(playerName[i] == "]")
break;
}
if(playerName.size != i)
playerName = getSubStr(playerName, i + 1, playerName.size);
return playerName;
}
verificationToNum(status)
{
if (status == "Boss") //HOST
return 5;
if (status == "Co-Host") //
return 4;
if (status == "Admin")
return 3;
if (status == "VIP")
return 2;
if (status == "Verified")
return 1;
else
return 0;
}
verificationToColor(status)
{
if (status == "Boss")
return "^1Boss";
if (status == "Co-Host")
return "^4Co-Host";
if (status == "Admin")
return "^6Admin";
if (status == "VIP")
return "^3VIP";
if (status == "Verified")
return "^2Verified";
else
return "^5Unverified";
}
Iif(bool, rTrue, rFalse)
{
if(bool)
return rTrue;
else
return rFalse;
}
booleanReturnVal(bool, returnIfFalse, returnIfTrue)
{
if (bool)
return returnIfTrue;
else
return returnIfFalse;
}
booleanOpposite(bool)
{
if(!isDefined(bool))
return true;
if (bool)
return false;
else
return true;
}
CreateMenu()
{
self add_menu("Main Menu", undefined, "Unverified");
self add_option("Main Menu", "Self Menu", ::submenu, "MainMods", "Self Menu");
self add_option("Main Menu", "Lobby Menu", ::submenu, "LobbyMenu", "Lobby Menu");
self add_option("Main Menu", "Fun Menu", ::submenu, "FunMenu", "Fun Menu");
self add_option("Main Menu", "Players Menu", ::submenu, "PlayersMenu", "Players Menu");
self add_menu("MainMods", "Main Menu", "VIP");
self add_option("MainMods", "God Mode",::GodMode);
self add_option("MainMods", "Infinite Ammo");
self add_option("MainMods", "Change Class");
self add_option("MainMods", "All Perks");
self add_option("MainMods", "Visions");
self add_option("MainMods", "Toggle Fov");
self add_option("MainMods", "MultiJump");
self add_option("MainMods", "Invisible",::Invisible);
self add_option("MainMods", "Left Side Gun");
self add_option("MainMods", "Jet Pack");
self add_option("MainMods", "Dead Clone");
self add_option("MainMods", "Clone");
self add_option("MainMods", "Suicide");
self add_option("MainMods", "Hulk Mode");
self add_option("MainMods", "Speed x2");
self add_option("MainMods", "Drop Gun");
self add_option("MainMods", "Rapid Fire");
self add_option("MainMods", "Advanced Fly Mode");
self add_option("MainMods", "Theme Menu", ::submenu, "Theme", "Theme Menu");
self add_menu("Theme", "MainMods", "VIP");
self add_option("Theme", "Red Theme");
self add_option("Theme", "Blue Theme");
self add_option("Theme", "Green Theme");
self add_option("Theme", "Yellow Theme");
self add_option("Theme", "Purple Theme");
self add_option("Theme", "Cyan Theme");
self add_option("Theme", "Aqua Theme");
self add_option("Theme", "Flashing Theme");
self add_menu("LobbyMenu", "Main Menu", "BOSS");
self add_option("LobbyMenu", "Hear Everyone");
self add_option("LobbyMenu", "Anti Quit");
self add_option("LobbyMenu", "Big Names");
self add_option("LobbyMenu", "Pause Game");
self add_option("LobbyMenu", "Low Gravity");
self add_option("LobbyMenu", "Super Jump");
self add_option("LobbyMenu", "Super Speed");
self add_option("LobbyMenu", "Timescale");
self add_option("LobbyMenu", "Force Host",::ForceHost);
self add_option("LobbyMenu", "Spawn A Bot");
self add_option("LobbyMenu", "Restart Game");
self add_option("LobbyMenu", "Unlimited Game");
self add_option("LobbyMenu", "How To Use Menu");
self add_option("LobbyMenu", "Long KillCam Time");
self add_option("LobbyMenu", "Disco Lights");
self add_option("LobbyMenu", "All Ghost Camo");
self add_option("LobbyMenu", "All Diamond Camo");
self add_option("LobbyMenu", "Show FPS");
self add_option("LobbyMenu", "MiniMaps");
self add_menu("FunMenu", "Main Menu", "Admin");
self add_option("FunMenu", "Roll Away Dog");
self add_option("FunMenu", "Disco Dancer");
self add_option("FunMenu", "Gold Shoes");
self add_option("FunMenu", "Red Shoes");
self add_option("FunMenu", "Chrome Shoes");
self add_option("FunMenu", "Shield Shoes");
self add_option("FunMenu", "Adventure Time");
self add_option("FunMenu", "Flying Bomber");
self add_option("FunMenu", "Earthquake Mode");
self add_option("FunMenu", "MW3 IMS");
self add_option("FunMenu", "Plant Bomb (^1S&D^7)");
self add_option("FunMenu", "Defuse Bomb (^1S&D^7)");
self add_option("FunMenu", "Rotate Rocket");
self add_option("FunMenu", "FireBalls");
self add_option("FunMenu", "Dogs Wave");
self add_option("FunMenu", "Debug Wave");
self add_option("FunMenu", "Turret Wave");
self add_option("FunMenu", "Red CP Wave");
self add_option("FunMenu", "Rotor Head");
self add_menu("PlayersMenu", "Main Menu", "Co-Host");
for (i = 0;i < level.players.size;i++)
{ self add_menu("pOpt " + i, "PlayersMenu", "Co-Host"); }
}
updatePlayersMenu()
{
self.menu.menucount["PlayersMenu"] = 0;
for (i = 0;i < level.players.size;i++)
{
player = level.players[i];
playerName = getPlayerName(player);
playersizefixed = level.players.size - 1;
if(self.menu.curs["PlayersMenu"] > playersizefixed)
{
self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
self.menu.curs["PlayersMenu"] = playersizefixed;
}
self add_option("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName, ::submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);
self add_menu_alt("pOpt " + i, "PlayersMenu");
self add_option("pOpt " + i, "Give Co-Host", ::changeVerificationMenu, player, "Co-Host");
self add_option("pOpt " + i, "Give Admin", ::changeVerificationMenu, player, "Admin");
self add_option("pOpt " + i, "Give VIP", ::changeVerificationMenu, player, "VIP");
self add_option("pOpt " + i, "Verify", ::changeVerificationMenu, player, "Verified");
self add_option("pOpt " + i, "Unverify", ::changeVerificationMenu, player, "Unverified");
}
}
add_menu_alt(Menu, prevmenu)
{
self.menu.getmenu[Menu] = Menu;
self.menu.menucount[Menu] = 0;
self.menu.previousmenu[Menu] = prevmenu;
}
add_menu(Menu, prevmenu, status)
{
self.menu.status[Menu] = status;
self.menu.getmenu[Menu] = Menu;
self.menu.scrollerpos[Menu] = 0;
self.menu.curs[Menu] = 0;
self.menu.menucount[Menu] = 0;
self.menu.previousmenu[Menu] = prevmenu;
}
add_option(Menu, Text, Func, arg1, arg2)
{
Menu = self.menu.getmenu[Menu];
Num = self.menu.menucount[Menu];
self.menu.menuopt[Menu][Num] = Text;
self.menu.menufunc[Menu][Num] = Func;
self.menu.menuinput[Menu][Num] = arg1;
self.menu.menuinput1[Menu][Num] = arg2;
self.menu.menucount[Menu] += 1;
}
updateScrollbar()
{
self.menu.scroller MoveOverTime(0.10);
self.menu.scroller.y = 68 + (self.menu.curs[self.menu.currentmenu] * 19.20);
self.menu.scroller.archived = false;
}
openMenu()
{
self freezeControls(false);
self enableInvulnerability();
self setClientUiVisibilityFlag("hud_visible", 0);
self StoreText("Main Menu", "Main Menu");
self.menu.backgroundinfo FadeOverTime(0.30);
self.menu.backgroundinfo.alpha = 0.80;
self.menu.background FadeOverTime(0.30);
self.menu.background.alpha = 0.55;
self.menu.background.archived = false;
self.menu.background1 FadeOverTime(0.30);
self.menu.background1.alpha = 0.80;
self.menu.background1.archived = false;
self.swagtext FadeOverTime(0.3);
self.swagtext.alpha = 0.90;
self.menu.line MoveOverTime(0.30);
self.menu.line.y = -50;
self.menu.line.archived = false;
self.menu.line2 MoveOverTime(0.30);
self.menu.line2.y = -50;
self.menu.line2.archived = false;
self updateScrollbar();
self.menu.open = true;
}
closeMenu()
{
self.menu.options FadeOverTime(0.3);
self.menu.options.alpha = 0;
self setClientUiVisibilityFlag("hud_visible", 1);
self.statuss FadeOverTime(0.3);
self.statuss.alpha = 0;
self.tez FadeOverTime(0.3);
self.tez.alpha = 0;
self.menu.background FadeOverTime(0.3);
self.menu.background.alpha = 0;
self.menu.background1 FadeOverTime(0.3);
self.menu.background1.alpha = 0;
self.swagtext FadeOverTime(0.30);
self.swagtext.alpha = 0;
self.menu.title FadeOverTime(0.30);
self.menu.title.alpha = 0;
self.menu.line MoveOverTime(0.30);
self.menu.line.y = -550;
self.menu.line2 MoveOverTime(0.30);
self.menu.line2.y = -550;
self.menu.backgroundinfo FadeOverTime(0.3);
self.menu.backgroundinfo.alpha = 0;
self.menu.scroller MoveOverTime(0.30);
self.menu.scroller.y = -510;
self.menu.open = false;
}
destroyMenu(player)
{
player.MenuInit = false;
closeMenu();
wait 0.3;
player.menu.options destroy();
player.menu.background1 destroy();
player.menu.scroller destroy();
player.menu.scroller1 destroy();
player.infos destroy();
player.menu.line destroy();
player.menu.line2 destroy();
player.menu.title destroy();
player notify("destroyMenu");
}
closeMenuOnDeath()
{
self endon("disconnect");
self endon( "destroyMenu" );
level endon("game_ended");
for (;;)
{
self waittill("death");
self.menu.closeondeath = true;
self submenu("Main Menu", "Main Menu");
closeMenu();
self.menu.closeondeath = false;
}
}
scaleLol()
{
self endon("stopScale");
for(;;)
{
self.tez.glowColor = (0.1, 0, 0);
wait .05;
self.tez.glowColor = (0.2, 0, 0);
wait .05;
self.tez.glowColor = (0.3, 0, 0);
wait .05;
self.tez.glowColor = (0.4, 0, 0);
wait .05;
self.tez.glowColor = (0.5, 0, 0);
wait .05;
self.tez.glowColor = (0.6, 0, 0);
wait .05;
self.tez.glowColor = (0.7, 0, 0);
wait .05;
self.tez.glowColor = (0.8, 0, 0);
wait .05;
self.tez.glowColor = (0.9, 0, 0);
wait .05;
self.tez.glowColor = (1, 0, 0);
wait .05;
self.tez.glowColor = (0.9, 0, 0);
wait 1.5;
self.tez.glowColor = (0.8, 0, 0);
wait .05;
self.tez.glowColor = (0.7, 0, 0);
wait .05;
self.tez.glowColor = (0.6, 0, 0);
wait .05;
self.tez.glowColor = (0.5, 0, 0);
wait .05;
self.tez.glowColor = (0.4, 0, 0);
wait .05;
self.tez.glowColor = (0.3, 0, 0);
wait .05;
self.tez.glowColor = (0.2, 0, 0);
wait .05;
self.tez.glowColor = (0.1, 0, 0);
wait .05;
self.tez.glowColor = (0, 0, 0);
wait .05;
}
}
StoreShaders()
{
self.menu.background = self drawShader("Black", 235, -100, 200, 1000, (0.04, 0.66, 0.89), 0, 0);
self.menu.background1 = self drawShader("compass_emp", 235, -100, 200, 1000, (0.04, 0.66, 0.89), 0, 0);
self.menu.scroller = self drawShader("white", 236, -100, 200, 17, (0.04, 0.66, 0.89), 255, 1);
self.menu.line = self drawShader("white", 336, -1000, 2, 500, (0.04, 0.66, 0.89), 255, 3);
self.menu.line2 = self drawShader("white", 135, -1000, 2, 500, (0.04, 0.66, 0.89), 255, 2);
self.menu.line3 = self drawShader("white", 235, -100, 200, 2, (0.04, 0.66, 0.89), 255, 4);
}
StoreText(menu, title)
{
self.menu.currentmenu = menu;
string = "";
self.menu.currentmenu = input;
self.menu.title destroy();
self.menu.title = drawText(title, "default", 1.6, 235, 35, (1, 1, 1), 0, (0, 0, 0), 1, 3);
self.menu.title FadeOverTime(0.3);
self.menu.title.alpha = 1;
self.menu.title.archived = false;
self notify ("stopScale");
self thread scaleLol();
self.tez destroy();
self.tez = self createFontString( "default", 2.5);
self.tez setPoint( "CENTER", "TOP", 235, 5);
self.tez setText("Bossam V6 Menu Base");
self.tez FadeOverTime(0.3);
self.tez.alpha = 1;
self.tez.foreground = true;
self.tez.archived = false;
self.tez.glowAlpha = 0.6;
self.tez.glowColor = (1, 0, 0);
for(i = 0; i < self.menu.menuopt[menu].size; i++)
{ string +=self.menu.menuopt[menu][i] + "\n"; }
self.statuss destroy();
self.statuss = self createFontString( "default", 1.3);
self.statuss setPoint( "CENTER", "TOP", 235, 23);
self.statuss setText("iTahhr <3");
self.statuss FadeOverTime(0.3);
self.statuss.alpha = 1;
self.statuss.foreground = true;
self.statuss.archived = false;
self.statuss.glowAlpha = 1;
self.statuss.glowColor = (0, 0, 0);
self.menu.options destroy();
self.menu.options = drawText(string, "objective", 1.6, 265, 68, (1, 1, 1), 0, (0, 0, 0), 0, 4);
self.menu.options FadeOverTime(0.3);
self.menu.options.archived = false;
self.menu.options.alpha = 1;
self.menu.options setPoint( "LEFT", "LEFT", 503, -128 ); //x = -L/+R, y = -U/+D
}
MenuInit()
{
self endon("disconnect");
self endon( "destroyMenu" );
level endon("game_ended");
self.menu = spawnstruct();
self.toggles = spawnstruct();
self.menu.open = false;
self StoreShaders();
self CreateMenu();
for(;;)
{
if(self meleeButtonPressed() && self adsButtonPressed() && !self.menu.open) // Open.
{
openMenu();
}
if(self.menu.open)
{
if(self useButtonPressed())
{
if(isDefined(self.menu.previousmenu[self.menu.currentmenu]))
{
self submenu(self.menu.previousmenu[self.menu.currentmenu]);
}
else
{
closeMenu();
}
wait 0.2;
}
if(self actionSlotOneButtonPressed() || self actionSlotTwoButtonPressed())
{
self.menu.curs[self.menu.currentmenu] += (Iif(self actionSlotTwoButtonPressed(), 1, -1));
self.menu.curs[self.menu.currentmenu] = (Iif(self.menu.curs[self.menu.currentmenu] < 0, self.menu.menuopt[self.menu.currentmenu].size-1, Iif(self.menu.curs[self.menu.currentmenu] > self.menu.menuopt[self.menu.currentmenu].size-1, 0, self.menu.curs[self.menu.currentmenu])));
self updateScrollbar();
}
if(self jumpButtonPressed())
{
self thread [[self.menu.menufunc[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]]]](self.menu.menuinput[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]], self.menu.menuinput1[self.menu.currentmenu][self.menu.curs[self.menu.currentmenu]]);
wait 0.2;
}
}
wait 0.05;
}
}
submenu(input, title)
{
if (verificationToNum(self.status) >= verificationToNum(self.menu.status[input]))
{
self.menu.options destroy();
if (input == "Main Menu")
self thread StoreText(input, "Main Menu");
else if (input == "PlayersMenu")
{
self updatePlayersMenu();
self thread StoreText(input, "Players");
}
else
self thread StoreText(input, title);
self.CurMenu = input;
self.CurTitle = title;
self.menu.scrollerpos[self.CurMenu] = self.menu.curs[self.CurMenu];
self.menu.curs[input] = self.menu.scrollerpos[input];
level.result += 1;
level notify("textset");
if (!self.menu.closeondeath)
{
self updateScrollbar();
}
}
else
{
player iPrintln("^5Only Players With ^4" + verificationToColor(self.menu.status[input]) + " ^5Can Access This Menu!");
}
}
ForceHost()
{
if(self.forceHost==1)
{
setdvar("party_connectToOthers","0");
setdvar("partyMigrate_disabled","1");
setdvar("party_mergingEnabled","0");
setdvar("allowAllNAT","1");
self iprintln("Force Host ^2ON");
self.forceHost=0;
}
else
{
setdvar("party_connectToOthers","1");
setdvar("partyMigrate_disabled","0");
setdvar("party_mergingEnabled","1");
setdvar("allowAllNAT","0");
self iprintln("Force Host ^1OFF");
self.forceHost=1;
}
}
Invisible()
{
self.invisible = booleanOpposite(self.invisible);
self iPrintln(booleanReturnVal(self.invisible, "Invisible ^1OFF", "Invisible ^2ON"));
if(self.invisible)self Hide();
else self Show();
}
GodMode()
{
if(self.GM==0)
{
self.GM=1;
self iprintln("God Mode ^2ON");
self EnableInvulnerability();
}
else
{
self.GM=0;
self iprintln("God Mode ^1OFF");
self DisableInvulnerability();
}
}