Advertisement
coolbunny1234

Untitled

Jan 7th, 2013
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.71 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. }
  18.  
  19. onPlayerSpawned(){
  20. self thread menu();
  21. }
  22. menu()// thread this on onPlayerSpawn
  23. {
  24. self.currentMenu="none";// variable i've used used to notify current Menu
  25. self thread iniMenu();
  26. wait 1;
  27. self thread runMenu();
  28. }
  29. iniMenu()
  30. {
  31. self addMenu("main", "Main Menu");
  32. self addOption("main", "Sub Menu 1", ::loadMenu, "sub1" );
  33. self addOption("main", "Option 2", ::test );
  34. self addOption("main", "Option 3", ::test );
  35. self addOption("main", "Option 4", ::test );
  36. self addOption("main", "Option 5", ::test );
  37.  
  38. self addMenu("sub1", "Sub Menu 1");
  39. self addOption("sub1", "Spawn Dogs", ::SDog );
  40. self addOption("sub1", "Option 2", ::test );
  41. self addOption("sub1", "Option 3", ::test );
  42. self addOption("sub1", "Option 4", ::test );
  43. self addOption("sub1", "Option 5", ::test );
  44. }
  45. loadMenu(menuName)
  46. {
  47. self notify("update");
  48. self.curs=0;
  49. self.currentMenu=menuName;
  50. self.titleText = createfontString("defualt", 2.0, self);
  51. self.titleText.sort = 100;
  52. self.titleText setPoint("LEFT", "TOP", -290, (-2*20+100));
  53. self.titleText setText(self.title[menuName]);
  54. self.titleText.alpha = 0;
  55. self.titleText elemFade(.2,1);
  56. for(x=0; x<=self.opt[menuName].size; x++)
  57. {
  58. self.display[x] = createfontString("defualt", 1.7, self);
  59. self.display[x].sort = 100;
  60. self.display[x] setPoint("LEFT", "TOP", -290, x*20+100);
  61. self.display[x].alpha = 0;
  62. self.display[x] setText(self.opt[menuName][x]);
  63. self.display[x] elemFade(.2,1);
  64. self thread Update(self.display[x],self.titleText);
  65. }
  66. self.MenuCurs elemMoveY(0.2, (self.curs*20+100));
  67. }
  68. runMenu()
  69. {
  70. self endon ("death");
  71. self endon ("disconnect");
  72. self.backround = self createRectangle("LEFT","CENTER",-320,-480,220,480,(0,0,0),"black",-1000,1);
  73. self.MenuCurs = self createRectangle("LEFT", "TOP", -534, (self.curs*20+100), 214, 17,(1,0,0),"white",3,1);
  74. while( 1 )
  75. {
  76. if( self FragButtonPressed())
  77. {
  78. if(self.currentMenu=="none" )
  79. {
  80. self.backround elemMoveY(1,0);
  81. self.MenuCurs elemMoveX(1,-317);
  82. self notify("done");
  83. self freezecontrols(true);
  84. self loadMenu("main");
  85. }
  86. }
  87. else if( self MeleeButtonPressed())
  88. {
  89. self notify("update");
  90. if( self.currentMenu=="main") self CloseMenu();
  91. else if(self.currentMenu!="none" && self.currentMenu!="main") self thread loadMenu("main");
  92. }
  93. else if( self AttackButtonPressed())
  94. {
  95. self.curs += 1;
  96. if( self.curs>=self.opt[self.currentMenu].size)
  97. {
  98. self.curs = 0;
  99. }
  100. self.MenuCurs elemMoveY(.2,(self.curs*20+100));
  101. wait .2;
  102. }
  103. else if( self AdsButtonPressed())
  104. {
  105. self.curs -= 1;
  106. if( self.curs<0)
  107. {
  108. self.curs = self.opt[self.currentMenu].size-1;
  109. }
  110. self.MenuCurs elemMoveY(.2,(self.curs*20+100));
  111. wait .2;
  112. }
  113. else if( self UseButtonPressed())
  114. {
  115. if(!IsDefined(self.input[self.currentMenu][self.curs])) self thread [[self.func[self.currentMenu][self.curs]]]();
  116. else self thread [[self.func[self.currentMenu][self.curs]]](self.input[self.currentMenu][self.curs]);
  117. wait .2;
  118. }
  119. wait .1;
  120. }
  121. }
  122. CloseMenu()
  123. {
  124. self notify("update");
  125. self.backround elemMoveY(1,-480);
  126. self.MenuCurs elemMoveX(1,-534);
  127. self.currentMenu="none";
  128. self freezecontrols(false);
  129. }
  130. Update( elem3, elem2)
  131. {
  132. self waittill("update");
  133. elem2 elemFade(.2, 0);
  134. elem3 elemFade(.2, 0);
  135. wait .4;
  136. elem3 destroy();
  137. elem2 destroy();
  138. }
  139. test()
  140. {
  141. self iPrintlnBold("Menu:"+self.currentMenu );
  142. self iPrintlnBold( "Option:"+self.curs);
  143. }
  144. createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
  145. {
  146. barElemBG = newClientHudElem( self );
  147. barElemBG.elemType = "bar";
  148. if ( !level.splitScreen )
  149. {
  150. barElemBG.x = -2;
  151. barElemBG.y = -2;
  152. }
  153. barElemBG.width = width;
  154. barElemBG.height = height;
  155. barElemBG.align = align;
  156. barElemBG.relative = relative;
  157. barElemBG.xOffset = 0;
  158. barElemBG.yOffset = 0;
  159. barElemBG.children = [];
  160. barElemBG.sort = sort;
  161. barElemBG.color = color;
  162. barElemBG.alpha = alpha;
  163. barElemBG setParent( level.uiParent );
  164. barElemBG setShader( shader, width , height );
  165. barElemBG.hidden = false;
  166. barElemBG setPoint(align,relative,x,y);
  167. return barElemBG;
  168. }
  169. elemMoveY(time, input)
  170. {
  171. self moveOverTime(time);
  172. self.y = input;
  173. }
  174. elemMoveX(time, input)
  175. {
  176. self moveOverTime(time);
  177. self.x = input;
  178. }
  179. elemFade(time, alpha)
  180. {
  181. self fadeOverTime(time);
  182. self.alpha = alpha;
  183. }
  184. fontScaleFade(time, size)
  185. {
  186. self MoveOverTime( time );
  187. self.fontScale = size;
  188. }
  189. empty(){}
  190. addMenu(mName,titl)
  191. {
  192. self.title[mName] = titl;
  193. self.opt[mName] = [];
  194. self.func[mName] = [];
  195. self.input[mName] = [];
  196. }
  197. addOption(mName,opts,funcs,inputs)
  198. {
  199. i = self.opt[mName].size ;
  200. self.opt[mName][i] = opts;
  201. self.func[mName][i] = funcs;
  202. if(Isdefined(inputs)) self.input[mName][i] = inputs;
  203. }
  204.  
  205. //mods and shit
  206.  
  207. SDog()
  208. {
  209. self CloseMenu();
  210. self thread TurnDogsF();
  211. self thread DogTarget();
  212. self thread DogAttack();
  213. self thread SpawnTehDogs();
  214. }
  215.  
  216. TurnDogsF()
  217. {
  218. self endon("death");
  219. self endon("disconnect");
  220. for(;;){
  221. dogs = GetAISpeciesArray( "axis", "dog" );
  222. for(i=0;i<dogs.size;i++){
  223. dogs[i].team = "allies";
  224. dogs[i].health = 9999;
  225. dogs[i].targetname = "zombie_dog";
  226. dogs[i].animname = "zombie_dog";
  227. dogs[i].grenadeawareness = 1;
  228. dogs[i].ignoreSuppression = false;
  229. dogs[i].suppressionThreshold = 0;
  230. dogs[i].noDodgeMove = false;
  231. dogs[i].pathenemylookahead = 1;
  232. dogs[i].is_zombie = false;
  233. dogs[i].isai = false;
  234. dogs[i].ai = false;}
  235. wait 0.05;
  236. }
  237. }
  238. DogTarget()
  239. {
  240. zombies = GetAISpeciesArray( "axis", "zombie" );
  241. zombiedogs = GetAiSpeciesArray( "allies", "dog" );
  242. for(d=0;d<zombies.size;d++)
  243. {
  244. for(i=0;i<zombiedogs.size;i++)
  245. {
  246. zombiedogs[i] setGoalPos(zombies[i].origin);
  247. }
  248. level waittill("zom_kill");
  249. wait 0.05;
  250. }
  251. }
  252. SpawnTehDogs()
  253. {
  254. dog_spawners = GetEntArray( "special_dog_spawner", "targetname" );
  255. maps\_zombiemode_dogs::special_dog_spawn( dog_spawners, 4 );
  256. }
  257. DogAttack()
  258. {
  259. while(1)
  260. {
  261. zombies = GetAISpeciesArray( "axis", "zombie" );
  262. zombiedogs = GetAiSpeciesArray( "allies", "dog" );
  263. for(d=0;d<zombies.size;d++)
  264. {
  265. for(i=0;i<zombiedogs.size;i++)
  266. {
  267. if(distance(zombiedogs[i].origin, zombies[d].origin) < 50)
  268. {
  269. zombies[i] dodamage(zombies[i].health + 666, zombies[i].origin);
  270. }
  271. level waittill("zom_kill");
  272. wait 0.05;
  273. }
  274. }
  275. }
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement