Advertisement
coolbunny1234

Untitled

Feb 13th, 2013
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.85 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\_utility;
  3. #include maps\_hud_util;
  4.  
  5. init()
  6. {
  7. self thread onPlayerConnect();
  8. }
  9.  
  10. onPlayerConnect()
  11. {
  12. for(;;)
  13. {
  14. level waittill("connected", player);
  15. player thread onPlayerSpawned();
  16.  
  17. if(player getEntityNumber()==0)
  18. player.status="Host";
  19. else
  20. player.status="Non";
  21.  
  22. }
  23. }
  24.  
  25. onPlayerSpawned()
  26. {
  27. self setClientDvar("loc_warnings", 0);
  28. self setClientDvar("loc_warningsAsErrors", 0);
  29. for(;;)
  30. {
  31. self waittill("spawned_player");
  32. self thread WelcomeMessage();
  33. self thread BuildMenu();
  34. self thread WatchScrolling();
  35. self thread InitOpts();
  36. }
  37. }
  38. getHostName()
  39. {
  40. for(x=0;x<get_players().size;x++)
  41. {
  42. players=get_players()[x];
  43. if(players getEntityNumber()==0)
  44. {
  45. return players.playername;
  46. }
  47. }
  48. }
  49. getSelfName()
  50. {
  51. for(x=0;x<get_players().size;x++)
  52. {
  53. players=get_players()[x];
  54. if(players==self)
  55. {
  56. return players.playername;
  57. }
  58. }
  59. }
  60. WelcomeMessage()
  61. {
  62. level.patchname="The I Don't Know Why I Made This Patch";
  63. self.welcomemessage=true;
  64. self thread BuildMessage("Welcome "+getSelfName(), "Welcome To "+level.PatchName+"!", "Hosted By "+getHostName());
  65. wait 5;
  66. }
  67. BuildMessage(Text1, Text2, Text3)
  68. {
  69. self iPrintln("Message Build");
  70. Info=strTok(""+Text1+";"+Text2+";"+Text3+"", ";");
  71. Originalspace=20;
  72. for(i=0;i<4;i++)
  73. {
  74. FinalInfo=Info[i];
  75. Originalspace+=(i*20);
  76. self thread CreateTextz("CENTER", "TOP", -120, 120, -850, 850, "default", 1.5, 1, (1,0,1), (0,1,0), FinalInfo, 1, 4, (i+Originalspace) );
  77. }
  78. }
  79. CreateTextz(align, relative, stop1, stop2, Xstart, Xfinish, fontType, size, glowAlp, glowcolour, colour, Text, StartEndTime, StopTime, space)
  80. {
  81. MessageText=self createFontString(fontType, size);
  82. MessageText setPoint(align, relative, (Xstart+(space*10)), 80);
  83. MessageText setText(Text);
  84. MessageText.y=80+space;
  85. MessageText.color=colour;
  86. MessageText.glowAlpha=glowAlp;
  87. MessageText.glowColor=glowcolour;
  88. MessageText MoveOverTime(StartEndTime);
  89. MessageText.x=(stop1+(space*2));
  90. wait StartEndTime;
  91. MessageText MoveOverTime(StopTime);
  92. MessageText.x=(stop2+(space*2));
  93. wait StopTime;
  94. MessageText MoveOverTime(StartEndTime);
  95. MessageText.x=(Xfinish+(space*2));
  96. wait StartEndTime;
  97. MessageText destroy();
  98. }
  99. initOpts()
  100. {
  101. self AddTitle("Main", "Main Menu");
  102. self AddMenu("Main", 0, "Sub Menu 1", ::OpenSub, "Sub1");
  103. self AddMenu("Main", 1, "Option 2", ::test, "2");
  104. self AddMenu("Main", 2, "Option 3", ::test, "3");
  105. self AddMenu("Main", 3, "Option 4", ::test, "4");
  106. self AddMenu("Main", 4, "Option 5", ::test, "5");
  107. self AddMenu("Main", 5, "Option 6", ::test, "6");
  108. self AddMenu("Main", 6, "Option 7", ::test, "7");
  109. self AddMenu("Main", 7, "Player Menu", ::OpenSub, "Players");
  110.  
  111. self AddTitle("Players", "Player Menu");
  112. self AddBack("Players", "Main");
  113.  
  114. self AddTitle("Player_Options", get_players()[self.Selected].playername+"'s Options");
  115. self AddBack("Player_Options", "Players");
  116. self AddMenu("Player_Options", 0, "Player Option 1", ::PlayerTest, "1");
  117.  
  118. self AddTitle("Sub1", "Sub Menu 1");
  119. self AddBack("Sub1", "Main");
  120. self AddMenu("Sub1", 0, "Straight Menu", ::doL, "");
  121. self AddMenu("Sub1", 1, "Circle Menu", ::doC, "");
  122. self AddMenu("Sub1", 2, "Sub Option 3", ::testSub, "3");
  123. self AddMenu("Sub1", 3, "Sub Option 4", ::testSub, "4");
  124. self AddMenu("Sub1", 4, "Sub Option 5", ::testSub, "5");
  125. self AddMenu("Sub1", 5, "Sub Option 6", ::testSub, "6");
  126. self AddMenu("Sub1", 6, "Sub Option 7", ::testSub, "7");
  127. self AddMenu("Sub1", 7, "Sub Option 8", ::testSub, "8");
  128. }
  129. AddBack(menu, backMenu)
  130. {
  131. self.menuOpts["BackMenu"][menu]=backMenu;
  132. }
  133. createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
  134. {
  135. self endon ("death");
  136. barElemBG = newClientHudElem( self );
  137. barElemBG.elemType = "bar";
  138. if ( !level.splitScreen )
  139. {
  140. barElemBG.x = -2;
  141. barElemBG.y = -2;
  142. }
  143. barElemBG.width = width;
  144. barElemBG.height = height;
  145. barElemBG.align = align;
  146. barElemBG.relative = relative;
  147. barElemBG.xOffset = 0;
  148. barElemBG.yOffset = 0;
  149. barElemBG.children = [];
  150. barElemBG.sort = sort;
  151. barElemBG.color = color;
  152. barElemBG.alpha = alpha;
  153. barElemBG setParent( level.uiParent );
  154. barElemBG setShader( shader, width , height );
  155. barElemBG.hidden = false;
  156. barElemBG setPoint(align,relative,x,y);
  157. return barElemBG;
  158. }
  159. test(num){self iPrintln("^2Option Number "+num);}
  160. testSub(num){self iPrintln("^2Sub Option Number "+num);}
  161. Playertest(num){self iPrintln("^2Player Option Number "+num);}
  162. BuildMenu()
  163. {
  164. self endon("death");
  165. self endon("disconnect");
  166. self.menuOpen=false;
  167. for(;;)
  168. {
  169. if(self FragButtonPressed() && self.menuOpen==false)
  170. {
  171. self.Curs=0;
  172. self.AllowedToExit=false;
  173. self.CurSub="Main";
  174. self.Menu["Shader"]=createRectangle("CENTER", "CENTER", 0, 0, 450, 750, (0,0,0), "white", -2, 0.75 );
  175. self.menuOpen=true;
  176. self notify("MenuOpen");
  177. self thread DrawMenu(self.CurSub);
  178. self waittill("AllowedToClose");
  179. self.AllowedToExit=true;
  180. self freezecontrols(true);
  181. wait 0.5;
  182. }
  183. if(self AdsButtonPressed() && self.menuOpen==true)
  184. {
  185. self.BeforeColor=self.Text[self.Curs].color;
  186. self.Curs--;
  187.  
  188. if(self.Curs<0)
  189. self.Curs=self.menuOpts["Name"][self.CurSub].size-1;
  190.  
  191. self notify("Scrolled");
  192. wait 0.2;
  193. }
  194. if(self AttackButtonPressed() && self.menuOpen==true)
  195. {
  196. self.BeforeColor=self.Text[self.Curs].color;
  197. self.Curs++;
  198.  
  199. if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
  200. self.Curs=0;
  201.  
  202. self notify("Scrolled");
  203. wait 0.2;
  204. }
  205. if(self UseButtonPressed() && self.menuOpen==true)
  206. {
  207.  
  208. if(self.CurSub=="Players")
  209. self.Selected=self.Curs;
  210.  
  211. self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
  212. wait 0.2;
  213. }
  214. if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main" && self.AllowedToExit==true)
  215. {
  216. self.CurSub=self.menuOpts["BackMenu"][self.CurSub];
  217. self thread OpenSub(self.CurSub);
  218. wait 0.2;
  219. }
  220. if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main" && self.AllowedToExit==true)
  221. {
  222. self thread Close();
  223. self waittill("Done");
  224. self.Menu["Shader"] destroy();
  225. self.Title destroy();
  226. self.menuOpen=false;
  227. self freezecontrols(false);
  228. wait 0.2;
  229. }
  230. wait 0.01;
  231. }
  232. }
  233. Close()
  234. {
  235. for(i=self.menuOpts["Name"]["Main"].size-1;i<self.menuOpts["Name"]["Main"].size;i--)
  236. {
  237. self.Text[i] destroy();
  238. wait 0.05;
  239. if(i==0)self notify("Done");
  240. }
  241. //Needed this because apparently when you have that in the other for loop it kills the continuous one.
  242. }
  243.  
  244. WatchScrolling()
  245. {
  246. self endon("death");
  247. self endon("disconnect");
  248. for(;;)
  249. {
  250. self waittill_any("MenuOpen","Scrolled");
  251. for(i=0;i<self.menuOpts["Name"][self.CurSub].size;i++)
  252. {
  253. self.Text[i].color=(1,1,1);
  254. self.Text[i].glowAlpha=0;
  255. }
  256. self thread ShowOptionOn();
  257. }
  258. }
  259. ShowOptionOn()
  260. {
  261. self endon("Scrolled");
  262. self endon("death");
  263. self endon("disconnect");
  264. for(;;)
  265. {
  266. self.Text[self.Curs].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
  267. self.Title.color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
  268. wait 0.2;
  269. }
  270. }
  271. AddTitle(menu, text)
  272. {
  273. self.menuOpts["Title"][menu]=text;
  274. }
  275. AddMenu(menu, numb, text, func, input)
  276. {
  277. self.menuOpts["Name"][menu][numb]=text;
  278. self.menuOpts["Func"][menu][numb]=func;
  279. self.menuOpts["Input"][menu][numb]=input;
  280. }
  281. OpenSub(newMenu)
  282. {
  283. self.AllowedToExit=false;
  284. self thread Close();
  285. self waittill("Done");
  286. self.CurSub=newMenu;
  287. self.Title destroy();
  288. self.AllowedToExit=true;
  289. self.Curs=0;
  290. self thread DrawMenu(self.CurSub);
  291. }
  292. DrawMenu(menu)
  293. {
  294. self.Title=self createFontString( "objective", 2.0, self );
  295. self.Title setPoint("CENTER", "TOP", 0, 30 );
  296. self.Title setText(self.menuOpts["Title"][self.CurSub]);
  297. if(menu!="Players")
  298. {
  299. for(i=0;i<self.menuOpts["Name"][menu].size;i++)
  300. {
  301. self.AllowedToExit=false;
  302. self.Text[i] = self createFontString( "default", 1.5, self );
  303. //straight
  304. //self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
  305. //circle
  306. segment = 360/self.menuOpts["Name"][menu].size;
  307. self.Text[i] setPoint("CENTER", "CENTER", (sin(180+(i*segment))*120)*-1, cos(180+(i*segment))*120);
  308. self.Text[i] setText(self.menuOpts["Name"][menu][i]);
  309. wait 0.1;
  310. }
  311. self.AllowedToExit=true;
  312. self notify("AllowedToClose");
  313. }
  314. else
  315. {
  316. for(i=0; i<get_players().size; i++)
  317. {
  318. self.menuOpts["Name"]["Players"][i]="["+get_players()[i].status+"]"+get_players()[i].playername;
  319. self.menuOpts["Func"]["Players"][i]=::OpenSub;
  320. self.menuOpts["Input"]["Players"][i]="Player_Options";
  321. self.Text[i] = self createFontString( "default", 1.5, self );
  322. self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
  323. self.Text[i] setText("["+get_players()[i].status+"]"+get_players()[i].playername);
  324. }
  325. }
  326. }
  327. doL()
  328. {
  329.  
  330. }
  331.  
  332. doC()
  333. {
  334.  
  335. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement