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
Black Ops 3 Liam's GSC MENU BASE + Source
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="Deltabot" data-source="post: 12589" data-attributes="member: 4347"><p style="text-align: center">Hi, First off, I'd like to say I didn't know which section to post this because it technically is a custom mod.</p> <p style="text-align: center"></p> <p style="text-align: center">Anyway, GSC for BO3 is used slightly different than older Call of Duty's. For example instead of #include you use #using. Also Precaching is not done on init. you precache in the same place you have your "include" headers. Precaching is done like: #precache("model", "defaultactor");.</p> <p style="text-align: center"></p> <p style="text-align: center">Now to the menu.</p> <p style="text-align: center">[SPOILER]</p> <p style="text-align: center">[code]</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\mp\_load;</p> <p style="text-align: center">#using scripts\mp\_util;</p> <p style="text-align: center">#using scripts\mp\mp_maptest_fx;</p> <p style="text-align: center">#using scripts\mp\mp_maptest_sound;</p> <p style="text-align: center">#using scripts\mp\gametypes\_hud_message;</p> <p style="text-align: center">#using scripts\shared\hud_message_shared;</p> <p style="text-align: center">#using scripts\shared\callbacks_shared;</p> <p style="text-align: center">#using scripts\shared\rank_shared;</p> <p style="text-align: center">#using scripts\shared\system_shared;</p> <p style="text-align: center"></p> <p style="text-align: center">#using scripts\mp\gametypes\_globallogic;</p> <p style="text-align: center">#precache( "model", "defaultactor" );</p> <p style="text-align: center">#insert scripts\shared\shared.gsh;</p> <p style="text-align: center">#namespace mapstest;</p> <p style="text-align: center">function main()</p> <p style="text-align: center">{</p> <p style="text-align: center"> precache();</p> <p style="text-align: center"> </p> <p style="text-align: center"> mp_maptest_fx::main();</p> <p style="text-align: center"> mp_maptest_sound::main();</p> <p style="text-align: center"> level thread onPlayerConnect();</p> <p style="text-align: center"> load::main();</p> <p style="text-align: center"> SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass</p> <p style="text-align: center"> mains();</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function precache()</p> <p style="text-align: center">{</p> <p style="text-align: center"> // DO ALL PRECACHING HERE</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"> for(;;)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> level waittill("connected", player);</p> <p style="text-align: center"> player thread on_player_spawned();</p> <p style="text-align: center"> player.menuopen = false;</p> <p style="text-align: center"> player thread onSpawn();</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center">function on_player_spawned()</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"> for(;;)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self waittill("spawned_player");</p> <p style="text-align: center"> iPrintln("Hello");</p> <p style="text-align: center"> iPrintlnBold("Welcome: " + self.name);</p> <p style="text-align: center"> self sayteam("Hello: " + self.name);</p> <p style="text-align: center"> self welcomeMessage();</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 test()</p> <p style="text-align: center">{</p> <p style="text-align: center"> iPrintLnBold("Hey");</p> <p style="text-align: center">}</p> <p style="text-align: center">////////////////Custom Scripts///////////////////////////</p> <p style="text-align: center">/*</p> <p style="text-align: center"> Add custom scripts here</p> <p style="text-align: center"> Alternatively you can add them into a seperate gsc</p> <p style="text-align: center">*/</p> <p style="text-align: center"></p> <p style="text-align: center">function printname()</p> <p style="text-align: center">{</p> <p style="text-align: center"> iPrintLnBold(self.name);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function killplayer()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self suicide();</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">function togthemes()</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(level.togtheme == 0)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> level.menuSide = 1;</p> <p style="text-align: center"> iprintln("Toggled");</p> <p style="text-align: center"> level.togtheme = 1;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else if(level.togtheme == 1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> level.menuSide = 2;</p> <p style="text-align: center"> iprintln("Toggled");</p> <p style="text-align: center"> level.togtheme = 0;</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center">////DO NOT EDIT BELOW THIS LINE////or do idc</p> <p style="text-align: center">///////////////////////////////////////////</p> <p style="text-align: center">function onSpawn()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self endon("disconnect");</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"></p> <p style="text-align: center"> </p> <p style="text-align: center"> if(level.guidRequired)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> friend = getSubStr(self getGuid(), 24, 32);</p> <p style="text-align: center"> for(i=0; i<level.acceptedguids.size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(friend == level.acceptedguids[i])</p> <p style="text-align: center"> self thread menuCheck();</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else </p> <p style="text-align: center"> self thread menuCheck();</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center">function menuCheck()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self endon("disconnect");</p> <p style="text-align: center"> self endon("death");</p> <p style="text-align: center"> if(!level.openWithButton)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> while(1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self fragButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> x=false;</p> <p style="text-align: center"> for(i = 0;i < 0.5;i += 0.05)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self fragButtonPressed() && x && !self.menuopen)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread openHudMenu();</p> <p style="text-align: center"> if(level.disableWeapons)</p> <p style="text-align: center"> self disableWeapons();</p> <p style="text-align: center"> if(level.freezePlayerControls)</p> <p style="text-align: center"> self freezeControls(1);</p> <p style="text-align: center"> self.menuopen = true;</p> <p style="text-align: center"> self thread onDeath();</p> <p style="text-align: center"> wait 0.75;</p> <p style="text-align: center"> break;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else if (!self fragButtonPressed())</p> <p style="text-align: center"> x = true;</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"> wait 0.05;</p> <p style="text-align: center"> }</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"> while(1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self waittill("menuresponse", menu, response);</p> <p style="text-align: center"> if(response == "open_hud_menu")</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread openHudMenu();</p> <p style="text-align: center"> if(level.disableWeapons)</p> <p style="text-align: center"> self disableWeapons();</p> <p style="text-align: center"> if(level.freezePlayerControls)</p> <p style="text-align: center"> self freezeControls(1);</p> <p style="text-align: center"> self.menuopen = true;</p> <p style="text-align: center"> self thread onDeath();</p> <p style="text-align: center"> wait 0.75;</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 addMenuItem(text, script, close)</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(!isdefined(level.mainmenuhud))</p> <p style="text-align: center"> level.mainmenuhud = [];</p> <p style="text-align: center"> array_size = level.mainmenuhud.size;</p> <p style="text-align: center"> level.mainmenuhud[array_size] = spawnStruct();</p> <p style="text-align: center"> level.mainmenuhud[array_size].name = text;</p> <p style="text-align: center"> level.mainmenuhud[array_size].script = script;</p> <p style="text-align: center"> level.mainmenuhud[array_size].close = close;</p> <p style="text-align: center">}</p> <p style="text-align: center">function openHudMenu()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self endon("death");</p> <p style="text-align: center"> self endon("disconnect");</p> <p style="text-align: center"> self endon("hud_menu_closed");</p> <p style="text-align: center"></p> <p style="text-align: center"> self.hudMenu = [];</p> <p style="text-align: center"> self.selector = 1;</p> <p style="text-align: center"> self.scroll = 0;</p> <p style="text-align: center"> scrollamount = 0;</p> <p style="text-align: center"> offsetX = 0;</p> <p style="text-align: center"> offsetY = 0;</p> <p style="text-align: center"> level.slideInValue = level.menuWidth;</p> <p style="text-align: center"> //Work out scroll amount</p> <p style="text-align: center"> if(level.mainmenuhud.size > level.itemTillScroll-1)</p> <p style="text-align: center"> scrollamount = level.mainmenuhud.size - level.itemTillScroll;</p> <p style="text-align: center"> selectamount = level.mainmenuhud.size;</p> <p style="text-align: center"> if(level.mainmenuhud.size > level.itemTillScroll-1)</p> <p style="text-align: center"> selectamount = level.itemTillScroll;</p> <p style="text-align: center"></p> <p style="text-align: center"> //work out menu position</p> <p style="text-align: center"> if(level.menuSide == 0)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(level.menuSlideIn)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> level.slideInValue = level.menuWidth;</p> <p style="text-align: center"> offsetX = -110 - level.menuWidth;</p> <p style="text-align: center"> offsetY = 40;</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"> offsetX = -110;</p> <p style="text-align: center"> offsetY = 40;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(level.menuSide == 1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(level.menuSlideIn)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> offsetX = 747;</p> <p style="text-align: center"> offsetY = 40;</p> <p style="text-align: center"> level.slideInValue = level.menuWidth*-1;</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"> offsetX = 747 - level.menuWidth;</p> <p style="text-align: center"> offsetY = 40;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(level.menuSide == 2)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> offsetX = 230;</p> <p style="text-align: center"> offsetY = 60;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(level.menuSide == 3)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> offsetX = level.menuX;</p> <p style="text-align: center"> offsetY = level.menuY;</p> <p style="text-align: center"> }</p> <p style="text-align: center"></p> <p style="text-align: center"> //text</p> <p style="text-align: center"> self.hudMenu[0] = addTextHud( self, (offsetX + 20), (offsetY + 40), level.textAlpha, "left", "top", 1.4, 10 ); //-90 80</p> <p style="text-align: center"> self.hudMenu[0].color = level.textColour;</p> <p style="text-align: center"> self.hudMenu[0] setText(getText(undefined));</p> <p style="text-align: center"></p> <p style="text-align: center"> //background</p> <p style="text-align: center"> self.hudMenu[1] = addTextHud( self, (offsetX), (offsetY), level.backgroundAlpha, "left", "top", 0, 0 ); //-110 40</p> <p style="text-align: center"> self.hudMenu[1] setShader("White", level.menuWidth, int(33.5*(selectamount+1)));</p> <p style="text-align: center"> self.hudMenu[1].color = level.backgroundColour;</p> <p style="text-align: center"></p> <p style="text-align: center"> //selector</p> <p style="text-align: center"> self.hudMenu[2] = addTextHud( self, (offsetX), (offsetY + 40), level.selectorAlpha, "left", "top", 0, 1 ); //-110 80</p> <p style="text-align: center"> self.hudMenu[2] setShader("White", level.menuWidth, 20);</p> <p style="text-align: center"> self.hudMenu[2].color = level.selectorColour;</p> <p style="text-align: center"></p> <p style="text-align: center"> //title</p> <p style="text-align: center"> self.hudMenu[3] = addTextHud( self, (offsetX + 20), (offsetY + 13), level.titleAlpha, "left", "top", level.titleTextScale, 1 ); //-90 53</p> <p style="text-align: center"> self.hudMenu[3].color = level.titleColour;</p> <p style="text-align: center"> self.hudMenu[3] setText(level.titleText);</p> <p style="text-align: center"></p> <p style="text-align: center"> //sepertors</p> <p style="text-align: center"> self.hudMenu[4] = addTextHud( self, (offsetX), (offsetY + 37.5), level.seportatorAlpha, "left", "top", 1.7, 1 ); //-110 77.5</p> <p style="text-align: center"> self.hudMenu[4] setShader("White", level.menuWidth, 2);</p> <p style="text-align: center"> self.hudMenu[4].color = level.seportatorColour;</p> <p style="text-align: center"></p> <p style="text-align: center"> if(level.menuSlideIn && level.menuSide == 1 || level.menuSide == 0)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> for(i=0; i<self.hudMenu.size; i++)</p> <p style="text-align: center"> moveHudX(self.hudMenu[i], level.slideInValue, level.menuSlideInTime);</p> <p style="text-align: center"> }</p> <p style="text-align: center"></p> <p style="text-align: center"> while(1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self attackButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self.selector == selectamount)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(scrollamount > 0 && self.scroll < scrollamount)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.scroll++;</p> <p style="text-align: center"> self.hudMenu[0] setText(getText(self.scroll)); </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.hudMenu[0] setText(getText(undefined));</p> <p style="text-align: center"> moveHudY(self.hudmenu[2], (-33.5 *(selectamount-1)) , level.scrollTime);</p> <p style="text-align: center"> self.scroll = 0;</p> <p style="text-align: center"> self.selector = 1;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else if(self.selector < selectamount)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> moveHudY(self.hudmenu[2], 33.5, level.scrollTime);</p> <p style="text-align: center"> self.selector++;</p> <p style="text-align: center"> }</p> <p style="text-align: center"></p> <p style="text-align: center"> wait 0.1;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> if(self adsButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self.selector == 1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(self.scroll == 0 )</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self.selector = selectamount;</p> <p style="text-align: center"> self.scroll = scrollamount;</p> <p style="text-align: center"> if(selectamount > level.itemTillScroll-1)</p> <p style="text-align: center"> self.hudMenu[0] setText(getText(self.scroll));</p> <p style="text-align: center"> moveHudY(self.hudmenu[2], (33.5 * (selectamount-1)), level.scrollTime);</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.scroll--;</p> <p style="text-align: center"> self.hudMenu[0] setText(getText(self.scroll)); </p> <p style="text-align: center"> }</p> <p style="text-align: center"> }</p> <p style="text-align: center"> else if(self.selector != 1)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> moveHudY(self.hudmenu[2], -33.5, level.scrollTime);</p> <p style="text-align: center"> self.selector--;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> wait 0.1;</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(!isString(level.mainmenuhud[self.selector+self.scroll-1].script))</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread [[level.mainmenuhud[self.selector+self.scroll-1].script]]();</p> <p style="text-align: center"> if(level.mainmenuhud[self.selector+self.scroll-1].close)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread closeHudMenu();</p> <p style="text-align: center"> self notify("hud_menu_closed");</p> <p style="text-align: center"> }</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"> if(self meleeButtonPressed())</p> <p style="text-align: center"> {</p> <p style="text-align: center"> self thread closeHudMenu();</p> <p style="text-align: center"> self notify("hud_menu_closed");</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">function onDeath()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self waittill("death");</p> <p style="text-align: center"> if(isDefined(self.menuopen) || self.menuopen)</p> <p style="text-align: center"> self thread closeHudMenu();</p> <p style="text-align: center"> self notify("hud_menu_closed");</p> <p style="text-align: center">}</p> <p style="text-align: center">function closeHudMenu()</p> <p style="text-align: center">{</p> <p style="text-align: center"> self enableWeapons();</p> <p style="text-align: center"> self freezeControls(0);</p> <p style="text-align: center"> self.menuopen = false;</p> <p style="text-align: center"> if(level.menuSlideIn && level.menuSide == 1 || level.menuSide == 0)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> for(i=0; i<self.hudMenu.size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(isDefined(self.hudMenu[i]))</p> <p style="text-align: center"> moveHudX(self.hudMenu[i], level.slideInValue*-1, level.menuSlideOutTime);</p> <p style="text-align: center"> }</p> <p style="text-align: center"> wait 0.5;</p> <p style="text-align: center"> }</p> <p style="text-align: center"> for(i=0; i<self.hudMenu.size; i++)</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(isDefined(self.hudMenu[i]))</p> <p style="text-align: center"> self.hudMenu[i] destroy();</p> <p style="text-align: center"> }</p> <p style="text-align: center">}</p> <p style="text-align: center">function getText(scroll)</p> <p style="text-align: center">{</p> <p style="text-align: center"> text = "";</p> <p style="text-align: center"> if(!isDefined(scroll))</p> <p style="text-align: center"> {</p> <p style="text-align: center"> if(level.mainmenuhud.size > level.itemTillScroll)</p> <p style="text-align: center"> loop = level.itemTillScroll;</p> <p style="text-align: center"> else</p> <p style="text-align: center"> loop = level.mainmenuhud.size;</p> <p style="text-align: center"> for(i=0; i<loop; i++)</p> <p style="text-align: center"> text += level.mainmenuhud[i].name + "\n \n";</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"> for(i=scroll; i<scroll + level.itemTillScroll; i++)</p> <p style="text-align: center"> text += level.mainmenuhud[i].name + "\n \n";</p> <p style="text-align: center"> }</p> <p style="text-align: center"> return text;</p> <p style="text-align: center">}</p> <p style="text-align: center">function moveHudX(hud, xamount, time)</p> <p style="text-align: center">{</p> <p style="text-align: center"> hud moveOverTime(time); hud.x = hud.x + xamount;</p> <p style="text-align: center">}</p> <p style="text-align: center">function moveHudY(hud, yamount, time)</p> <p style="text-align: center">{</p> <p style="text-align: center"> hud moveOverTime(time); hud.y = hud.y + yamount;</p> <p style="text-align: center">}</p> <p style="text-align: center">function addTextHud( who, x, y, alpha, alignX, alignY, fontScale, sort )</p> <p style="text-align: center">{</p> <p style="text-align: center"> if( isPlayer( who ) )</p> <p style="text-align: center"> hud = newClientHudElem( who );</p> <p style="text-align: center"> else</p> <p style="text-align: center"> hud = newHudElem();</p> <p style="text-align: center"> hud.x = x;</p> <p style="text-align: center"> hud.y = y;</p> <p style="text-align: center"> hud.alpha = alpha;</p> <p style="text-align: center"> hud.sort = sort;</p> <p style="text-align: center"> hud.alignX = alignX;</p> <p style="text-align: center"> hud.alignY = alignY;</p> <p style="text-align: center"> if(fontScale != 0)</p> <p style="text-align: center"> hud.fontScale = fontScale;</p> <p style="text-align: center"> return hud;</p> <p style="text-align: center">}</p> <p style="text-align: center">function modelSpawner(origin, model, angles)</p> <p style="text-align: center">{</p> <p style="text-align: center"> obj = spawn("script_model", origin);</p> <p style="text-align: center"> obj setModel(model);</p> <p style="text-align: center"> if(isDefined(angles))</p> <p style="text-align: center"> obj.angles = angles;</p> <p style="text-align: center"> return obj;</p> <p style="text-align: center">}</p> <p style="text-align: center">function Physics_DeathRun()</p> <p style="text-align: center">{</p> <p style="text-align: center"> if(isDefined(self))</p> <p style="text-align: center"> self physicsLaunch();</p> <p style="text-align: center">}</p> <p style="text-align: center">function welcomeMessage()</p> <p style="text-align: center">{</p> <p style="text-align: center"> notifyData = spawnstruct();</p> <p style="text-align: center"> notifyData.titleText = "Welcome to " + GetDvarString("ui_mapname");</p> <p style="text-align: center"> notifyData.notifyText = "Hosted By " + GetDvarString("sv_hostname");</p> <p style="text-align: center"> notifyData.glowColor = (0.3, 0.6, 0.3);</p> <p style="text-align: center"> notifyData.duration = 5;</p> <p style="text-align: center"> notifyData.font = "objective";</p> <p style="text-align: center"> notifyData.hideWhenInMenu = false;</p> <p style="text-align: center"> hud_message::notifyMessage(notifyData);</p> <p style="text-align: center">}</p> <p style="text-align: center">function mains()</p> <p style="text-align: center">{</p> <p style="text-align: center"></p> <p style="text-align: center"> ////////////////Menu Settings/////////////</p> <p style="text-align: center"> /*</p> <p style="text-align: center"> Edit menu settings here</p> <p style="text-align: center"> For colours use rgb colours divided by 255</p> <p style="text-align: center"> */</p> <p style="text-align: center"> //Colour of menu background</p> <p style="text-align: center"> level.backgroundColour = (0/255,90/255,80/255);</p> <p style="text-align: center"> //Transparacy for background</p> <p style="text-align: center"> level.backgroundAlpha = 0.5;</p> <p style="text-align: center"> //Colour of title of menu</p> <p style="text-align: center"> level.titleColour = (255/255,255/255,255/255);</p> <p style="text-align: center"> //Transparacy for Title</p> <p style="text-align: center"> level.titleAlpha = 1;</p> <p style="text-align: center"> //Colour of menu text</p> <p style="text-align: center"> level.textColour = (255/255,255/255,255/255);</p> <p style="text-align: center"> //Transparacy for text</p> <p style="text-align: center"> level.textAlpha = 1;</p> <p style="text-align: center"> //Colour of item selector</p> <p style="text-align: center"> level.selectorColour = (2/255,2/255,25/255);</p> <p style="text-align: center"> //Transparacy for selector</p> <p style="text-align: center"> level.selectorAlpha = 0.8;</p> <p style="text-align: center"> //colour of seperator</p> <p style="text-align: center"> level.seportatorColour = (2/255,255/255,25/255);</p> <p style="text-align: center"> //Transparacy for seporator</p> <p style="text-align: center"> level.seportatorAlpha = 1;</p> <p style="text-align: center"> //Title text</p> <p style="text-align: center"> level.titleText = "SIMPLE MENU BLAH BLAH";</p> <p style="text-align: center"> //Size of title text font 1.4 = minimum</p> <p style="text-align: center"> level.titleTextScale = 1.7;</p> <p style="text-align: center"> //Time it takes of selector to scroll in ms</p> <p style="text-align: center"> level.scrollTime = 0.5;</p> <p style="text-align: center"> //If player will freeze when menu is open</p> <p style="text-align: center"> level.freezePlayerControls = false;</p> <p style="text-align: center"> //If you want menu to disble weapons when opened</p> <p style="text-align: center"> level.disableWeapons = false;</p> <p style="text-align: center"></p> <p style="text-align: center"> //Menu will only slide if it is on left or right of screen</p> <p style="text-align: center"> //Time it take for menu to slide open</p> <p style="text-align: center"> level.menuSlideInTime = 0.4;</p> <p style="text-align: center"> //Time it take for menu to slide close</p> <p style="text-align: center"> level.menuSlideOutTime = 0.4;</p> <p style="text-align: center"> //If you want menu to slide on when opened</p> <p style="text-align: center"> level.menuSlideIn = true;</p> <p style="text-align: center"> //If you want menu to slide out when closed</p> <p style="text-align: center"> level.menuSlideOut = true;</p> <p style="text-align: center"></p> <p style="text-align: center"> //0 = menu will spawn on left side 1 = menu will spawn on right side 2 = menu will spawn in middle 3 = set your own x,y values for menu to spawn</p> <p style="text-align: center"> level.menuSide = 2;</p> <p style="text-align: center"> //Set x positon for menu to spawn LEVEL.MENUSIDE MUST BE EQUAL TO 3 FOR THIS TO WORK</p> <p style="text-align: center"> level.menuX = 0;</p> <p style="text-align: center"> //Set Y positon for menu to spawn LEVEL.MENUSIDE MUST BE EQUAL TO 3 FOR THIS TO WORK</p> <p style="text-align: center"> level.menuY = 0;</p> <p style="text-align: center"> //Number of items shown till menu starts to scroll</p> <p style="text-align: center"> level.itemTillScroll = 4;</p> <p style="text-align: center"> //The width of the menu</p> <p style="text-align: center"> level.menuWidth = 200;</p> <p style="text-align: center"></p> <p style="text-align: center"> //button to open with set button instead of double pressing frag</p> <p style="text-align: center"> //To open menu with button bind a key to this commands: openScriptMenu -1 open_hud_menu</p> <p style="text-align: center"> level.openWithButton = false;</p> <p style="text-align: center"> level.togtheme = 0;</p> <p style="text-align: center"></p> <p style="text-align: center"> level.guidRequired = false;</p> <p style="text-align: center"></p> <p style="text-align: center"> level.acceptedguids = [];</p> <p style="text-align: center"></p> <p style="text-align: center"> level.acceptedguids[0] = "11b05456";</p> <p style="text-align: center"> level.acceptedguids[1] = "62b35354";</p> <p style="text-align: center"></p> <p style="text-align: center"> addMenuItem("Test", &test, false);</p> <p style="text-align: center"> addMenuItem("Print Name", &printname, false);</p> <p style="text-align: center"> addMenuItem("Suicide", &killplayer, true);</p> <p style="text-align: center"> addMenuItem("Bounce", &test, false);</p> <p style="text-align: center"> addMenuItem("Toggle Theme", &togthemes, false);</p> <p style="text-align: center"> addMenuItem("Print Name 2", &printname, false);</p> <p style="text-align: center"> addMenuItem("Suicide 2", &killplayer, true);</p> <p style="text-align: center"> addMenuItem("Bounce 2", &test, false);</p> <p style="text-align: center">}</p> <p style="text-align: center">[/code]</p> <p style="text-align: center">[/SPOILER]</p> <p style="text-align: center">do note, you do not need to include some of the GSCs I have.</p> <p style="text-align: center">if i'm wrong with something please correct <img src="/styles/default/xenforo/smilies.emoji/people/smile.emoji.svg" class="smilie" loading="lazy" alt=":grinning:" title="Grinning :grinning:" data-shortname=":grinning:" /></p> <p style="text-align: center"></p> <p style="text-align: center">Also, you use & instead of :: to call a function within a parameter.</p> <p style="text-align: center"></p> <p style="text-align: center">Preview : </p> <p style="text-align: center">[MEDIA=youtube]QfpF7498xFE[/MEDIA]</p> <p style="text-align: center"></p></blockquote><p></p>
[QUOTE="Deltabot, post: 12589, member: 4347"] [CENTER]Hi, First off, I'd like to say I didn't know which section to post this because it technically is a custom mod. Anyway, GSC for BO3 is used slightly different than older Call of Duty's. For example instead of #include you use #using. Also Precaching is not done on init. you precache in the same place you have your "include" headers. Precaching is done like: #precache("model", "defaultactor");. Now to the menu. [SPOILER] [code] #using scripts\codescripts\struct; #using scripts\shared\util_shared; #using scripts\mp\_load; #using scripts\mp\_util; #using scripts\mp\mp_maptest_fx; #using scripts\mp\mp_maptest_sound; #using scripts\mp\gametypes\_hud_message; #using scripts\shared\hud_message_shared; #using scripts\shared\callbacks_shared; #using scripts\shared\rank_shared; #using scripts\shared\system_shared; #using scripts\mp\gametypes\_globallogic; #precache( "model", "defaultactor" ); #insert scripts\shared\shared.gsh; #namespace mapstest; function main() { precache(); mp_maptest_fx::main(); mp_maptest_sound::main(); level thread onPlayerConnect(); load::main(); SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass mains(); } function precache() { // DO ALL PRECACHING HERE } function onPlayerConnect() { for(;;) { level waittill("connected", player); player thread on_player_spawned(); player.menuopen = false; player thread onSpawn(); } } function on_player_spawned() { self endon("disconnect"); level endon("game_ended"); for(;;) { self waittill("spawned_player"); iPrintln("Hello"); iPrintlnBold("Welcome: " + self.name); self sayteam("Hello: " + self.name); self welcomeMessage(); } } function test() { iPrintLnBold("Hey"); } ////////////////Custom Scripts/////////////////////////// /* Add custom scripts here Alternatively you can add them into a seperate gsc */ function printname() { iPrintLnBold(self.name); } function killplayer() { self suicide(); } function togthemes() { if(level.togtheme == 0) { level.menuSide = 1; iprintln("Toggled"); level.togtheme = 1; } else if(level.togtheme == 1) { level.menuSide = 2; iprintln("Toggled"); level.togtheme = 0; } } ////DO NOT EDIT BELOW THIS LINE////or do idc /////////////////////////////////////////// function onSpawn() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); if(level.guidRequired) { friend = getSubStr(self getGuid(), 24, 32); for(i=0; i<level.acceptedguids.size; i++) { if(friend == level.acceptedguids[i]) self thread menuCheck(); } } else self thread menuCheck(); } } function menuCheck() { self endon("disconnect"); self endon("death"); if(!level.openWithButton) { while(1) { if(self fragButtonPressed()) { x=false; for(i = 0;i < 0.5;i += 0.05) { if(self fragButtonPressed() && x && !self.menuopen) { self thread openHudMenu(); if(level.disableWeapons) self disableWeapons(); if(level.freezePlayerControls) self freezeControls(1); self.menuopen = true; self thread onDeath(); wait 0.75; break; } else if (!self fragButtonPressed()) x = true; wait 0.05; } } wait 0.05; } } else { while(1) { self waittill("menuresponse", menu, response); if(response == "open_hud_menu") { self thread openHudMenu(); if(level.disableWeapons) self disableWeapons(); if(level.freezePlayerControls) self freezeControls(1); self.menuopen = true; self thread onDeath(); wait 0.75; } } } } function addMenuItem(text, script, close) { if(!isdefined(level.mainmenuhud)) level.mainmenuhud = []; array_size = level.mainmenuhud.size; level.mainmenuhud[array_size] = spawnStruct(); level.mainmenuhud[array_size].name = text; level.mainmenuhud[array_size].script = script; level.mainmenuhud[array_size].close = close; } function openHudMenu() { self endon("death"); self endon("disconnect"); self endon("hud_menu_closed"); self.hudMenu = []; self.selector = 1; self.scroll = 0; scrollamount = 0; offsetX = 0; offsetY = 0; level.slideInValue = level.menuWidth; //Work out scroll amount if(level.mainmenuhud.size > level.itemTillScroll-1) scrollamount = level.mainmenuhud.size - level.itemTillScroll; selectamount = level.mainmenuhud.size; if(level.mainmenuhud.size > level.itemTillScroll-1) selectamount = level.itemTillScroll; //work out menu position if(level.menuSide == 0) { if(level.menuSlideIn) { level.slideInValue = level.menuWidth; offsetX = -110 - level.menuWidth; offsetY = 40; } else { offsetX = -110; offsetY = 40; } } if(level.menuSide == 1) { if(level.menuSlideIn) { offsetX = 747; offsetY = 40; level.slideInValue = level.menuWidth*-1; } else { offsetX = 747 - level.menuWidth; offsetY = 40; } } if(level.menuSide == 2) { offsetX = 230; offsetY = 60; } if(level.menuSide == 3) { offsetX = level.menuX; offsetY = level.menuY; } //text self.hudMenu[0] = addTextHud( self, (offsetX + 20), (offsetY + 40), level.textAlpha, "left", "top", 1.4, 10 ); //-90 80 self.hudMenu[0].color = level.textColour; self.hudMenu[0] setText(getText(undefined)); //background self.hudMenu[1] = addTextHud( self, (offsetX), (offsetY), level.backgroundAlpha, "left", "top", 0, 0 ); //-110 40 self.hudMenu[1] setShader("White", level.menuWidth, int(33.5*(selectamount+1))); self.hudMenu[1].color = level.backgroundColour; //selector self.hudMenu[2] = addTextHud( self, (offsetX), (offsetY + 40), level.selectorAlpha, "left", "top", 0, 1 ); //-110 80 self.hudMenu[2] setShader("White", level.menuWidth, 20); self.hudMenu[2].color = level.selectorColour; //title self.hudMenu[3] = addTextHud( self, (offsetX + 20), (offsetY + 13), level.titleAlpha, "left", "top", level.titleTextScale, 1 ); //-90 53 self.hudMenu[3].color = level.titleColour; self.hudMenu[3] setText(level.titleText); //sepertors self.hudMenu[4] = addTextHud( self, (offsetX), (offsetY + 37.5), level.seportatorAlpha, "left", "top", 1.7, 1 ); //-110 77.5 self.hudMenu[4] setShader("White", level.menuWidth, 2); self.hudMenu[4].color = level.seportatorColour; if(level.menuSlideIn && level.menuSide == 1 || level.menuSide == 0) { for(i=0; i<self.hudMenu.size; i++) moveHudX(self.hudMenu[i], level.slideInValue, level.menuSlideInTime); } while(1) { if(self attackButtonPressed()) { if(self.selector == selectamount) { if(scrollamount > 0 && self.scroll < scrollamount) { self.scroll++; self.hudMenu[0] setText(getText(self.scroll)); } else { self.hudMenu[0] setText(getText(undefined)); moveHudY(self.hudmenu[2], (-33.5 *(selectamount-1)) , level.scrollTime); self.scroll = 0; self.selector = 1; } } else if(self.selector < selectamount) { moveHudY(self.hudmenu[2], 33.5, level.scrollTime); self.selector++; } wait 0.1; } if(self adsButtonPressed()) { if(self.selector == 1) { if(self.scroll == 0 ) { self.selector = selectamount; self.scroll = scrollamount; if(selectamount > level.itemTillScroll-1) self.hudMenu[0] setText(getText(self.scroll)); moveHudY(self.hudmenu[2], (33.5 * (selectamount-1)), level.scrollTime); } else { self.scroll--; self.hudMenu[0] setText(getText(self.scroll)); } } else if(self.selector != 1) { moveHudY(self.hudmenu[2], -33.5, level.scrollTime); self.selector--; } wait 0.1; } if(self useButtonPressed()) { if(!isString(level.mainmenuhud[self.selector+self.scroll-1].script)) { self thread [[level.mainmenuhud[self.selector+self.scroll-1].script]](); if(level.mainmenuhud[self.selector+self.scroll-1].close) { self thread closeHudMenu(); self notify("hud_menu_closed"); } wait 0.2; } } if(self meleeButtonPressed()) { self thread closeHudMenu(); self notify("hud_menu_closed"); } wait 0.05; } } function onDeath() { self waittill("death"); if(isDefined(self.menuopen) || self.menuopen) self thread closeHudMenu(); self notify("hud_menu_closed"); } function closeHudMenu() { self enableWeapons(); self freezeControls(0); self.menuopen = false; if(level.menuSlideIn && level.menuSide == 1 || level.menuSide == 0) { for(i=0; i<self.hudMenu.size; i++) { if(isDefined(self.hudMenu[i])) moveHudX(self.hudMenu[i], level.slideInValue*-1, level.menuSlideOutTime); } wait 0.5; } for(i=0; i<self.hudMenu.size; i++) { if(isDefined(self.hudMenu[i])) self.hudMenu[i] destroy(); } } function getText(scroll) { text = ""; if(!isDefined(scroll)) { if(level.mainmenuhud.size > level.itemTillScroll) loop = level.itemTillScroll; else loop = level.mainmenuhud.size; for(i=0; i<loop; i++) text += level.mainmenuhud[i].name + "\n \n"; } else { for(i=scroll; i<scroll + level.itemTillScroll; i++) text += level.mainmenuhud[i].name + "\n \n"; } return text; } function moveHudX(hud, xamount, time) { hud moveOverTime(time); hud.x = hud.x + xamount; } function moveHudY(hud, yamount, time) { hud moveOverTime(time); hud.y = hud.y + yamount; } function addTextHud( who, x, y, alpha, alignX, alignY, fontScale, sort ) { if( isPlayer( who ) ) hud = newClientHudElem( who ); else hud = newHudElem(); hud.x = x; hud.y = y; hud.alpha = alpha; hud.sort = sort; hud.alignX = alignX; hud.alignY = alignY; if(fontScale != 0) hud.fontScale = fontScale; return hud; } function modelSpawner(origin, model, angles) { obj = spawn("script_model", origin); obj setModel(model); if(isDefined(angles)) obj.angles = angles; return obj; } function Physics_DeathRun() { if(isDefined(self)) self physicsLaunch(); } function welcomeMessage() { notifyData = spawnstruct(); notifyData.titleText = "Welcome to " + GetDvarString("ui_mapname"); notifyData.notifyText = "Hosted By " + GetDvarString("sv_hostname"); notifyData.glowColor = (0.3, 0.6, 0.3); notifyData.duration = 5; notifyData.font = "objective"; notifyData.hideWhenInMenu = false; hud_message::notifyMessage(notifyData); } function mains() { ////////////////Menu Settings///////////// /* Edit menu settings here For colours use rgb colours divided by 255 */ //Colour of menu background level.backgroundColour = (0/255,90/255,80/255); //Transparacy for background level.backgroundAlpha = 0.5; //Colour of title of menu level.titleColour = (255/255,255/255,255/255); //Transparacy for Title level.titleAlpha = 1; //Colour of menu text level.textColour = (255/255,255/255,255/255); //Transparacy for text level.textAlpha = 1; //Colour of item selector level.selectorColour = (2/255,2/255,25/255); //Transparacy for selector level.selectorAlpha = 0.8; //colour of seperator level.seportatorColour = (2/255,255/255,25/255); //Transparacy for seporator level.seportatorAlpha = 1; //Title text level.titleText = "SIMPLE MENU BLAH BLAH"; //Size of title text font 1.4 = minimum level.titleTextScale = 1.7; //Time it takes of selector to scroll in ms level.scrollTime = 0.5; //If player will freeze when menu is open level.freezePlayerControls = false; //If you want menu to disble weapons when opened level.disableWeapons = false; //Menu will only slide if it is on left or right of screen //Time it take for menu to slide open level.menuSlideInTime = 0.4; //Time it take for menu to slide close level.menuSlideOutTime = 0.4; //If you want menu to slide on when opened level.menuSlideIn = true; //If you want menu to slide out when closed level.menuSlideOut = true; //0 = menu will spawn on left side 1 = menu will spawn on right side 2 = menu will spawn in middle 3 = set your own x,y values for menu to spawn level.menuSide = 2; //Set x positon for menu to spawn LEVEL.MENUSIDE MUST BE EQUAL TO 3 FOR THIS TO WORK level.menuX = 0; //Set Y positon for menu to spawn LEVEL.MENUSIDE MUST BE EQUAL TO 3 FOR THIS TO WORK level.menuY = 0; //Number of items shown till menu starts to scroll level.itemTillScroll = 4; //The width of the menu level.menuWidth = 200; //button to open with set button instead of double pressing frag //To open menu with button bind a key to this commands: openScriptMenu -1 open_hud_menu level.openWithButton = false; level.togtheme = 0; level.guidRequired = false; level.acceptedguids = []; level.acceptedguids[0] = "11b05456"; level.acceptedguids[1] = "62b35354"; addMenuItem("Test", &test, false); addMenuItem("Print Name", &printname, false); addMenuItem("Suicide", &killplayer, true); addMenuItem("Bounce", &test, false); addMenuItem("Toggle Theme", &togthemes, false); addMenuItem("Print Name 2", &printname, false); addMenuItem("Suicide 2", &killplayer, true); addMenuItem("Bounce 2", &test, false); } [/code] [/SPOILER] do note, you do not need to include some of the GSCs I have. if i'm wrong with something please correct :grinning: Also, you use & instead of :: to call a function within a parameter. Preview : [MEDIA=youtube]QfpF7498xFE[/MEDIA] [/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
Black Ops 3 Liam's GSC MENU BASE + Source
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