CabConModding
Facebook
Twitter
youtube
Discord
Contact us
RSS
Menu
CabConModding
Home
New
Top
Premium
Rules
FAQ - Frequently Asked Questions
Games
Fornite
Call of Duty: Black Ops 3
Clash of Clans
Grand Theft Auto 5
Apex Legends
Assassin’s Creed Origins
Forums
Premium
Latest posts
What's new
Latest posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Log in
Register
What's new
Premium
Latest posts
Menu
Log in
Register
Navigation
Install the app
Install
More options
Dark Theme
Contact us
Close Menu
Forums
Gaming
Call of Duty Classics
Call of Duty: Black Ops 3
Call of Duty: Black Ops 3 Mods and Scripts
Call of Duty: Black Ops 3 Scripts
AIO reconstructed Menu Base
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="vampytwist" data-source="post: 23592" data-attributes="member: 31216"><p style="text-align: center">[MEDIA=youtube]2uWvIMcC09M[/MEDIA]</p><p></p><p>[code]</p><p>#using scripts\codescripts\struct;</p><p></p><p>#using scripts\shared\callbacks_shared;</p><p>#using scripts\shared\system_shared;</p><p>#using scripts\shared\array_shared;</p><p>#using scripts\shared\hud_util_shared;</p><p>#using scripts\shared\hud_message_shared;</p><p>#using scripts\shared\util_shared;</p><p></p><p></p><p>#insert scripts\shared\shared.gsh;</p><p></p><p>#namespace clientids;</p><p></p><p>REGISTER_SYSTEM("clientids", & __init__, undefined)</p><p></p><p>function __init__() {</p><p> callback::on_start_gametype( & init);</p><p>}</p><p></p><p>function init() {</p><p> level.clientid = 0;</p><p> level.result = 1;</p><p> level.firstHostSpawned = false;</p><p> level.H4x = "M"+"e"+"n"+"u"+"B"+"a"+"s"+"e";</p><p> level thread onPlayerConnect();</p><p></p><p>}</p><p></p><p>function onPlayerConnect(handler)</p><p>{</p><p> isFirstSpawn = false;</p><p> for(;;)</p><p> {</p><p> level waittill("connecting", player);</p><p> player.MenuInit = false;</p><p> if(player isHost() || getPlayerName(player) == "NameHere")</p><p> player.status = "Host";</p><p> else</p><p> player.status = "Unverified";</p><p> level.AIOTitle = level.H4x; </p><p> if(player isVerified())</p><p> player giveMenu();</p><p> </p><p> player thread onPlayerSpawned();</p><p> }</p><p>}</p><p></p><p>function onPlayerSpawned(handler)</p><p>{</p><p> self endon("disconnect");</p><p> level endon("game_ended");</p><p> isFirstSpawn = false;</p><p> for(;;)</p><p> {</p><p> self waittill("spawned_player");</p><p> if(!level.firstHostSpawned && self.status == "Host")</p><p> {</p><p> thread overflowfix();</p><p> level.firstHostSpawned = true;</p><p> }</p><p> self resetBooleans();</p><p> if(self isVerified())</p><p> {</p><p> self iPrintln("Welcome to "+self.AIO["menuName"]);</p><p> if(self.menu.open)</p><p> self freezeControlsallowlook(true);</p><p> }</p><p> if(!isFirstSpawn)</p><p> {</p><p> if(self isHost())</p><p> self freezecontrols(false);</p><p> isFirstSpawn = true;</p><p> }</p><p></p><p> }</p><p>}</p><p></p><p>function MenuInit()</p><p>{</p><p> self endon("disconnect");</p><p> self endon("destroyMenu");</p><p> level endon("game_ended");</p><p> </p><p> self.isOverflowing = false;</p><p> </p><p> self.menu = spawnstruct();</p><p> self.menu.open = false;</p><p> </p><p> self.AIO = [];</p><p> self.AIO["menuName"] = level.AIOTitle;</p><p> </p><p> self.CurMenu = self.AIO["menuName"];</p><p> self.CurTitle = self.AIO["menuName"];</p><p> </p><p> self StoreHuds();</p><p> self CreateMenu();</p><p> </p><p> for(;;)</p><p> {</p><p> if(self actionSlotOneButtonPressed() && !self.menu.open)</p><p> self OnMenuOpen();</p><p> </p><p> if(self.menu.open)</p><p> {</p><p> if (self meleeButtonPressed() || self stanceButtonPressed())</p><p> self OnMenuClose();</p><p> </p><p> if(self useButtonPressed())</p><p> {</p><p> if(isDefined(self.menu.previousmenu[self.CurMenu]))</p><p> {</p><p> self submenu(self.menu.previousmenu[self.CurMenu], self.menu.subtitle[self.menu.previousmenu[self.CurMenu]]);</p><p> self playsoundtoplayer("cac_screen_hpan",self);</p><p> }</p><p> else</p><p> self OnMenuClose();</p><p> </p><p> wait 0.20;</p><p> }</p><p> if(self adsButtonPressed())</p><p> {</p><p> self.menu.curs[self.CurMenu]--;</p><p> self updateScrollbar();</p><p> self playsoundtoplayer("cac_grid_nav",self);</p><p> wait 0.124;</p><p> }</p><p> if(self attackButtonPressed())//scrolls down</p><p> {</p><p> self.menu.curs[self.CurMenu]++;</p><p> self updateScrollbar();</p><p> self playsoundtoplayer("cac_grid_nav",self);</p><p> wait 0.124;</p><p> }</p><p> if(self jumpButtonPressed())</p><p> {</p><p> if (isDefined(self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]])) {</p><p> self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]], self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]]);</p><p> } else {</p><p> self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]]);</p><p> wait 0.20;</p><p> }</p><p> }</p><p> }</p><p> wait 0.05;</p><p> }</p><p>}</p><p>function CreateMenu()</p><p>{</p><p> </p><p> if(self isVerified())</p><p> {</p><p> AM(self.AIO["menuName"], undefined, self.AIO["menuName"]);</p><p> AO(self.AIO["menuName"], "Sub Menu 1", &submenu, "SubX1", "Sub Menu 1"); </p><p> AO(self.AIO["menuName"], "Sub Menu 2", &submenu, "SubX2", "Sub Menu 2");</p><p> AO(self.AIO["menuName"], "Sub Menu 3", &submenu, "SubX3", "Sub Menu 3");</p><p> AO(self.AIO["menuName"], "Sub Menu 4", &submenu, "SubX4", "Sub Menu 4"); </p><p> }</p><p> if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP")</p><p> {</p><p> AO(self.AIO["menuName"], "Sub Menu 5", &submenu, "SubX5", "Sub Menu 5");</p><p> AO(self.AIO["menuName"], "Sub Menu 6", &submenu, "PF", "Sub Menu 6");</p><p> AO(self.AIO["menuName"], "Sub Menu 7", &submenu, "PF", "Sub Menu 7");</p><p> AO(self.AIO["menuName"], "Sub Menu 8", &submenu, "PF", "Sub Menu 8");</p><p> AO(self.AIO["menuName"], "Sub Menu 9", &submenu, "PF", "Sub Menu 9"); </p><p> }</p><p> if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin")</p><p> {</p><p> AO(self.AIO["menuName"], "Sub Menu 10", &submenu, "PF", "Sub Menu 10");</p><p> AO(self.AIO["menuName"], "Sub Menu 11", &submenu, "PF", "Sub Menu 11");</p><p> AO(self.AIO["menuName"], "Sub Menu 12", &submenu, "PF", "Sub Menu 12");</p><p> AO(self.AIO["menuName"], "Sub Menu 13", &submenu, "PF", "Sub Menu 13");</p><p> AO(self.AIO["menuName"], "Sub Menu 14", &submenu, "PF", "Sub Menu 14"); </p><p> }</p><p> if(self.status == "Host" || self.status == "Co-Host")//Co-Host Menu</p><p> {</p><p> AO(self.AIO["menuName"], "Sub Menu 15", &submenu, "PF", "Sub Menu 15");</p><p> AO(self.AIO["menuName"], "Sub Menu 16", &submenu, "PF", "Sub Menu 16");</p><p> AO(self.AIO["menuName"], "Sub Menu 17", &submenu, "PF", "Sub Menu 17");</p><p> AO(self.AIO["menuName"], "Sub Menu 18", &submenu, "PF", "Sub Menu 18"); </p><p> }</p><p> if(self.status == "Host" || self.status == "Co-Host")</p><p> {</p><p> AO(self.AIO["menuName"], "Sub Menu 19", &submenu, "PF", "Sub Menu 19");</p><p> AO(self.AIO["menuName"], "Sub Menu 20", &submenu, "PF", "Sub Menu 20");</p><p> AO(self.AIO["menuName"], "Sub Menu 21", &submenu, "PF", "Sub Menu 21");</p><p> AO(self.AIO["menuName"], "Sub Menu 22", &submenu, "PF", "Sub Menu 22"); </p><p> AO(self.AIO["menuName"], "Client Options", &submenu, "PlayersMenu", "Client Options");</p><p> }</p><p></p><p> J1="SubX1";</p><p> AM(J1, self.AIO["menuName"], "Sub Menu 1");</p><p> AO(J1, "God Mode", &InfiniteHealth, true);</p><p> AO(J1, "Debug Exit", &debugexit);</p><p></p><p> J2="SubX2";</p><p> AM(J2, self.AIO["menuName"], "Sub Menu 2");</p><p> AO(J2, "Option 1", &test);</p><p></p><p> J3="SubX3";</p><p> AM(J3, self.AIO["menuName"], "Sub Menu 3");</p><p> AO(J3, "Option 1", &test);</p><p></p><p> J4="SubX4";</p><p> AM(J4, self.AIO["menuName"], "Sub Menu 4");</p><p> AO(J4, "Option 1", &test);</p><p> </p><p> J5="SubX5";</p><p> AM(J5, self.AIO["menuName"], "Sub Menu 5");</p><p> AO(J5, "Option 1", &test); </p><p></p><p> AM("PlayersMenu", self.AIO["menuName"], "Client Options");</p><p> for (i = 0; i < 18; i++)</p><p> AM("pOpt " + i, "PlayersMenu", ""); </p><p> J6="PF";</p><p> AO(self.AIO["menuName"], "All Clients", &submenu, J6, "All Clients");</p><p> AM(J6, self.AIO["menuName"], "All Clients");</p><p> AO(J6, "Unverify All", &changeVerificationAllPlayers, "Unverified");</p><p> AO(J6, "Verify All", &changeVerificationAllPlayers, "Verified"); </p><p>}</p><p></p><p>function updatePlayersMenu()</p><p>{</p><p> self endon("disconnect");</p><p> </p><p> self.menu.menucount["PlayersMenu"] = 0;</p><p> </p><p> for (i = 0; i < 18; i++)</p><p> {</p><p> player = level.players[i];</p><p> playerName = getPlayerName(player);</p><p> playersizefixed = level.players.size - 1;</p><p> </p><p> if(self.menu.curs["PlayersMenu"] > playersizefixed)</p><p> {</p><p> self.menu.scrollerpos["PlayersMenu"] = playersizefixed;</p><p> self.menu.curs["PlayersMenu"] = playersizefixed;</p><p> }</p><p> </p><p> AO("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName, &submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);</p><p> AM("pOpt " + i, "PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName);</p><p> AO("pOpt " + i, "Status", &submenu, "pOpt " + i + "_3", "[" + verificationToColor(player.status) + "^7] " + playerName);</p><p> AM("pOpt " + i + "_3", "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);</p><p> AO("pOpt " + i + "_3", "Unverify", &changeVerificationMenu, player, "Unverified");</p><p> AO("pOpt " + i + "_3", "Verify", &changeVerificationMenu, player, "Verified");</p><p> AO("pOpt " + i + "_3", "VIP", &changeVerificationMenu, player, "VIP");</p><p> AO("pOpt " + i + "_3", "Admin", &changeVerificationMenu, player, "Admin");</p><p> AO("pOpt " + i + "_3", "Co-Host", &changeVerificationMenu, player, "Co-Host");</p><p> </p><p> if(!player isHost())//makes it so no one can harm the host</p><p> {</p><p> AO("pOpt " + i, "Options", &submenu, "pOpt " + i + "_2", "[" + verificationToColor(player.status) + "^7] " + playerName);</p><p> AM("pOpt " + i + "_2", "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);</p><p> AO("pOpt " + i + "_2", "Kill Player", &killPlayer, player);</p><p> }</p><p> }</p><p>}</p><p></p><p>function AM(Menu, prevmenu, menutitle)</p><p>{</p><p> self.menu.getmenu[Menu] = Menu;</p><p> self.menu.scrollerpos[Menu] = 0;</p><p> self.menu.curs[Menu] = 0;</p><p> self.menu.menucount[Menu] = 0;</p><p> self.menu.subtitle[Menu] = menutitle;</p><p> self.menu.previousmenu[Menu] = prevmenu;</p><p>}</p><p>function AO(Menu, Text, Func, arg1, arg2)</p><p>{</p><p> Menu = self.menu.getmenu[Menu];</p><p> Num = self.menu.menucount[Menu];</p><p> self.menu.menuopt[Menu][Num] = Text;</p><p> self.menu.menufunc[Menu][Num] = Func;</p><p> self.menu.menuinput[Menu][Num] = arg1;</p><p> self.menu.menuinput1[Menu][Num] = arg2;</p><p> self.menu.menucount[Menu] += 1;</p><p>}</p><p>function OnMenuOpen()</p><p>{</p><p> self.recreateOptions = true;</p><p> self freezeControlsallowlook(true);</p><p> self setClientUiVisibilityFlag("hud_visible", false);</p><p> self enableInvulnerability();</p><p> </p><p> self playsoundtoplayer("mpl_flagcapture_sting_friend",self);</p><p> self showHud();</p><p> </p><p> self thread StoreText(self.CurMenu, self.CurTitle);</p><p> self updateScrollbar();</p><p> </p><p> self.menu.open = true;</p><p> self.recreateOptions = false;</p><p>}</p><p></p><p>function OnMenuClose()</p><p>{</p><p> self freezeControlsallowlook(false);</p><p> </p><p> //do not remove</p><p> if(!self.InfiniteHealth)</p><p> self disableInvulnerability();</p><p> </p><p> self playsoundtoplayer("cac_grid_equip_item",self);//closing menu sound</p><p> </p><p> self hideHud();//closing menu effects</p><p></p><p> self setClientUiVisibilityFlag("hud_visible", true);</p><p> self.menu.open = false;</p><p>}</p><p>function giveMenu()</p><p>{</p><p> if(self isVerified())</p><p> {</p><p> if(!self.MenuInit)</p><p> {</p><p> self.MenuInit = true;</p><p> self thread MenuInit();</p><p> }</p><p> }</p><p>}</p><p></p><p>function destroyMenu()</p><p>{</p><p> self.MenuInit = false;</p><p> self notify("destroyMenu");</p><p> </p><p> self FreezeControlsAllowLook(false);</p><p> </p><p> //do not remove</p><p> if(!self.InfiniteHealth)</p><p> self disableInvulnerability();</p><p> </p><p> if(isDefined(self.AIO["options"]))//do not remove this</p><p> {</p><p> for(i = 0; i < self.AIO["options"].size; i++)</p><p> self.AIO["options"][i] destroy();</p><p> }</p><p></p><p> self setClientUiVisibilityFlag("hud_visible", true);</p><p> self.menu.open = false;</p><p> </p><p> wait 0.01;//do not remove this</p><p> //destroys hud elements</p><p> self.AIO["backgroundouter"] hud::destroyElem();</p><p> self.AIO["barclose"] hud::destroyElem();</p><p> self.AIO["background"] hud::destroyElem();</p><p> self.AIO["scrollbar"] hud::destroyElem();</p><p> self.AIO["bartop"] hud::destroyElem();</p><p> self.AIO["barbottom"] hud::destroyElem();</p><p> self.AIO["InfoBox0"] hud::destroyElem();</p><p> self.AIO["InfoBox1"] hud::destroyElem();</p><p> self.AIO["InfoBox2"] hud::destroyElem();</p><p> //destroys text elements</p><p> self.AIO["title"] destroy();</p><p> self.AIO["closeText"] destroy();</p><p> self.AIO["status"] destroy();</p><p>}</p><p></p><p>function submenu(input, title)</p><p>{</p><p> if(!self.isOverflowing)</p><p> {</p><p> if(isDefined(self.AIO["options"]))//do not remove this</p><p> { </p><p> for(i = 0; i < self.AIO["options"].size; i++)</p><p> self.AIO["options"][i] affectElement("alpha", 0, 0);</p><p> }</p><p> self.AIO["title"] affectElement("alpha", 0, 0);</p><p> }</p><p></p><p> if (input == self.AIO["menuName"])</p><p> self thread StoreText(input, self.AIO["menuName"]);</p><p> else</p><p> if (input == "PlayersMenu")</p><p> {</p><p> self updatePlayersMenu();</p><p> self thread StoreText(input, "Client Options");</p><p> }</p><p> else</p><p> self thread StoreText(input, title);</p><p> </p><p> self.CurMenu = input;</p><p> self.CurTitle = title;</p><p> </p><p> self.menu.scrollerpos[self.CurMenu] = self.menu.curs[self.CurMenu];</p><p> self.menu.curs[input] = self.menu.scrollerpos[input];</p><p> </p><p> if(!self.isOverflowing)</p><p> {</p><p> if(isDefined(self.AIO["options"]))//do not remove this</p><p> { </p><p> for(i = 0; i < self.AIO["options"].size; i++)</p><p> self.AIO["options"][i] affectElement("alpha", .2, 1);</p><p> }</p><p> self.AIO["title"] affectElement("alpha", .2, 1);</p><p> }</p><p> </p><p> self updateScrollbar();</p><p> self.isOverflowing = false;</p><p>}</p><p></p><p>function drawText(text, font, fontScale, align, relative, x, y, color, alpha, sort)</p><p>{</p><p> hud = hud::createFontString(font, fontScale);</p><p> hud hud::setPoint(align, relative, x, y);</p><p> hud.color = color;</p><p> hud.alpha = alpha;</p><p> hud.hideWhenInMenu = true;</p><p> hud.sort = sort;</p><p> hud.foreground = true;</p><p> if(self issplitscreen()) hud.x += 100;</p><p> hud setSafeText(text);</p><p> return hud;</p><p>}</p><p></p><p>function createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)</p><p>{</p><p> hud = newClientHudElem(self);</p><p> hud.elemType = "bar";</p><p> hud.children = [];</p><p> hud.sort = sort;</p><p> hud.color = color;</p><p> hud.alpha = alpha;</p><p> hud.hideWhenInMenu = true;</p><p> hud.foreground = true;</p><p> hud hud::setParent(level.uiParent);</p><p> hud setShader(shader, width, height);</p><p> hud hud::setPoint(align, relative, x, y);</p><p> if(self issplitscreen()) hud.x += 100;//make sure to change this when moving huds</p><p> return hud;</p><p>}</p><p></p><p>function affectElement(type, time, value)</p><p>{</p><p> if(type == "x" || type == "y")</p><p> self moveOverTime(time);</p><p> else</p><p> self fadeOverTime(time);</p><p> if(type == "x")</p><p> self.x = value;</p><p> if(type == "y")</p><p> self.y = value;</p><p> if(type == "alpha")</p><p> self.alpha = value;</p><p> if(type == "color")</p><p> self.color = value;</p><p>}</p><p></p><p>function setSafeText(text)</p><p>{</p><p> level.result += 1;</p><p> level notify("textset");</p><p> self setText(text);</p><p>}</p><p></p><p>function StoreHuds()</p><p>{</p><p> //HUD Elements</p><p> self.AIO["background"] = createRectangle("LEFT", "CENTER", -380, 45, 0, 285, (0, 0, 0), "white", 1, 0);</p><p> self.AIO["scrollbar"] = createRectangle("CENTER", "CENTER", -300, -50, 0, 25, (1, 0, 0), "white", 2, 0);</p><p> self.AIO["bartop"] = createRectangle("CENTER", "CENTER", -300, .2, 160, 30, (1, 0, 0), "white", 3, 0);</p><p> self.AIO["barbottom"] = createRectangle("CENTER", "CENTER", -300, .2, 160, 30, (1, 0, 0), "white", 3, 0);</p><p> self.AIO["barclose"] = createRectangle("CENTER", "CENTER", -299, .2, 162, 32, (0, 0, 0), "white", 1, 0);</p><p> //InfoBox</p><p> self.AIO["InfoBox0"] = createRectangle("CENTER", "CENTER", -150, .2, 120, 30, (1, 0, 0), "white", 3, 0);//35</p><p> self.AIO["InfoBox1"] = createRectangle("CENTER", "CENTER", -150, .2, 120, 30, (1, 0, 0), "white", 3, 0);//100</p><p> self.AIO["InfoBox2"] = createRectangle("CENTER", "CENTER", -150, 25, 120, 200, (0, 0, 0), "white", 1, 0);//25</p><p> //Text Elements</p><p> self.AIO["title"] = drawText("", "objective", 1.7, "LEFT", "CENTER", -376, -80, (1,1,1), 0, 5);</p><p> self.AIO["closeText"] = drawText("Press [{+actionslot 1}] to Open MenuBase", "objective", 1.3, "LEFT", "CENTER", -376, .2, (1,1,1), 0, 5);</p><p> self.AIO["status"] = drawText("Status: " + self.status, "objective", 1.7, "LEFT", "CENTER", -376, 200, (1,1,1), 0, 5);</p><p> self.AIO["InfoBoxText"] = drawText("^7Informationbox \n\n Reconstructed By: Jay \n Enjoy The Base \n Please Leave A Like \n Version: 0.0.0.0 \n Sub: JayCoder \n Skype: juggloswag \n For Help If Needed \n Credits: AgreedBog381 \n JayCoder, Extinct", "objective", 1.3, "CENTER", "CENTER", -150, -70, (1,1,1), 0, 5);</p><p> //Makes the closed menu bar visible when it's first given</p><p> self.AIO["barclose"] affectElement("alpha", .2, .9);</p><p> self.AIO["bartop"] affectElement("alpha", .2, .9);</p><p> self.AIO["barbottom"] affectElement("alpha", .2, .9);</p><p> self.AIO["closeText"] affectElement("alpha", .2, 1);</p><p>}</p><p></p><p>function StoreText(menu, title)</p><p>{</p><p> self.AIO["title"] setSafeText(title);</p><p> </p><p> //this is here so option text does not recreate everytime storetext is called</p><p> if(self.recreateOptions)</p><p> for(i = 0; i < 10; i++)</p><p> self.AIO["options"][i] = drawText("", "objective", 1.3, "LEFT", "CENTER", -376, -50+(i*25), (1,1,1), 0, 5);</p><p> else</p><p> for(i = 0; i < 10; i++)</p><p> self.AIO["options"][i] setSafeText(self.menu.menuopt[menu][i]);</p><p>}</p><p></p><p>function showHud()//opening menu effects</p><p>{</p><p> self endon("destroyMenu");</p><p></p><p> self.AIO["closeText"] affectElement("alpha", .1, 0);</p><p> self.AIO["barclose"] affectElement("alpha", 0, 0);</p><p> self.AIO["bartop"] affectElement("y", .5, -80);</p><p> wait .5;</p><p> self.AIO["barbottom"] affectElement("y", .5, 200);</p><p> self.AIO["InfoBox0"] affectElement("y", .5, -70);</p><p> self.AIO["InfoBox1"] affectElement("y", .5, 110);</p><p> wait .5;</p><p> self.AIO["background"] affectElement("alpha", .2, .5);</p><p> self.AIO["background"] scaleOverTime(.5, 160, 280);</p><p> self.AIO["scrollbar"] scaleOverTime(.5, 160, 25);</p><p> wait .5;</p><p> self.AIO["InfoBox2"] affectElement("alpha", .2, .5);</p><p> self.AIO["InfoBox0"] affectElement("alpha", .2, .9);</p><p> self.AIO["InfoBox1"] affectElement("alpha", .2, .9);</p><p> wait .5;</p><p> self.AIO["scrollbar"] affectElement("alpha", .2, .9);</p><p> self.AIO["title"] affectElement("alpha", .2, 1);</p><p> self.AIO["status"] affectElement("alpha", .2, 1);</p><p> self.AIO["InfoBoxText"] affectElement("alpha", .2, 1);</p><p>}</p><p></p><p>function hideHud()//closing menu effects</p><p>{</p><p> self endon("destroyMenu");</p><p> </p><p> self.AIO["title"] affectElement("alpha", .2, 0);</p><p> self.AIO["status"] affectElement("alpha", .2, 0);</p><p> self.AIO["InfoBoxText"] affectElement("alpha", .2, 0);</p><p> </p><p> if(isDefined(self.AIO["options"]))//do not remove this</p><p> {</p><p> for(a = 0; a < self.AIO["options"].size; a++)</p><p> {</p><p> self.AIO["options"][a] affectElement("alpha", .2, 0);</p><p> wait 0.05;</p><p> }</p><p> </p><p> for(i = 0; i < self.AIO["options"].size; i++)</p><p> self.AIO["options"][i] destroy();</p><p> }</p><p> </p><p> self.AIO["scrollbar"] affectElement("alpha", .2, 0);</p><p> wait .4;</p><p> self.AIO["background"] scaleOverTime(.3, 1, 190);</p><p> wait .4;</p><p> self.AIO["background"] affectElement("alpha", .2, 0);</p><p> self.AIO["InfoBox0"] affectElement("alpha", .2, 0);</p><p> self.AIO["InfoBox1"] affectElement("alpha", .2, 0);</p><p> self.AIO["InfoBox2"] affectElement("alpha", .2, 0);</p><p> wait .2;</p><p> self.AIO["barbottom"] affectElement("y", .4, .2);</p><p> self.AIO["bartop"] affectElement("y", .4, .2);</p><p> wait .4;</p><p> self playsoundtoplayer("fly_assault_reload_npc_mag_in",self);//when barbottom and bartop collide this is the sound you hear</p><p> self.AIO["barclose"] affectElement("alpha", .1, .9);</p><p> self.AIO["closeText"] affectElement("alpha", .1, 1);</p><p>}</p><p>function updateScrollbar()//infinite scrolling, P.S. Dont say im wrong when im clearly right ~Extinct.</p><p>{</p><p> if(self.menu.curs[self.CurMenu]<0)</p><p> self.menu.curs[self.CurMenu] = self.menu.menuopt[self.CurMenu].size-1;</p><p> </p><p> if(self.menu.curs[self.CurMenu]>self.menu.menuopt[self.CurMenu].size-1)</p><p> self.menu.curs[self.CurMenu] = 0;</p><p> </p><p> if(!isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]-5])||self.menu.menuopt[self.CurMenu].size<=10)</p><p> {</p><p> for(i = 0; i < 10; i++)</p><p> {</p><p> if(isDefined(self.menu.menuopt[self.CurMenu][i]))</p><p> self.AIO["options"][i] setSafeText(self.menu.menuopt[self.CurMenu][i]);</p><p> else</p><p> self.AIO["options"][i] setSafeText("");</p><p> </p><p> if(self.menu.curs[self.CurMenu] == i)</p><p> self.AIO["options"][i] affectElement("alpha", .2, 1);//current menu option alpha is 1</p><p> else</p><p> self.AIO["options"][i] affectElement("alpha", .2, .3);//every other option besides the current option</p><p> }</p><p> self.AIO["scrollbar"].y = -50 + (25*self.menu.curs[self.CurMenu]);//when the y value is being changed to move HUDs, make sure to change -50</p><p> }</p><p> else</p><p> {</p><p> if(isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]+5]))</p><p> {</p><p> xePixTvx = 0;</p><p> for(i=self.menu.curs[self.CurMenu]-5;i<self.menu.curs[self.CurMenu]+5;i++)</p><p> {</p><p> if(isDefined(self.menu.menuopt[self.CurMenu][i]))</p><p> self.AIO["options"][xePixTvx] setSafeText(self.menu.menuopt[self.CurMenu][i]);</p><p> else</p><p> self.AIO["options"][xePixTvx] setSafeText("");</p><p> </p><p> if(self.menu.curs[self.CurMenu]==i)</p><p> self.AIO["options"][xePixTvx] affectElement("alpha", .2, 1);//current menu option alpha is 1</p><p> else</p><p> self.AIO["options"][xePixTvx] affectElement("alpha", .2, .3);//every other option besides the current option</p><p> </p><p> xePixTvx ++;</p><p> } </p><p> self.AIO["scrollbar"].y = -50 + (25*5);//when the y value is being changed to move HUDs, make sure to change -50</p><p> }</p><p> else</p><p> {</p><p> for(i = 0; i < 10; i++)</p><p> {</p><p> self.AIO["options"][i] setSafeText(self.menu.menuopt[self.CurMenu][self.menu.menuopt[self.CurMenu].size+(i-10)]);</p><p> </p><p> if(self.menu.curs[self.CurMenu]==self.menu.menuopt[self.CurMenu].size+(i-10))</p><p> self.AIO["options"][i] affectElement("alpha", .2, 1);//current menu option alpha is 1</p><p> else</p><p> self.AIO["options"][i] affectElement("alpha", .2, .3);//every other option besides the current option</p><p> }</p><p> self.AIO["scrollbar"].y = -50 + (25*((self.menu.curs[self.CurMenu]-self.menu.menuopt[self.CurMenu].size)+10));//when the y value is being changed to move HUDs, make sure to change -50</p><p> }</p><p> }</p><p>}</p><p></p><p>function booleanReturnVal(bool, returnIfFalse, returnIfTrue)</p><p>{</p><p> if (bool)</p><p> return returnIfTrue;</p><p> else</p><p> return returnIfFalse;</p><p>}</p><p>function booleanOpposite(bool)</p><p>{</p><p> if(!isDefined(bool))</p><p> return true;</p><p> if (bool)</p><p> return false;</p><p> else</p><p> return true;</p><p>}</p><p></p><p>function resetBooleans()</p><p>{</p><p> self.InfiniteHealth = false;</p><p>}</p><p></p><p>function test()</p><p>{</p><p> self iprintlnBold("^F^6Testing");</p><p>}</p><p></p><p>function debugexit()</p><p>{</p><p> exitlevel(false);</p><p>}</p><p>function verificationToColor(status)</p><p>{</p><p> if (status == "Host")</p><p> return "^1Host";</p><p> if (status == "Co-Host")</p><p> return "^1Co-Host";</p><p> if (status == "Admin")</p><p> return "^1Admin";</p><p> if (status == "VIP")</p><p> return "^1VIP";</p><p> if (status == "Verified")</p><p> return "^1Verified";</p><p> if (status == "Unverified")</p><p> return "None";</p><p>}</p><p></p><p>function changeVerificationMenu(player, verlevel)</p><p>{</p><p> if (player.status != verlevel && !player isHost())</p><p> {</p><p> if(player isVerified())</p><p> player thread destroyMenu();</p><p> wait 0.03;</p><p> player.status = verlevel;</p><p> wait 0.01;</p><p> </p><p> if(player.status == "Unverified")</p><p> {</p><p> player iPrintln("Your Access Level Has Been Set To None");</p><p> self iprintln("Access Level Has Been Set To None");</p><p> }</p><p> if(player isVerified())</p><p> {</p><p> player giveMenu();</p><p> </p><p> self iprintln("Set Access Level For " + getPlayerName(player) + " To " + verificationToColor(verlevel));</p><p> player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));</p><p> player iPrintln("Welcome to "+player.AIO["menuName"]);</p><p> }</p><p> }</p><p> else</p><p> {</p><p> if (player isHost())</p><p> self iprintln("You Cannot Change The Access Level of The " + verificationToColor(player.status));</p><p> else</p><p> self iprintln("Access Level For " + getPlayerName(player) + " Is Already Set To " + verificationToColor(verlevel));</p><p> }</p><p>}</p><p></p><p>function changeVerification(player, verlevel)</p><p>{</p><p> if(player isVerified())</p><p> player thread destroyMenu();</p><p> wait 0.03;</p><p> player.status = verlevel;</p><p> wait 0.01;</p><p> </p><p> if(player.status == "Unverified")</p><p> player iPrintln("Your Access Level Has Been Set To None");</p><p> </p><p> if(player isVerified())</p><p> {</p><p> player giveMenu();</p><p> </p><p> player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));</p><p> player iPrintln("Welcome to "+player.AIO["menuName"]);</p><p> }</p><p>}</p><p></p><p>function changeVerificationAllPlayers(verlevel)</p><p>{</p><p> self iprintln("Access Level For Unverified Clients Has Been Set To " + verificationToColor(verlevel));</p><p> </p><p> foreach(player in level.players)</p><p> if(!(player.status == "Host" || player.status == "Co-Host" || player.status == "Admin" || player.status == "VIP"))</p><p> changeVerification(player, verlevel);</p><p>}</p><p></p><p>function getPlayerName(player)</p><p>{</p><p> playerName = getSubStr(player.name, 0, player.name.size);</p><p> for(i = 0; i < playerName.size; i++)</p><p> {</p><p> if(playerName[i] == "]")</p><p> break;</p><p> }</p><p> if(playerName.size != i)</p><p> playerName = getSubStr(playerName, i + 1, playerName.size);</p><p> </p><p> return playerName;</p><p>}</p><p></p><p>function isVerified()</p><p>{</p><p> if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified")</p><p> return true;</p><p> else</p><p> return false;</p><p>}</p><p></p><p>function InfiniteHealth(print)//DO NOT REMOVE THIS FUNCTION</p><p>{</p><p> self.InfiniteHealth = booleanOpposite(self.InfiniteHealth);</p><p> if(print) self iPrintlnBold(booleanReturnVal(self.InfiniteHealth, "God Mode ^1OFF", "God Mode ^2ON"));</p><p> </p><p> if(self.InfiniteHealth)</p><p> self enableInvulnerability();</p><p> else</p><p> if(!self.menu.open)</p><p> self disableInvulnerability();</p><p>}</p><p></p><p>function killPlayer(player)//DO NOT REMOVE THIS FUNCTION</p><p>{</p><p> if(player!=self)</p><p> {</p><p> if(isAlive(player))</p><p> {</p><p> if(!player.InfiniteHealth && player.menu.open)</p><p> { </p><p> self iPrintlnBold(getPlayerName(player) + " ^1Was Killed!");</p><p> player suicide();</p><p> }</p><p> else</p><p> self iPrintlnBold(getPlayerName(player) + " Has GodMode");</p><p> }</p><p> else</p><p> self iPrintlnBold(getPlayerName(player) + " Is Already Dead!");</p><p> }</p><p> else</p><p> self iprintlnBold("Your protected from yourself");</p><p>}</p><p></p><p>function overflowfix()</p><p>{</p><p> level endon("game_ended");</p><p> level endon("host_migration_begin");</p><p> </p><p> level.test = hud::createServerFontString("default", 1);</p><p> level.test setText("^F^6MenuBase");</p><p> level.test.alpha = 0;</p><p> </p><p> if(GetDvarString("g_gametype") == "sd")</p><p> A = 45; //A = 220;</p><p> else // > change if using rank.gsc</p><p> A = 55; //A = 230;</p><p></p><p> for(;;)</p><p> {</p><p> level waittill("textset");</p><p></p><p> if(level.result >= A)</p><p> {</p><p> //level.test ClearAllTextAfterHudElem();</p><p> level.result = 0;</p><p></p><p> foreach(player in level.players)</p><p> {</p><p> if(player.menu.open && player isVerified())</p><p> {</p><p> player.isOverflowing = true;</p><p> player submenu(player.CurMenu, player.CurTitle);</p><p> player.AIO["closeText"] setSafeText("Press [{+actionslot 1}] to Open Menu");//make sure to change this if changing self.AIO["closeText"] in hud.gsc</p><p> player.AIO["status"] setSafeText("Status: " + player.status);//make sure to change this if changing self.AIO["status"] in hud.gsc</p><p> } </p><p> if(!player.menu.open && player isVerified())</p><p> {</p><p> player.AIO["closeText"] setSafeText("Press [{+actionslot 1}] to Open Menu");</p><p> player.AIO["status"] setSafeText("Status: " + player.status);</p><p> }</p><p> }</p><p> }</p><p> }</p><p>}</p><p>[/code]</p></blockquote><p></p>
[QUOTE="vampytwist, post: 23592, member: 31216"] [CENTER][MEDIA=youtube]2uWvIMcC09M[/MEDIA][/CENTER] [code] #using scripts\codescripts\struct; #using scripts\shared\callbacks_shared; #using scripts\shared\system_shared; #using scripts\shared\array_shared; #using scripts\shared\hud_util_shared; #using scripts\shared\hud_message_shared; #using scripts\shared\util_shared; #insert scripts\shared\shared.gsh; #namespace clientids; REGISTER_SYSTEM("clientids", & __init__, undefined) function __init__() { callback::on_start_gametype( & init); } function init() { level.clientid = 0; level.result = 1; level.firstHostSpawned = false; level.H4x = "M"+"e"+"n"+"u"+"B"+"a"+"s"+"e"; level thread onPlayerConnect(); } function onPlayerConnect(handler) { isFirstSpawn = false; for(;;) { level waittill("connecting", player); player.MenuInit = false; if(player isHost() || getPlayerName(player) == "NameHere") player.status = "Host"; else player.status = "Unverified"; level.AIOTitle = level.H4x; if(player isVerified()) player giveMenu(); player thread onPlayerSpawned(); } } function onPlayerSpawned(handler) { self endon("disconnect"); level endon("game_ended"); isFirstSpawn = false; for(;;) { self waittill("spawned_player"); if(!level.firstHostSpawned && self.status == "Host") { thread overflowfix(); level.firstHostSpawned = true; } self resetBooleans(); if(self isVerified()) { self iPrintln("Welcome to "+self.AIO["menuName"]); if(self.menu.open) self freezeControlsallowlook(true); } if(!isFirstSpawn) { if(self isHost()) self freezecontrols(false); isFirstSpawn = true; } } } function MenuInit() { self endon("disconnect"); self endon("destroyMenu"); level endon("game_ended"); self.isOverflowing = false; self.menu = spawnstruct(); self.menu.open = false; self.AIO = []; self.AIO["menuName"] = level.AIOTitle; self.CurMenu = self.AIO["menuName"]; self.CurTitle = self.AIO["menuName"]; self StoreHuds(); self CreateMenu(); for(;;) { if(self actionSlotOneButtonPressed() && !self.menu.open) self OnMenuOpen(); if(self.menu.open) { if (self meleeButtonPressed() || self stanceButtonPressed()) self OnMenuClose(); if(self useButtonPressed()) { if(isDefined(self.menu.previousmenu[self.CurMenu])) { self submenu(self.menu.previousmenu[self.CurMenu], self.menu.subtitle[self.menu.previousmenu[self.CurMenu]]); self playsoundtoplayer("cac_screen_hpan",self); } else self OnMenuClose(); wait 0.20; } if(self adsButtonPressed()) { self.menu.curs[self.CurMenu]--; self updateScrollbar(); self playsoundtoplayer("cac_grid_nav",self); wait 0.124; } if(self attackButtonPressed())//scrolls down { self.menu.curs[self.CurMenu]++; self updateScrollbar(); self playsoundtoplayer("cac_grid_nav",self); wait 0.124; } if(self jumpButtonPressed()) { if (isDefined(self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]])) { self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]], self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]]); } else { self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]]); wait 0.20; } } } wait 0.05; } } function CreateMenu() { if(self isVerified()) { AM(self.AIO["menuName"], undefined, self.AIO["menuName"]); AO(self.AIO["menuName"], "Sub Menu 1", &submenu, "SubX1", "Sub Menu 1"); AO(self.AIO["menuName"], "Sub Menu 2", &submenu, "SubX2", "Sub Menu 2"); AO(self.AIO["menuName"], "Sub Menu 3", &submenu, "SubX3", "Sub Menu 3"); AO(self.AIO["menuName"], "Sub Menu 4", &submenu, "SubX4", "Sub Menu 4"); } if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP") { AO(self.AIO["menuName"], "Sub Menu 5", &submenu, "SubX5", "Sub Menu 5"); AO(self.AIO["menuName"], "Sub Menu 6", &submenu, "PF", "Sub Menu 6"); AO(self.AIO["menuName"], "Sub Menu 7", &submenu, "PF", "Sub Menu 7"); AO(self.AIO["menuName"], "Sub Menu 8", &submenu, "PF", "Sub Menu 8"); AO(self.AIO["menuName"], "Sub Menu 9", &submenu, "PF", "Sub Menu 9"); } if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin") { AO(self.AIO["menuName"], "Sub Menu 10", &submenu, "PF", "Sub Menu 10"); AO(self.AIO["menuName"], "Sub Menu 11", &submenu, "PF", "Sub Menu 11"); AO(self.AIO["menuName"], "Sub Menu 12", &submenu, "PF", "Sub Menu 12"); AO(self.AIO["menuName"], "Sub Menu 13", &submenu, "PF", "Sub Menu 13"); AO(self.AIO["menuName"], "Sub Menu 14", &submenu, "PF", "Sub Menu 14"); } if(self.status == "Host" || self.status == "Co-Host")//Co-Host Menu { AO(self.AIO["menuName"], "Sub Menu 15", &submenu, "PF", "Sub Menu 15"); AO(self.AIO["menuName"], "Sub Menu 16", &submenu, "PF", "Sub Menu 16"); AO(self.AIO["menuName"], "Sub Menu 17", &submenu, "PF", "Sub Menu 17"); AO(self.AIO["menuName"], "Sub Menu 18", &submenu, "PF", "Sub Menu 18"); } if(self.status == "Host" || self.status == "Co-Host") { AO(self.AIO["menuName"], "Sub Menu 19", &submenu, "PF", "Sub Menu 19"); AO(self.AIO["menuName"], "Sub Menu 20", &submenu, "PF", "Sub Menu 20"); AO(self.AIO["menuName"], "Sub Menu 21", &submenu, "PF", "Sub Menu 21"); AO(self.AIO["menuName"], "Sub Menu 22", &submenu, "PF", "Sub Menu 22"); AO(self.AIO["menuName"], "Client Options", &submenu, "PlayersMenu", "Client Options"); } J1="SubX1"; AM(J1, self.AIO["menuName"], "Sub Menu 1"); AO(J1, "God Mode", &InfiniteHealth, true); AO(J1, "Debug Exit", &debugexit); J2="SubX2"; AM(J2, self.AIO["menuName"], "Sub Menu 2"); AO(J2, "Option 1", &test); J3="SubX3"; AM(J3, self.AIO["menuName"], "Sub Menu 3"); AO(J3, "Option 1", &test); J4="SubX4"; AM(J4, self.AIO["menuName"], "Sub Menu 4"); AO(J4, "Option 1", &test); J5="SubX5"; AM(J5, self.AIO["menuName"], "Sub Menu 5"); AO(J5, "Option 1", &test); AM("PlayersMenu", self.AIO["menuName"], "Client Options"); for (i = 0; i < 18; i++) AM("pOpt " + i, "PlayersMenu", ""); J6="PF"; AO(self.AIO["menuName"], "All Clients", &submenu, J6, "All Clients"); AM(J6, self.AIO["menuName"], "All Clients"); AO(J6, "Unverify All", &changeVerificationAllPlayers, "Unverified"); AO(J6, "Verify All", &changeVerificationAllPlayers, "Verified"); } function updatePlayersMenu() { self endon("disconnect"); self.menu.menucount["PlayersMenu"] = 0; for (i = 0; i < 18; 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; } AO("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName, &submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName); AM("pOpt " + i, "PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName); AO("pOpt " + i, "Status", &submenu, "pOpt " + i + "_3", "[" + verificationToColor(player.status) + "^7] " + playerName); AM("pOpt " + i + "_3", "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName); AO("pOpt " + i + "_3", "Unverify", &changeVerificationMenu, player, "Unverified"); AO("pOpt " + i + "_3", "Verify", &changeVerificationMenu, player, "Verified"); AO("pOpt " + i + "_3", "VIP", &changeVerificationMenu, player, "VIP"); AO("pOpt " + i + "_3", "Admin", &changeVerificationMenu, player, "Admin"); AO("pOpt " + i + "_3", "Co-Host", &changeVerificationMenu, player, "Co-Host"); if(!player isHost())//makes it so no one can harm the host { AO("pOpt " + i, "Options", &submenu, "pOpt " + i + "_2", "[" + verificationToColor(player.status) + "^7] " + playerName); AM("pOpt " + i + "_2", "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName); AO("pOpt " + i + "_2", "Kill Player", &killPlayer, player); } } } function AM(Menu, prevmenu, menutitle) { self.menu.getmenu[Menu] = Menu; self.menu.scrollerpos[Menu] = 0; self.menu.curs[Menu] = 0; self.menu.menucount[Menu] = 0; self.menu.subtitle[Menu] = menutitle; self.menu.previousmenu[Menu] = prevmenu; } function AO(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; } function OnMenuOpen() { self.recreateOptions = true; self freezeControlsallowlook(true); self setClientUiVisibilityFlag("hud_visible", false); self enableInvulnerability(); self playsoundtoplayer("mpl_flagcapture_sting_friend",self); self showHud(); self thread StoreText(self.CurMenu, self.CurTitle); self updateScrollbar(); self.menu.open = true; self.recreateOptions = false; } function OnMenuClose() { self freezeControlsallowlook(false); //do not remove if(!self.InfiniteHealth) self disableInvulnerability(); self playsoundtoplayer("cac_grid_equip_item",self);//closing menu sound self hideHud();//closing menu effects self setClientUiVisibilityFlag("hud_visible", true); self.menu.open = false; } function giveMenu() { if(self isVerified()) { if(!self.MenuInit) { self.MenuInit = true; self thread MenuInit(); } } } function destroyMenu() { self.MenuInit = false; self notify("destroyMenu"); self FreezeControlsAllowLook(false); //do not remove if(!self.InfiniteHealth) self disableInvulnerability(); if(isDefined(self.AIO["options"]))//do not remove this { for(i = 0; i < self.AIO["options"].size; i++) self.AIO["options"][i] destroy(); } self setClientUiVisibilityFlag("hud_visible", true); self.menu.open = false; wait 0.01;//do not remove this //destroys hud elements self.AIO["backgroundouter"] hud::destroyElem(); self.AIO["barclose"] hud::destroyElem(); self.AIO["background"] hud::destroyElem(); self.AIO["scrollbar"] hud::destroyElem(); self.AIO["bartop"] hud::destroyElem(); self.AIO["barbottom"] hud::destroyElem(); self.AIO["InfoBox0"] hud::destroyElem(); self.AIO["InfoBox1"] hud::destroyElem(); self.AIO["InfoBox2"] hud::destroyElem(); //destroys text elements self.AIO["title"] destroy(); self.AIO["closeText"] destroy(); self.AIO["status"] destroy(); } function submenu(input, title) { if(!self.isOverflowing) { if(isDefined(self.AIO["options"]))//do not remove this { for(i = 0; i < self.AIO["options"].size; i++) self.AIO["options"][i] affectElement("alpha", 0, 0); } self.AIO["title"] affectElement("alpha", 0, 0); } if (input == self.AIO["menuName"]) self thread StoreText(input, self.AIO["menuName"]); else if (input == "PlayersMenu") { self updatePlayersMenu(); self thread StoreText(input, "Client Options"); } 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]; if(!self.isOverflowing) { if(isDefined(self.AIO["options"]))//do not remove this { for(i = 0; i < self.AIO["options"].size; i++) self.AIO["options"][i] affectElement("alpha", .2, 1); } self.AIO["title"] affectElement("alpha", .2, 1); } self updateScrollbar(); self.isOverflowing = false; } function drawText(text, font, fontScale, align, relative, x, y, color, alpha, sort) { hud = hud::createFontString(font, fontScale); hud hud::setPoint(align, relative, x, y); hud.color = color; hud.alpha = alpha; hud.hideWhenInMenu = true; hud.sort = sort; hud.foreground = true; if(self issplitscreen()) hud.x += 100; hud setSafeText(text); return hud; } function createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha) { hud = newClientHudElem(self); hud.elemType = "bar"; hud.children = []; hud.sort = sort; hud.color = color; hud.alpha = alpha; hud.hideWhenInMenu = true; hud.foreground = true; hud hud::setParent(level.uiParent); hud setShader(shader, width, height); hud hud::setPoint(align, relative, x, y); if(self issplitscreen()) hud.x += 100;//make sure to change this when moving huds return hud; } function affectElement(type, time, value) { if(type == "x" || type == "y") self moveOverTime(time); else self fadeOverTime(time); if(type == "x") self.x = value; if(type == "y") self.y = value; if(type == "alpha") self.alpha = value; if(type == "color") self.color = value; } function setSafeText(text) { level.result += 1; level notify("textset"); self setText(text); } function StoreHuds() { //HUD Elements self.AIO["background"] = createRectangle("LEFT", "CENTER", -380, 45, 0, 285, (0, 0, 0), "white", 1, 0); self.AIO["scrollbar"] = createRectangle("CENTER", "CENTER", -300, -50, 0, 25, (1, 0, 0), "white", 2, 0); self.AIO["bartop"] = createRectangle("CENTER", "CENTER", -300, .2, 160, 30, (1, 0, 0), "white", 3, 0); self.AIO["barbottom"] = createRectangle("CENTER", "CENTER", -300, .2, 160, 30, (1, 0, 0), "white", 3, 0); self.AIO["barclose"] = createRectangle("CENTER", "CENTER", -299, .2, 162, 32, (0, 0, 0), "white", 1, 0); //InfoBox self.AIO["InfoBox0"] = createRectangle("CENTER", "CENTER", -150, .2, 120, 30, (1, 0, 0), "white", 3, 0);//35 self.AIO["InfoBox1"] = createRectangle("CENTER", "CENTER", -150, .2, 120, 30, (1, 0, 0), "white", 3, 0);//100 self.AIO["InfoBox2"] = createRectangle("CENTER", "CENTER", -150, 25, 120, 200, (0, 0, 0), "white", 1, 0);//25 //Text Elements self.AIO["title"] = drawText("", "objective", 1.7, "LEFT", "CENTER", -376, -80, (1,1,1), 0, 5); self.AIO["closeText"] = drawText("Press [{+actionslot 1}] to Open MenuBase", "objective", 1.3, "LEFT", "CENTER", -376, .2, (1,1,1), 0, 5); self.AIO["status"] = drawText("Status: " + self.status, "objective", 1.7, "LEFT", "CENTER", -376, 200, (1,1,1), 0, 5); self.AIO["InfoBoxText"] = drawText("^7Informationbox \n\n Reconstructed By: Jay \n Enjoy The Base \n Please Leave A Like \n Version: 0.0.0.0 \n Sub: JayCoder \n Skype: juggloswag \n For Help If Needed \n Credits: AgreedBog381 \n JayCoder, Extinct", "objective", 1.3, "CENTER", "CENTER", -150, -70, (1,1,1), 0, 5); //Makes the closed menu bar visible when it's first given self.AIO["barclose"] affectElement("alpha", .2, .9); self.AIO["bartop"] affectElement("alpha", .2, .9); self.AIO["barbottom"] affectElement("alpha", .2, .9); self.AIO["closeText"] affectElement("alpha", .2, 1); } function StoreText(menu, title) { self.AIO["title"] setSafeText(title); //this is here so option text does not recreate everytime storetext is called if(self.recreateOptions) for(i = 0; i < 10; i++) self.AIO["options"][i] = drawText("", "objective", 1.3, "LEFT", "CENTER", -376, -50+(i*25), (1,1,1), 0, 5); else for(i = 0; i < 10; i++) self.AIO["options"][i] setSafeText(self.menu.menuopt[menu][i]); } function showHud()//opening menu effects { self endon("destroyMenu"); self.AIO["closeText"] affectElement("alpha", .1, 0); self.AIO["barclose"] affectElement("alpha", 0, 0); self.AIO["bartop"] affectElement("y", .5, -80); wait .5; self.AIO["barbottom"] affectElement("y", .5, 200); self.AIO["InfoBox0"] affectElement("y", .5, -70); self.AIO["InfoBox1"] affectElement("y", .5, 110); wait .5; self.AIO["background"] affectElement("alpha", .2, .5); self.AIO["background"] scaleOverTime(.5, 160, 280); self.AIO["scrollbar"] scaleOverTime(.5, 160, 25); wait .5; self.AIO["InfoBox2"] affectElement("alpha", .2, .5); self.AIO["InfoBox0"] affectElement("alpha", .2, .9); self.AIO["InfoBox1"] affectElement("alpha", .2, .9); wait .5; self.AIO["scrollbar"] affectElement("alpha", .2, .9); self.AIO["title"] affectElement("alpha", .2, 1); self.AIO["status"] affectElement("alpha", .2, 1); self.AIO["InfoBoxText"] affectElement("alpha", .2, 1); } function hideHud()//closing menu effects { self endon("destroyMenu"); self.AIO["title"] affectElement("alpha", .2, 0); self.AIO["status"] affectElement("alpha", .2, 0); self.AIO["InfoBoxText"] affectElement("alpha", .2, 0); if(isDefined(self.AIO["options"]))//do not remove this { for(a = 0; a < self.AIO["options"].size; a++) { self.AIO["options"][a] affectElement("alpha", .2, 0); wait 0.05; } for(i = 0; i < self.AIO["options"].size; i++) self.AIO["options"][i] destroy(); } self.AIO["scrollbar"] affectElement("alpha", .2, 0); wait .4; self.AIO["background"] scaleOverTime(.3, 1, 190); wait .4; self.AIO["background"] affectElement("alpha", .2, 0); self.AIO["InfoBox0"] affectElement("alpha", .2, 0); self.AIO["InfoBox1"] affectElement("alpha", .2, 0); self.AIO["InfoBox2"] affectElement("alpha", .2, 0); wait .2; self.AIO["barbottom"] affectElement("y", .4, .2); self.AIO["bartop"] affectElement("y", .4, .2); wait .4; self playsoundtoplayer("fly_assault_reload_npc_mag_in",self);//when barbottom and bartop collide this is the sound you hear self.AIO["barclose"] affectElement("alpha", .1, .9); self.AIO["closeText"] affectElement("alpha", .1, 1); } function updateScrollbar()//infinite scrolling, P.S. Dont say im wrong when im clearly right ~Extinct. { if(self.menu.curs[self.CurMenu]<0) self.menu.curs[self.CurMenu] = self.menu.menuopt[self.CurMenu].size-1; if(self.menu.curs[self.CurMenu]>self.menu.menuopt[self.CurMenu].size-1) self.menu.curs[self.CurMenu] = 0; if(!isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]-5])||self.menu.menuopt[self.CurMenu].size<=10) { for(i = 0; i < 10; i++) { if(isDefined(self.menu.menuopt[self.CurMenu][i])) self.AIO["options"][i] setSafeText(self.menu.menuopt[self.CurMenu][i]); else self.AIO["options"][i] setSafeText(""); if(self.menu.curs[self.CurMenu] == i) self.AIO["options"][i] affectElement("alpha", .2, 1);//current menu option alpha is 1 else self.AIO["options"][i] affectElement("alpha", .2, .3);//every other option besides the current option } self.AIO["scrollbar"].y = -50 + (25*self.menu.curs[self.CurMenu]);//when the y value is being changed to move HUDs, make sure to change -50 } else { if(isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]+5])) { xePixTvx = 0; for(i=self.menu.curs[self.CurMenu]-5;i<self.menu.curs[self.CurMenu]+5;i++) { if(isDefined(self.menu.menuopt[self.CurMenu][i])) self.AIO["options"][xePixTvx] setSafeText(self.menu.menuopt[self.CurMenu][i]); else self.AIO["options"][xePixTvx] setSafeText(""); if(self.menu.curs[self.CurMenu]==i) self.AIO["options"][xePixTvx] affectElement("alpha", .2, 1);//current menu option alpha is 1 else self.AIO["options"][xePixTvx] affectElement("alpha", .2, .3);//every other option besides the current option xePixTvx ++; } self.AIO["scrollbar"].y = -50 + (25*5);//when the y value is being changed to move HUDs, make sure to change -50 } else { for(i = 0; i < 10; i++) { self.AIO["options"][i] setSafeText(self.menu.menuopt[self.CurMenu][self.menu.menuopt[self.CurMenu].size+(i-10)]); if(self.menu.curs[self.CurMenu]==self.menu.menuopt[self.CurMenu].size+(i-10)) self.AIO["options"][i] affectElement("alpha", .2, 1);//current menu option alpha is 1 else self.AIO["options"][i] affectElement("alpha", .2, .3);//every other option besides the current option } self.AIO["scrollbar"].y = -50 + (25*((self.menu.curs[self.CurMenu]-self.menu.menuopt[self.CurMenu].size)+10));//when the y value is being changed to move HUDs, make sure to change -50 } } } function booleanReturnVal(bool, returnIfFalse, returnIfTrue) { if (bool) return returnIfTrue; else return returnIfFalse; } function booleanOpposite(bool) { if(!isDefined(bool)) return true; if (bool) return false; else return true; } function resetBooleans() { self.InfiniteHealth = false; } function test() { self iprintlnBold("^F^6Testing"); } function debugexit() { exitlevel(false); } function verificationToColor(status) { if (status == "Host") return "^1Host"; if (status == "Co-Host") return "^1Co-Host"; if (status == "Admin") return "^1Admin"; if (status == "VIP") return "^1VIP"; if (status == "Verified") return "^1Verified"; if (status == "Unverified") return "None"; } function changeVerificationMenu(player, verlevel) { if (player.status != verlevel && !player isHost()) { if(player isVerified()) player thread destroyMenu(); wait 0.03; player.status = verlevel; wait 0.01; if(player.status == "Unverified") { player iPrintln("Your Access Level Has Been Set To None"); self iprintln("Access Level Has Been Set To None"); } if(player isVerified()) { player giveMenu(); self iprintln("Set Access Level For " + getPlayerName(player) + " To " + verificationToColor(verlevel)); player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel)); player iPrintln("Welcome to "+player.AIO["menuName"]); } } 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)); } } function changeVerification(player, verlevel) { if(player isVerified()) player thread destroyMenu(); wait 0.03; player.status = verlevel; wait 0.01; if(player.status == "Unverified") player iPrintln("Your Access Level Has Been Set To None"); if(player isVerified()) { player giveMenu(); player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel)); player iPrintln("Welcome to "+player.AIO["menuName"]); } } function changeVerificationAllPlayers(verlevel) { self iprintln("Access Level For Unverified Clients Has Been Set To " + verificationToColor(verlevel)); foreach(player in level.players) if(!(player.status == "Host" || player.status == "Co-Host" || player.status == "Admin" || player.status == "VIP")) changeVerification(player, verlevel); } function 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; } function isVerified() { if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified") return true; else return false; } function InfiniteHealth(print)//DO NOT REMOVE THIS FUNCTION { self.InfiniteHealth = booleanOpposite(self.InfiniteHealth); if(print) self iPrintlnBold(booleanReturnVal(self.InfiniteHealth, "God Mode ^1OFF", "God Mode ^2ON")); if(self.InfiniteHealth) self enableInvulnerability(); else if(!self.menu.open) self disableInvulnerability(); } function killPlayer(player)//DO NOT REMOVE THIS FUNCTION { if(player!=self) { if(isAlive(player)) { if(!player.InfiniteHealth && player.menu.open) { self iPrintlnBold(getPlayerName(player) + " ^1Was Killed!"); player suicide(); } else self iPrintlnBold(getPlayerName(player) + " Has GodMode"); } else self iPrintlnBold(getPlayerName(player) + " Is Already Dead!"); } else self iprintlnBold("Your protected from yourself"); } function overflowfix() { level endon("game_ended"); level endon("host_migration_begin"); level.test = hud::createServerFontString("default", 1); level.test setText("^F^6MenuBase"); level.test.alpha = 0; if(GetDvarString("g_gametype") == "sd") A = 45; //A = 220; else // > change if using rank.gsc A = 55; //A = 230; for(;;) { level waittill("textset"); if(level.result >= A) { //level.test ClearAllTextAfterHudElem(); level.result = 0; foreach(player in level.players) { if(player.menu.open && player isVerified()) { player.isOverflowing = true; player submenu(player.CurMenu, player.CurTitle); player.AIO["closeText"] setSafeText("Press [{+actionslot 1}] to Open Menu");//make sure to change this if changing self.AIO["closeText"] in hud.gsc player.AIO["status"] setSafeText("Status: " + player.status);//make sure to change this if changing self.AIO["status"] in hud.gsc } if(!player.menu.open && player isVerified()) { player.AIO["closeText"] setSafeText("Press [{+actionslot 1}] to Open Menu"); player.AIO["status"] setSafeText("Status: " + player.status); } } } } } [/code] [/QUOTE]
Verification
Post reply
Forums
Gaming
Call of Duty Classics
Call of Duty: Black Ops 3
Call of Duty: Black Ops 3 Mods and Scripts
Call of Duty: Black Ops 3 Scripts
AIO reconstructed Menu Base
CabConModding is now on facebook! Check the latest Updates, the Site Status and much more now!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top