coolbunny1234

Untitled

Jun 7th, 2011
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.07 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\_utility;
  3. #include maps\_hud_util;
  4. menu()//thread this on onPlayerSpawn
  5. {
  6. self thread MenuStart();
  7. self thread MenuEnd();
  8. self thread selectOpt();
  9. self thread ButtonMonitoring();
  10. self thread iniMenu();
  11. self thread Up();
  12. self thread Down();
  13. build_custom_aircraft( "rufe" );
  14. }
  15.  
  16. //Menu Functions
  17.  
  18. MenuStart()
  19. {
  20. self endon ("death");
  21. self.cf3=0;
  22. self.curs=1;
  23. self.editor=0;
  24. //Dont need background shader because of FadeToBlack
  25. //self.backround = self createRectangle("LEFT","CENTER",-320,-480,220,480,(0,0,0),"black",-1000,1);
  26. self.MenuCurs = self createRectangle("CENTER", "TOP", 0, (self.curs*24+150), 850, 20,((153/255),(50/255),(204/255)),"white",3,0);
  27. for(;;)
  28. {
  29. self waittill("frag");
  30. if(self.editor==1){}
  31. else if(self.cf3==0)
  32. {
  33. self.MenuCurs elemMoveX(1,0);
  34. self.MenuCurs elemFade(3,0.9);
  35. self notify("done");
  36. self freezecontrols(true);
  37. wait 1;
  38. self.curs=1;
  39. self.cf3=1;
  40. self thread subMenu();
  41. }
  42. }
  43. }
  44. MenuEnd()
  45. {
  46. for(;;)
  47. {
  48. self.curs=1;
  49. self waittill("melee");
  50. self notify("update");
  51. if( self.cf3==1)
  52. {
  53. self.MenuCurs elemMoveX(1,0);
  54. self.MenuCurs elemFade(0.5,0);
  55. wait .3;
  56. self.cf3=0;
  57. self freezecontrols(false);
  58. } else if(self.cf3==0) { self thread empty(); } else {
  59. self.cf3=1;
  60. self.curs=1;
  61. self thread subMenu();
  62. }
  63. }
  64. }
  65. CloseMenu()
  66. {
  67. self notify("update");
  68. self.MenuCurs elemMoveX(1,0);
  69. self.MenuCurs elemFade(0.5,0);
  70. self.cf3=0;
  71. self freezecontrols(false);
  72. }
  73. OpenMenu()
  74. {
  75. self endon ("death");
  76. self.cf3=0;
  77. self.curs=1;
  78. self.MenuCurs elemMoveX(1,0);
  79. self.MenuCurs elemFade(0.5,0);
  80. self freezecontrols(true);
  81. self.curs=1;
  82. self.cf3=1;
  83. self thread subMenu();
  84. }
  85. subMenu()
  86. {
  87. for(x=0; x<=self.opts[self.cf3].size; x++)
  88. {
  89. if(self.cf3==0) {}
  90. else {
  91. self.display[x] = createfontString("objective", 2.0, self);
  92. self.display[x].sort = 100;
  93. self.display[x] setPoint("CENTER", "TOP", 0, x*24+150);
  94. self.display[x] elemMoveX(.4, 10);
  95. self.display[x] setText(self.opts[self.cf3][x]);
  96. self.display[0].fontscale = 3.5;
  97. self.display[0].y = (-3*24+150);
  98. self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
  99. self thread Update(self.display[x]); }
  100. }
  101. }
  102. Update( elem3)
  103. {
  104. self waittill("update");
  105. elem3 elemMoveX(.4, -490);
  106. elem3 destroy();
  107. }
  108. Up()
  109. {
  110. self endon ("death");
  111. self waittill("done");
  112. for(;;)
  113. {
  114. self waittill("attack");
  115. if(self.cf3>=1)
  116. {
  117. self.curs += 1;
  118. if( self.curs>=self.opts[self.cf3].size)
  119. {
  120. self.curs = 1;
  121. }
  122. self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
  123. }
  124. }
  125. }
  126.  
  127. Down()
  128. {
  129. self endon ( "death" );
  130. self waittill("done");
  131. for(;;)
  132. {
  133. self waittill("ads");
  134. if(self.cf3>=1)
  135. {
  136. self.curs -= 1;
  137. if( self.curs<1)
  138. {
  139. self.curs = self.opts[self.cf3].size-1;
  140. }
  141. self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
  142. }
  143. }
  144. }
  145.  
  146. selectOpt()
  147. {
  148. self endon ( "disconnect" );
  149. for(;;)
  150. {
  151. self waittill("use");
  152. if(!IsDefined(self.input[self.cf3][self.curs]))
  153. {
  154. self.MenuCurs.alpha = 1;
  155. wait .13;
  156. self.MenuCurs.alpha = 0.6;
  157. wait .07;
  158. self thread [[self.func[self.cf3][self.curs]]]();
  159. } else {
  160. self.MenuCurs.alpha = 1;
  161. wait .13;
  162. self.MenuCurs.alpha = 0.6;
  163. wait .07;
  164. self thread [[self.func[self.cf3][self.curs]]](self.input[self.cf3][self.curs]);
  165. }
  166. }
  167. }
  168. test()
  169. {
  170. self iPrintlnBold("Test");
  171. }
  172. ButtonMonitoring()
  173. {
  174. self endon("death");
  175. self endon("disconnect");
  176. for(;;)
  177. {
  178. if(self FragButtonPressed())
  179. {
  180. self notify("frag");
  181. }
  182. if(self MeleeButtonPressed())
  183. {
  184. self notify("melee");
  185. }
  186. if(self AttackButtonPressed())
  187. {
  188. self notify("attack");
  189. }
  190. if(self AdsButtonPressed())
  191. {
  192. self notify("ads");
  193. }
  194. if(self UseButtonPressed())
  195. {
  196. self notify("use");
  197. }
  198. /*
  199. if(self AdsButtonPressed() && self MeleeButtonPressed())
  200. {
  201. self notify("bawlz");
  202. }
  203. */
  204. wait .15;
  205. }
  206. }
  207. menus(num)
  208. {
  209. self notify ("update");
  210. self.cf3=num;
  211. self.curs=1;
  212. self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
  213. self thread subMenu();
  214. }
  215. createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
  216. {
  217. barElemBG = newClientHudElem( self );
  218. barElemBG.elemType = "bar";
  219. if ( !level.splitScreen )
  220. {
  221. barElemBG.x = -2;
  222. barElemBG.y = -2;
  223. }
  224. barElemBG.width = width;
  225. barElemBG.height = height;
  226. barElemBG.align = align;
  227. barElemBG.relative = relative;
  228. barElemBG.xOffset = 0;
  229. barElemBG.yOffset = 0;
  230. barElemBG.children = [];
  231. barElemBG.sort = sort;
  232. barElemBG.color = color;
  233. barElemBG.alpha = alpha;
  234. barElemBG setParent( level.uiParent );
  235. barElemBG setShader( shader, width , height );
  236. barElemBG.hidden = false;
  237. barElemBG setPoint(align,relative,x,y);
  238. return barElemBG;
  239. }
  240. elemMoveY(time, input)
  241. {
  242. self moveOverTime(time);
  243. self.y = input;
  244. }
  245. elemMoveX(time, input)
  246. {
  247. self moveOverTime(time);
  248. self.x = input;
  249. }
  250. elemFade(time, alpha)
  251. {
  252. self fadeOverTime(time);
  253. self.alpha = alpha;
  254. }
  255. empty(){}
  256.  
  257. //Menu Base
  258.  
  259. iniMenu()
  260. {
  261. self.opts[1] = strTok("Main Menu|Menu 1|Menu 2|Menu 3|Menu 4|Menu 5|Menu 6|Menu 7|Menu 8", "|");
  262. self.title[1] = "Main Menu";
  263. self.func[1] = [];
  264. self.func[1][0] = :: empty;
  265. self.func[1][1] = :: menus;
  266. self.func[1][2] = :: menus;
  267. self.func[1][3] = :: menus;
  268. self.func[1][4] = :: menus;
  269. self.func[1][5] = :: menus;
  270. self.func[1][6] = :: menus;
  271. self.func[1][7] = :: menus;
  272. self.func[1][8] = :: menus;
  273. self.input[2] = [];
  274. self.input[1][0] = "";
  275. self.input[1][1] = 2;
  276. self.input[1][2] = 3;
  277. self.input[1][3] = 4;
  278. self.input[1][4] = 5;
  279. self.input[1][5] = 6;
  280. self.input[1][6] = 7;
  281. self.input[1][7] = 8;
  282. self.input[1][8] = 9;
  283. self.opts[2] = strTok("SubMenu 1|Car|Artillery|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  284. self.func[2] = [];
  285. self.func[2][0] = :: empty;
  286. self.func[2][1] = :: car;
  287. self.func[2][2] = :: artillery;
  288. self.func[2][3] = :: test;
  289. self.func[2][4] = :: test;
  290. self.func[2][5] = :: test;
  291. self.func[2][6] = :: test;
  292. self.func[2][7] = :: test;
  293. self.func[2][8] = :: test;
  294. self.input[2] = [];
  295. self.input[2][0] = "";
  296. self.input[2][1] = "";
  297. self.input[2][2] = "";
  298. self.input[2][3] = "";
  299. self.input[2][4] = "";
  300. self.input[2][5] = "";
  301. self.input[2][6] = "";
  302. self.input[2][7] = "";
  303. self.input[2][8] = "";
  304. self.opts[3] = strTok("SubMenu 2|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  305. self.func[3][0] = :: empty;
  306. self.func[3][1] = :: test;
  307. self.func[3][2] = :: test;
  308. self.func[3][3] = :: test;
  309. self.func[3][4] = :: test;
  310. self.func[3][5] = :: test;
  311. self.func[3][6] = :: test;
  312. self.func[3][7] = :: test;
  313. self.func[3][8] = :: test;
  314. self.input[3] = [];
  315. self.input[3][0] = "";
  316. self.input[3][1] = "";
  317. self.input[3][2] = "";
  318. self.input[3][3] = "";
  319. self.input[3][4] = "";
  320. self.input[3][5] = "";
  321. self.input[3][6] = "";
  322. self.input[3][7] = "";
  323. self.input[3][8] = "";
  324. self.opts[4] = strTok("SubMenu 3|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  325. self.func[4][0] = :: empty;
  326. self.func[4][1] = :: test;
  327. self.func[4][2] = :: test;
  328. self.func[4][3] = :: test;
  329. self.func[4][4] = :: test;
  330. self.func[4][5] = :: test;
  331. self.func[4][6] = :: test;
  332. self.func[4][7] = :: test;
  333. self.func[4][8] = :: test;
  334. self.input[4] = [];
  335. self.input[4][0] = "";
  336. self.input[4][1] = "";
  337. self.input[4][2] = "";
  338. self.input[4][3] = "";
  339. self.input[4][4] = "";
  340. self.input[4][5] = "";
  341. self.input[4][6] = "";
  342. self.input[4][7] = "";
  343. self.input[4][8] = "";
  344. self.opts[5] = strTok("SubMenu 4|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  345. self.func[5][0] = :: empty;
  346. self.func[5][1] = :: test;
  347. self.func[5][2] = :: test;
  348. self.func[5][3] = :: test;
  349. self.func[5][4] = :: test;
  350. self.func[5][5] = :: test;
  351. self.func[5][6] = :: test;
  352. self.func[5][7] = :: test;
  353. self.func[5][8] = :: test;
  354. self.input[5] = [];
  355. self.input[5][0] = "";
  356. self.input[5][1] = "";
  357. self.input[5][2] = "";
  358. self.input[5][3] = "";
  359. self.input[5][4] = "";
  360. self.input[5][5] = "";
  361. self.input[5][6] = "";
  362. self.input[5][7] = "";
  363. self.input[5][8] = "";
  364. self.opts[6] = strTok("SubMenu 5|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  365. self.func[6][0] = :: empty;
  366. self.func[6][1] = :: test;
  367. self.func[6][2] = :: test;
  368. self.func[6][3] = :: test;
  369. self.func[6][4] = :: test;
  370. self.func[6][5] = :: test;
  371. self.func[6][6] = :: test;
  372. self.func[6][7] = :: test;
  373. self.func[6][8] = :: test;
  374. self.input[6] = [];
  375. self.input[6][0] = "";
  376. self.input[6][1] = "";
  377. self.input[6][2] = "";
  378. self.input[6][3] = "";
  379. self.input[6][4] = "";
  380. self.input[6][5] = "";
  381. self.input[6][6] = "";
  382. self.input[6][7] = "";
  383. self.input[6][8] = "";
  384. self.opts[7] = strTok("SubMenu 6|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  385. self.func[7][0] = :: empty;
  386. self.func[7][1] = :: test;
  387. self.func[7][2] = :: test;
  388. self.func[7][3] = :: test;
  389. self.func[7][4] = :: test;
  390. self.func[7][5] = :: test;
  391. self.func[7][6] = :: test;
  392. self.func[7][7] = :: test;
  393. self.func[7][8] = :: test;
  394. self.input[7] = [];
  395. self.input[7][0] = "";
  396. self.input[7][1] = "";
  397. self.input[7][2] = "";
  398. self.input[7][3] = "";
  399. self.input[7][4] = "";
  400. self.input[7][5] = "";
  401. self.input[7][6] = "";
  402. self.input[7][7] = "";
  403. self.input[7][8] = "";
  404. self.opts[8] = strTok("SubMenu 7|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  405. self.func[8][0] = :: empty;
  406. self.func[8][1] = :: test;
  407. self.func[8][2] = :: test;
  408. self.func[8][3] = :: test;
  409. self.func[8][4] = :: test;
  410. self.func[8][5] = :: test;
  411. self.func[8][6] = :: test;
  412. self.func[8][7] = :: test;
  413. self.func[8][8] = :: test;
  414. self.input[8] = [];
  415. self.input[8][0] = "";
  416. self.input[8][1] = "";
  417. self.input[8][2] = "";
  418. self.input[8][3] = "";
  419. self.input[8][4] = "";
  420. self.input[8][5] = "";
  421. self.input[8][6] = "";
  422. self.input[8][7] = "";
  423. self.input[8][8] = "";
  424. self.opts[9] = strTok("SubMenu 8|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
  425. self.func[9][0] = :: empty;
  426. self.func[9][1] = :: test;
  427. self.func[9][2] = :: test;
  428. self.func[9][3] = :: test;
  429. self.func[9][4] = :: test;
  430. self.func[9][5] = :: test;
  431. self.func[9][6] = :: test;
  432. self.func[9][7] = :: test;
  433. self.func[9][8] = :: test;
  434. self.input[9] = [];
  435. self.input[9][0] = "";
  436. self.input[9][1] = "";
  437. self.input[9][2] = "";
  438. self.input[9][3] = "";
  439. self.input[9][4] = "";
  440. self.input[9][5] = "";
  441. self.input[9][6] = "";
  442. self.input[9][7] = "";
  443. self.input[9][8] = "";
  444. }
  445.  
  446. //Codes
  447.  
  448. car()
  449. {
  450. self CloseMenu();
  451. maps\_aircraft::main( "defaultvehicle", "defaultvehicle", 0 );
  452. level.plane[0] = SpawnVehicle( "defaultvehicle", "new_plane", "defaultvehicle", self.origin, self getplayerangles() );
  453. level.plane[0].vehicletype = "defaultvehicle";
  454. maps\_vehicle::vehicle_init(level.plane[0]);
  455. level.plane[0] MakeVehicleUsable();
  456. level.plane[0] StartEngineSound();
  457. level.plane[0] SetHoverParams( 700, 98, 7 );
  458. self waittill("use");
  459. self hide();
  460. self setclientdvar( "cg_thirdperson", "1");
  461. self setclientdvar( "cg_thirdpersonrange", "1");
  462. }
  463.  
  464.  
  465. artillery()
  466. {
  467. self CloseMenu();
  468. maps\_artillery::main("defaultvehicle", "defaultvehicle", 0);
  469. level.plane[0] = SpawnVehicle( "defaultvehicle", "new_plane", "defaultvehicle", self.origin, self getplayerangles() );
  470. level.plane[0].vehicletype = "defaultvehicle";
  471. maps\_vehicle::vehicle_init(level.plane[0]);
  472. level.plane[0] MakeVehicleUsable();
  473. level.plane[0] StartEngineSound();
  474. level.plane[0] SetHoverParams( 700, 98, 7 );
  475. }
  476.  
  477.  
  478. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  479. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  480. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  481.  
  482. build_custom_aircraft( type )
  483. {
  484. model = undefined;
  485. death_model = undefined;
  486. death_fx = "explosions/large_vehicle_explosion";
  487. death_sound = "explo_metal_rand";
  488. health = 2000;
  489. min_health = 1000;
  490. max_health = 5000;
  491. team = "allies";
  492. bombs = false;
  493. turretType = "default_aircraft_turret";
  494. turretModel = "weapon_machinegun_tiger";
  495. func = undefined;
  496. spawn = undefined;
  497.  
  498. if( type == "rufe" )
  499. {
  500. model = "defaultvehicle";
  501. death_fx = "explosions/large_vehicle_explosion";
  502. death_model = "defaultvehicle";
  503. health = 750;
  504. min_health = 500;
  505. max_health = 1000;
  506. team = "allies";
  507. func = ::axis_plane_init;
  508. spawn = SpawnVehicle( "defaultvehicle", "new_plane", "defaultvehicle", self.origin, self getplayerangles() );
  509.  
  510. // maps\_vehicle::build_predeathfx( "explosions/large_vehicle_explosion", "tag_origin", undefined, undefined, undefined, undefined, undefined, true );
  511. }
  512.  
  513. maps\_vehicle::build_template( "stuka", model, type );
  514. maps\_vehicle::build_localinit( func );
  515.  
  516. maps\_vehicle::build_deathmodel( model, death_model );
  517.  
  518. // build_deathfx( effect, tag, sound, bEffectLooping, delay, bSoundlooping, waitDelay, stayontag, notifyString )
  519. maps\_vehicle::build_deathfx( death_fx, "tag_engine", death_sound, undefined, undefined, undefined, undefined ); // TODO change to actual explosion fx/sound when we get it
  520. maps\_vehicle::build_life( health, min_health, max_health );
  521.  
  522. maps\_vehicle::build_treadfx();
  523.  
  524. maps\_vehicle::build_team( team );
  525.  
  526. // Bomb stuff: TODO update with actual explosion fx, sound, and bomb model when we get them
  527. // quakepower, quaketime, quakeradius, range, min_damage, max_damage
  528. // maps\_planeweapons::build_bomb_explosions( type, 0.5, 2.0, 1024, 768, 400, 25 );
  529. // maps\_planeweapons::build_bombs( type, "com_trashbag", "explosions/fx_mortarExp_dirt", "artillery_explosion" );
  530.  
  531. maps\_vehicle::build_turret( turretType, "tag_gunLeft", turretModel, true );
  532. maps\_vehicle::build_turret( turretType, "tag_gunRight", turretModel, true );
  533. }
  534. axis_plane_init()
  535. {
  536. set_target( self, "air_target", "air_target_offscreen" );
  537. }
  538.  
  539. set_target( ent, shader, offscreen_shader, offset )
  540. {
  541. if( !IsDefined( offset ) )
  542. {
  543. target_set( ent, ( 0, 0, 0 ) );
  544. }
  545. else
  546. {
  547. target_set( ent, offset );
  548. }
  549.  
  550. target_setshader( ent, level.hud_shaders[shader] );
  551.  
  552. if( IsDefined( offscreen_shader ) )
  553. {
  554. target_setoffscreenshader( ent, level.hud_shaders[offscreen_shader] );
  555. }
  556. }
Advertisement
Add Comment
Please, Sign In to add comment