Advertisement
Guest User

To IzNoGod

a guest
Oct 24th, 2011
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.04 KB | None | 0 0
  1. init()
  2. {
  3. precacheModel("xmodel/vehicle_condor");
  4. }
  5. ac130()
  6. {
  7.  
  8. self endon("disconnect");
  9. self endon("killed_player");
  10. self setclientcvar("cg_thirdperson","0");
  11.  
  12. self.ac130_act=self;
  13. level.ac130_act=self;
  14. self.ac130=1;
  15. level.ac130van=true;
  16. level.predatorvan=true;
  17. self.predator_act=1;
  18. self.airstrike_act=1;
  19. self.inv=true;
  20. iprintlnbold(self.name + " ^7Us^9ed ^7AC^9130");
  21. jatekos = getentarray("player", "classname");
  22. for(i=0;i<jatekos.size;i++)
  23. {
  24. if(self.pers["team"]==jatekos[i].pers["team"])
  25. jatekos[i] playlocalsound("use_ac130");
  26. else
  27. jatekos[i] playlocalsound("use_enemy_ac130");
  28.  
  29. }
  30. self._oldpos=self.origin;
  31. self setorigin(ac_map());
  32. self._ac=spawn("script_origin", self.origin);
  33. self._ac_model=spawn("script_model",self.origin+(2000,0,0));
  34. self._ac.angles=(0,75,0);
  35. self._ac_model.angles=(0,75,0);
  36. self._ac_model linkTo(self._ac);
  37. self setorigin(self._ac_model.origin);
  38. self hide();
  39. self linkto(self._ac_model);
  40. self._ac_model setmodel("xmodel/vehicle_condor");
  41. self._ac_model playloopsound("gunship_ambient");
  42.  
  43.  
  44. self thread ac_move();
  45. self disableweapon();
  46. self.ac_gun=1;
  47. self thread ac_gun();
  48. self thread ac_gun_switch();
  49. self._ac_gun1_ammo=600;
  50. self._ac_gun2_ammo=100;
  51. self._ac_gun3_ammo=50;
  52. self.hud_ac_gun = newClientHudElem(self);
  53. self.hud_ac_gun setShader("gunship_overlay_25mm", 512, 512);
  54. self.hud_ac_gun.alpha = 1;
  55. self.hud_ac_gun.alignX = "center";
  56. self.hud_ac_gun.alignY = "middle";
  57. self.hud_ac_gun.sort = 9999;
  58. self.hud_ac_gun.x = 320;
  59. self.hud_ac_gun.y = 240;
  60. self.hud_ac_gun.color = (1,0,0);
  61. self thread ac130_hud();
  62. }
  63. ac130_hud()
  64. {
  65. self.hud_ac_info = newClientHudElem(self);
  66. self.hud_ac_info.x = 320;
  67. self.hud_ac_info.y = 430;
  68. self.hud_ac_info.alignx = "left";
  69. self.hud_ac_info.horzAlign = "left";
  70. self.hud_ac_info.fontScale = 1.1;
  71. self.hud_ac_info.label = &"^1Use ^2F^1 to switch between guns!";
  72. }
  73. ac_gun_switch()
  74. {
  75.  
  76. self endon("disconnect");
  77. self endon("killed_player");
  78. self endon("ac130_end");
  79. for(;;)
  80. {
  81. self disableweapon();
  82.  
  83. if(self usebuttonpressed())
  84. {
  85. self.ac_gun++;
  86. if(self.ac_gun>3)
  87. self.ac_gun=1;
  88.  
  89. if(self.ac_gun==1)
  90. {
  91. self.hud_ac_gun setShader("gunship_overlay_25mm", 512, 512);
  92. }
  93. if(self.ac_gun==2)
  94. {
  95. self.hud_ac_gun setShader("gunship_overlay_40mm", 512, 512);
  96. }
  97. if(self.ac_gun==3)
  98. {
  99. self.hud_ac_gun setShader("gunship_overlay_105mm", 512, 512);
  100. }
  101. wait 0.5;
  102. }
  103. wait 0.005;
  104. }
  105. }
  106. ac_gun()
  107. {
  108.  
  109. self endon("disconnect");
  110. self endon("killed_player");
  111. self endon("ac130_end");
  112. for(;;)
  113. {
  114. if(self.ac_gun==1)
  115. {
  116. if(self attackbuttonpressed() && isalive(self) && self._ac_gun1_ammo>0)
  117. {
  118. self playsound("gunship_25mm_fire");
  119. earthquake(0.3,0.5, self.origin, 80);
  120. vec=anglestoforward(self getplayerangles());
  121. trace=bullettrace(self geteye()+(0,0,18),self geteye()+(20000*vec[0],20000*vec[1],20000*vec[2]+18),true,self);
  122.  
  123. if(isDefined(self.acsound))
  124. self.acsound delete();
  125.  
  126. self.acsound = spawn("script_origin",trace["position"]);
  127.  
  128. if(isDefined(trace["surfacetype"]) && trace["surfacetype"] == "water")
  129. {
  130. playfx(level._effect["water_small"],trace["position"]);
  131. self.acsound playsound("bullet_small_water");
  132. }
  133. else
  134. {
  135. playfx(level._effect["ac25mm"],trace["position"]);
  136. }
  137. self._ac_gun1_ammo--;
  138. players=getentarray("player","classname");
  139. for(p=0;p<players.size;p++)
  140. {
  141. if(players[p].pers["team"]!=self.pers["team"] && isAlive(players[p]))
  142. {
  143. if(distance(trace["position"],players[p].origin)<80)
  144. {
  145. earthquake(0.5,1, trace["position"], 80);
  146. players[p] FinishPlayerDamage(players[p], self, 200, 0, "MOD_RIFLE_BULLET", "snopy_ac130", players[p].origin, (0,0,0), "none",0);
  147. }
  148. }
  149. }
  150. }
  151. }
  152. if(self.ac_gun==2)
  153. {
  154.  
  155. if(self attackbuttonpressed() && isalive(self) && self._ac_gun2_ammo>0)
  156. {
  157. self playsound("gunship_40mm_fire");
  158. earthquake(0.7,0.7, self.origin, 80);
  159. vec=anglestoforward(self getplayerangles());
  160. trace=bullettrace(self geteye()+(0,0,18),self geteye()+(20000*vec[0],20000*vec[1],20000*vec[2]+18),true,self);
  161.  
  162. if(isDefined(self.acsound))
  163. self.acsound delete();
  164.  
  165. self.acsound = spawn("script_origin",trace["position"]);
  166.  
  167. if(isDefined(trace["surfacetype"]) && trace["surfacetype"] == "water")
  168. {
  169. playfx(level._effect["water"],trace["position"]);
  170. self.acsound playsound("rocket_explode_water");
  171. }
  172. else
  173. {
  174. playfx(level._effect["ac40mm"],trace["position"]);
  175. self.acsound playsound("rocket_explode_wood");
  176. }
  177. self._ac_gun2_ammo--;
  178. players=getentarray("player","classname");
  179. for(p=0;p<players.size;p++)
  180. {
  181. if(players[p].pers["team"]!=self.pers["team"] && isAlive(players[p]))
  182. {
  183. if(distance(trace["position"],players[p].origin)<150)
  184. {
  185. earthquake(1,2, trace["position"], 150);
  186. players[p] FinishPlayerDamage(players[p], self, 500, 0, "MOD_RIFLE_BULLET", "snopy_ac130", players[p].origin, (0,0,0), "none",0);
  187. }
  188. }
  189. }
  190. wait 0.5;
  191. }
  192. }
  193. if(self.ac_gun==3)
  194. {
  195. if(self attackbuttonpressed() && isalive(self) && self._ac_gun3_ammo>0)
  196. {
  197. self playsound("gunship_105mm_fire");
  198. earthquake(1,1, self.origin, 80);
  199. vec=anglestoforward(self getplayerangles());
  200. trace=bullettrace(self geteye()+(0,0,18),self geteye()+(20000*vec[0],20000*vec[1],20000*vec[2]+18),true,self);
  201.  
  202. if(isDefined(self.acsound))
  203. self.acsound delete();
  204.  
  205. self.acsound = spawn("script_origin",trace["position"]);
  206.  
  207. if(isDefined(trace["surfacetype"]) && trace["surfacetype"] == "water")
  208. {
  209. playfx(level._effect["water_big"],trace["position"]);
  210. self.acsound playsound("rocket_explode_water");
  211. }
  212. else
  213. {
  214. playfx(level._effect["ac105mm"],trace["position"]);
  215. self.acsound playsound("rocket_explode_wood");
  216. }
  217. self._ac_gun3_ammo--;
  218. players=getentarray("player","classname");
  219. for(p=0;p<players.size;p++)
  220. {
  221. if(players[p].pers["team"]!=self.pers["team"] && isAlive(players[p]))
  222. {
  223. if(distance(trace["position"],players[p].origin)<350)
  224. {
  225. earthquake(2,3, trace["position"], 350);
  226. players[p] FinishPlayerDamage(players[p], self, 4000, 0, "MOD_RIFLE_BULLET", "snopy_ac130", players[p].origin, (0,0,0), "none",0);
  227. }
  228. }
  229. }
  230. self playlocalsound("gunship_105mm_reload");
  231. wait 3;
  232. }
  233. }
  234. wait 0.05;
  235. }
  236. }
  237. ac_move()
  238. {
  239.  
  240. self endon("disconnect");
  241. self endon("killed_player");
  242. self endon("ac130_killed");
  243.  
  244. self._ac rotateyaw(360, 40);
  245. wait 30;
  246. self._ac rotateyaw(360, 40);
  247. wait 29;
  248. self._ac moveto(self._ac.origin+(0,-5000,0),4,1,1);
  249. wait 4;
  250. self notify("ac130_end");
  251. self unlink();
  252. self._ac_model stopLoopSound();
  253. self setorigin(self._oldpos);
  254. self show();
  255. level.ac130van=false;
  256. level.predatorvan=false;
  257. self.ac_gun=0;
  258. self.ac130_act=0;
  259. self.predator_act=0;
  260. self.airstrike_act=0;
  261. self._ac delete();
  262. self._ac_model unlink();
  263. self._ac_model delete();
  264. self.hud_ac_gun destroy();
  265. self.hud_ac_info destroy();
  266. self enableweapon();
  267. self.inv=false;
  268.  
  269. }
  270. ac_killed()
  271. {
  272. if(isdefined(level.ac130_act) && level.ac130_act==self)
  273. {
  274. self notify("ac130_end");
  275. self notify("ac130_killed");
  276. self unlink();
  277. self show();
  278. self._ac_model stopLoopSound();
  279. self._ac delete();
  280. self._ac_model unlink();
  281. self._ac_model delete();
  282. self.ac_gun=0;
  283. self enableweapon();
  284. self.ac130_act=0;
  285. self.predator_act=0;
  286. self.airstrike_act=0;
  287. self.inv=false;
  288. self.last_time_used_ac130 = gettime();
  289. if(isdefined(self.hud_ac_gun))
  290. self.hud_ac_gun destroy();
  291. if(isdefined(self.hud_ac_info))
  292. self.hud_ac_info destroy();
  293. }
  294. }
  295.  
  296. ac_map()
  297. {
  298. switch(getcvar("mapname"))
  299. {
  300. case "mp_breakout":
  301. origin = (5104.71, 4590.66, 719.575);
  302. break;
  303.  
  304. case "mp_brecourt":
  305. origin = (303.484, -95.4473, 1099.09);
  306. break;
  307.  
  308. case "mp_burgundy":
  309. origin = (182.98, 1769.79, 713.716);
  310. break;
  311.  
  312. case "mp_carentan":
  313. origin = (607.311, 1578.8, 882.759);
  314. break;
  315.  
  316. case "mp_dawnville":
  317. origin = (281.478, -16613.9, 1192.51);
  318. break;
  319.  
  320. case "mp_decoy":
  321. origin = (7659.53, -13808.1, 489.326);
  322. break;
  323.  
  324. case "mp_downtown":
  325. origin = (1790.15, -704.283, 1108.93);
  326. break;
  327.  
  328. case "mp_farmhouse":
  329. origin = (-901.278, 32.5462, 951.845);
  330. break;
  331.  
  332. case "mp_harbor":
  333. origin = (-9415.82, -7883.12, 1132.97);
  334. break;
  335.  
  336. case "mp_leningrad":
  337. origin = (-173.722, 172.36, 945.778);
  338. break;
  339.  
  340. case "mp_matmata":
  341. origin = (3949.02, 6291.85, 939.556);
  342. break;
  343.  
  344. case "mp_railyard":
  345. origin = (-1175.54, 882.376, 861.803);
  346. break;
  347.  
  348. case "mp_rhine":
  349. origin = (4836.92, 15695.8, 1273.27);
  350. break;
  351.  
  352. case "mp_trainstation":
  353. origin = (5916.46, -3621.71, 741.293);
  354. break;
  355.  
  356. case "mp_toujane":
  357. origin = (1248.98, 1465.97, 856.338);
  358. break;
  359.  
  360. case "mp_airfield2":
  361. origin = (641.366, -804.514, 518.396);
  362. break;
  363.  
  364. case "mp_bridge":
  365. origin = (-78.2709, 1779.8, 1217.5);
  366. break;
  367.  
  368. case "mp_chateau":
  369. origin = (61.0607, 174.436, 800.635);
  370. break;
  371.  
  372. case "mp_hid":
  373. origin = (-680.921, -1291.5, 782.517);
  374. break;
  375.  
  376. case "pfb_carentan":
  377. origin = (8662.83, 367.234, 425.488);
  378. break;
  379.  
  380. case "mp_powcamp":
  381. origin = (563.953, -197.153, 719.761);
  382. break;
  383.  
  384. case "mp_gob_mice":
  385. origin = (512.651, 188.636, 1804.76);
  386. break;
  387.  
  388. case "mp_gob_rats":
  389. origin = (-1292.43, 1991.63, 2146.91);
  390. break;
  391.  
  392. case "mp_last_stand":
  393. origin = (933.188, 2.39394, 1311.15);
  394. break;
  395.  
  396. case "mp_defender":
  397. origin = (2375.44, 339.481, 954.131);
  398. break;
  399.  
  400. case "mp_jatszoter":
  401. origin = (595.529, 2267.95, 1208.99);
  402. break;
  403.  
  404. case "mp_sanzigrad":
  405. origin = (1709.41, 496.769, 1049.95);
  406. break;
  407.  
  408. case "mp_7thpark":
  409. origin = (392.867, 2232.86, 1266.03);
  410. break;
  411.  
  412. case "mp_shipment":
  413. origin = (182.98, 169.79, 713.716);
  414. break;
  415.  
  416. case "mp_area50":
  417. origin = (392.867, 832.86, 1366.03);
  418. break;
  419.  
  420. default:
  421. origin = (0,0,856.338);
  422. break;
  423. }
  424. return origin;
  425. }
  426.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement