Normal
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 Also, you use & instead of :: to call a function within a parameter.Preview :[MEDIA=youtube]QfpF7498xFE[/MEDIA]
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");
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;
level.togtheme = 0;
////DO NOT EDIT BELOW THIS LINE////or do idc
///////////////////////////////////////////
function onSpawn()
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
function menuCheck()
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;
self waittill("menuresponse", menu, response);
if(response == "open_hud_menu")
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("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;
selectamount = level.itemTillScroll;
//work out menu position
if(level.menuSide == 0)
if(level.menuSlideIn)
offsetX = -110 - level.menuWidth;
offsetY = 40;
offsetX = -110;
if(level.menuSide == 1)
offsetX = 747;
level.slideInValue = level.menuWidth*-1;
offsetX = 747 - level.menuWidth;
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);
if(self attackButtonPressed())
if(self.selector == selectamount)
if(scrollamount > 0 && self.scroll < scrollamount)
self.scroll++;
self.hudMenu[0] setText(getText(self.scroll));
moveHudY(self.hudmenu[2], (-33.5 *(selectamount-1)) , level.scrollTime);
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)
moveHudY(self.hudmenu[2], (33.5 * (selectamount-1)), level.scrollTime);
self.scroll--;
else if(self.selector != 1)
moveHudY(self.hudmenu[2], -33.5, level.scrollTime);
self.selector--;
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())
function onDeath()
self waittill("death");
if(isDefined(self.menuopen) || self.menuopen)
function closeHudMenu()
self enableWeapons();
self freezeControls(0);
self.menuopen = false;
if(isDefined(self.hudMenu[i]))
moveHudX(self.hudMenu[i], level.slideInValue*-1, level.menuSlideOutTime);
wait 0.5;
self.hudMenu[i] destroy();
function getText(scroll)
text = "";
if(!isDefined(scroll))
if(level.mainmenuhud.size > level.itemTillScroll)
loop = level.itemTillScroll;
loop = level.mainmenuhud.size;
for(i=0; i<loop; i++)
text += level.mainmenuhud[i].name + "\n \n";
for(i=scroll; i<scroll + level.itemTillScroll; i++)
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 );
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
//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.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
Also, you use & instead of :: to call a function within a parameter.
Preview :
[MEDIA=youtube]QfpF7498xFE[/MEDIA]