Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\_utility;
- #include maps\_hud_util;
- init()
- {
- self thread onPlayerConnect();
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill("connected", player);
- player thread onPlayerSpawned();
- if(player getEntityNumber()==0)
- player.status="Host";
- else
- player.status="Non";
- }
- }
- onPlayerSpawned()
- {
- self setClientDvar("loc_warnings", 0);
- self setClientDvar("loc_warningsAsErrors", 0);
- for(;;)
- {
- self waittill("spawned_player");
- self thread WelcomeMessage();
- self thread BuildMenu();
- self thread WatchScrolling();
- self thread InitOpts();
- }
- }
- getHostName()
- {
- for(x=0;x<get_players().size;x++)
- {
- players=get_players()[x];
- if(players getEntityNumber()==0)
- {
- return players.playername;
- }
- }
- }
- getSelfName()
- {
- for(x=0;x<get_players().size;x++)
- {
- players=get_players()[x];
- if(players==self)
- {
- return players.playername;
- }
- }
- }
- WelcomeMessage()
- {
- level.patchname="The I Don't Know Why I Made This Patch";
- self.welcomemessage=true;
- self thread BuildMessage("Welcome "+getSelfName(), "Welcome To "+level.PatchName+"!", "Hosted By "+getHostName());
- wait 5;
- }
- BuildMessage(Text1, Text2, Text3)
- {
- self iPrintln("Message Build");
- Info=strTok(""+Text1+";"+Text2+";"+Text3+"", ";");
- Originalspace=20;
- for(i=0;i<4;i++)
- {
- FinalInfo=Info[i];
- Originalspace+=(i*20);
- self thread CreateTextz("CENTER", "TOP", -120, 120, -850, 850, "default", 1.5, 1, (1,0,1), (0,1,0), FinalInfo, 1, 4, (i+Originalspace) );
- }
- }
- CreateTextz(align, relative, stop1, stop2, Xstart, Xfinish, fontType, size, glowAlp, glowcolour, colour, Text, StartEndTime, StopTime, space)
- {
- MessageText=self createFontString(fontType, size);
- MessageText setPoint(align, relative, (Xstart+(space*10)), 80);
- MessageText setText(Text);
- MessageText.y=80+space;
- MessageText.color=colour;
- MessageText.glowAlpha=glowAlp;
- MessageText.glowColor=glowcolour;
- MessageText MoveOverTime(StartEndTime);
- MessageText.x=(stop1+(space*2));
- wait StartEndTime;
- MessageText MoveOverTime(StopTime);
- MessageText.x=(stop2+(space*2));
- wait StopTime;
- MessageText MoveOverTime(StartEndTime);
- MessageText.x=(Xfinish+(space*2));
- wait StartEndTime;
- MessageText destroy();
- }
- initOpts()
- {
- self AddTitle("Main", "Main Menu");
- self AddMenu("Main", 0, "Sub Menu 1", ::OpenSub, "Sub1");
- self AddMenu("Main", 1, "Option 2", ::test, "2");
- self AddMenu("Main", 2, "Option 3", ::test, "3");
- self AddMenu("Main", 3, "Option 4", ::test, "4");
- self AddMenu("Main", 4, "Option 5", ::test, "5");
- self AddMenu("Main", 5, "Option 6", ::test, "6");
- self AddMenu("Main", 6, "Option 7", ::test, "7");
- self AddMenu("Main", 7, "Player Menu", ::OpenSub, "Players");
- self AddTitle("Players", "Player Menu");
- self AddBack("Players", "Main");
- self AddTitle("Player_Options", get_players()[self.Selected].playername+"'s Options");
- self AddBack("Player_Options", "Players");
- self AddMenu("Player_Options", 0, "Player Option 1", ::PlayerTest, "1");
- self AddTitle("Sub1", "Sub Menu 1");
- self AddBack("Sub1", "Main");
- self AddMenu("Sub1", 0, "Straight Menu", ::doL, "");
- self AddMenu("Sub1", 1, "Circle Menu", ::doC, "");
- self AddMenu("Sub1", 2, "Sub Option 3", ::testSub, "3");
- self AddMenu("Sub1", 3, "Sub Option 4", ::testSub, "4");
- self AddMenu("Sub1", 4, "Sub Option 5", ::testSub, "5");
- self AddMenu("Sub1", 5, "Sub Option 6", ::testSub, "6");
- self AddMenu("Sub1", 6, "Sub Option 7", ::testSub, "7");
- self AddMenu("Sub1", 7, "Sub Option 8", ::testSub, "8");
- }
- AddBack(menu, backMenu)
- {
- self.menuOpts["BackMenu"][menu]=backMenu;
- }
- createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
- {
- self endon ("death");
- barElemBG = newClientHudElem( self );
- barElemBG.elemType = "bar";
- if ( !level.splitScreen )
- {
- barElemBG.x = -2;
- barElemBG.y = -2;
- }
- 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;
- }
- test(num){self iPrintln("^2Option Number "+num);}
- testSub(num){self iPrintln("^2Sub Option Number "+num);}
- Playertest(num){self iPrintln("^2Player Option Number "+num);}
- BuildMenu()
- {
- self endon("death");
- self endon("disconnect");
- self.menuOpen=false;
- for(;;)
- {
- if(self FragButtonPressed() && self.menuOpen==false)
- {
- self.Curs=0;
- self.AllowedToExit=false;
- self.CurSub="Main";
- self.Menu["Shader"]=createRectangle("CENTER", "CENTER", 0, 0, 450, 750, (0,0,0), "white", -2, 0.75 );
- self.menuOpen=true;
- self notify("MenuOpen");
- self thread DrawMenu(self.CurSub);
- self waittill("AllowedToClose");
- self.AllowedToExit=true;
- self freezecontrols(true);
- wait 0.5;
- }
- if(self AdsButtonPressed() && self.menuOpen==true)
- {
- self.BeforeColor=self.Text[self.Curs].color;
- self.Curs--;
- if(self.Curs<0)
- self.Curs=self.menuOpts["Name"][self.CurSub].size-1;
- self notify("Scrolled");
- wait 0.2;
- }
- if(self AttackButtonPressed() && self.menuOpen==true)
- {
- self.BeforeColor=self.Text[self.Curs].color;
- self.Curs++;
- if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
- self.Curs=0;
- self notify("Scrolled");
- wait 0.2;
- }
- if(self UseButtonPressed() && self.menuOpen==true)
- {
- if(self.CurSub=="Players")
- self.Selected=self.Curs;
- self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
- wait 0.2;
- }
- if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main" && self.AllowedToExit==true)
- {
- self.CurSub=self.menuOpts["BackMenu"][self.CurSub];
- self thread OpenSub(self.CurSub);
- wait 0.2;
- }
- if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main" && self.AllowedToExit==true)
- {
- self thread Close();
- self waittill("Done");
- self.Menu["Shader"] destroy();
- self.Title destroy();
- self.menuOpen=false;
- self freezecontrols(false);
- wait 0.2;
- }
- wait 0.01;
- }
- }
- Close()
- {
- for(i=self.menuOpts["Name"]["Main"].size-1;i<self.menuOpts["Name"]["Main"].size;i--)
- {
- self.Text[i] destroy();
- wait 0.05;
- if(i==0)self notify("Done");
- }
- //Needed this because apparently when you have that in the other for loop it kills the continuous one.
- }
- WatchScrolling()
- {
- self endon("death");
- self endon("disconnect");
- for(;;)
- {
- self waittill_any("MenuOpen","Scrolled");
- for(i=0;i<self.menuOpts["Name"][self.CurSub].size;i++)
- {
- self.Text[i].color=(1,1,1);
- self.Text[i].glowAlpha=0;
- }
- self thread ShowOptionOn();
- }
- }
- ShowOptionOn()
- {
- self endon("Scrolled");
- self endon("death");
- self endon("disconnect");
- for(;;)
- {
- self.Text[self.Curs].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- self.Title.color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- wait 0.2;
- }
- }
- AddTitle(menu, text)
- {
- self.menuOpts["Title"][menu]=text;
- }
- AddMenu(menu, numb, text, func, input)
- {
- self.menuOpts["Name"][menu][numb]=text;
- self.menuOpts["Func"][menu][numb]=func;
- self.menuOpts["Input"][menu][numb]=input;
- }
- OpenSub(newMenu)
- {
- self.AllowedToExit=false;
- self thread Close();
- self waittill("Done");
- self.CurSub=newMenu;
- self.Title destroy();
- self.AllowedToExit=true;
- self.Curs=0;
- self thread DrawMenu(self.CurSub);
- }
- DrawMenu(menu)
- {
- self.Title=self createFontString( "objective", 2.0, self );
- self.Title setPoint("CENTER", "TOP", 0, 30 );
- self.Title setText(self.menuOpts["Title"][self.CurSub]);
- if(menu!="Players")
- {
- for(i=0;i<self.menuOpts["Name"][menu].size;i++)
- {
- self.AllowedToExit=false;
- self.Text[i] = self createFontString( "default", 1.5, self );
- //straight
- //self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
- //circle
- segment = 360/self.menuOpts["Name"][menu].size;
- self.Text[i] setPoint("CENTER", "CENTER", (sin(180+(i*segment))*120)*-1, cos(180+(i*segment))*120);
- self.Text[i] setText(self.menuOpts["Name"][menu][i]);
- wait 0.1;
- }
- self.AllowedToExit=true;
- self notify("AllowedToClose");
- }
- else
- {
- for(i=0; i<get_players().size; i++)
- {
- self.menuOpts["Name"]["Players"][i]="["+get_players()[i].status+"]"+get_players()[i].playername;
- self.menuOpts["Func"]["Players"][i]=::OpenSub;
- self.menuOpts["Input"]["Players"][i]="Player_Options";
- self.Text[i] = self createFontString( "default", 1.5, self );
- self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
- self.Text[i] setText("["+get_players()[i].status+"]"+get_players()[i].playername);
- }
- }
- }
- doL()
- {
- }
- doC()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement