Advertisement
coolbunny1234

Untitled

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