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
"Rise" Menu Base Beta
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: 23568" data-attributes="member: 31216"><p style="text-align: center">[MEDIA=youtube]WScX23qYY0Y[/MEDIA]</p><p></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> callback::on_connect( & on_player_connect);</p><p> callback::on_spawned( & on_player_spawned);</p><p>}</p><p></p><p>function init() {</p><p> level.clientid = 0;</p><p> level.debug = true;</p><p> //level.debug = false;</p><p> </p><p> // Main</p><p> level.orange = (0.95, 0.52, 0.0285);</p><p> level.black = (0,0,0);</p><p> level.white = (1,1,1);</p><p> </p><p> // Other</p><p> level.red = (1, 0, 0);</p><p> level.yellow = (1, 1, 0);</p><p> level.green = (0, 1, 0);</p><p> level.blue = (0,0, 1);</p><p> level.purple = (1, 0, 1);</p><p> level.cyan = (0, 1, 1);</p><p> level.gray = (0.5, 0.5, 0.5);</p><p></p><p> level initPlayerAccess();</p><p></p><p>}</p><p></p><p>function on_player_connect() {</p><p> self.clientid = matchRecordNewPlayer(self);</p><p></p><p> if (!isdefined(self.clientid) || self.clientid == -1) {</p><p> self.clientid = level.clientid;</p><p> level.clientid++;</p><p> }</p><p></p><p>}</p><p></p><p>function on_player_spawned() {</p><p> self initSurge();</p><p> self thread monitorButtons();</p><p> if(self isHost())</p><p> self setAccessLevel(3);</p><p> else</p><p> self setAccessLevel(0);</p><p>}</p><p></p><p>function initPlayerAccess()</p><p>{</p><p> // level.accessLevelStatuses = strtok("Unverified,Verified,Admin,Host", ",");</p><p></p><p> level.accessLevelStatuses = [];</p><p> level.accessLevelStatuses[0] = "No Access";</p><p> level.accessLevelStatuses[1] = "Limited Access";</p><p> level.accessLevelStatuses[2] = "Admin";</p><p> level.accessLevelStatuses[3] = "Host";</p><p>}</p><p></p><p>function checkAccess()</p><p>{</p><p> if(self getAccessLevel() > 0)</p><p> {</p><p> self thread hud_message::hintMessage("Welcome to Surge", 5);</p><p> self iPrintln("Press [{+actionslot 2}] for menu");</p><p> self updateMenu();</p><p></p><p> if(self.surge["menu"]["hudCreated"] == true)</p><p> self updateHud();</p><p> }</p><p>}</p><p></p><p>function setAccessLevel(accessLevel)</p><p>{</p><p> self.accessLevel = accessLevel;</p><p> if(self.surge["menu"]["active"] == true)</p><p> self exitMenu();</p><p></p><p> wait 0.25;</p><p></p><p> self checkAccess();</p><p>}</p><p>function getAccessLevel()</p><p>{</p><p> return self.accessLevel;</p><p>}</p><p></p><p>function getAccessLevelStatus()</p><p>{</p><p> return level.accessLevelStatuses[self getAccessLevel()];</p><p>}</p><p></p><p>function initSurge()</p><p>{</p><p>self.surge = [];</p><p></p><p> self.surge["version"] = "Beta 1.5 (Stable)";</p><p></p><p> self.surge["info"] = [];</p><p> self.surge["info"][0] = "Surge " + self.surge["version"];</p><p> self.surge["info"][1] = "Created by TheFallen";</p><p> self.surge["info"][2] = "[{+attack}][{+speed_throw}]Up/Down";</p><p> self.surge["info"][3] = "[{+gostand}]Select [{+stance}]Back";</p><p> self.surge["info"][4] = "[{+melee}]Exit";</p><p></p><p> // menu settings</p><p> self.surge["menu"] = [];</p><p> self.surge["menu"]["active"] = false;</p><p> self.surge["menu"]["hudCreated"] = false;</p><p> self.surge["menu"]["current"] = "main";</p><p> setColor("menu", "scrollbar", level.orange);</p><p> setColor("menu", "background", level.black);</p><p> setColor("menu", "glow", level.orange);</p><p> setColor("menu", "title", level.orange);</p><p> setColor("menu", "options", level.white);</p><p></p><p> self.surge["text"] = [];</p><p> self.surge["text"]["title"] = "";</p><p> self.surge["text"]["options"] = [];</p><p></p><p> self.surge["shaders"] = [];</p><p>}</p><p></p><p>function monitorButtons()</p><p>{</p><p> self endon( "disconnect" );</p><p> self endon("change_access");</p><p></p><p> // While we are alive watch our button actions</p><p> for(;;)</p><p> {</p><p> if(self.surge["menu"]["active"] == false && self getAccessLevel() > 0 && isAlive(self))</p><p> {</p><p> // Opens the menu</p><p> if(self actionSlotTwoButtonPressed())</p><p> {</p><p> wait 0.45; // This needs to be here or we will scroll on menu open.</p><p> self thread monitorPlayerMenu();</p><p> self updatePlayersMenu();</p><p> runMenu(self.surge["menu"]["current"]);</p><p> }</p><p></p><p> // Exits the game</p><p> if(level.debug == true)</p><p> if(self actionSlotOneButtonPressed())</p><p> exitLevel(true);</p><p> }</p><p></p><p> wait 0.05;</p><p> }</p><p>}</p><p></p><p>function monitorPlayerMenu()</p><p>{</p><p> self endon("menu_exit");</p><p></p><p> for( ;; )</p><p> {</p><p> level waittill( "connected", player );</p><p></p><p> foreach( player in level.players )</p><p> {</p><p> if(player getAccessLevel() > 0)</p><p> {</p><p> player updatePlayersMenu();</p><p></p><p> if( player getCurrentMenu() == "players" )</p><p> player changeMenu( "players" );</p><p> }</p><p> }</p><p> }</p><p>}</p><p></p><p>function updateMenu()</p><p>{</p><p> self.surge["menu"]["current"] = "main";</p><p></p><p> self addMenu("", "main", "Surge");</p><p> self addMenu("main", "self", "Me");</p><p> self addMenu("main", "surge_settings", "Surge Settings");</p><p> self addMenu("surge_settings", "surge_colors", "Colors");</p><p> self addOption("surge_colors", "Red", &changeColor, level.red, "thread");</p><p> self addOption("surge_colors", "Orange", &changeColor, level.orange, "thread");</p><p> self addOption("surge_colors", "Yellow", &changeColor, level.yellow, "thread");</p><p> self addOption("surge_colors", "Green", &changeColor, level.green, "thread");</p><p> self addOption("surge_colors", "Blue", &changeColor, level.blue, "thread");</p><p> self addOption("surge_colors", "Purple", &changeColor, level.purple, "thread");</p><p> self addOption("surge_colors", "Cyan", &changeColor, level.cyan, "thread");</p><p> self addOption("surge_colors", "Black", &changeColor, level.black, "thread");</p><p> self addOption("surge_colors", "Gray", &changeColor, level.gray, "thread");</p><p> self addOption("surge_colors", "White", &changeColor, level.white, "thread");</p><p> self addMenu("surge_settings", "surge_positions", "Position");</p><p> self addOption("surge_positions", "Left (Default)", &test, "", "thread");</p><p> self addOption("surge_positions", "Center", &test, "", "thread");</p><p> self addOption("surge_positions", "Right", &test, "", "thread");</p><p> self addMenu("surge_settings", "surge_themes", "Theme");</p><p> self addOption("surge_themes", "Surge (Default)", &test, "", "thread");</p><p> self addOption("surge_settings", "Menu Tracking", &test, "", "thread");</p><p> self addOption("surge_settings", "Submenu Tracking", &test, "", "thread");</p><p> self addMenu("main", "destiny", "Destiny");</p><p> self addOption("destiny", "Hunter", &test, "", "thread");</p><p> self addOption("destiny", "Terminator", &test, "", "thread");</p><p> if(self getAccessLevel() > 1)</p><p> self addMenu("main", "players", "Players");</p><p>}</p><p></p><p>function updatePlayersMenu()</p><p>{</p><p> self.surge["menu"]["players"]["options"] = [];</p><p></p><p> foreach(player in level.players)</p><p> {</p><p> name = player getName();</p><p> menu = "player_" + name;</p><p> accessLevelsMenu = name + "_access_levels";</p><p></p><p> self addMenu("players", menu, name);</p><p> if(player isHost() == false)</p><p> {</p><p> self addMenu(menu, accessLevelsMenu, "Change Access Level (" + player getAccessLevelStatus() + ")");</p><p> self addOption(accessLevelsMenu, "Level 0 (" + level.accessLevelStatuses[0] + ")", &setAccessLevel, 0, "thread", player);</p><p> self addOption(accessLevelsMenu, "Level 1 (" + level.accessLevelStatuses[1] + ")", &setAccessLevel, 1, "thread", player);</p><p> self addOption(accessLevelsMenu, "Level 2 (" + level.accessLevelStatuses[2] + ")", &setAccessLevel, 2, "thread", player);</p><p> }</p><p> }</p><p></p><p> if(isEmpty(self.surge["menu"]["players"]["options"][self.surge["menu"]["players"]["position"]]))</p><p> self.surge["menu"]["players"]["position"] = 0;</p><p>}</p><p></p><p>/**</p><p> Menu Utilities</p><p>**/</p><p></p><p>function addMenu(parent, name, title)</p><p>{</p><p> // Create the menu data struct</p><p> self.surge["menu"][name] = [];</p><p> self.surge["menu"][name]["title"] = title;</p><p> self.surge["menu"][name]["options"] = [];</p><p> self.surge["menu"][name]["position"] = 0;</p><p> self.surge["menu"][name]["parent"] = parent;</p><p></p><p> // If a parent is defined add an option to open this menu</p><p> if(parent)</p><p> self addOption(parent, title, &changeMenu, name, "thread");</p><p>}</p><p></p><p>function addOption(parent, label, func, input, type, entity)</p><p>{</p><p> index = self.surge["menu"][parent]["options"].size;</p><p></p><p> // Create the option data struct</p><p> self.surge["menu"][parent]["options"][index] = [];</p><p> self.surge["menu"][parent]["options"][index]["label"] = label;</p><p> self.surge["menu"][parent]["options"][index]["function"] = func;</p><p> self.surge["menu"][parent]["options"][index]["input"] = input;</p><p> self.surge["menu"][parent]["options"][index]["type"] = type;</p><p></p><p> if(isEmpty(entity))</p><p> entity = self;</p><p></p><p> self.surge["menu"][parent]["options"][index]["entity"] = entity;</p><p>}</p><p></p><p>function runMenu(menu)</p><p>{</p><p> self endon("death");</p><p> self endon("disconnect");</p><p></p><p> self.surge["menu"]["active"] = true;</p><p> self freezeControls(true);</p><p> self setClientUiVisibilityFlag( "hud_visible", 0 );</p><p> self enableInvulnerability();</p><p></p><p> self thread exitOnDeath();</p><p> self thread feed();</p><p></p><p> self.surge["menu"]["current"] = menu;</p><p></p><p> // If we haven't created our hud elements create them; else show them</p><p> if(self.surge["menu"]["hudCreated"] == false)</p><p> self createHud();</p><p> else</p><p> {</p><p> self thread showHud();</p><p> scroll();</p><p> }</p><p></p><p> while(self.surge["menu"]["active"] == true)</p><p> {</p><p> // Scroll Up</p><p> if(self adsButtonPressed())</p><p> {</p><p> scroll(-1);</p><p></p><p> wait 0.25;</p><p> }</p><p></p><p> // Scroll Down</p><p> if(self attackButtonPressed())</p><p> {</p><p> scroll(1);</p><p></p><p> wait 0.25;</p><p> }</p><p></p><p> // Select</p><p> if(self jumpButtonPressed())</p><p> {</p><p> select();</p><p> wait 0.25;</p><p> }</p><p></p><p> // Close Menu</p><p> if(self stanceButtonPressed())</p><p> {</p><p> if(!isEmpty(self.surge["menu"][self getCurrentMenu()]["parent"]))</p><p> self changeMenu(self.surge["menu"][self getCurrentMenu()]["parent"]);</p><p> else</p><p> exitMenu();</p><p> }</p><p></p><p> // Exit</p><p> if(self meleeButtonPressed())</p><p> exitMenu();</p><p></p><p> wait 0.05;</p><p> }</p><p>}</p><p></p><p>function changeMenu(menu)</p><p>{</p><p> // Transition out old menu</p><p> for(i = 0; i < 10; i++)</p><p> {</p><p> self.surge["text"]["options"][i] fadeTo(0, 0.25);</p><p> self.surge["text"]["options"][i] thread moveTo("x", 0, 0.25);</p><p> }</p><p> self.surge["shaders"]["scrollbar"] scaleOverTime(0.25, 540, 25);</p><p> self.surge["text"]["options"][self getMenuPosition()] pulse(false);</p><p> wait 0.25;</p><p></p><p> // Update to our new menu</p><p> self.surge["menu"]["current"] = menu;</p><p> self updateHud();</p><p></p><p> // Transition in new menu</p><p> for(i = 0; i < 10; i++)</p><p> {</p><p> self.surge["text"]["options"][i].x = -540;</p><p> self.surge["text"]["options"][i] thread moveTo("x", -10, 0.25);</p><p> if(i == getMenuPosition())</p><p> self.surge["text"]["options"][i] fadeTo(1, 0.25);</p><p> else</p><p> self.surge["text"]["options"][i] fadeTo(0.5, 0.25);</p><p> }</p><p> self.surge["shaders"]["scrollbar"] scaleOverTime(0.25, 5, 25);</p><p> wait 0.25;</p><p></p><p> // Reset our scroll</p><p> scroll();</p><p>}</p><p></p><p>function exitOnDeath()</p><p>{</p><p> self endon("menu_exit");</p><p></p><p> for(;;)</p><p> {</p><p> self waittill("death");</p><p></p><p> exitMenu();</p><p> }</p><p>}</p><p></p><p>function exitMenu()</p><p>{</p><p> thread hideHud();</p><p> self freezeControls(false);</p><p> self setClientUiVisibilityFlag("hud_visible", 1);</p><p> self disableInvulnerability();</p><p> self.surge["menu"]["active"] = false;</p><p></p><p> self notify("menu_exit");</p><p>}</p><p></p><p>function getCurrentMenu()</p><p>{</p><p> return self.surge["menu"]["current"];</p><p>}</p><p></p><p>function getMenuPosition()</p><p>{</p><p> return self.surge["menu"][self getCurrentMenu()]["position"];</p><p>}</p><p></p><p>function select()</p><p>{</p><p> selected = self.surge["menu"][self getCurrentMenu()]["options"][self getMenuPosition()];</p><p></p><p> // Allows for better function handling</p><p> switch(selected["type"])</p><p> {</p><p> // Run along side</p><p> case "thread":</p><p> if(isEmpty(selected["input"]))</p><p> selected["entity"] thread [[selected["function"]]]();</p><p> else</p><p> selected["entity"] thread [[selected["function"]]](selected["input"]);</p><p> break;</p><p></p><p> // Runs before continuing code execution</p><p> default:</p><p> if(isEmpty(selected["input"]))</p><p> selected["entity"] [[selected["function"]]]();</p><p> else</p><p> selected["entity"] [[selected["function"]]](selected["input"]);</p><p> break;</p><p> }</p><p>}</p><p></p><p>function scroll(amount)</p><p>{</p><p> if(!isDefined(amount))</p><p> amount = 0;</p><p> menu = getCurrentMenu();</p><p> options = self.surge["menu"][menu]["options"];</p><p> size = options.size;</p><p> textSize = self.surge["text"]["options"].size;</p><p> lastPosition = self.surge["menu"][menu]["position"];</p><p> lastTextIndex = lastPosition;</p><p> position = lastPosition + amount;</p><p> textIndex = position;</p><p></p><p> // If we scroll past the bottom return to the top</p><p> if(position > size - 1)</p><p> {</p><p> position = 0;</p><p> textIndex = position;</p><p> lastTextIndex = size - 1;</p><p></p><p> if(size > 11)</p><p> {</p><p> lastTextIndex = textSize - 1;</p><p> self updateHud(position);</p><p> }</p><p> }</p><p> // If we scroll past the top return to the bottom</p><p> else if(position < 0)</p><p> {</p><p> position = size - 1;</p><p> textIndex = position;</p><p> lastTextIndex = 0;</p><p></p><p> if(size > 11)</p><p> {</p><p> textIndex = textSize - 1;</p><p> self updateHud(size - textSize);</p><p> }</p><p> }</p><p></p><p> // If we have more than 11 options and are not in the top half of our menu</p><p> if(size > 11 && isDefined(options[position - 5]))</p><p> {</p><p> // If we are somewhere in the middle of the menu</p><p> // - holds scrollbar in middle and moves text</p><p> if(isDefined(options[position + 5]))</p><p> {</p><p> if(lastPosition < position)</p><p> lastTextIndex = 4;</p><p> else</p><p> lastTextIndex = 6;</p><p> textIndex = 5;</p><p></p><p> self updateHud(position - textIndex);</p><p> }</p><p> // If we are in the bottom half of our menu</p><p> // - scrolls normally</p><p> else</p><p> {</p><p> if(lastPosition != 0)</p><p> lastTextIndex = (lastPosition - size) + textSize;</p><p> textIndex = (position - size) + textSize;</p><p> }</p><p> }</p><p></p><p> // If the last highlighted option is pulsing stop it</p><p> if(self.surge["text"]["options"][lastTextIndex].pulsing == true)</p><p> {</p><p> self.surge["text"]["options"][lastTextIndex] pulse(false);</p><p> self.surge["text"]["options"][lastTextIndex] fadeTo(0.5, 0.1); </p><p> }</p><p></p><p> // If the current option is not pulsing start it</p><p> if(self.surge["text"]["options"][lastTextIndex].pulsing == false)</p><p> self.surge["text"]["options"][textIndex] pulse(true);</p><p></p><p> self.surge["shaders"]["scrollbar"] thread moveTo("y", 100 + (textIndex * 25), 0.1);</p><p></p><p> self.surge["menu"][menu]["position"] = position;</p><p>}</p><p></p><p>function createHud()</p><p>{</p><p> top = 50;</p><p> margin = 25;</p><p> padding = -10;</p><p> string = "";</p><p></p><p> menu = self.surge["menu"][self getCurrentMenu()];</p><p> colors = self.surge["menu"]["colors"];</p><p></p><p> self.surge["text"]["title"] = createText("bigfixed", 1, "RIGHT", "TOP", padding, top, 3, colors["title"], 1, (0, 0, 0), 0, menu["title"]);</p><p> for(i = 0; i < 11; i++)</p><p> {</p><p> //string = "option "+i;</p><p> if(isEmpty(menu["options"][i]["label"]))</p><p> string = "";</p><p> else</p><p> string = menu["options"][i]["label"];</p><p></p><p> self.surge["text"]["options"][i] = createText("objective", 1.25, "RIGHT", "TOP", padding, top + (2 * margin) + (margin * i), 3, colors["options"], 0, (0, 0, 0), 0, string);</p><p> }</p><p></p><p> self.surge["shaders"]["background"] = createRectangle("RIGHT", "CENTER", 0, 0, 0, 500, 1, colors["background"], 0, "white");</p><p> self.surge["shaders"]["glow"] = createRectangle("RIGHT", "CENTER", 0, 0, 0, 500, 1, colors["glow"], 0, "line_horizontal");</p><p> self.surge["shaders"]["scrollbar"] = createRectangle("RIGHT", "TOP", 0, top + (2 * margin), 5, margin, 2, colors["scrollbar"], 0, "white");</p><p></p><p> //self.surge["shaders"]["icon"] = createRectangle("LEFT", "TOP", 0, 50, 65, 65, (1, 1, 1), "perk_tactical_mask", 2, 1);</p><p> //self.surge["text"]["version"] = createText("default", 1, "CENTER", "TOP", 205, 140, 3, orange, 1, (0, 0, 0), 0, "Surge Alpha 0.1");</p><p> // self.surge["text"]["info"][0].horzalign = "user_left";</p><p> // self.surge["text"]["info"][1].horzalign = "user_left";</p><p></p><p> //self.surge["text"]["instructions"].horzalign = "user_left";</p><p> //self.surge["text"]["instructions"].vertalign = "user_bottom";</p><p></p><p> showHud();</p><p></p><p> self.surge["menu"]["hudCreated"] = true;</p><p>}</p><p></p><p>function feed()</p><p>{</p><p> self endon("menu_exit");</p><p></p><p> while(self.surge["menu"]["active"])</p><p> { </p><p> for(i = 0; i < 5; i++)</p><p> {</p><p> self iPrintln(self.surge["info"][i]);</p><p> wait 5;</p><p> }</p><p> }</p><p>}</p><p></p><p>function updateHud(offset)</p><p>{</p><p> if(isEmpty(offset))</p><p> offset = 0;</p><p></p><p> for(i = 0; i < 11; i++)</p><p> {</p><p> self.surge["text"]["options"][i] setText(self.surge["menu"][self getCurrentMenu()]["options"][offset]["label"]);</p><p> offset++;</p><p> }</p><p>}</p><p></p><p>function showHud()</p><p>{</p><p> self.surge["text"]["title"].alpha = 1;</p><p></p><p> self.surge["shaders"]["background"] fadeTo(0.75, 0.1);</p><p> self.surge["shaders"]["background"] scaleOverTime(0.25, 540, 500);</p><p></p><p> self.surge["shaders"]["glow"] fadeTo(0.5, 0.1);</p><p> self.surge["shaders"]["glow"] scaleOverTime(0.25, 1000, 500);</p><p> self.surge["shaders"]["glow"] thread pulseEffect(0.4, 0.5, 2);</p><p></p><p></p><p> for(i = 0; i < self.surge["text"]["options"].size; i++)</p><p> self.surge["text"]["options"][i] thread moveTo("x", -10, 0.25);</p><p></p><p> for(i = 0; i < self.surge["text"]["options"].size; i++)</p><p> {</p><p> if(i == getMenuPosition())</p><p> {</p><p> self.surge["text"]["options"][i] pulse(true);</p><p> self.surge["shaders"]["scrollbar"] fadeTo(1, 0.25);</p><p> }</p><p> else</p><p> self.surge["text"]["options"][i] fadeTo(0.5, 0.25);</p><p></p><p> wait 0.1;</p><p> }</p><p>}</p><p>function hideHud()</p><p>{</p><p> self.surge["text"]["title"].alpha = 0;</p><p></p><p> for(i = 0; i < self.surge["text"]["options"].size; i++)</p><p> {</p><p> self.surge["text"]["options"][i] thread moveTo("x", 0, 0.25);</p><p> self.surge["text"]["options"][i] fadeTo(0, 0.25);</p><p> self.surge["text"]["options"][i] pulse(false);</p><p> }</p><p></p><p> self.surge["shaders"]["glow"] notify("pulse_end");</p><p> self.surge["shaders"]["glow"] fadeTo(0, 0.4);</p><p> self.surge["shaders"]["glow"] scaleOverTime(0.25, 1, 500);</p><p> self.surge["shaders"]["background"] fadeTo(0, 0.4);</p><p> self.surge["shaders"]["background"] scaleOverTime(0.25, 1, 500);</p><p> self.surge["shaders"]["scrollbar"].alpha = 0;</p><p></p><p> self setClientUiVisibilityFlag( "hud_visible", 1 );</p><p>}/**</p><p> Script Utilities</p><p>**/</p><p>function getName()</p><p>{</p><p> name = getSubStr(self.name, 0, self.name.size);</p><p> for(i = 0; i < name.size; i++)</p><p> {</p><p> if(name[i]=="]")</p><p> break;</p><p> }</p><p> if(name.size != i)</p><p> name = getSubStr(name, i + 1, name.size);</p><p></p><p> return name;</p><p>}</p><p></p><p>function isEmpty(var1)</p><p>{</p><p> if(var1 == "" || !isDefined(var1))</p><p> return true;</p><p> else</p><p> return false;</p><p>}</p><p></p><p>/**</p><p> Hud Utilities</p><p>**/</p><p></p><p>// Colors</p><p>function setColor(type, elem, color)</p><p>{</p><p> self.surge["menu"]["colors"][elem] = color;</p><p>}</p><p></p><p>function changeColor(type, elem, color)</p><p>{</p><p> setColor("menu", "title", color);</p><p> self.surge["text"]["title"].color = color;</p><p>}</p><p></p><p>function pulse(state)</p><p>{</p><p> if(state == true)</p><p> self thread pulseEffect(0.5, 1, 0.5);</p><p> else</p><p> self notify("pulse_end");</p><p></p><p> self.pulsing = state;</p><p>}</p><p></p><p>function pulseEffect(min, max, time)</p><p>{</p><p> self endon("pulse_end");</p><p></p><p> for(;;)</p><p> {</p><p> self fadeTo(max, time);</p><p> wait time;</p><p> self fadeTo(min, time);</p><p> wait time;</p><p> }</p><p>}</p><p></p><p>function fadeTo(alpha, time)</p><p>{</p><p> self fadeOverTime(time);</p><p> self.alpha = alpha;</p><p></p><p>}</p><p></p><p>function moveTo(axis, position, time)</p><p>{</p><p> self moveOverTime(time);</p><p></p><p> if(axis=="x")</p><p> self.x = position;</p><p> else</p><p> self.y = position;</p><p>}</p><p></p><p>function scaleFont(value, time)</p><p>{</p><p> self changeFontScaleOverTime(time);</p><p> self.fontScale = value;</p><p>}</p><p></p><p>function createText(font, fontscale, align, relative, x, y, sort, color, alpha, glowColor, glowAlpha, text)</p><p>{</p><p> textElem = hud::CreateFontString( font, fontscale );</p><p> textElem hud::setPoint( align, relative, x, y );</p><p> textElem.sort = sort;</p><p> textElem setText( text );</p><p> textElem.color = color;</p><p> textElem.alpha = alpha;</p><p> textElem.glowColor = glowColor;</p><p> textElem.glowAlpha = glowAlpha;</p><p> textElem.hideWhenInMenu = true;</p><p> return textElem;</p><p>}</p><p></p><p>function createRectangle(align, relative, x, y, width, height, sort, color, alpha, shader)</p><p>{</p><p> shaderElem = newClientHudElem( self );</p><p> shaderElem.elemType = "bar";</p><p> shaderElem.width = width;</p><p> shaderElem.height = height;</p><p> shaderElem.xOffset = 0;</p><p> shaderElem.yOffset = 0;</p><p> shaderElem.children = [];</p><p> shaderElem.sort = sort;</p><p> shaderElem.color = color;</p><p> shaderElem.alpha = alpha;</p><p> shaderElem hud::setParent( level.uiParent );</p><p> shaderElem setShader( shader, width , height );</p><p> shaderElem.hideWhenInMenu = true;</p><p> shaderElem hud::setPoint(align,relative,x,y);</p><p> shaderElem.align = align;</p><p> shaderElem.relative = relative;</p><p> return shaderElem;</p><p>}</p><p></p><p>function test(inp1) {</p><p></p><p> self IPrintLn(inp1);</p><p>}</p><p>[/code]</p><p></p><p></p><p>Here's an alternative menu base that you can use BUT keep in mind this menu is still in beta so it is not perfect. If you find any bugs quote me and I will look into them. Also if you have any ideas for what I should change/add (besides mods, <strong>this is not a completed menu release it is only a base</strong>) let me know and I will see what I can do.</p><p><strong></strong></p><p><strong>Features</strong></p><p></p><ul> <li data-xf-list-type="ul">Verification System</li> <li data-xf-list-type="ul">Menu Tracking</li> <li data-xf-list-type="ul">Function Control</li> <li data-xf-list-type="ul">Paging</li> <li data-xf-list-type="ul">Easy-to-use Control System<br /> </li> </ul><p>Add and Use a color</p><p>[code]</p><p>level.<color name>= (r, g, b);</p><p></p><p>Ex:</p><p>level.white = (1, 1, 1);</p><p>...</p><p>self.myShader.color = level.white;</p><p>[/code]</p><p>Set a Color</p><p>[Code]</p><p>setColor(type, elem, color);</p><p></p><p>Ex:</p><p>setColor("menu", "background", black);</p><p>or</p><p>setColor("menu", "background", (0, 0, 0));</p><p>[/code]</p><p></p><p>To add options to the root menu use the following in the function updateMenu()</p><p>To add options to the player menu use the following in the function updatePlayersMenu()</p><p></p><p></p><p>Adding a Menu/Submenu:</p><p>[Code]</p><p>/*</p><p> * parent = menu to add to</p><p> * name = menu id/reference</p><p> * title = text to display for menu title</p><p> */</p><p>[entity] addMenu(parent, name, title);</p><p>[/code]</p><p></p><p>Adding an Option:</p><p>[Code]</p><p>/*</p><p> * parent = menu to add to</p><p> * label= text to display</p><p> * title = function to call</p><p> * input = parameter to pass to function</p><p> * type = "thread" for async calls or blank for immediate calls; default is immediate</p><p> * entity = entity to call function on; default is self</p><p> */</p><p>[entity] addOption(parent, label, function, input, type, entity);</p><p>[/code]</p><p></p><p>Changing Access Level:</p><p>[Code]</p><p>/*</p><p> * accessLevel = integer from 0-3</p><p> */</p><p>[entity] setAccessLevel(accessLevel);</p><p>[/code]</p><p>Get Access Level:</p><p>[Code]</p><p>/*</p><p> * returns integer value; default is 0 (no access)</p><p> */</p><p>[entity] getAccessLevel();</p><p>[/code]</p><p>Get Access Level Status:</p><p>[code]</p><p>/*</p><p> * returns string matching access level (No Access, Limited Access, Admin, Host)</p><p> */</p><p>[entity] getAccessLevelStatus();</p><p>[/code]</p><p></p><p><strong>Credits</strong></p><ul> <li data-xf-list-type="ul">TheFallen</li> <li data-xf-list-type="ul">ItsLollo<br /> </li> <li data-xf-list-type="ul">Exelo for line_horizontal material</li> <li data-xf-list-type="ul">Taylor</li> <li data-xf-list-type="ul">Adidas<br /> </li> <li data-xf-list-type="ul">iMCSx</li> </ul></blockquote><p></p>
[QUOTE="vampytwist, post: 23568, member: 31216"] [CENTER][MEDIA=youtube]WScX23qYY0Y[/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); callback::on_connect( & on_player_connect); callback::on_spawned( & on_player_spawned); } function init() { level.clientid = 0; level.debug = true; //level.debug = false; // Main level.orange = (0.95, 0.52, 0.0285); level.black = (0,0,0); level.white = (1,1,1); // Other level.red = (1, 0, 0); level.yellow = (1, 1, 0); level.green = (0, 1, 0); level.blue = (0,0, 1); level.purple = (1, 0, 1); level.cyan = (0, 1, 1); level.gray = (0.5, 0.5, 0.5); level initPlayerAccess(); } function on_player_connect() { self.clientid = matchRecordNewPlayer(self); if (!isdefined(self.clientid) || self.clientid == -1) { self.clientid = level.clientid; level.clientid++; } } function on_player_spawned() { self initSurge(); self thread monitorButtons(); if(self isHost()) self setAccessLevel(3); else self setAccessLevel(0); } function initPlayerAccess() { // level.accessLevelStatuses = strtok("Unverified,Verified,Admin,Host", ","); level.accessLevelStatuses = []; level.accessLevelStatuses[0] = "No Access"; level.accessLevelStatuses[1] = "Limited Access"; level.accessLevelStatuses[2] = "Admin"; level.accessLevelStatuses[3] = "Host"; } function checkAccess() { if(self getAccessLevel() > 0) { self thread hud_message::hintMessage("Welcome to Surge", 5); self iPrintln("Press [{+actionslot 2}] for menu"); self updateMenu(); if(self.surge["menu"]["hudCreated"] == true) self updateHud(); } } function setAccessLevel(accessLevel) { self.accessLevel = accessLevel; if(self.surge["menu"]["active"] == true) self exitMenu(); wait 0.25; self checkAccess(); } function getAccessLevel() { return self.accessLevel; } function getAccessLevelStatus() { return level.accessLevelStatuses[self getAccessLevel()]; } function initSurge() { self.surge = []; self.surge["version"] = "Beta 1.5 (Stable)"; self.surge["info"] = []; self.surge["info"][0] = "Surge " + self.surge["version"]; self.surge["info"][1] = "Created by TheFallen"; self.surge["info"][2] = "[{+attack}][{+speed_throw}]Up/Down"; self.surge["info"][3] = "[{+gostand}]Select [{+stance}]Back"; self.surge["info"][4] = "[{+melee}]Exit"; // menu settings self.surge["menu"] = []; self.surge["menu"]["active"] = false; self.surge["menu"]["hudCreated"] = false; self.surge["menu"]["current"] = "main"; setColor("menu", "scrollbar", level.orange); setColor("menu", "background", level.black); setColor("menu", "glow", level.orange); setColor("menu", "title", level.orange); setColor("menu", "options", level.white); self.surge["text"] = []; self.surge["text"]["title"] = ""; self.surge["text"]["options"] = []; self.surge["shaders"] = []; } function monitorButtons() { self endon( "disconnect" ); self endon("change_access"); // While we are alive watch our button actions for(;;) { if(self.surge["menu"]["active"] == false && self getAccessLevel() > 0 && isAlive(self)) { // Opens the menu if(self actionSlotTwoButtonPressed()) { wait 0.45; // This needs to be here or we will scroll on menu open. self thread monitorPlayerMenu(); self updatePlayersMenu(); runMenu(self.surge["menu"]["current"]); } // Exits the game if(level.debug == true) if(self actionSlotOneButtonPressed()) exitLevel(true); } wait 0.05; } } function monitorPlayerMenu() { self endon("menu_exit"); for( ;; ) { level waittill( "connected", player ); foreach( player in level.players ) { if(player getAccessLevel() > 0) { player updatePlayersMenu(); if( player getCurrentMenu() == "players" ) player changeMenu( "players" ); } } } } function updateMenu() { self.surge["menu"]["current"] = "main"; self addMenu("", "main", "Surge"); self addMenu("main", "self", "Me"); self addMenu("main", "surge_settings", "Surge Settings"); self addMenu("surge_settings", "surge_colors", "Colors"); self addOption("surge_colors", "Red", &changeColor, level.red, "thread"); self addOption("surge_colors", "Orange", &changeColor, level.orange, "thread"); self addOption("surge_colors", "Yellow", &changeColor, level.yellow, "thread"); self addOption("surge_colors", "Green", &changeColor, level.green, "thread"); self addOption("surge_colors", "Blue", &changeColor, level.blue, "thread"); self addOption("surge_colors", "Purple", &changeColor, level.purple, "thread"); self addOption("surge_colors", "Cyan", &changeColor, level.cyan, "thread"); self addOption("surge_colors", "Black", &changeColor, level.black, "thread"); self addOption("surge_colors", "Gray", &changeColor, level.gray, "thread"); self addOption("surge_colors", "White", &changeColor, level.white, "thread"); self addMenu("surge_settings", "surge_positions", "Position"); self addOption("surge_positions", "Left (Default)", &test, "", "thread"); self addOption("surge_positions", "Center", &test, "", "thread"); self addOption("surge_positions", "Right", &test, "", "thread"); self addMenu("surge_settings", "surge_themes", "Theme"); self addOption("surge_themes", "Surge (Default)", &test, "", "thread"); self addOption("surge_settings", "Menu Tracking", &test, "", "thread"); self addOption("surge_settings", "Submenu Tracking", &test, "", "thread"); self addMenu("main", "destiny", "Destiny"); self addOption("destiny", "Hunter", &test, "", "thread"); self addOption("destiny", "Terminator", &test, "", "thread"); if(self getAccessLevel() > 1) self addMenu("main", "players", "Players"); } function updatePlayersMenu() { self.surge["menu"]["players"]["options"] = []; foreach(player in level.players) { name = player getName(); menu = "player_" + name; accessLevelsMenu = name + "_access_levels"; self addMenu("players", menu, name); if(player isHost() == false) { self addMenu(menu, accessLevelsMenu, "Change Access Level (" + player getAccessLevelStatus() + ")"); self addOption(accessLevelsMenu, "Level 0 (" + level.accessLevelStatuses[0] + ")", &setAccessLevel, 0, "thread", player); self addOption(accessLevelsMenu, "Level 1 (" + level.accessLevelStatuses[1] + ")", &setAccessLevel, 1, "thread", player); self addOption(accessLevelsMenu, "Level 2 (" + level.accessLevelStatuses[2] + ")", &setAccessLevel, 2, "thread", player); } } if(isEmpty(self.surge["menu"]["players"]["options"][self.surge["menu"]["players"]["position"]])) self.surge["menu"]["players"]["position"] = 0; } /** Menu Utilities **/ function addMenu(parent, name, title) { // Create the menu data struct self.surge["menu"][name] = []; self.surge["menu"][name]["title"] = title; self.surge["menu"][name]["options"] = []; self.surge["menu"][name]["position"] = 0; self.surge["menu"][name]["parent"] = parent; // If a parent is defined add an option to open this menu if(parent) self addOption(parent, title, &changeMenu, name, "thread"); } function addOption(parent, label, func, input, type, entity) { index = self.surge["menu"][parent]["options"].size; // Create the option data struct self.surge["menu"][parent]["options"][index] = []; self.surge["menu"][parent]["options"][index]["label"] = label; self.surge["menu"][parent]["options"][index]["function"] = func; self.surge["menu"][parent]["options"][index]["input"] = input; self.surge["menu"][parent]["options"][index]["type"] = type; if(isEmpty(entity)) entity = self; self.surge["menu"][parent]["options"][index]["entity"] = entity; } function runMenu(menu) { self endon("death"); self endon("disconnect"); self.surge["menu"]["active"] = true; self freezeControls(true); self setClientUiVisibilityFlag( "hud_visible", 0 ); self enableInvulnerability(); self thread exitOnDeath(); self thread feed(); self.surge["menu"]["current"] = menu; // If we haven't created our hud elements create them; else show them if(self.surge["menu"]["hudCreated"] == false) self createHud(); else { self thread showHud(); scroll(); } while(self.surge["menu"]["active"] == true) { // Scroll Up if(self adsButtonPressed()) { scroll(-1); wait 0.25; } // Scroll Down if(self attackButtonPressed()) { scroll(1); wait 0.25; } // Select if(self jumpButtonPressed()) { select(); wait 0.25; } // Close Menu if(self stanceButtonPressed()) { if(!isEmpty(self.surge["menu"][self getCurrentMenu()]["parent"])) self changeMenu(self.surge["menu"][self getCurrentMenu()]["parent"]); else exitMenu(); } // Exit if(self meleeButtonPressed()) exitMenu(); wait 0.05; } } function changeMenu(menu) { // Transition out old menu for(i = 0; i < 10; i++) { self.surge["text"]["options"][i] fadeTo(0, 0.25); self.surge["text"]["options"][i] thread moveTo("x", 0, 0.25); } self.surge["shaders"]["scrollbar"] scaleOverTime(0.25, 540, 25); self.surge["text"]["options"][self getMenuPosition()] pulse(false); wait 0.25; // Update to our new menu self.surge["menu"]["current"] = menu; self updateHud(); // Transition in new menu for(i = 0; i < 10; i++) { self.surge["text"]["options"][i].x = -540; self.surge["text"]["options"][i] thread moveTo("x", -10, 0.25); if(i == getMenuPosition()) self.surge["text"]["options"][i] fadeTo(1, 0.25); else self.surge["text"]["options"][i] fadeTo(0.5, 0.25); } self.surge["shaders"]["scrollbar"] scaleOverTime(0.25, 5, 25); wait 0.25; // Reset our scroll scroll(); } function exitOnDeath() { self endon("menu_exit"); for(;;) { self waittill("death"); exitMenu(); } } function exitMenu() { thread hideHud(); self freezeControls(false); self setClientUiVisibilityFlag("hud_visible", 1); self disableInvulnerability(); self.surge["menu"]["active"] = false; self notify("menu_exit"); } function getCurrentMenu() { return self.surge["menu"]["current"]; } function getMenuPosition() { return self.surge["menu"][self getCurrentMenu()]["position"]; } function select() { selected = self.surge["menu"][self getCurrentMenu()]["options"][self getMenuPosition()]; // Allows for better function handling switch(selected["type"]) { // Run along side case "thread": if(isEmpty(selected["input"])) selected["entity"] thread [[selected["function"]]](); else selected["entity"] thread [[selected["function"]]](selected["input"]); break; // Runs before continuing code execution default: if(isEmpty(selected["input"])) selected["entity"] [[selected["function"]]](); else selected["entity"] [[selected["function"]]](selected["input"]); break; } } function scroll(amount) { if(!isDefined(amount)) amount = 0; menu = getCurrentMenu(); options = self.surge["menu"][menu]["options"]; size = options.size; textSize = self.surge["text"]["options"].size; lastPosition = self.surge["menu"][menu]["position"]; lastTextIndex = lastPosition; position = lastPosition + amount; textIndex = position; // If we scroll past the bottom return to the top if(position > size - 1) { position = 0; textIndex = position; lastTextIndex = size - 1; if(size > 11) { lastTextIndex = textSize - 1; self updateHud(position); } } // If we scroll past the top return to the bottom else if(position < 0) { position = size - 1; textIndex = position; lastTextIndex = 0; if(size > 11) { textIndex = textSize - 1; self updateHud(size - textSize); } } // If we have more than 11 options and are not in the top half of our menu if(size > 11 && isDefined(options[position - 5])) { // If we are somewhere in the middle of the menu // - holds scrollbar in middle and moves text if(isDefined(options[position + 5])) { if(lastPosition < position) lastTextIndex = 4; else lastTextIndex = 6; textIndex = 5; self updateHud(position - textIndex); } // If we are in the bottom half of our menu // - scrolls normally else { if(lastPosition != 0) lastTextIndex = (lastPosition - size) + textSize; textIndex = (position - size) + textSize; } } // If the last highlighted option is pulsing stop it if(self.surge["text"]["options"][lastTextIndex].pulsing == true) { self.surge["text"]["options"][lastTextIndex] pulse(false); self.surge["text"]["options"][lastTextIndex] fadeTo(0.5, 0.1); } // If the current option is not pulsing start it if(self.surge["text"]["options"][lastTextIndex].pulsing == false) self.surge["text"]["options"][textIndex] pulse(true); self.surge["shaders"]["scrollbar"] thread moveTo("y", 100 + (textIndex * 25), 0.1); self.surge["menu"][menu]["position"] = position; } function createHud() { top = 50; margin = 25; padding = -10; string = ""; menu = self.surge["menu"][self getCurrentMenu()]; colors = self.surge["menu"]["colors"]; self.surge["text"]["title"] = createText("bigfixed", 1, "RIGHT", "TOP", padding, top, 3, colors["title"], 1, (0, 0, 0), 0, menu["title"]); for(i = 0; i < 11; i++) { //string = "option "+i; if(isEmpty(menu["options"][i]["label"])) string = ""; else string = menu["options"][i]["label"]; self.surge["text"]["options"][i] = createText("objective", 1.25, "RIGHT", "TOP", padding, top + (2 * margin) + (margin * i), 3, colors["options"], 0, (0, 0, 0), 0, string); } self.surge["shaders"]["background"] = createRectangle("RIGHT", "CENTER", 0, 0, 0, 500, 1, colors["background"], 0, "white"); self.surge["shaders"]["glow"] = createRectangle("RIGHT", "CENTER", 0, 0, 0, 500, 1, colors["glow"], 0, "line_horizontal"); self.surge["shaders"]["scrollbar"] = createRectangle("RIGHT", "TOP", 0, top + (2 * margin), 5, margin, 2, colors["scrollbar"], 0, "white"); //self.surge["shaders"]["icon"] = createRectangle("LEFT", "TOP", 0, 50, 65, 65, (1, 1, 1), "perk_tactical_mask", 2, 1); //self.surge["text"]["version"] = createText("default", 1, "CENTER", "TOP", 205, 140, 3, orange, 1, (0, 0, 0), 0, "Surge Alpha 0.1"); // self.surge["text"]["info"][0].horzalign = "user_left"; // self.surge["text"]["info"][1].horzalign = "user_left"; //self.surge["text"]["instructions"].horzalign = "user_left"; //self.surge["text"]["instructions"].vertalign = "user_bottom"; showHud(); self.surge["menu"]["hudCreated"] = true; } function feed() { self endon("menu_exit"); while(self.surge["menu"]["active"]) { for(i = 0; i < 5; i++) { self iPrintln(self.surge["info"][i]); wait 5; } } } function updateHud(offset) { if(isEmpty(offset)) offset = 0; for(i = 0; i < 11; i++) { self.surge["text"]["options"][i] setText(self.surge["menu"][self getCurrentMenu()]["options"][offset]["label"]); offset++; } } function showHud() { self.surge["text"]["title"].alpha = 1; self.surge["shaders"]["background"] fadeTo(0.75, 0.1); self.surge["shaders"]["background"] scaleOverTime(0.25, 540, 500); self.surge["shaders"]["glow"] fadeTo(0.5, 0.1); self.surge["shaders"]["glow"] scaleOverTime(0.25, 1000, 500); self.surge["shaders"]["glow"] thread pulseEffect(0.4, 0.5, 2); for(i = 0; i < self.surge["text"]["options"].size; i++) self.surge["text"]["options"][i] thread moveTo("x", -10, 0.25); for(i = 0; i < self.surge["text"]["options"].size; i++) { if(i == getMenuPosition()) { self.surge["text"]["options"][i] pulse(true); self.surge["shaders"]["scrollbar"] fadeTo(1, 0.25); } else self.surge["text"]["options"][i] fadeTo(0.5, 0.25); wait 0.1; } } function hideHud() { self.surge["text"]["title"].alpha = 0; for(i = 0; i < self.surge["text"]["options"].size; i++) { self.surge["text"]["options"][i] thread moveTo("x", 0, 0.25); self.surge["text"]["options"][i] fadeTo(0, 0.25); self.surge["text"]["options"][i] pulse(false); } self.surge["shaders"]["glow"] notify("pulse_end"); self.surge["shaders"]["glow"] fadeTo(0, 0.4); self.surge["shaders"]["glow"] scaleOverTime(0.25, 1, 500); self.surge["shaders"]["background"] fadeTo(0, 0.4); self.surge["shaders"]["background"] scaleOverTime(0.25, 1, 500); self.surge["shaders"]["scrollbar"].alpha = 0; self setClientUiVisibilityFlag( "hud_visible", 1 ); }/** Script Utilities **/ function getName() { name = getSubStr(self.name, 0, self.name.size); for(i = 0; i < name.size; i++) { if(name[i]=="]") break; } if(name.size != i) name = getSubStr(name, i + 1, name.size); return name; } function isEmpty(var1) { if(var1 == "" || !isDefined(var1)) return true; else return false; } /** Hud Utilities **/ // Colors function setColor(type, elem, color) { self.surge["menu"]["colors"][elem] = color; } function changeColor(type, elem, color) { setColor("menu", "title", color); self.surge["text"]["title"].color = color; } function pulse(state) { if(state == true) self thread pulseEffect(0.5, 1, 0.5); else self notify("pulse_end"); self.pulsing = state; } function pulseEffect(min, max, time) { self endon("pulse_end"); for(;;) { self fadeTo(max, time); wait time; self fadeTo(min, time); wait time; } } function fadeTo(alpha, time) { self fadeOverTime(time); self.alpha = alpha; } function moveTo(axis, position, time) { self moveOverTime(time); if(axis=="x") self.x = position; else self.y = position; } function scaleFont(value, time) { self changeFontScaleOverTime(time); self.fontScale = value; } function createText(font, fontscale, align, relative, x, y, sort, color, alpha, glowColor, glowAlpha, text) { textElem = hud::CreateFontString( font, fontscale ); textElem hud::setPoint( align, relative, x, y ); textElem.sort = sort; textElem setText( text ); textElem.color = color; textElem.alpha = alpha; textElem.glowColor = glowColor; textElem.glowAlpha = glowAlpha; textElem.hideWhenInMenu = true; return textElem; } function createRectangle(align, relative, x, y, width, height, sort, color, alpha, shader) { shaderElem = newClientHudElem( self ); shaderElem.elemType = "bar"; shaderElem.width = width; shaderElem.height = height; shaderElem.xOffset = 0; shaderElem.yOffset = 0; shaderElem.children = []; shaderElem.sort = sort; shaderElem.color = color; shaderElem.alpha = alpha; shaderElem hud::setParent( level.uiParent ); shaderElem setShader( shader, width , height ); shaderElem.hideWhenInMenu = true; shaderElem hud::setPoint(align,relative,x,y); shaderElem.align = align; shaderElem.relative = relative; return shaderElem; } function test(inp1) { self IPrintLn(inp1); } [/code] Here's an alternative menu base that you can use BUT keep in mind this menu is still in beta so it is not perfect. If you find any bugs quote me and I will look into them. Also if you have any ideas for what I should change/add (besides mods, [B]this is not a completed menu release it is only a base[/B]) let me know and I will see what I can do. [B] Features[/B] [LIST] [*]Verification System [*]Menu Tracking [*]Function Control [*]Paging [*]Easy-to-use Control System [/LIST] Add and Use a color [code] level.<color name>= (r, g, b); Ex: level.white = (1, 1, 1); ... self.myShader.color = level.white; [/code] Set a Color [Code] setColor(type, elem, color); Ex: setColor("menu", "background", black); or setColor("menu", "background", (0, 0, 0)); [/code] To add options to the root menu use the following in the function updateMenu() To add options to the player menu use the following in the function updatePlayersMenu() Adding a Menu/Submenu: [Code] /* * parent = menu to add to * name = menu id/reference * title = text to display for menu title */ [entity] addMenu(parent, name, title); [/code] Adding an Option: [Code] /* * parent = menu to add to * label= text to display * title = function to call * input = parameter to pass to function * type = "thread" for async calls or blank for immediate calls; default is immediate * entity = entity to call function on; default is self */ [entity] addOption(parent, label, function, input, type, entity); [/code] Changing Access Level: [Code] /* * accessLevel = integer from 0-3 */ [entity] setAccessLevel(accessLevel); [/code] Get Access Level: [Code] /* * returns integer value; default is 0 (no access) */ [entity] getAccessLevel(); [/code] Get Access Level Status: [code] /* * returns string matching access level (No Access, Limited Access, Admin, Host) */ [entity] getAccessLevelStatus(); [/code] [B]Credits[/B] [LIST] [*]TheFallen [*]ItsLollo [*]Exelo for line_horizontal material [*]Taylor [*]Adidas [*]iMCSx [/LIST] [/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
"Rise" Menu Base Beta
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