self thread StartMenu();
StartMenu()
{
self freezeControls(false);
self.MenuOpen = false;
self.LockMenu = false;
self.Menu["Sub"] = "Closed";
self thread MainMenu();
self thread MenuShaders();
self thread AllMenuFuncs();
}*
MainMenu()
{
//MainMenu
self AddMenuAction( "Main", 0, "Account Menu", ::SubMenu, "SubMenu_1" );
self AddMenuAction( "Main", 1, "FunMods Menu", ::SubMenu, "SubMenu_2" );
//SubMenu 1
self AddBackToMenu( "SubMenu_1", "Main" );
self AddMenuAction( "SubMenu_1", 0, "Kamikaze", ::NukePlane, "" );
self AddMenuAction( "SubMenu_1", 1, "Nuke Gun", ::NukeGun, "" );
//SubMenu 2
self AddBackToMenu( "SubMenu_2", "Main" );
self AddMenuAction( "SubMenu_2", 0, "Option 1", ::New, "" );
self AddMenuAction( "SubMenu_2", 1, "Option 2", ::New, "" );
}
DrawMenuOpts()
{
string = "";
for( i = 0; i < self.Menu["Option"]["Name"][self.Menu["Sub"]].size; i++ )
string += self.Menu["Option"]["Name"][self.Menu["Sub"]][i] + "\n";
self.Menu["Text"] = CreateText( "objective", 1.8, "LEFT", "", 90, -170, 1, 100, string );
self thread MenuDeath(self.Menu["Text"], self.Menu["Shader"]["backround"], self.Menu["Shader"]["Curs"],self.BlackBg);
}
AllMenuFuncs()
{
self endon( "death" );
self endon( "disconnect" );
self.Menu["Curs"] = 0;
for(;
{
if( self ActionSlotTwoButtonPressed() && self.Menu["Sub"] == "Closed" && self.LockMenu == false && self.MenuOpen == false )
{
self.Menu["Curs"] = 0;
self allowJump(false);
self disableWeapons();
self MenuShadersIn();
self.MenuOpen = true;
self.Menu["Sub"] = "Main";
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", 70, ((self.Menu["Curs"]*21.5
- 169.22) );
self thread DrawMenuOpts();
wait .1;
}
if( self ActionSlotTwoButtonPressed() && self.IsScrolling == false && self.MenuOpen == true )
{
self.Menu["Curs"] ++;
self.IsScrolling = true;
if( self.Menu["Curs"] >= self.Menu["Option"]["Name"][self.Menu["Sub"]].size )
self.Menu["Curs"] = 0;
self CursMove();
self playLocalSound("mouse_over");
wait 0.2;
self.IsScrolling = false;
}
if( self ActionSlotOneButtonPressed() && self.IsScrolling == false && self.MenuOpen == true )
{
self.Menu["Curs"] --;
self.IsScrolling = true;
if(self.Menu["Curs"] < 0)
{
self.Menu["Curs"] = self.Menu["Option"]["Name"][self.Menu["Sub"]].size-1;
}
self CursMove();
self playLocalSound("mouse_over");
wait 0.2;
self.IsScrolling = false;
}
if( self JumpButtonPressed() && self.LockMenu == false && self.MenuOpen == true )
{
self thread [[self.Menu["Func"][self.Menu["Sub"]][self.Menu["Curs"]]]](self.Menu["Input"][self.Menu["Sub"]][self.Menu["Curs"]]);
self playLocalSound( "mouse_click" );
wait 0.3;
}
if( self MeleeButtonPressed() && self.MenuOpen == true )
{
if( self.Menu["Sub"] == "Main" )
self ExitMenu();
else
self ExitSub();
}
wait 0.05;
}
}
AddMenuAction( SubMenu, OptNum, Name, Func, Input )
{
self.Menu["Option"]["Name"][SubMenu][OptNum] = Name;
self.Menu["Func"][SubMenu][OptNum] = Func;
if(isDefined( Input )){
self.Menu["Input"][SubMenu][OptNum] = Input;
}
}
AddBackToMenu( Menu, GoBack )
{
self.Menu["GoBack"][Menu] = GoBack;
}
MenuShaders()
{
self.Menu["Shader"]["backround"] = self createRectangle("LEFT", "", 70, 0, 475, 720, (0,0,0), "white", 2, 0);
self.Menu["Shader"]["Curs"] = self createRectangle("LEFT", "", 70, ((self.Menu["Curs"]*21.5
- 169.22), 999, 19,(1, 0, 0),"white",4,0);
self.BlackBg = self CreateRectangle("TOP", "TOP", 0, -100, 2000, 2000, (0,0,0), "white", 1, 0);
}
CursMove()
{
self.Menu["Shader"]["Curs"] MoveOverTime( 0.2 );
self.Menu["Shader"]["Curs"] setPoint("LEFT", "", 70, ((self.Menu["Curs"]*21.5
- 169.22) );
}
ExitMenu()
{
self.Menu["Text"] destroy();
self allowJump(true);
self enableWeapons();
self MenuShadersOut();
self.MenuOpen = false;
self.Menu["Sub"] = "Closed";
}
ExitSub()
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = self.Menu["GoBack"][self.Menu["Sub"]];
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
wait 0.2;
}
MenuShadersOut()
{
self.Menu["Shader"]["backround"].alpha = 0;
self.Menu["Shader"]["Curs"].alpha = 0;
self.BlackBg.alpha = 0;
}
MenuShadersIn()
{
self.Menu["Shader"]["backround"].alpha = 1;
self.Menu["Shader"]["Curs"].alpha = 1;
self.BlackBg.alpha = 0.75;
}
MenuDeath( elem, elem1, elem2, elem3, elem4 )
{
self waittill("death");
if(isDefined( elem ))
elem destroy();
if(isDefined( elem1 ))
elem1 destroy();
if(isDefined( elem2 ))
elem2 destroy();
if(isDefined( elem3 ))
elem3 destroy();
if(isDefined( elem4 ))
elem4 destroy();
}
SubMenu(numsub)
{
self.Menu["Text"] destroy();
self.Menu["Sub"] = numsub;
self.Menu["Curs"] = 0;
self CursMove();
self thread DrawMenuOpts();
}
CreateText( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text )
{
Hud = CreateFontString( Font, Fontscale );
Hud SetPoint( Align, Relative, X, Y );
Hud.alpha = Alpha;
Hud.sort = Sort;
Hud SetText( Text );
return Hud;
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
New()
{
self iprintln("?");
}
NukeGun()
{
self endon("disconnect");
for(;
{
self waittill("weapon_fired");
trace=bullettrace(self gettagorigin("j_head"),self gettagorigin("j_head")+anglestoforward(self getplayerangles())*100000,1,self)["position"];
nuke=loadfx("maps/mp_maps/fx_mp_nuked_nuclear_explosion");
playfx(nuke,trace);
self playsound("amb_end_nuke");
radiusdamage(trace,1000,2000,900,self);
}
}
NukePlane()
{
self endon ("disconnect");
nuke = spawnStruct();
nuke.fx = loadfx( "maps/mp_maps/fx_mp_nuked_nuclear_explosion" );
for(;
{
if(self meleebuttonpressed())
{
napalmSelectorSize = getDvarIntDefault( #"scr_napalmSelectorSize", 3000 );
self beginLocationNapalmSelection( "map_napalm_selector", napalmSelectorSize, "killstreak_napalm" );
self.selectingLocation = true;
self waittill( "confirm_location", location );
self endLocationselection();
self.selectingLocation = false;
nuke.planemodel = spawn("script_model", self.origin + ( 24000, 15000, 25000 ) );
nuke.planemodel setModel( "t5_veh_air_b52" );
nuke.planemodel.angles = vectorToAngles( Location - ( self.origin + ( 8000, 5000, 10000 ) ) );
nuke.planemodel moveto( location + ( 0, 0, 200 ), 2.9 );
wait 2.8;
nuke.dropmodel = spawn("script_model", nuke.planemodel.origin );
nuke.dropmodel setModel( "mp_supplydrop_axis" );
nuke.dropmodel.angles = vectorToAngles( location - ( self.origin + ( 8000, 5000, 10000 ) ) );
nuke.planemodel delete();
PlaySoundAtPosition( "amb_end_nuke", location );
nuke.dropmodel moveto( location, .9 );
wait 1.2;
Earthquake( 0.4, 4, location, 800 );
playfx( nuke.fx, nuke.dropmodel.origin );
wait .05;
nuke.dropmodel delete();
radiusdamage( location, 999999999, 3000, 900, self );
}
wait .05;
}
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.