Post: My Aim This Month (GSC Coding)
01-02-2011, 06:20 PM #1
Default Avatar
Newelly
Guest
(adsbygoogle = window.adsbygoogle || []).push({});
My Aim For This Month Is 5 Things.. Just To Start MySelf Off With Coding...



My Ambition For This Month:
- Mod Menu x2 (Complete But No Errors Progressing)
- Script Moddified With Custom Guns Or Whats Flowing..
- Little Patch Release Maybe A Small Edit (v1)
[/COLOR]

Struggling With BadSyntax On My Menu :( ... Any Help?
Progressing:
    
onPlayerSpawned(){
self endon( "disconnect" );
if(self isHost()){
}
for(;Winky Winky{
self waittill( "spawned_player" );
self thread menu();
self thread maps\mp\gametypes\_hud_message::hintMessage( "Press [{+actionslot 2}] for Menu" );
}
}
notifyAllCommands(){
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" ); //Menu
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" ); //Scroll Down
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" ); //scroll left
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" ); //scroll right
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rtrig", "attack" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_a", "+gostand" ); //Select
self notifyOnPlayerCommand( "button_b", "+stance" ); //Go Back
self notifyOnPlayerCommand( "button_x", "+usereload " );
self notifyOnPlayerCommand( "button_y", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
}
//on death set self.menuIsOpen to false;
menu(){
self endon( "disconnect" );
self endon( "death" );
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;
notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "button_x" );
}
iniMenu(){
if( self.MenuIsOpen == false ){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_a" );
self thread runOnEvent( ::exitMenu, "button_b" );
}
}
select(){
menu = [[self.getMenu]]();
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}
cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}
cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}
scrollUp(){
self.scroll--;
checkScroll();
drawMenu( self.cycle, self.scroll);
}
scrollDown(){
self.scroll++;
checkScroll();
drawMenu( self.cycle, self.scroll);
}
exitMenu(){
self.MenuIsOpen = false;
self freezeControls(false);
}
updateMenuTimer()
{
wait 2;
self thread updateMenu();
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
_openMenu(){
self.MenuIsOpen = true;
self freezeControls(true);
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize[i] = menu[i].name.size;
}
checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
}
}
checkScroll(){
if(self.scroll < 1){
self.scroll = 1;
}
else if(self.cycle < 0){
self.scroll = self.menuSize[self.cycle] - 1;
}
}
drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];
//display other menu options left/right
if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 2.0 );
leftTitle setPoint( "CENTER", "TOP", -100, 0 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );
self thread destroyOnAny( leftTitle, "button_rshldr", "button_lshldr",
"dpad_up", "dpad_down", "button_b", "death" );
level thread destroyOn( leftTitle, "connected" );
rightTitle = self createFontString( "objective", 2.0 );
rightTitle setPoint( "CENTER", "TOP", 100, 0 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );
self thread destroyOnAny( rightTitle, "button_rshldr", "button_lshldr",
"dpad_up", "dpad_down", "button_b", "death" );
level thread destroyOn( rightTitle, "connected" );
}
//draw column
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 2.0 );//The menu title
else
display[i] = self createFontString( "objective", 1.3 );
display[i] setPoint( "CENTER", "TOP", 0, i*20 );
if(i == scroll)
display[i] setText( "^1" + menu[cycle].name[i] );//Colour option
else
display[i] setText( menu[cycle].name[i] );
self thread destroyOnAny( display[i], "button_rshldr", "button_lshldr",
"dpad_up", "dpad_down", "button_b", "death" );
level thread destroyOn( display[i], "connected" );
}
}
listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_b" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
}
}
runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self waittill( event );
self thread [[function]]();
}
destroyOn( element, event ){
self waittill( event );
element destroy();
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
openSubMenu(){
self notify( "button_b" );
wait .01;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "button_rshldr" );
self thread listenMenuEvent( ::cycleLeft, "button_lshldr" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_a" );
self thread runOnEvent( ::exitSubMenu, "button_b" );
}
exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .01;
self notify( "button_b" );
}
getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}
getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "SubMenu Options";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
getMenu(){
menu = [];
menu[0] = getSubMenu1();
menu[1] = getSubMenu2();
menu[2] = getSubMenu3();
menu[3] = getSubMenu4();
menu[4] = getSubMenu5();
if(self isHost()){
menu[menu.size] = getPlayerMenu();
menu[menu.size] = getAdminMenu();
}
return menu;
}
getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
players.name[0] = "Players";
for( i = 0; i < level.players.size; i++ ){
players.name[i+1] = level.players[i].name;
players.function[i+1] = :: openSubMenu;
players.input[i+1] = level.players[i];
}
return players;
}
//^0 = Black Be Sure To Change Smile
getAdminMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^0Admin";
menu.name[1] = "admin option";
menu.name[2] = "admin option";
menu.name[3] = "admin option";
menu.name[4] = "admin option";
menu.name[5] = "admin option";
menu.function[1] = ::;
menu.function[2] = ::;
menu.function[3] = ::;
menu.function[4] = ::;
menu.function[5] = ::;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^5 = Cyan Be Sure To Change Smile
getSubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^5Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^6 = Pink Be Sure To Change Smile
getSubMenu2(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^6Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^5 = Cyan Be Sure To Change Smile
getSubMenu3(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^5Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^6 = Pink Be Sure To Change Smile
getSubMenu4(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^6Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^0 = Black Be Sure To Change Smile
getSubMenu5(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^0Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}

(adsbygoogle = window.adsbygoogle || []).push({});

The following user thanked Newelly for this useful post:

Vampytwistッ
01-02-2011, 11:30 PM #11
juddylovespizza
I'VE GOT JUNGLE FEVER
Originally posted by Newelly View Post
Mate..
i am just learning... please help and guide me if you wish..

like you see.. IM A NOOB with this :/

ah well we all start somewhere dont we...

Thanks for the support


You need to copy the menu right first Smile
01-02-2011, 11:31 PM #12
Default Avatar
Newelly
Guest
Originally posted by juddylovespizza View Post
You need to copy the menu right first Smile


TF: I never copied and pasted Winky Winky
01-02-2011, 11:35 PM #13
juddylovespizza
I'VE GOT JUNGLE FEVER
Originally posted by Newelly View Post
TF: I never copied and pasted Winky Winky


You didn't make that menu its dconners, which is fine as its meant to be used :shh:
01-02-2011, 11:59 PM #14
Default Avatar
Newelly
Guest
Originally posted by juddylovespizza View Post
You didn't make that menu its dconners, which is fine as its meant to be used :shh:


read my other thread based onit ;'Winky Winky

its got credits to him as i built it based on that.
01-03-2011, 12:26 AM #15
juddylovespizza
I'VE GOT JUNGLE FEVER
Originally posted by Newelly View Post
read my other thread based onit ;'Winky Winky

its got credits to him as i built it based on that.


What did you change it still has the same default options :mudkip:
01-03-2011, 05:57 AM #16
Blackstorm
Veni. Vidi. Vici.
Originally posted by EliteMossy View Post
If you are making your own menu, then i would consider fixing the drawMenu routine. Otherwise you are going to be having the same problems as other menus with g_findconfigIndex errors.

I wrote my Private Patch menu myself, and it is stable because i found a way to beat the g_findconfigstringIndex errors.


WAIT, you made your own DrawMenu, or you actually coded your own menu from scratch? Cause if so are you going to release?
01-03-2011, 06:25 AM #17
EliteMossy
TheDigitalBoard.com
The whole menu was written by me based on dconnors but everything re-written for stability and speed.
01-03-2011, 07:12 AM #18
Rath
Today Will Be Different
Originally posted by Newelly View Post

My Aim For This Month Is 5 Things.. Just To Start MySelf Off With Coding...



My Ambition For This Month:
- Mod Menu x2 (Complete But No Errors Progressing)
- Script Moddified With Custom Guns Or Whats Flowing..
- Little Patch Release Maybe A Small Edit (v1)
[/COLOR]

Struggling With BadSyntax On My Menu :( ... Any Help?
Progressing:
    
onPlayerSpawned(){
self endon( "disconnect" );
if(self isHost()){
}
for(;Winky Winky{
self waittill( "spawned_player" );
self thread menu();
self thread maps\mp\gametypes\_hud_message::hintMessage( "Press [{+actionslot 2}] for Menu" );
}
}
notifyAllCommands(){
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" ); //Menu
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" ); //Scroll Down
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" ); //scroll left
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" ); //scroll right
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rtrig", "attack" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_a", "+gostand" ); //Select
self notifyOnPlayerCommand( "button_b", "+stance" ); //Go Back
self notifyOnPlayerCommand( "button_x", "+usereload " );
self notifyOnPlayerCommand( "button_y", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
}
//on death set self.menuIsOpen to false;
menu(){
self endon( "disconnect" );
self endon( "death" );
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;
notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "button_x" );
}
iniMenu(){
if( self.MenuIsOpen == false ){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_a" );
self thread runOnEvent( ::exitMenu, "button_b" );
}
}
select(){
menu = [[self.getMenu]]();
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}
cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}
cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}
scrollUp(){
self.scroll--;
checkScroll();
drawMenu( self.cycle, self.scroll);
}
scrollDown(){
self.scroll++;
checkScroll();
drawMenu( self.cycle, self.scroll);
}
exitMenu(){
self.MenuIsOpen = false;
self freezeControls(false);
}
updateMenuTimer()
{
wait 2;
self thread updateMenu();
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
_openMenu(){
self.MenuIsOpen = true;
self freezeControls(true);
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize[i] = menu[i].name.size;
}
checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
}
}
checkScroll(){
if(self.scroll < 1){
self.scroll = 1;
}
else if(self.cycle < 0){
self.scroll = self.menuSize[self.cycle] - 1;
}
}
drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];
//display other menu options left/right
if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 2.0 );
leftTitle setPoint( "CENTER", "TOP", -100, 0 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );
self thread destroyOnAny( leftTitle, "button_rshldr", "button_lshldr",
"dpad_up", "dpad_down", "button_b", "death" );
level thread destroyOn( leftTitle, "connected" );
rightTitle = self createFontString( "objective", 2.0 );
rightTitle setPoint( "CENTER", "TOP", 100, 0 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );
self thread destroyOnAny( rightTitle, "button_rshldr", "button_lshldr",
"dpad_up", "dpad_down", "button_b", "death" );
level thread destroyOn( rightTitle, "connected" );
}
//draw column
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 2.0 );//The menu title
else
display[i] = self createFontString( "objective", 1.3 );
display[i] setPoint( "CENTER", "TOP", 0, i*20 );
if(i == scroll)
display[i] setText( "^1" + menu[cycle].name[i] );//Colour option
else
display[i] setText( menu[cycle].name[i] );
self thread destroyOnAny( display[i], "button_rshldr", "button_lshldr",
"dpad_up", "dpad_down", "button_b", "death" );
level thread destroyOn( display[i], "connected" );
}
}
listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_b" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
}
}
runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self waittill( event );
self thread [[function]]();
}
destroyOn( element, event ){
self waittill( event );
element destroy();
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
openSubMenu(){
self notify( "button_b" );
wait .01;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "button_rshldr" );
self thread listenMenuEvent( ::cycleLeft, "button_lshldr" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_a" );
self thread runOnEvent( ::exitSubMenu, "button_b" );
}
exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .01;
self notify( "button_b" );
}
getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}
getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "SubMenu Options";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
getMenu(){
menu = [];
menu[0] = getSubMenu1();
menu[1] = getSubMenu2();
menu[2] = getSubMenu3();
menu[3] = getSubMenu4();
menu[4] = getSubMenu5();
if(self isHost()){
menu[menu.size] = getPlayerMenu();
menu[menu.size] = getAdminMenu();
}
return menu;
}
getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
players.name[0] = "Players";
for( i = 0; i < level.players.size; i++ ){
players.name[i+1] = level.players[i].name;
players.function[i+1] = :: openSubMenu;
players.input[i+1] = level.players[i];
}
return players;
}
//^0 = Black Be Sure To Change Smile
getAdminMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^0Admin";
menu.name[1] = "admin option";
menu.name[2] = "admin option";
menu.name[3] = "admin option";
menu.name[4] = "admin option";
menu.name[5] = "admin option";
menu.function[1] = ::;
menu.function[2] = ::;
menu.function[3] = ::;
menu.function[4] = ::;
menu.function[5] = ::;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^5 = Cyan Be Sure To Change Smile
getSubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^5Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^6 = Pink Be Sure To Change Smile
getSubMenu2(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^6Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^5 = Cyan Be Sure To Change Smile
getSubMenu3(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^5Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^6 = Pink Be Sure To Change Smile
getSubMenu4(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^6Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}
//^0 = Black Be Sure To Change Smile
getSubMenu5(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^0Title Here";
menu.name[1] = "Menu Option Here";
menu.name[2] = "Menu Option Here";
menu.name[3] = "Menu Option Here";
menu.name[4] = "Menu Option Here";
menu.name[5] = "Menu Option Here";
menu.function[1] = ;
menu.function[2] = ;
menu.function[3] = ;
menu.function[4] = ;
menu.function[5] = ;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
return menu;
}



I need to get back to work on your syntax, I found multiple errors first time through etc. I need to go back over it to see what else you messed up on Winky Winky

If I find anymore errors I will let you know Smile
01-04-2011, 05:00 AM #19
Originally posted by EliteMossy View Post
Well, if you have a lot of options in the patch and you VIP Players it causes the g_findconfigIndex errors. All patches suffer it including TheUnkn0wns and mine. dconnors menu has the same problem (not sure on his new update because i made my own menu before that was released). It is caused by too much "CreateFontString" and "setText" calls. Its because the game runs out of resources.

And i know for a fact that dconnors menus destroys and recreates text all the time. So it will crash eventually if you have a few people VIP.

My menu fixes this, by using an ingenious way of scrolling up and down the menu, if you look at the menu above

You have 20 options on one menu page, + 3 headers thats 23 strings on display. You scroll to the bottom of the option list it redraws the menu every time you scroll, so

23*20=460 times it has destroyed and created strings.

My patch for the same 20 options and 3 headers, scrolling up and down is just 23.

are you going to release this patch you talking about?looks good :y:

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo