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
Call of Duty: Black Ops 3 Scripts Question
Call of Duty: Black Ops 3 Answered Questions
Can someone test this?
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="Cxwh" data-source="post: 14379" data-attributes="member: 22664"><p style="text-align: center"></p> <p style="text-align: center">As I said can someone test this for me?</p> <p style="text-align: center">And if it doesn't work tell me where the error is?</p> <p style="text-align: center"><span style="font-size: 12px">(if the error gets displayed)</span></p> <p style="text-align: center"></p> <p style="text-align: center">[SPOILER]</p> <p style="text-align: center">[CODE]#using scripts\mp\_util;</p> <p style="text-align: center">#using scripts\codescripts\struct;</p> <p style="text-align: center">#using scripts\shared\util_shared;</p> <p style="text-align: center">#using scripts\shared\system_shared;</p> <p style="text-align: center">#using scripts\shared\callbacks_shared;</p> <p style="text-align: center">#using scripts\shared\hud_util_shared;</p> <p style="text-align: center">#using scripts\shared\hud_message_shared;</p> <p style="text-align: center"></p> <p style="text-align: center">#insert scripts\shared\shared.gsh;</p> <p style="text-align: center"></p> <p style="text-align: center">#namespace clientids;</p> <p style="text-align: center"></p> <p style="text-align: center">REGISTER_SYSTEM( "clientids", &__init__, undefined )</p> <p style="text-align: center"> </p> <p style="text-align: center">function __init__()</p> <p style="text-align: center">{</p> <p style="text-align: center"> callback::on_start_gametype( &init );</p> <p style="text-align: center"> callback::on_connect( &onPlayerConnect );</p> <p style="text-align: center"> callback::on_disconnect( &onPlayerDisconnect );</p> <p style="text-align: center"> callback::on_player_killed( &onPlayerKilled );</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function init()</p> <p style="text-align: center">{</p> <p style="text-align: center"> level.clientid = 0;</p> <p style="text-align: center"> //level.strings = [];</p> <p style="text-align: center"></p> <p style="text-align: center"> level.access = [];</p> <p style="text-align: center"> level.access[0] = "No Access";</p> <p style="text-align: center"> level.access[1] = "Access Level 1";</p> <p style="text-align: center"> level.access[2] = "Access Level 2";</p> <p style="text-align: center"> level.access[3] = "Access Level 3";</p> <p style="text-align: center"> level.access[4] = "Access Level 4";</p> <p style="text-align: center"></p> <p style="text-align: center"> level.allPlayersConnected = false;</p> <p style="text-align: center"> level.debug = false;</p> <p style="text-align: center"></p> <p style="text-align: center"> level onGameEnded();</p> <p style="text-align: center"></p> <p style="text-align: center"> level waittill("all_players_connected");</p> <p style="text-align: center"> level.allPlayersConnected = true;</p> <p style="text-align: center"> level.allPlayers = getPlayers();</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function onPlayerConnect()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self setClientId();</p> <p style="text-align: center"> if(!isDefined(self.info))</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.info = [];</p> <p style="text-align: center"> self.info["name"] = self getName();</p> <p style="text-align: center"> self.info["clan"] = self getClan();</p> <p style="text-align: center"> self.info["perm"] = (self isHost()) ? level.access[4] : level.access[0];</p> <p style="text-align: center"> self.info["init"] = false; //player has had access to menu</p> <p style="text-align: center"> }</p> <p style="text-align: center"></p> <p style="text-align: center"> if(level.allPlayersConnected)</p> <p style="text-align: center"> level notify("player_connected"); //for the players menu (which will be added later)</p> <p style="text-align: center"></p> <p style="text-align: center"> self thread onPlayerSpawned();</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function onPlayerSpawned()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self endon("disconnect");</p> <p style="text-align: center"> level endon("game_ended");</p> <p style="text-align: center"> </p> <p style="text-align: center"> for(;;)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self waittill("spawned_player");</p> <p style="text-align: center"> if(self isAllowed(1))</p> <p style="text-align: center"> {</p> <p style="text-align: center"> //just for now will be replaced with a welcome message later on</p> <p style="text-align: center"> self iPrintLn("instructions");</p> <p style="text-align: center"> self iPrintLn("melee and aim to open");</p> <p style="text-align: center"> self iPrintLn("actionslot 1 and 2 to scroll");</p> <p style="text-align: center"> self iPrintLn("use button to exit");</p> <p style="text-align: center"></p> <p style="text-align: center"> if(!self.info["init"])</p> <p style="text-align: center"> {</p> <p style="text-align: center"> /*if(self isHost())</p> <p style="text-align: center"> level thread overflowfix();*/</p> <p style="text-align: center"></p> <p style="text-align: center"> self thread MenuInit();</p> <p style="text-align: center"> self.info["init"] = true;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function onPlayerKilled()</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(self isAllowed(1))</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self submenu("Main Menu");</p> <p style="text-align: center"> self closeMenu();</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function onPlayerDisconnect()</p> <p style="text-align: center">{</p> <p style="text-align: center"> level notify("player_diconnected");</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function onGameEnded()</p> <p style="text-align: center">{</p> <p style="text-align: center"> level waittill("game_ended");</p> <p style="text-align: center"> //do something</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function setClientId()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self.clientid = matchRecordNewPlayer( self );</p> <p style="text-align: center"> if(!isdefined( self.clientid ) || self.clientid == -1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.clientid = level.clientid;</p> <p style="text-align: center"> level.clientid++;</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function getName()</p> <p style="text-align: center">{</p> <p style="text-align: center"> name = getSubStr(self.name, 0, self.name.size);</p> <p style="text-align: center"> for(i = 0; i < name.size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(name[i] == "]")</p> <p style="text-align: center"> break;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(name.size != i)</p> <p style="text-align: center"> name = getSubStr(name, i + 1, name.size);</p> <p style="text-align: center"> return name;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function getClan()</p> <p style="text-align: center">{</p> <p style="text-align: center"> clan = getSubStr(self.name, 0, self.name.size);</p> <p style="text-align: center"> if(clan[0] != "[")</p> <p style="text-align: center"> return "";</p> <p style="text-align: center"> for(i = 0; i < clan.size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if (clan[i] == "]")</p> <p style="text-align: center"> break;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> clan = getSubStr(clan, 1, i);</p> <p style="text-align: center"> return clan;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function isAllowed(n)</p> <p style="text-align: center">{</p> <p style="text-align: center"> return (verToNum(self.info["perm"]) >= n);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function Iif(bool, rTrue, rFalse)</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(bool)</p> <p style="text-align: center"> return rTrue;</p> <p style="text-align: center"> else</p> <p style="text-align: center"> return rFalse;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function verToNum(n)</p> <p style="text-align: center">{</p> <p style="text-align: center"> switch(n)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> case level.access[4]:</p> <p style="text-align: center"> return 4;</p> <p style="text-align: center"></p> <p style="text-align: center"> case level.access[3]:</p> <p style="text-align: center"> return 3;</p> <p style="text-align: center"> </p> <p style="text-align: center"> case level.access[2]:</p> <p style="text-align: center"> return 2;</p> <p style="text-align: center"> </p> <p style="text-align: center"> case level.access[1]:</p> <p style="text-align: center"> return 1;</p> <p style="text-align: center"> </p> <p style="text-align: center"> default:</p> <p style="text-align: center"> return 0;</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function MenuInit()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self endon("disconnect");</p> <p style="text-align: center"> self endon("unverified");</p> <p style="text-align: center"> level endon("game_ended");</p> <p style="text-align: center"></p> <p style="text-align: center"> self.menu = [];</p> <p style="text-align: center"> self.menu["vars"] = [];</p> <p style="text-align: center"></p> <p style="text-align: center"> self.menu["hud"] = [];</p> <p style="text-align: center"> self.menu["hud"]["background"] = self drawShader("CENTER", "CENTER", 0, 0, "white", 260, 800, (0, 0, 0), 0, 1);</p> <p style="text-align: center"></p> <p style="text-align: center"> self.menu["locked"] = false;</p> <p style="text-align: center"> self.menu["controls"] = true;</p> <p style="text-align: center"> self createMenu();</p> <p style="text-align: center"></p> <p style="text-align: center"> for(;;)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(!self.menu["active"] && self.menu["controls"])</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self MeleeButtonPressed() && self AdsButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self updateText("Main Menu");</p> <p style="text-align: center"> self.menu["hud"]["background"] elemFade(0.1, 1);</p> <p style="text-align: center"> self.menu["active"] = true;</p> <p style="text-align: center"> if(self isHost())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> setDvar("r_waterSheetingFX_enable", "1"); //no idea if this works (the dvar)</p> <p style="text-align: center"> if(self ActionSlotThreeButtonPressed() && level.debug)</p> <p style="text-align: center"> exitLevel();</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> self PlayLocalSound("");</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(self.menu["active"] && !self.menu["locked"])</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread scrollbarEffect();</p> <p style="text-align: center"> if(self ActionSlotOneButtonPressed() || self ActionSlotTwoButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self scroll(Iif(self ActionSlotOneButtonPressed(), -1, 1));</p> <p style="text-align: center"> self PlayLocalSound("");</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(self UseButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(isDefined(self.menu[self.menu["current"]]["parent"]))</p> <p style="text-align: center"> self submenu(self.menu[self.menu["current"]]["parent"]);</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self closeMenu();</p> <p style="text-align: center"></p> <p style="text-align: center"> self PlayLocalSound("");</p> <p style="text-align: center"> wait(0.2);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(self JumpButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread [[self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["position"]]["function"]]](self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["position"]]["input"], self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["position"]]["input1"]);</p> <p style="text-align: center"> self PlayLocalSound("");</p> <p style="text-align: center"> wait(0.2);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> wait(0.05);</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function createMenu()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self addMenu(undefined, "Main Menu", level.access[0])</p> <p style="text-align: center"></p> <p style="text-align: center"> self addMenu("Main Menu", "SubMenu 1", level.access[1])</p> <p style="text-align: center"> self addOption("SubMenu 1", "Option 1", &test);</p> <p style="text-align: center"> self addOption("SubMenu 1", "Option 2", &test);</p> <p style="text-align: center"> self addOption("SubMenu 1", "Option 3", &test);</p> <p style="text-align: center"></p> <p style="text-align: center"> self addMenu("Main Menu", "SubMenu 2", level.access[1])</p> <p style="text-align: center"> self addOption("SubMenu 2", "Option 1", &test);</p> <p style="text-align: center"> self addOption("SubMenu 2", "Option 2", &test);</p> <p style="text-align: center"> self addOption("SubMenu 2", "Option 3", &test);</p> <p style="text-align: center"></p> <p style="text-align: center"> self addMenu("Main Menu", "SubMenu 3", level.access[1])</p> <p style="text-align: center"> self addOption("SubMenu 3", "Option 1", &test);</p> <p style="text-align: center"> self addOption("SubMenu 3", "Option 2", &test);</p> <p style="text-align: center"> self addOption("SubMenu 3", "Option 3", &test);</p> <p style="text-align: center"></p> <p style="text-align: center"> //self thread updatePlayers();</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function addMenu(parent, name, perm)</p> <p style="text-align: center">{</p> <p style="text-align: center"> self.menu[name] = [];</p> <p style="text-align: center"> self.menu[name]["options"] = [];</p> <p style="text-align: center"> self.menu[name]["parent"] = parent;</p> <p style="text-align: center"> self.menu[name]["label"] = name;</p> <p style="text-align: center"> self.menu[name]["perm"] = perm;</p> <p style="text-align: center"> self.menu[name]["position"] = 0;</p> <p style="text-align: center"></p> <p style="text-align: center"> if(!isEmpty(parent))</p> <p style="text-align: center"> self addOption(parent, name, &submenu, name);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function addOption(parent, label, func, arg1, arg2)</p> <p style="text-align: center">{</p> <p style="text-align: center"> index = self.menu[parent]["options"].size;</p> <p style="text-align: center"> self.menu[parent]["options"][index] = [];</p> <p style="text-align: center"> self.menu[parent]["options"][index]["label"] = label;</p> <p style="text-align: center"> self.menu[parent]["options"][index]["function"] = func;</p> <p style="text-align: center"> self.menu[parent]["options"][index]["input"] = arg1;</p> <p style="text-align: center"> self.menu[parent]["options"][index]["input1"] = arg2;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function scroll(num)</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(num == -1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self.menu[self.menu["current"]]["position"] < 0)</p> <p style="text-align: center"> self.menu[self.menu["current"]]["position"] = (self.menu[self.menu["current"]]["options"].size - 1);</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self.menu[self.menu["current"]]["position"]--;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(num == 1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self.menu[self.menu["current"]]["position"] > (self.menu[self.menu["current"]]["options"].size - 1))</p> <p style="text-align: center"> self.menu[self.menu["current"]]["position"] = 0;</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self.menu[self.menu["current"]]["position"]++;</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function submenu(input)</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(self isAllowed(verToNum(self.menu[input]["perm"])))</p> <p style="text-align: center"> {</p> <p style="text-align: center"> for(i = 0; i < self.menu[input]["options"].size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.menu["hud"]["options"][i] destroy();</p> <p style="text-align: center"> }</p> <p style="text-align: center"> //self.menu["hud"]["options"] = [];</p> <p style="text-align: center"> self.menu["current"] = input;</p> <p style="text-align: center"> self updateText(input);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self iPrintLn("^1You do not have permission to access this menu!");</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function updateText(input)</p> <p style="text-align: center">{</p> <p style="text-align: center"> self.menu["current"] = input;</p> <p style="text-align: center"> self.menu["hud"]["title"] destroy();</p> <p style="text-align: center"> self.menu["hud"]["title"] = self drawText("default", 2.4, input, "CENTER", "TOP", 0, 0, 10000, true, 0, (1, 1, 1), 1, (1, 0, 0));</p> <p style="text-align: center"> self.menu["hud"]["title"] elemFade(0.1, 1);</p> <p style="text-align: center"> </p> <p style="text-align: center"> self.menu["hud"]["options"] = [];</p> <p style="text-align: center"> for(i = 0; i < self.menu[input]["options"].size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.menu["hud"]["options"][i] destroy();</p> <p style="text-align: center"> self.menu["hud"]["options"][i] = self drawText("hudbig", 1.4, self.menu[input]["options"][i]["label"], "CENTER", "TOP", 0, 25 + (i * 20), 10000, true, 0, (1, 1, 1));</p> <p style="text-align: center"> self.menu["hud"]["options"][i] elemFade(0.1, 1);</p> <p style="text-align: center"> } </p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function scrollbarEffect()</p> <p style="text-align: center">{</p> <p style="text-align: center"> for(i = 0; i < self.menu[self.menu["current"]]["options"].size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(i == self.menu[self.menu["current"]]["position"])</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.menu["hud"]["options"][i].color = (1, 1, 1);</p> <p style="text-align: center"> self.menu["hud"]["options"][i].fontScale = 2.2;</p> <p style="text-align: center"> self.menu["hud"]["options"][i].glowAlpha = 1;</p> <p style="text-align: center"> self.menu["hud"]["options"][i].glowColor = (1, 0, 0);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.menu["hud"]["options"][i].color = (1, 1, 1);</p> <p style="text-align: center"> self.menu["hud"]["options"][i].fontScale = 1.5;</p> <p style="text-align: center"> self.menu["hud"]["options"][i].glowAlpha = 0;</p> <p style="text-align: center"> self.menu["hud"]["options"][i].glowColor = (1, 1, 1);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function closeMenu()</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(self ishost())</p> <p style="text-align: center"> setDvar("r_waterSheetingFX_enable", "0");</p> <p style="text-align: center"></p> <p style="text-align: center"> self.menu["hud"]["background"] elemFade(0.1, 0);</p> <p style="text-align: center"> self.menu["hud"]["title"] elemFade(0.1, 0);</p> <p style="text-align: center"></p> <p style="text-align: center"> for(i = 0; i < self.menu["hud"]["options"].size; i++)</p> <p style="text-align: center"> { self.menu["hud"]["options"][i] elemFade(0.1, 0); }</p> <p style="text-align: center"></p> <p style="text-align: center"> self.menu["active"] = false;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function drawShader(align, relative, x, y, shader, width, height, color, alpha, sort)</p> <p style="text-align: center">{</p> <p style="text-align: center"> barElemBG = newClientHudElem( self );</p> <p style="text-align: center"> barElemBG.elemType = "bar";</p> <p style="text-align: center"> if(!level.splitScreen)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> barElemBG.x = -2;</p> <p style="text-align: center"> barElemBG.y = -2;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> barElemBG.width = width;</p> <p style="text-align: center"> barElemBG.height = height;</p> <p style="text-align: center"> barElemBG.align = align;</p> <p style="text-align: center"> barElemBG.relative = relative;</p> <p style="text-align: center"> barElemBG.xOffset = 0;</p> <p style="text-align: center"> barElemBG.yOffset = 0;</p> <p style="text-align: center"> barElemBG.children = [];</p> <p style="text-align: center"> barElemBG.sort = sort;</p> <p style="text-align: center"> barElemBG.color = color;</p> <p style="text-align: center"> barElemBG.alpha = alpha;</p> <p style="text-align: center"> barElemBG hud::setParent(level.uiParent);</p> <p style="text-align: center"> barElemBG setShader(shader, width , height);</p> <p style="text-align: center"> barElemBG.hidden = false;</p> <p style="text-align: center"> barElemBG hud::setPoint(align, relative, x, y);</p> <p style="text-align: center"> return barElemBG;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function drawText(font, fontScale, text, point, relative, xOffset, yOffset, sort, hideWhenInMenu, alpha, color, glowAlpha, glowColor)</p> <p style="text-align: center">{</p> <p style="text-align: center"> textElem = hud::createFontString(font, fontScale);</p> <p style="text-align: center"> textElem setText(text);</p> <p style="text-align: center"> textElem hud::setPoint(point, relative, xOffset, yOffset);</p> <p style="text-align: center"> textElem.sort = sort;</p> <p style="text-align: center"> textElem.hideWhenInMenu = hideWhenInMenu;</p> <p style="text-align: center"> textElem.alpha = alpha;</p> <p style="text-align: center"> textElem.color = color;</p> <p style="text-align: center"> textElem.glowAlpha = glowAlpha;</p> <p style="text-align: center"> textElem.glowColor = glowColor;</p> <p style="text-align: center"> return textElem;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function drawValue(fontSize, sorts, value, align, relative, x, y, alpha, color)</p> <p style="text-align: center">{</p> <p style="text-align: center"> uiElement = hud::createFontString("default", fontSize);</p> <p style="text-align: center"> uiElement hud::setPoint(align, relative, x, y);</p> <p style="text-align: center"> uiElement setvalue(value);</p> <p style="text-align: center"> uiElement.sort = sorts;</p> <p style="text-align: center"> uiElement.hidewheninmenu = true;</p> <p style="text-align: center"> uiElement.alpha = alpha;</p> <p style="text-align: center"> uiElement.color = color;</p> <p style="text-align: center"> return uiElement;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function elemFade(time, alpha)</p> <p style="text-align: center">{</p> <p style="text-align: center"> self.fadeovertime = time;</p> <p style="text-align: center"> self.alpha = alpha;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function test()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self iPrintLn("^1test");</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">/*</p> <p style="text-align: center">function updatePlayers()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self addMenu("Main Menu", "Players Menu", level.access[4]);</p> <p style="text-align: center"> for(;;)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> level util::waittill_any("player_diconnected", "player_connected", "all_players_connected", "player_kicked");</p> <p style="text-align: center"> foreach(player in level.players)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(player isHost() == false)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> name = player.info["name"] " [" + player.info["perm"] + "]";</p> <p style="text-align: center"></p> <p style="text-align: center"> self addMenu("Players Menu", name, level.access[0]);</p> <p style="text-align: center"> self addOption(name, "Kill Player", &killPlayer, player);</p> <p style="text-align: center"> self addOption(name, "Kick Player", &kickPlayer, player);</p> <p style="text-align: center"> self addOption(name, "Ban Player", &kickPlayer, player, "ban");</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function killPlayer(player)</p> <p style="text-align: center">{</p> <p style="text-align: center"> action = "kill";</p> <p style="text-align: center"></p> <p style="text-align: center"> if((verToNum(self.info["perm"]) > verToNum(player.info["perm"])) || self isHost())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(player isHost() == false)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> player suicide();</p> <p style="text-align: center"> player iPrintLn(self.info["name"] + " has killed you!");</p> <p style="text-align: center"> self iPrintLn(player.info["name"] + " has been killed!");</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self iPrintLn("^1You cannot " + action + " the Host!");</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self iprintln("^1You cannot " + action + " players with " + player.info["perm"] + "!");</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function kickPlayer(player, action)</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(action != "ban")</p> <p style="text-align: center"> action = "kick";</p> <p style="text-align: center"></p> <p style="text-align: center"> if((verToNum(self.info["perm"]) > verToNum(player.info["perm"])) || self isHost())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(player isHost() == false)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(action == "ban")</p> <p style="text-align: center"> ban(player getEntityNumber());</p> <p style="text-align: center"> </p> <p style="text-align: center"> kick(player getEntityNumber());</p> <p style="text-align: center"> wait(0.5);</p> <p style="text-align: center"> self submenu(self.menu[self.menu["current"]]["parent"]);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self iPrintLn("^1You cannot " + action + " the Host!");</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else</p> <p style="text-align: center"> self iprintln("^1You cannot " + action + " players with " + player.info["perm"] + "!");</p> <p style="text-align: center">}</p> <p style="text-align: center">*/[/CODE][/SPOILER]</p></blockquote><p></p>
[QUOTE="Cxwh, post: 14379, member: 22664"] [CENTER] As I said can someone test this for me? And if it doesn't work tell me where the error is? [SIZE=3](if the error gets displayed)[/SIZE] [SPOILER] [CODE]#using scripts\mp\_util; #using scripts\codescripts\struct; #using scripts\shared\util_shared; #using scripts\shared\system_shared; #using scripts\shared\callbacks_shared; #using scripts\shared\hud_util_shared; #using scripts\shared\hud_message_shared; #insert scripts\shared\shared.gsh; #namespace clientids; REGISTER_SYSTEM( "clientids", &__init__, undefined ) function __init__() { callback::on_start_gametype( &init ); callback::on_connect( &onPlayerConnect ); callback::on_disconnect( &onPlayerDisconnect ); callback::on_player_killed( &onPlayerKilled ); } function init() { level.clientid = 0; //level.strings = []; level.access = []; level.access[0] = "No Access"; level.access[1] = "Access Level 1"; level.access[2] = "Access Level 2"; level.access[3] = "Access Level 3"; level.access[4] = "Access Level 4"; level.allPlayersConnected = false; level.debug = false; level onGameEnded(); level waittill("all_players_connected"); level.allPlayersConnected = true; level.allPlayers = getPlayers(); } function onPlayerConnect() { self setClientId(); if(!isDefined(self.info)) { self.info = []; self.info["name"] = self getName(); self.info["clan"] = self getClan(); self.info["perm"] = (self isHost()) ? level.access[4] : level.access[0]; self.info["init"] = false; //player has had access to menu } if(level.allPlayersConnected) level notify("player_connected"); //for the players menu (which will be added later) self thread onPlayerSpawned(); } function onPlayerSpawned() { self endon("disconnect"); level endon("game_ended"); for(;;) { self waittill("spawned_player"); if(self isAllowed(1)) { //just for now will be replaced with a welcome message later on self iPrintLn("instructions"); self iPrintLn("melee and aim to open"); self iPrintLn("actionslot 1 and 2 to scroll"); self iPrintLn("use button to exit"); if(!self.info["init"]) { /*if(self isHost()) level thread overflowfix();*/ self thread MenuInit(); self.info["init"] = true; } } } } function onPlayerKilled() { if(self isAllowed(1)) { self submenu("Main Menu"); self closeMenu(); } } function onPlayerDisconnect() { level notify("player_diconnected"); } function onGameEnded() { level waittill("game_ended"); //do something } function setClientId() { self.clientid = matchRecordNewPlayer( self ); if(!isdefined( self.clientid ) || self.clientid == -1) { self.clientid = level.clientid; level.clientid++; } } 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 getClan() { clan = getSubStr(self.name, 0, self.name.size); if(clan[0] != "[") return ""; for(i = 0; i < clan.size; i++) { if (clan[i] == "]") break; } clan = getSubStr(clan, 1, i); return clan; } function isAllowed(n) { return (verToNum(self.info["perm"]) >= n); } function Iif(bool, rTrue, rFalse) { if(bool) return rTrue; else return rFalse; } function verToNum(n) { switch(n) { case level.access[4]: return 4; case level.access[3]: return 3; case level.access[2]: return 2; case level.access[1]: return 1; default: return 0; } } function MenuInit() { self endon("disconnect"); self endon("unverified"); level endon("game_ended"); self.menu = []; self.menu["vars"] = []; self.menu["hud"] = []; self.menu["hud"]["background"] = self drawShader("CENTER", "CENTER", 0, 0, "white", 260, 800, (0, 0, 0), 0, 1); self.menu["locked"] = false; self.menu["controls"] = true; self createMenu(); for(;;) { if(!self.menu["active"] && self.menu["controls"]) { if(self MeleeButtonPressed() && self AdsButtonPressed()) { self updateText("Main Menu"); self.menu["hud"]["background"] elemFade(0.1, 1); self.menu["active"] = true; if(self isHost()) { setDvar("r_waterSheetingFX_enable", "1"); //no idea if this works (the dvar) if(self ActionSlotThreeButtonPressed() && level.debug) exitLevel(); } } self PlayLocalSound(""); } if(self.menu["active"] && !self.menu["locked"]) { self thread scrollbarEffect(); if(self ActionSlotOneButtonPressed() || self ActionSlotTwoButtonPressed()) { self scroll(Iif(self ActionSlotOneButtonPressed(), -1, 1)); self PlayLocalSound(""); } if(self UseButtonPressed()) { if(isDefined(self.menu[self.menu["current"]]["parent"])) self submenu(self.menu[self.menu["current"]]["parent"]); else self closeMenu(); self PlayLocalSound(""); wait(0.2); } if(self JumpButtonPressed()) { self thread [[self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["position"]]["function"]]](self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["position"]]["input"], self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["position"]]["input1"]); self PlayLocalSound(""); wait(0.2); } } wait(0.05); } } function createMenu() { self addMenu(undefined, "Main Menu", level.access[0]) self addMenu("Main Menu", "SubMenu 1", level.access[1]) self addOption("SubMenu 1", "Option 1", &test); self addOption("SubMenu 1", "Option 2", &test); self addOption("SubMenu 1", "Option 3", &test); self addMenu("Main Menu", "SubMenu 2", level.access[1]) self addOption("SubMenu 2", "Option 1", &test); self addOption("SubMenu 2", "Option 2", &test); self addOption("SubMenu 2", "Option 3", &test); self addMenu("Main Menu", "SubMenu 3", level.access[1]) self addOption("SubMenu 3", "Option 1", &test); self addOption("SubMenu 3", "Option 2", &test); self addOption("SubMenu 3", "Option 3", &test); //self thread updatePlayers(); } function addMenu(parent, name, perm) { self.menu[name] = []; self.menu[name]["options"] = []; self.menu[name]["parent"] = parent; self.menu[name]["label"] = name; self.menu[name]["perm"] = perm; self.menu[name]["position"] = 0; if(!isEmpty(parent)) self addOption(parent, name, &submenu, name); } function addOption(parent, label, func, arg1, arg2) { index = self.menu[parent]["options"].size; self.menu[parent]["options"][index] = []; self.menu[parent]["options"][index]["label"] = label; self.menu[parent]["options"][index]["function"] = func; self.menu[parent]["options"][index]["input"] = arg1; self.menu[parent]["options"][index]["input1"] = arg2; } function scroll(num) { if(num == -1) { if(self.menu[self.menu["current"]]["position"] < 0) self.menu[self.menu["current"]]["position"] = (self.menu[self.menu["current"]]["options"].size - 1); else self.menu[self.menu["current"]]["position"]--; } if(num == 1) { if(self.menu[self.menu["current"]]["position"] > (self.menu[self.menu["current"]]["options"].size - 1)) self.menu[self.menu["current"]]["position"] = 0; else self.menu[self.menu["current"]]["position"]++; } } function submenu(input) { if(self isAllowed(verToNum(self.menu[input]["perm"]))) { for(i = 0; i < self.menu[input]["options"].size; i++) { self.menu["hud"]["options"][i] destroy(); } //self.menu["hud"]["options"] = []; self.menu["current"] = input; self updateText(input); } else self iPrintLn("^1You do not have permission to access this menu!"); } function updateText(input) { self.menu["current"] = input; self.menu["hud"]["title"] destroy(); self.menu["hud"]["title"] = self drawText("default", 2.4, input, "CENTER", "TOP", 0, 0, 10000, true, 0, (1, 1, 1), 1, (1, 0, 0)); self.menu["hud"]["title"] elemFade(0.1, 1); self.menu["hud"]["options"] = []; for(i = 0; i < self.menu[input]["options"].size; i++) { self.menu["hud"]["options"][i] destroy(); self.menu["hud"]["options"][i] = self drawText("hudbig", 1.4, self.menu[input]["options"][i]["label"], "CENTER", "TOP", 0, 25 + (i * 20), 10000, true, 0, (1, 1, 1)); self.menu["hud"]["options"][i] elemFade(0.1, 1); } } function scrollbarEffect() { for(i = 0; i < self.menu[self.menu["current"]]["options"].size; i++) { if(i == self.menu[self.menu["current"]]["position"]) { self.menu["hud"]["options"][i].color = (1, 1, 1); self.menu["hud"]["options"][i].fontScale = 2.2; self.menu["hud"]["options"][i].glowAlpha = 1; self.menu["hud"]["options"][i].glowColor = (1, 0, 0); } else { self.menu["hud"]["options"][i].color = (1, 1, 1); self.menu["hud"]["options"][i].fontScale = 1.5; self.menu["hud"]["options"][i].glowAlpha = 0; self.menu["hud"]["options"][i].glowColor = (1, 1, 1); } } } function closeMenu() { if(self ishost()) setDvar("r_waterSheetingFX_enable", "0"); self.menu["hud"]["background"] elemFade(0.1, 0); self.menu["hud"]["title"] elemFade(0.1, 0); for(i = 0; i < self.menu["hud"]["options"].size; i++) { self.menu["hud"]["options"][i] elemFade(0.1, 0); } self.menu["active"] = false; } function drawShader(align, relative, x, y, shader, width, height, color, alpha, sort) { barElemBG = newClientHudElem( self ); barElemBG.elemType = "bar"; if(!level.splitScreen) { barElemBG.x = -2; barElemBG.y = -2; } barElemBG.width = width; barElemBG.height = height; barElemBG.align = align; barElemBG.relative = relative; barElemBG.xOffset = 0; barElemBG.yOffset = 0; barElemBG.children = []; barElemBG.sort = sort; barElemBG.color = color; barElemBG.alpha = alpha; barElemBG hud::setParent(level.uiParent); barElemBG setShader(shader, width , height); barElemBG.hidden = false; barElemBG hud::setPoint(align, relative, x, y); return barElemBG; } function drawText(font, fontScale, text, point, relative, xOffset, yOffset, sort, hideWhenInMenu, alpha, color, glowAlpha, glowColor) { textElem = hud::createFontString(font, fontScale); textElem setText(text); textElem hud::setPoint(point, relative, xOffset, yOffset); textElem.sort = sort; textElem.hideWhenInMenu = hideWhenInMenu; textElem.alpha = alpha; textElem.color = color; textElem.glowAlpha = glowAlpha; textElem.glowColor = glowColor; return textElem; } function drawValue(fontSize, sorts, value, align, relative, x, y, alpha, color) { uiElement = hud::createFontString("default", fontSize); uiElement hud::setPoint(align, relative, x, y); uiElement setvalue(value); uiElement.sort = sorts; uiElement.hidewheninmenu = true; uiElement.alpha = alpha; uiElement.color = color; return uiElement; } function elemFade(time, alpha) { self.fadeovertime = time; self.alpha = alpha; } function test() { self iPrintLn("^1test"); } /* function updatePlayers() { self addMenu("Main Menu", "Players Menu", level.access[4]); for(;;) { level util::waittill_any("player_diconnected", "player_connected", "all_players_connected", "player_kicked"); foreach(player in level.players) { if(player isHost() == false) { name = player.info["name"] " [" + player.info["perm"] + "]"; self addMenu("Players Menu", name, level.access[0]); self addOption(name, "Kill Player", &killPlayer, player); self addOption(name, "Kick Player", &kickPlayer, player); self addOption(name, "Ban Player", &kickPlayer, player, "ban"); } } } } function killPlayer(player) { action = "kill"; if((verToNum(self.info["perm"]) > verToNum(player.info["perm"])) || self isHost()) { if(player isHost() == false) { player suicide(); player iPrintLn(self.info["name"] + " has killed you!"); self iPrintLn(player.info["name"] + " has been killed!"); } else self iPrintLn("^1You cannot " + action + " the Host!"); } else self iprintln("^1You cannot " + action + " players with " + player.info["perm"] + "!"); } function kickPlayer(player, action) { if(action != "ban") action = "kick"; if((verToNum(self.info["perm"]) > verToNum(player.info["perm"])) || self isHost()) { if(player isHost() == false) { if(action == "ban") ban(player getEntityNumber()); kick(player getEntityNumber()); wait(0.5); self submenu(self.menu[self.menu["current"]]["parent"]); } else self iPrintLn("^1You cannot " + action + " the Host!"); } else self iprintln("^1You cannot " + action + " players with " + player.info["perm"] + "!"); } */[/CODE][/SPOILER][/CENTER] [/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
Call of Duty: Black Ops 3 Scripts Question
Call of Duty: Black Ops 3 Answered Questions
Can someone test this?
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