mirror of
https://github.com/bl4d3rvnner7/sourcescodes.git
synced 2025-12-16 16:34:05 +00:00
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
770 lines
22 KiB
Text
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();
|
|
}
|
|
}
|
|
|