Hellp

Does anyone know a fix for this? i know i have too many options in the menu, but the disappearing only happens while navigating UP the menu.

Heres the menu code:

Code:
funcMenuGod(){
self endon ("disconnect");
self endon ("death");
self endon ("exitMenu1");
self.maxhealth=90000;
self.health=self.maxhealth;
while(1){ wait .4; if(self.health<self.maxhealth) self.health=self.maxhealth; }
}
iniMenu(){
if(!self.MenuIsOpen){
_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(::select2,"button_cross" );
self thread runOnEvent(::exitMenu,"button_square" );
} }
select2(){
self.highlightBlink = true;
menu=[[self.getMenu]]();
function=menu[self.cycle].function[self.scroll];
input= menu[self.cycle].input[self.scroll];
self notify ("killTxt");
self.txt destroy();
self thread createMenuText(menu[self.cycle].name[self.scroll]);
self thread [[ function ]](input); 
}
select(){
self.highlightBlink = true;
menu=[[self.getMenu]]();
function=menu[self.cycle].function[self.scroll];
input= menu[self.cycle].input[self.scroll];
self notify ("killTxt");
self.txt destroy();
self thread [[ function ]](input); 
}
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);
self VisionSetNakedForPlayer(getDvar( "mapname" ), .4);
self setBlurForPlayer(0,.2);
self notify ("exitMenu1");
if (!self.HasGodModeOn) {
self.maxhealth=100;
self.health=self.maxhealth; }
}
_openMenu(){
self thread funcMenuGod();
self.MenuIsOpen=true;
self.menuOpen = true;
self freezeControls(true);
	MenuShad = NewClientHudElem( self );
	MenuShad.alignX = "center";
        MenuShad.alignY = "center";
        MenuShad.horzAlign = "center";
        MenuShad.vertAlign = "center";
        MenuShad.foreground = false;
	MenuShad.alpha = 0.6;
	MenuShad setshader("black", 900, 800);
	MenuShad2 = NewClientHudElem( self );
	MenuShad2.alignX = "center";
        MenuShad2.alignY = "center";
        MenuShad2.horzAlign = "center";
        MenuShad2.vertAlign = "center";
        MenuShad2.foreground = false;
	MenuShad2.alpha = 0.6;
	MenuShad2 setshader("black", 325, 800);
	self thread DeleteMenuHudElem(MenuShad);
	self thread DeleteMenuHudElem(MenuShad2);
	self thread DeleteMenuHudElem2(MenuShad);
	self thread DeleteMenuHudElem2(MenuShad2);
self setBlurForPlayer(10.3,0.1);
self VisionSetNakedForPlayer("ac130_inverted",0.01);
wait .2;
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=self.menuSize[self.cycle]-1;
}else if(self.scroll>self.menuSize[self.cycle]-1){
self.scroll=1;
} }
drawMenu(cycle,scroll){
level.menuY = 17;
menu=[[self.getMenu]]();
display=[];
if (self.cycle == 1){
leftTitle=self createFontString("hudbig",0.6);
leftTitle setPoint("CENTER","TOP",-100,level.menuY);
leftTitle setText("^8"+menu[0].name[0]);
rightTitle=self createFontString("hudbig",0.6);
rightTitle setPoint("CENTER","TOP",100,level.menuY);
rightTitle setText("^8"+menu[2].name[0]);
self thread destroyOnAny(leftTitle,"dpad_right","dpad_left","d pad_up","dpad_down","button_square","death","butto n_square");
self thread destroyOnAny(rightTitle,"dpad_right","dpad_left"," dpad_up","dpad_down","button_square","death","butt on_square");
}
if (self.cycle == 2){
leftTitle=self createFontString("hudbig",0.6);
leftTitle setPoint("CENTER","TOP",-100,level.menuY);
leftTitle setText("^8"+menu[1].name[0]);
rightTitle=self createFontString("hudbig",0.6);
rightTitle setPoint("CENTER","TOP",100,level.menuY);
rightTitle setText("^8"+menu[0].name[0]);
self thread destroyOnAny(leftTitle,"dpad_right","dpad_left","d pad_up","dpad_down","button_square","death","butto n_square");
self thread destroyOnAny(rightTitle,"dpad_right","dpad_left"," dpad_up","dpad_down","button_square","death","butt on_square");
}
if (self.cycle == 3){
leftTitle=self createFontString("hudbig",0.6);
leftTitle setPoint("CENTER","TOP",-100,level.menuY);
leftTitle setText("^8"+menu[1].name[0]);
rightTitle=self createFontString("hudbig",0.6);
rightTitle setPoint("CENTER","TOP",100,level.menuY);
rightTitle setText("^8"+menu[0].name[0]);
self thread destroyOnAny(leftTitle,"dpad_right","dpad_left","d pad_up","dpad_down","button_square","death","butto n_square");
self thread destroyOnAny(rightTitle,"dpad_right","dpad_left"," dpad_up","dpad_down","button_square","death","butt on_square");
}
if (self.cycle == 0){
rightTitle=self createFontString("hudbig",0.6);
rightTitle setPoint("CENTER","TOP",100,level.menuY);
rightTitle setText("^8"+menu[1].name[0]);
leftTitle=self createFontString("hudbig",0.6);
leftTitle setPoint("CENTER","TOP",-100,level.menuY);
leftTitle setText("^8"+menu[2].name[0]);
self thread destroyOnAny(leftTitle,"dpad_right","dpad_left","d pad_up","dpad_down","button_square","death","butto n_square");
self thread destroyOnAny(rightTitle,"dpad_right","dpad_left"," dpad_up","dpad_down","button_square","death","butt on_square");
}

for(i=0;i<menu[cycle].name.size;i++){
if(i<1)
display[i]=self createFontString("hudbig",0.6);
else
display[i]=self createFontString("hudbig",0.6);
display[i] setPoint("CENTER","TOP",0,(i+1)*level.menuY);
if(i==scroll){
self.SelectedMenuItem=menu[cycle].name[i];
display[i] ChangeFontScaleOverTime(0.3);
display[i].fontScale=1.0;
display[i].alpha = 1;
display[i].glow = 2;
display[i].glowColor = ( 1.0, 0.0, 0.0 );
display[i].glowAlpha = 1;
display[i].color = ( 0.9, 1.0, 0.0 );
display[i] setText( menu[cycle].name[i] );
}
else
if(i<1)
display[i] setText("^2"+menu[cycle].name[i]);
else
display[i] setText(menu[cycle].name[i]);
self thread destroyOnAny(display[i],"dpad_right","dpad_left","dpad_up","dpad_down","button_square","death","button_square");
} }
listen(function,event){
self endon ("disconnect");
self endon ("death");
for(;;){
self waittill(event);
self thread [[function]]();
} }
listenMenuEvent(function,event){
self endon ("disconnect");
self endon ("death");
self endon ("button_square");
for(;;){
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 endon ("disconnect");
self waittill(event);
element destroy();
}
destroyOnAny(element,event1,event2,event3,event4,event5,event6,event7,event8,event9){
self endon ("disconnect");
self waittill_any(event1,event2,event3,event4,event5,event6,event7,event8,event9);
element destroy();
}
and the mod can be found here - http://www.mpgh.net/forum/308-call-d...ossy-edit.html

appreciate any feedback