Guest User

Untitled

a guest
Jan 3rd, 2011
947
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.60 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_http>
  3.  
  4. #define DS 16370
  5. #define VERSION 4
  6.  
  7.  
  8. // Airstriking FS by CJ101 v4.0
  9. // Do Not remove credits.
  10.  
  11. enum Random
  12. {
  13. Float:RX,
  14. Float:RY,
  15. Float:RZ
  16. }
  17.  
  18. new Strikes[35][Random]; // Max Random strike zones = 35. Add you own if you like.
  19.  
  20. new Adromada[MAX_PLAYERS];
  21. new Airstriking[MAX_PLAYERS];
  22. new Airstrike[MAX_PLAYERS];
  23. new Timer[MAX_PLAYERS];
  24. new Flare[MAX_PLAYERS];
  25.  
  26. public OnFilterScriptInit()
  27. {
  28. print(":::. Airstrike FS by CJ101 v4 Loaded .:::");
  29. printf(":::. Current Version: %d",VERSION);
  30. LoadList();
  31. SetTimer("RandomStrike",300000,1);
  32. return 1;
  33. }
  34.  
  35. public OnFilterScriptExit()
  36. {
  37. for(new i = 0; i < MAX_PLAYERS; i++)
  38. {
  39. if(IsValidObject(Adromada[i]))
  40. {
  41. DestroyObject(Adromada[i]);
  42. DestroyObject(Flare[i]);
  43. KillTimer(Timer[i]);
  44. RemovePlayerMapIcon(i,0);
  45. }
  46. }
  47. return 1;
  48. }
  49.  
  50. public OnPlayerDisconnect(playerid, reason)
  51. {
  52. if(IsValidObject(Adromada[playerid]))
  53. {
  54. DestroyObject(Adromada[playerid]);
  55. DestroyObject(Flare[playerid]);
  56. KillTimer(Timer[playerid]);
  57. RemovePlayerMapIcon(playerid,0);
  58. }
  59. return 1;
  60. }
  61.  
  62. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  63. {
  64. if(dialogid == DS)
  65. {
  66. if(listitem == 0)
  67. {
  68. if(!response) return 1;
  69. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  70. new Float:x,Float:y,Float:z;
  71. GetPlayerPos(playerid,x,y,z);
  72. Airstrike[playerid] = 1;
  73. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  74. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  75. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  76. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  77. Airstriking[playerid] = 1;
  78. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  79. }
  80.  
  81. if(listitem == 1)
  82. {
  83. if(!response) return 1;
  84. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  85. new Float:x,Float:y,Float:z;
  86. GetPlayerPos(playerid,x,y,z);
  87. Airstrike[playerid] = 2;
  88. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  89. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  90. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  91. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  92. Airstriking[playerid] = 1;
  93. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  94. }
  95.  
  96. if(listitem == 2)
  97. {
  98. if(!response) return 1;
  99. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  100. new Float:x,Float:y,Float:z;
  101. GetPlayerPos(playerid,x,y,z);
  102. Airstrike[playerid] = 3;
  103. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  104. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  105. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  106. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  107. Airstriking[playerid] = 1;
  108. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  109. }
  110.  
  111. if(listitem == 3)
  112. {
  113. if(!response) return 4;
  114. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  115. new Float:x,Float:y,Float:z;
  116. GetPlayerPos(playerid,x,y,z);
  117. Airstrike[playerid] = 4;
  118. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  119. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  120. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  121. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  122. Airstriking[playerid] = 1;
  123. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  124. }
  125.  
  126. if(listitem == 4)
  127. {
  128. if(!response) return 1;
  129. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  130. new Float:x,Float:y,Float:z;
  131. GetPlayerPos(playerid,x,y,z);
  132. Airstrike[playerid] = 5;
  133. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  134. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  135. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  136. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  137. Airstriking[playerid] = 1;
  138. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  139. }
  140.  
  141. if(listitem == 5)
  142. {
  143. if(!response) return 1;
  144. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  145. new Float:x,Float:y,Float:z;
  146. GetPlayerPos(playerid,x,y,z);
  147. Airstrike[playerid] = 6;
  148. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  149. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  150. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  151. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  152. Airstriking[playerid] = 1;
  153. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  154. }
  155.  
  156. if(listitem == 6)
  157. {
  158. if(!response) return 1;
  159. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  160. new Float:x,Float:y,Float:z;
  161. GetPlayerPos(playerid,x,y,z);
  162. Airstrike[playerid] = 7;
  163. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  164. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  165. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  166. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  167. Airstriking[playerid] = 1;
  168. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  169. }
  170.  
  171. if(listitem == 7)
  172. {
  173. if(!response) return 1;
  174. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  175. new Float:x,Float:y,Float:z;
  176. GetPlayerPos(playerid,x,y,z);
  177. Airstrike[playerid] = 8;
  178. Adromada[playerid] = CreateObject(14553,x,y,z+75,0.000000,0.000000,90);
  179. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  180. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  181. MoveObject(Adromada[playerid],x+250,y,z+75,26);
  182. Airstriking[playerid] = 1;
  183. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  184. }
  185.  
  186. if(listitem == 8)
  187. {
  188. if(!response) return 1;
  189. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  190. new Float:x,Float:y,Float:z;
  191. GetPlayerPos(playerid,x,y,z);
  192. Airstrike[playerid] = 9;
  193. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  194. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  195. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  196. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  197. Airstriking[playerid] = 1;
  198. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  199. }
  200.  
  201. if(listitem == 9)
  202. {
  203. if(!response) return 1;
  204. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  205. new Float:x,Float:y,Float:z;
  206. GetPlayerPos(playerid,x,y,z);
  207. Airstrike[playerid] = 10;
  208. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  209. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  210. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  211. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  212. Airstriking[playerid] = 1;
  213. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  214. }
  215.  
  216. if(listitem == 10)
  217. {
  218. if(!response) return 1;
  219. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  220. new Float:x,Float:y,Float:z;
  221. GetPlayerPos(playerid,x,y,z);
  222. Airstrike[playerid] = 11;
  223. Adromada[playerid] = CreateObject(14553,x-50,y,z+75,0.000000,40.000000,90);
  224. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  225. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  226. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  227. Airstriking[playerid] = 1;
  228. SetTimerEx("AirstrikeGo",6000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  229. }
  230.  
  231. if(listitem == 11)
  232. {
  233. if(!response) return 1;
  234. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  235. new Float:x,Float:y,Float:z;
  236. GetPlayerPos(playerid,x,y,z);
  237. Airstrike[playerid] = 12;
  238. Adromada[playerid] = CreateObject(1636,x,y,z+75,0.000000,0.000000,0.000000);
  239. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  240. MoveObject(Adromada[playerid],x,y,z,29);
  241. Airstriking[playerid] = 1;
  242. SetTimerEx("AirstrikeGo",4000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  243. }
  244.  
  245. if(listitem == 12)
  246. {
  247. if(!response) return 1;
  248. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  249. new Float:x,Float:y,Float:z;
  250. GetPlayerPos(playerid,x,y,z);
  251. Airstrike[playerid] = 13;
  252. Adromada[playerid] = CreateObject(18727,x,y,z+75,0.000000,0.000000,0.000000);
  253. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  254. MoveObject(Adromada[playerid],x,y,z,29);
  255. Airstriking[playerid] = 1;
  256. SetTimerEx("AirstrikeGo",4000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  257. }
  258.  
  259. if(listitem == 13)
  260. {
  261. if(!response) return 1;
  262. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  263. new Float:x,Float:y,Float:z;
  264. GetPlayerPos(playerid,x,y,z);
  265. Airstrike[playerid] = 14;
  266. Adromada[playerid] = CreateObject(1636,x,y,z+75,0.000000,0.000000,0.000000);
  267. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  268. MoveObject(Adromada[playerid],x,y,z,30);
  269. Airstriking[playerid] = 1;
  270. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  271. }
  272.  
  273. if(listitem == 14)
  274. {
  275. if(!response) return 1;
  276. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  277. new Float:x,Float:y,Float:z;
  278. GetPlayerPos(playerid,x,y,z);
  279. Airstrike[playerid] = 15;
  280. Adromada[playerid] = CreateObject(1636,x,y,z+75,0.000000,0.000000,0.000000);
  281. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  282. MoveObject(Adromada[playerid],x,y,z,30);
  283. Airstriking[playerid] = 1;
  284. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  285. }
  286.  
  287. if(listitem == 15)
  288. {
  289. if(!response) return 1;
  290. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  291. new Float:x,Float:y,Float:z;
  292. GetPlayerPos(playerid,x,y,z);
  293. Airstrike[playerid] = 16;
  294. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  295. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  296. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  297. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  298. Airstriking[playerid] = 1;
  299. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  300. }
  301.  
  302. if(listitem == 16)
  303. {
  304. if(!response) return 1;
  305. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  306. new Float:x,Float:y,Float:z;
  307. GetPlayerPos(playerid,x,y,z);
  308. Airstrike[playerid] = 17;
  309. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  310. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  311. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  312. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  313. Airstriking[playerid] = 1;
  314. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  315. }
  316.  
  317. if(listitem == 17)
  318. {
  319. if(!response) return 1;
  320. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  321. new Float:x,Float:y,Float:z;
  322. GetPlayerPos(playerid,x,y,z);
  323. Airstrike[playerid] = 18;
  324. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  325. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  326. SetPlayerMapIcon(playerid,0,x-55,y,z+75,5,0xFF0000AA);
  327. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  328. Airstriking[playerid] = 1;
  329. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  330. }
  331.  
  332. if(listitem == 18)
  333. {
  334. if(!response) return 1;
  335. if(Airstriking[playerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Please Wait");
  336. new Float:x,Float:y,Float:z;
  337. GetPlayerPos(playerid,x,y,z);
  338. Airstrike[playerid] = 19;
  339. Adromada[playerid] = CreateObject(14553,x-55,y,z+75,0.000000,0.000000,90);
  340. Flare[playerid] = CreateObject(18728,x,y,z-3,0.000000,0.000000,0.000000);
  341. Timer[playerid] = SetTimerEx("MapIconUpdate",100,true,"d",playerid);
  342. MoveObject(Adromada[playerid],x+250,y,z+75,29);
  343. Airstriking[playerid] = 1;
  344. SetTimerEx("AirstrikeGo",5000,false,"dfffd",playerid,x,y,z,Airstrike[playerid]);
  345. }
  346. }
  347. return 1;
  348. }
  349.  
  350. forward MapIconUpdate(playerid);
  351. public MapIconUpdate(playerid)
  352. {
  353. new Float:x,Float:y,Float:z;
  354. GetObjectPos(Adromada[playerid],x,y,z);
  355. SetPlayerMapIcon(playerid,0,x-55,y,z+75,5,0xFF0000AA);
  356. }
  357.  
  358. forward AirstrikeGo3(playerid,Float:x,Float:y,Float:z,type);
  359. public AirstrikeGo3(playerid,Float:x,Float:y,Float:z,type)
  360. {
  361. if(type == 1)
  362. {
  363. Airstriking[playerid] = 0;
  364. CreateExplosion(x,y+5,z,6,5);
  365. CreateExplosion(x,y+6,z,6,5);
  366. CreateExplosion(x,y+7,z,6,5);
  367. CreateExplosion(x,y+8,z,6,5);
  368. }
  369.  
  370. if(type == 2)
  371. {
  372. Airstriking[playerid] = 0;
  373. CreateExplosion(x,y,z,7,10);
  374. CreateExplosion(x,y,z+3,7,10);
  375. CreateExplosion(x,y,z+6,7,10);
  376. CreateExplosion(x,y,z+9,7,10);
  377. CreateExplosion(x,y,z+12,7,10);
  378. CreateExplosion(x,y,z+15, 7, 10);
  379. CreateExplosion(x,y,z+18,7,10);
  380. CreateExplosion(x,y,z+21,7,10);
  381. CreateExplosion(x,y+3,z+21,7,10);
  382. CreateExplosion(x,y-3,z+21,7,10);
  383. CreateExplosion(x+3,y,z+21,7,10);
  384. CreateExplosion(x-3,y,z+21,7,10);
  385. }
  386.  
  387. if(type == 3)
  388. {
  389. Airstriking[playerid] = 0;
  390. CreateExplosion(x,y,z,6,5);
  391. CreateExplosion(x+3,y,z,6,5);
  392. CreateExplosion(x+2,y,z,6,5);
  393. CreateExplosion(x+4,y,z,6,5);
  394. CreateExplosion(x+6,y,z,6,5);
  395. CreateExplosion(x+8,y,z,6,5);
  396. CreateExplosion(x+10,y,z,6,5);
  397. CreateExplosion(x+12,y,z,6,5);
  398. CreateExplosion(x+14,y,z,6,5);
  399. CreateExplosion(x+16,y,z,6,5);
  400. CreateExplosion(x+18,y,z,6,5);
  401. CreateExplosion(x+20,y,z,6,5);
  402. CreateExplosion(x+22,y,z,6,5);
  403. CreateExplosion(x+24,y,z,6,5);
  404. CreateExplosion(x+26,y,z,6,5);
  405. CreateExplosion(x+28,y,z,6,5);
  406. CreateExplosion(x+30,y,z,6,5);
  407. CreateExplosion(x+32,y,z,6,5);
  408. }
  409.  
  410. if(type == 4)
  411. {
  412. CreateExplosion(x,y,z,6,5);
  413. CreateExplosion(x+1,y,z,6,5);
  414. CreateExplosion(x+3,y,z,6,5);
  415.  
  416. }
  417. return 1;
  418. }
  419.  
  420. forward AirstrikeGo2(playerid,Float:x,Float:y,Float:z,type);
  421. public AirstrikeGo2(playerid,Float:x,Float:y,Float:z,type)
  422. {
  423. if(type == 1)
  424. {
  425. CreateExplosion(x,y+5,z,6,5);
  426. CreateExplosion(x,y+6,z,6,5);
  427. CreateExplosion(x,y+7,z,6,5);
  428. CreateExplosion(x,y+8,z,6,5);
  429. }
  430.  
  431. if(type == 2)
  432. {
  433. CreateExplosion(x-8,y,z,6,5);
  434. CreateExplosion(x+8,y+6,z,6,5);
  435. CreateExplosion(x-12,y,z,6,5);
  436. CreateExplosion(x+12,y+6,z,6,5);
  437. SetTimerEx("AirstrikeGo3",2000,false,"dfffd",playerid,x,y,z,1);
  438.  
  439. }
  440.  
  441. if(type == 3)
  442. {
  443. CreateExplosion(x+4,y,z,6,5);
  444. CreateExplosion(x-4,y,z,6,5);
  445. CreateExplosion(x+4,y+2,z+2,6,5);
  446. CreateExplosion(x-4,y+2,z+2,6,5);
  447. SetTimerEx("AirstrikeGo3",2000,false,"dfffd",playerid,x,y,z,2);
  448.  
  449. }
  450.  
  451. if(type == 4)
  452. {
  453. CreateExplosion(x,y,z+7,6,5);
  454. CreateExplosion(x+3,y,z+7,6,5);
  455. CreateExplosion(x+2,y,z+7,6,5);
  456. CreateExplosion(x+4,y,z+7,6,5);
  457. CreateExplosion(x+6,y,z+7,6,5);
  458. CreateExplosion(x+8,y,z+7,6,5);
  459. CreateExplosion(x+10,y,z+7,6,5);
  460. CreateExplosion(x+12,y,z+7,6,5);
  461. CreateExplosion(x+14,y,z+7,6,5);
  462. CreateExplosion(x+16,y,z+7,6,5);
  463. CreateExplosion(x+18,y,z+7,6,5);
  464. CreateExplosion(x+20,y,z+7,6,5);
  465. CreateExplosion(x+22,y,z+7,6,5);
  466. CreateExplosion(x+24,y,z+7,6,5);
  467. CreateExplosion(x+26,y,z+7,6,5);
  468. CreateExplosion(x+28,y,z+7,6,5);
  469. CreateExplosion(x+30,y,z+7,6,5);
  470. CreateExplosion(x+32,y,z+7,6,5);
  471. SetTimerEx("AirstrikeGo3",2000,false,"dfffd",playerid,x,y,z,3);
  472. }
  473.  
  474. if(type == 5)
  475. {
  476. CreateExplosion(x,y,z,6,5);
  477. CreateExplosion(x+3,y,z,6,5);
  478. CreateExplosion(x+2,y,z,6,5);
  479. CreateExplosion(x+4,y,z,6,5);
  480. CreateExplosion(x+6,y,z,6,5);
  481. CreateExplosion(x+8,y,z,6,5);
  482. CreateExplosion(x+10,y,z,6,5);
  483. CreateExplosion(x+12,y,z,6,5);
  484. CreateExplosion(x+14,y,z,6,5);
  485. CreateExplosion(x+16,y,z,6,5);
  486. CreateExplosion(x+18,y,z,6,5);
  487. CreateExplosion(x+20,y,z,6,5);
  488. CreateExplosion(x+22,y,z,6,5);
  489. CreateExplosion(x+24,y,z,6,5);
  490. CreateExplosion(x+26,y,z,6,5);
  491. CreateExplosion(x+28,y,z,6,5);
  492. CreateExplosion(x+30,y,z,6,5);
  493. CreateExplosion(x+32,y,z,6,5);
  494. CreateExplosion(x+32,y-1,z,6,5);
  495. CreateExplosion(x+32,y-2,z,6,5);
  496. CreateExplosion(x+32,y-3,z,6,5);
  497. CreateExplosion(x+32,y+1,z,6,5);
  498. CreateExplosion(x+32,y+2,z,6,5);
  499. CreateExplosion(x+32,y+3,z,6,5);
  500. SetTimerEx("AirstrikeGo3",2000,false,"dfffd",playerid,x,y,z,4);
  501.  
  502. }
  503. Airstrike[playerid] = 0;
  504. Airstriking[playerid] = 0;
  505. return 1;
  506. }
  507.  
  508. forward AirstrikeGo(playerid,Float:x,Float:y,Float:z,type);
  509. public AirstrikeGo(playerid,Float:x,Float:y,Float:z,type)
  510. {
  511. if(type == 1)
  512. {
  513. Airstriking[playerid] = 0;
  514. DestroyObject(Flare[playerid]);
  515. RemovePlayerMapIcon(playerid,0);
  516. KillTimer(Timer[playerid]);
  517. DestroyObject(Adromada[playerid]);
  518. CreateExplosion(x,y,z,6,5);
  519. }
  520.  
  521. if(type == 2)
  522. {
  523. Airstriking[playerid] = 0;
  524. DestroyObject(Flare[playerid]);
  525. RemovePlayerMapIcon(playerid,0);
  526. KillTimer(Timer[playerid]);
  527. DestroyObject(Adromada[playerid]);
  528. CreateExplosion(x+4,y,z,6,5);
  529. CreateExplosion(x+6,y,z,6,5);
  530. }
  531.  
  532. if(type == 3)
  533. {
  534. Airstriking[playerid] = 0;
  535. RemovePlayerMapIcon(playerid,0);
  536. DestroyObject(Flare[playerid]);
  537. KillTimer(Timer[playerid]);
  538. DestroyObject(Adromada[playerid]);
  539. CreateExplosion(x,y+1,z+1,6,5);
  540. CreateExplosion(x,y+4,z+1,6,5);
  541. CreateExplosion(x,y+6,z+1,6,5);
  542. }
  543.  
  544. if(type == 4)
  545. {
  546. Airstriking[playerid] = 0;
  547. RemovePlayerMapIcon(playerid,0);
  548. DestroyObject(Flare[playerid]);
  549. KillTimer(Timer[playerid]);
  550. DestroyObject(Adromada[playerid]);
  551. CreateExplosion(x,y,z,6,5);
  552. CreateExplosion(x+3,y,z,6,5);
  553. CreateExplosion(x+2,y,z,6,5);
  554. CreateExplosion(x+4,y,z,6,5);
  555. CreateExplosion(x+6,y,z,6,5);
  556. CreateExplosion(x+8,y,z,6,5);
  557. CreateExplosion(x+10,y,z,6,5);
  558. CreateExplosion(x+12,y,z,6,5);
  559. CreateExplosion(x+14,y,z,6,5);
  560. CreateExplosion(x+16,y,z,6,5);
  561. CreateExplosion(x+18,y,z,6,5);
  562. CreateExplosion(x+20,y,z,6,5);
  563. CreateExplosion(x+22,y,z,6,5);
  564. CreateExplosion(x+24,y,z,6,5);
  565. CreateExplosion(x+26,y,z,6,5);
  566. CreateExplosion(x+28,y,z,6,5);
  567. CreateExplosion(x+30,y,z,6,5);
  568. CreateExplosion(x+32,y,z,6,5);
  569. CreateExplosion(x+34,y,z,6,5);
  570. CreateExplosion(x+36,y,z,6,5);
  571. CreateExplosion(x+38,y,z,6,5);
  572. CreateExplosion(x+40,y,z,6,5);
  573. CreateExplosion(x+42,y,z,6,5);
  574. }
  575.  
  576. if(type == 5)
  577. {
  578. Airstriking[playerid] = 0;
  579. DestroyObject(Flare[playerid]);
  580. RemovePlayerMapIcon(playerid,0);
  581. KillTimer(Timer[playerid]);
  582. DestroyObject(Adromada[playerid]);
  583. CreateExplosion(x,y,z,7,10);
  584. CreateExplosion(x,y,z+3,7,10);
  585. CreateExplosion(x,y,z+6,7,10);
  586. CreateExplosion(x,y,z+9,7,10);
  587. CreateExplosion(x,y,z+12,7,10);
  588. CreateExplosion(x,y,z+15, 7, 10);
  589. CreateExplosion(x,y,z+18,7,10);
  590. CreateExplosion(x,y,z+21,7,10);
  591. CreateExplosion(x,y,z+24,7,10);
  592. CreateExplosion(x,y,z+26,7,10);
  593. CreateExplosion(x,y,z+29,7,10);
  594. CreateExplosion(x,y,z+32,7,10);
  595. CreateExplosion(x,y,z+36,7,10);
  596. CreateExplosion(x,y,z+40,7,10);
  597. CreateExplosion(x,y,z+43,7,10);
  598. CreateExplosion(x,y,z+46,7,10);
  599. CreateExplosion(x,y+3,z+46,7,10);
  600. CreateExplosion(x,y-3,z+46,7,10);
  601. CreateExplosion(x+3,y,z+46,7,10);
  602. CreateExplosion(x-3,y,z+46,7,10);
  603. CreateExplosion(x+6,y+1,z+46,7,10);
  604. CreateExplosion(x-6,y-1,z+46,7,10);
  605. CreateExplosion(x+8,y+2,z+46,7,10);
  606. CreateExplosion(x-8,y-2,z+46,7,10);
  607. }
  608.  
  609. if(type == 6)
  610. {
  611. Airstriking[playerid] = 0;
  612. DestroyObject(Flare[playerid]);
  613. RemovePlayerMapIcon(playerid,0);
  614. KillTimer(Timer[playerid]);
  615. DestroyObject(Adromada[playerid]);
  616. CreateExplosion(x,y+1,z,6,5);
  617. CreateExplosion(x,y+2,z,6,5);
  618. CreateExplosion(x,y+3,z,6,5);
  619. CreateExplosion(x,y+4,z,6,5);
  620. SetTimerEx("AirstrikeGo2",3000,false,"dfffd",playerid,x,y,z,1);
  621. }
  622.  
  623. if(type == 7)
  624. {
  625. Airstriking[playerid] = 0;
  626. DestroyObject(Flare[playerid]);
  627. RemovePlayerMapIcon(playerid,0);
  628. KillTimer(Timer[playerid]);
  629. DestroyObject(Adromada[playerid]);
  630. CreateExplosion(x+2,y,z,6,5);
  631. CreateExplosion(x-2,y,z,6,5);
  632. CreateExplosion(x+4,y,z,6,5);
  633. CreateExplosion(x-4,y,z,6,5);
  634. CreateExplosion(x+6,y,z,6,5);
  635. CreateExplosion(x-6,y,z,6,5);
  636. SetTimerEx("AirstrikeGo2",2000,false,"dfffd",playerid,x,y,z,2);
  637. }
  638.  
  639. if(type == 8)
  640. {
  641. Airstriking[playerid] = 0;
  642. DestroyObject(Flare[playerid]);
  643. RemovePlayerMapIcon(playerid,0);
  644. KillTimer(Timer[playerid]);
  645. DestroyObject(Adromada[playerid]);
  646. CreateExplosion(x+2,y,z,6,5);
  647. CreateExplosion(x-2,y,z,6,5);
  648. SetTimerEx("AirstrikeGo2",2000,false,"dfffd",playerid,x,y,z,3);
  649. }
  650.  
  651. if(type == 9)
  652. {
  653. Airstriking[playerid] = 0;
  654. DestroyObject(Flare[playerid]);
  655. RemovePlayerMapIcon(playerid,0);
  656. KillTimer(Timer[playerid]);
  657. DestroyObject(Adromada[playerid]);
  658. CreateExplosion(x+2,y-1,z+2,6,5);
  659. CreateExplosion(x-2,y+1,z+4,6,5);
  660. CreateExplosion(x,y,z+6,6,5);
  661. CreateExplosion(x,y,z+8,6,5);
  662. CreateExplosion(x,y,z+12,6,5);
  663. CreateExplosion(x,y,z+14,6,5);
  664. CreateExplosion(x-1,y,z+12,6,5);
  665. CreateExplosion(x+1,y,z+14,6,5);
  666. }
  667.  
  668. if(type == 10)
  669. {
  670. Airstriking[playerid] = 0;
  671. DestroyObject(Adromada[playerid]);
  672. DestroyObject(Flare[playerid]);
  673. CreateExplosion(x+4,y+10,z+7,6,5);
  674. CreateExplosion(x+8,y+8,z+7,6,5);
  675. CreateExplosion(x+12,y+6,z+7,6,5);
  676. CreateExplosion(x+16,y+8,z+7,6,5);
  677. CreateExplosion(x+18,y+6,z+7,6,5);
  678. CreateExplosion(x+20,y+10,z+7,6,5);
  679. }
  680.  
  681. if(type == 11)
  682. {
  683. Airstriking[playerid] = 0;
  684. DestroyObject(Flare[playerid]);
  685. DestroyObject(Adromada[playerid]);
  686. CreateExplosion(x,y,z+15,6,5);
  687. CreateExplosion(x+3,y,z+15,6,5);
  688. CreateExplosion(x+2,y,z+15,6,5);
  689. CreateExplosion(x+4,y,z+15,6,5);
  690. CreateExplosion(x+6,y,z+15,6,5);
  691. CreateExplosion(x+8,y,z+15,6,5);
  692. CreateExplosion(x+10,y,z+15,6,5);
  693. CreateExplosion(x+12,y,z+15,6,5);
  694. CreateExplosion(x+14,y,z+15,6,5);
  695. CreateExplosion(x+16,y,z+15,6,5);
  696. CreateExplosion(x+18,y,z+15,6,5);
  697. CreateExplosion(x+20,y,z+15,6,5);
  698. CreateExplosion(x+22,y,z+15,6,5);
  699. CreateExplosion(x+24,y,z+15,6,5);
  700. CreateExplosion(x+26,y,z+15,6,5);
  701. CreateExplosion(x+28,y,z+15,6,5);
  702. CreateExplosion(x+30,y,z+15,6,5);
  703. CreateExplosion(x+32,y,z+15,6,5);
  704. CreateExplosion(x+26,y-1,z+15,6,5);
  705. CreateExplosion(x+28,y-2,z+15,6,5);
  706. CreateExplosion(x+30,y-3,z+15,6,5);
  707. CreateExplosion(x+32,y-4,z+15,6,5);
  708. SetTimerEx("AirstrikeGo2",2000,false,"dfffd",playerid,x,y,z,4);
  709. }
  710.  
  711. if(type == 12)
  712. {
  713. Airstriking[playerid] = 0;
  714. RemovePlayerMapIcon(playerid,0);
  715. KillTimer(Timer[playerid]);
  716. DestroyObject(Adromada[playerid]);
  717. CreateExplosion(x,y-1,z,6,5);
  718. CreateExplosion(x+6,y+1,z,6,5);
  719. CreateExplosion(x+12,y,z,6,5);
  720. CreateExplosion(x-6,y,z,6,5);
  721. CreateExplosion(x+8,y,z,6,5);
  722. CreateExplosion(x,y-1,z,6,5);
  723. CreateExplosion(x+6,y+6,z,6,5);
  724. CreateExplosion(x+12,y+12,z,6,5);
  725. CreateExplosion(x-6,y-6,z,6,5);
  726. CreateExplosion(x+8,y+8,z,6,5);
  727. CreateExplosion(x,y-1,z,6,5);
  728. CreateExplosion(x+6,y+6,z+2,6,5);
  729. CreateExplosion(x+12,y+12,z+2,6,5);
  730. CreateExplosion(x-6,y-6,z+4,6,5);
  731. CreateExplosion(x+8,y+8,z+4,6,5);
  732. }
  733.  
  734. if(type == 13)
  735. {
  736. Airstriking[playerid] = 0;
  737. DestroyObject(Flare[playerid]);
  738. RemovePlayerMapIcon(playerid,0);
  739. KillTimer(Timer[playerid]);
  740. DestroyObject(Adromada[playerid]);
  741. CreateExplosion(x,y-1,z,6,5);
  742. CreateExplosion(x,y-2,z,6,5);
  743. CreateExplosion(x,y-3,z,6,5);
  744. CreateExplosion(x,y-4,z,6,5);
  745. CreateExplosion(x,y-6,z,6,5);
  746. CreateExplosion(x,y-8,z,6,5);
  747. CreateExplosion(x,y-12,z,6,5);
  748. CreateExplosion(x,y-14,z,6,5);
  749. CreateExplosion(x,y-16,z,6,5);
  750. CreateExplosion(x,y-18,z,6,5);
  751. CreateExplosion(x,y,z,7,10);
  752. CreateExplosion(x,y,z+3,7,10);
  753. CreateExplosion(x,y,z+6,7,10);
  754. CreateExplosion(x,y,z+9,7,10);
  755. CreateExplosion(x,y,z+12,7,10);
  756. CreateExplosion(x,y,z+15, 7, 10);
  757. CreateExplosion(x,y,z+18,7,10);
  758. CreateExplosion(x,y,z+21,7,10);
  759. CreateExplosion(x,y,z+24,7,10);
  760. CreateExplosion(x,y,z+26,7,10);
  761. CreateExplosion(x,y,z+29,7,10);
  762. CreateExplosion(x,y,z+32,7,10);
  763. }
  764.  
  765. if(type == 14)
  766. {
  767. Airstriking[playerid] = 0;
  768. DestroyObject(Adromada[playerid]);
  769. CreateExplosion(x-1,y,z,6,5);
  770. CreateExplosion(x-2,y,z,6,5);
  771. CreateExplosion(x-3,y,z,6,5);
  772. CreateExplosion(x-4,y,z,6,5);
  773. CreateExplosion(x-5,y,z,6,5);
  774. CreateExplosion(x-6,y,z,6,5);
  775. CreateExplosion(x-7,y,z,6,5);
  776. CreateExplosion(x,y,z-3,7,10);
  777. CreateExplosion(x,y,z-6,7,10);
  778. CreateExplosion(x,y,z-9,7,10);
  779. CreateExplosion(x,y,z-12,7,10);
  780. CreateExplosion(x,y,z-15,7,10);
  781. CreateExplosion(x,y,z-18,7,10);
  782. CreateExplosion(x,y,z-21,7,10);
  783. CreateExplosion(x,y,z-24,7,10);
  784. CreateExplosion(x,y,z-26,7,10);
  785. CreateExplosion(x,y,z-29,7,10);
  786. CreateExplosion(x,y,z-32,7,10);
  787. }
  788.  
  789. if(type == 15)
  790. {
  791. Airstriking[playerid] = 0;
  792. RemovePlayerMapIcon(playerid,0);
  793. KillTimer(Timer[playerid]);
  794. DestroyObject(Adromada[playerid]);
  795. CreateExplosion(x-1,y,z,6,5);
  796. CreateExplosion(x-2,y,z,6,5);
  797. CreateExplosion(x+1,y,z,6,5);
  798. CreateExplosion(x+2,y,z,6,5);
  799. CreateExplosion(x+3,y,z+1,6,5);
  800. CreateExplosion(x+2,y,z+2,6,5);
  801. CreateExplosion(x+4,y,z+3,6,5);
  802. CreateExplosion(x+6,y,z+4,6,5);
  803. CreateExplosion(x+8,y,z+6,6,5);
  804. CreateExplosion(x+10,y,z+7,6,5);
  805. CreateExplosion(x+12,y,z+8,6,5);
  806. CreateExplosion(x+14,y-4,z+8,6,5);
  807. CreateExplosion(x+16,y+4,z+8,6,5);
  808. CreateExplosion(x+18,y+8,z+8,6,5);
  809. CreateExplosion(x+20,y-8,z+8,6,5);
  810. }
  811.  
  812. if(type == 16)
  813. {
  814. Airstriking[playerid] = 0;
  815. RemovePlayerMapIcon(playerid,0);
  816. KillTimer(Timer[playerid]);
  817. DestroyObject(Flare[playerid]);
  818. DestroyObject(Adromada[playerid]);
  819. CreateExplosion(x,y,z,6,5);
  820. CreateExplosion(x+1,y-1,z+1,6,5);
  821. CreateExplosion(x+1,y+1,z+2,6,5);
  822. CreateExplosion(x+2,y-1,z+3,6,5);
  823. CreateExplosion(x+2,y+1,z+4,6,5);
  824. CreateExplosion(x+3,y-1,z+5,6,5);
  825. CreateExplosion(x+3,y+1,z+6,6,5);
  826. CreateExplosion(x-1,y-1,z+1,6,5);
  827. CreateExplosion(x-1,y+1,z+2,6,5);
  828. CreateExplosion(x-2,y-1,z+3,6,5);
  829. CreateExplosion(x-2,y+1,z+4,6,5);
  830. CreateExplosion(x-3,y-1,z+5,6,5);
  831. CreateExplosion(x-3,y+1,z+6,6,5);
  832. }
  833.  
  834. if(type == 17)
  835. {
  836. Airstriking[playerid] = 0;
  837. DestroyObject(Flare[playerid]);
  838. DestroyObject(Adromada[playerid]);
  839. CreateExplosion(x,y,z,6,5);
  840. CreateExplosion(x+1,y-1,z,6,5);
  841. CreateExplosion(x+1,y-1,z+1,6,5);
  842. CreateExplosion(x+1,y+1,z+2,6,5);
  843. CreateExplosion(x+2,y-1,z+3,6,5);
  844. CreateExplosion(x+2,y+1,z+4,6,5);
  845. CreateExplosion(x+3,y-1,z+5,6,5);
  846. CreateExplosion(x+3,y+1,z+6,6,5);
  847. CreateExplosion(x-1,y-1,z+1,6,5);
  848. CreateExplosion(x-1,y+1,z+2,6,5);
  849. CreateExplosion(x-2,y-1,z+3,6,5);
  850. CreateExplosion(x-2,y+1,z+4,6,5);
  851. CreateExplosion(x-3,y-1,z+5,6,5);
  852. CreateExplosion(x-3,y+1,z+6,6,5);
  853. CreateExplosion(x+3,y+2,z+2,6,5);
  854. CreateExplosion(x+4,y+3,z+2,6,5);
  855. CreateExplosion(x+3,y+2,z+2,6,5);
  856. CreateExplosion(x-3,y+2,z+2,6,5);
  857. CreateExplosion(x-4,y-3,z+3,6,5);
  858. CreateExplosion(x-3,y+2,z+2,6,5);
  859. }
  860.  
  861. if(type == 18)
  862. {
  863. Airstriking[playerid] = 0;
  864. DestroyObject(Flare[playerid]);
  865. DestroyObject(Adromada[playerid]);
  866. CreateExplosion(x,y,z,6,5);
  867. CreateExplosion(x,y+1,z,6,5);
  868. CreateExplosion(x,y-1,z,6,5);
  869. CreateExplosion(x+3,y+1,z,6,5);
  870. CreateExplosion(x-3,y+1,z,6,5);
  871. CreateExplosion(x,y+1,z,6,5);
  872. CreateExplosion(x,y+1,z+1,6,5);
  873. CreateExplosion(x,y+1,z+2,6,5);
  874. CreateExplosion(x,y+1,z+3,6,5);
  875. CreateExplosion(x,y+1,z+4,6,5);
  876. CreateExplosion(x,y+1,z+5,6,5);
  877. }
  878.  
  879. if(type == 19)
  880. {
  881. Airstriking[playerid] = 0;
  882. DestroyObject(Flare[playerid]);
  883. RemovePlayerMapIcon(playerid,0);
  884. KillTimer(Timer[playerid]);
  885. DestroyObject(Adromada[playerid]);
  886. CreateExplosion(x,y,z+15,6,5);
  887. CreateExplosion(x+3,y,z+15,6,5);
  888. CreateExplosion(x+2,y,z+15,6,5);
  889. CreateExplosion(x+4,y,z+15,6,5);
  890. CreateExplosion(x+6,y,z+15,6,5);
  891. CreateExplosion(x+8,y,z+15,6,5);
  892. CreateExplosion(x+10,y,z+15,6,5);
  893. CreateExplosion(x+12,y,z+15,6,5);
  894. CreateExplosion(x+14,y,z+15,6,5);
  895. CreateExplosion(x+16,y,z+15,6,5);
  896. CreateExplosion(x+18,y,z+15,6,5);
  897. CreateExplosion(x+20,y,z+15,6,5);
  898. CreateExplosion(x+22,y,z+15,6,5);
  899. CreateExplosion(x+24,y,z+15,6,5);
  900. CreateExplosion(x+26,y,z+15,6,5);
  901. CreateExplosion(x+28,y,z+15,6,5);
  902. CreateExplosion(x+30,y,z+15,6,5);
  903. CreateExplosion(x+32,y,z+15,6,5);
  904. CreateExplosion(x+26,y-1,z+15,6,5);
  905. CreateExplosion(x+28,y-2,z+15,6,5);
  906. CreateExplosion(x+30,y-3,z+15,6,5);
  907. CreateExplosion(x+32,y-4,z+15,6,5);
  908. CreateExplosion(x+3,y,z,6,5);
  909. CreateExplosion(x+2,y,z,6,5);
  910. CreateExplosion(x+4,y,z,6,5);
  911. CreateExplosion(x+6,y,z,6,5);
  912. CreateExplosion(x+8,y,z,6,5);
  913. CreateExplosion(x+10,y,z,6,5);
  914. CreateExplosion(x+12,y,z,6,5);
  915. CreateExplosion(x+14,y,z,6,5);
  916. CreateExplosion(x+16,y,z,6,5);
  917. CreateExplosion(x+18,y,z,6,5);
  918. CreateExplosion(x+20,y,z,6,5);
  919. }
  920.  
  921. Airstrike[playerid] = 0;
  922. Airstriking[playerid] = 0;
  923. return 1;
  924. }
  925.  
  926.  
  927. public OnPlayerCommandText(playerid, cmdtext[])
  928. {
  929. if (strcmp(cmdtext, "/airstrike", true) == 0)
  930. {
  931. ShowPlayerDialog(playerid,DS,2,"Airstrikes","Vehicle Smasher\nEnemy Wave Attack\nTank Buster\nCarpet Bomb\nNuke\nAir Attack\nAir Bomber\nMegaNuke\nVehicle Nuke\nAircracker bomb\nAirCluster Bomb\nDestructorBomb\nFireCluster\nSplitterMissile\nMOAB\nPounder\nMegaPounder\nGroundBomb\nCarpetNuke","Ok","Cancel");
  932. return 1;
  933. }
  934. return 0;
  935. }
  936.  
  937. forward RandomStrike();
  938. public RandomStrike()
  939. {
  940. for(new id; id<35; id++)
  941. {
  942. if(Strikes[id][RX] != 0 && Strikes[id][RY] != 0 && Strikes[id][RZ] != 0)
  943. {
  944. Airstrike[id] = 17;
  945. Adromada[id] = CreateObject(14553,Strikes[id][RX]-55,Strikes[id][RY],Strikes[id][RZ]+75,0.000000,0.000000,90);
  946. MoveObject(Adromada[id],Strikes[id][RX]+250,Strikes[id][RY],Strikes[id][RZ]+75,29);
  947. Airstriking[id] = 1;
  948. SetTimerEx("AirstrikeGo",5000,false,"dfffd",id,Strikes[id][RX],Strikes[id][RY],Strikes[id][RZ],Airstrike[id]);
  949. }
  950. }
  951. }
  952.  
  953. stock LoadList()
  954. {
  955. if(fexist("airstrikes.txt"))
  956. {
  957. new str[128];
  958. new File: file = fopen("airstrikes.txt", io_read);
  959. if (file)
  960. {
  961. for(new id; id<35; id++)
  962. {
  963. fread(file, str);
  964. sscanf(str,"p<,>fff",Strikes[id][RX],Strikes[id][RY],Strikes[id][RZ]);
  965. }
  966. fclose(file);
  967. }
  968. }
  969. return 1;
  970. }
  971.  
  972. stock sscanf(string[], format[], {Float,_}:...)
  973. {
  974. #if defined isnull
  975. if (isnull(string))
  976. #else
  977. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  978. #endif
  979. {
  980. return format[0];
  981. }
  982. #pragma tabsize 4
  983. new
  984. formatPos = 0,
  985. stringPos = 0,
  986. paramPos = 2,
  987. paramCount = numargs(),
  988. delim = ' ';
  989. while (string[stringPos] && string[stringPos] <= ' ')
  990. {
  991. stringPos++;
  992. }
  993. while (paramPos < paramCount && string[stringPos])
  994. {
  995. switch (format[formatPos++])
  996. {
  997. case '\0':
  998. {
  999. return 0;
  1000. }
  1001. case 'i', 'd':
  1002. {
  1003. new
  1004. neg = 1,
  1005. num = 0,
  1006. ch = string[stringPos];
  1007. if (ch == '-')
  1008. {
  1009. neg = -1;
  1010. ch = string[++stringPos];
  1011. }
  1012. do
  1013. {
  1014. stringPos++;
  1015. if ('0' <= ch <= '9')
  1016. {
  1017. num = (num * 10) + (ch - '0');
  1018. }
  1019. else
  1020. {
  1021. return -1;
  1022. }
  1023. }
  1024. while ((ch = string[stringPos]) > ' ' && ch != delim);
  1025. setarg(paramPos, 0, num * neg);
  1026. }
  1027. case 'h', 'x':
  1028. {
  1029. new
  1030. num = 0,
  1031. ch = string[stringPos];
  1032. do
  1033. {
  1034. stringPos++;
  1035. switch (ch)
  1036. {
  1037. case 'x', 'X':
  1038. {
  1039. num = 0;
  1040. continue;
  1041. }
  1042. case '0' .. '9':
  1043. {
  1044. num = (num << 4) | (ch - '0');
  1045. }
  1046. case 'a' .. 'f':
  1047. {
  1048. num = (num << 4) | (ch - ('a' - 10));
  1049. }
  1050. case 'A' .. 'F':
  1051. {
  1052. num = (num << 4) | (ch - ('A' - 10));
  1053. }
  1054. default:
  1055. {
  1056. return -1;
  1057. }
  1058. }
  1059. }
  1060. while ((ch = string[stringPos]) > ' ' && ch != delim);
  1061. setarg(paramPos, 0, num);
  1062. }
  1063. case 'c':
  1064. {
  1065. setarg(paramPos, 0, string[stringPos++]);
  1066. }
  1067. case 'f':
  1068. {
  1069. setarg(paramPos, 0, _:floatstr(string[stringPos]));
  1070. }
  1071. case 'p':
  1072. {
  1073. delim = format[formatPos++];
  1074. continue;
  1075. }
  1076. case '\'':
  1077. {
  1078. new
  1079. end = formatPos - 1,
  1080. ch;
  1081. while ((ch = format[++end]) && ch != '\'') {}
  1082. if (!ch)
  1083. {
  1084. return -1;
  1085. }
  1086. format[end] = '\0';
  1087. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1088. {
  1089. if (format[end + 1])
  1090. {
  1091. return -1;
  1092. }
  1093. return 0;
  1094. }
  1095. format[end] = '\'';
  1096. stringPos = ch + (end - formatPos);
  1097. formatPos = end + 1;
  1098. }
  1099. case 'u':
  1100. {
  1101. new
  1102. end = stringPos - 1,
  1103. id = 0,
  1104. bool:num = true,
  1105. ch;
  1106. while ((ch = string[++end]) && ch != delim)
  1107. {
  1108. if (num)
  1109. {
  1110. if ('0' <= ch <= '9')
  1111. {
  1112. id = (id * 10) + (ch - '0');
  1113. }
  1114. else
  1115. {
  1116. num = false;
  1117. }
  1118. }
  1119. }
  1120. if (num && IsPlayerConnected(id))
  1121. {
  1122. setarg(paramPos, 0, id);
  1123. }
  1124. else
  1125. {
  1126. #if !defined foreach
  1127. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1128. #define __SSCANF_FOREACH__
  1129. #endif
  1130. string[end] = '\0';
  1131. num = false;
  1132. new
  1133. name[MAX_PLAYER_NAME];
  1134. id = end - stringPos;
  1135. foreach (Player, playerid)
  1136. {
  1137. GetPlayerName(playerid, name, sizeof (name));
  1138. if (!strcmp(name, string[stringPos], true, id))
  1139. {
  1140. setarg(paramPos, 0, playerid);
  1141. num = true;
  1142. break;
  1143. }
  1144. }
  1145. if (!num)
  1146. {
  1147. setarg(paramPos, 0, INVALID_PLAYER_ID);
  1148. }
  1149. string[end] = ch;
  1150. #if defined __SSCANF_FOREACH__
  1151. #undef foreach
  1152. #undef __SSCANF_FOREACH__
  1153. #endif
  1154. }
  1155. stringPos = end;
  1156. }
  1157. case 's', 'z':
  1158. {
  1159. new
  1160. i = 0,
  1161. ch;
  1162. if (format[formatPos])
  1163. {
  1164. while ((ch = string[stringPos++]) && ch != delim)
  1165. {
  1166. setarg(paramPos, i++, ch);
  1167. }
  1168. if (!i)
  1169. {
  1170. return -1;
  1171. }
  1172. }
  1173. else
  1174. {
  1175. while ((ch = string[stringPos++]))
  1176. {
  1177. setarg(paramPos, i++, ch);
  1178. }
  1179. }
  1180. stringPos--;
  1181. setarg(paramPos, i, '\0');
  1182. }
  1183. default:
  1184. {
  1185. continue;
  1186. }
  1187. }
  1188. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1189. {
  1190. stringPos++;
  1191. }
  1192. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1193. {
  1194. stringPos++;
  1195. }
  1196. paramPos++;
  1197. }
  1198. do
  1199. {
  1200. if ((delim = format[formatPos++]) > ' ')
  1201. {
  1202. if (delim == '\'')
  1203. {
  1204. while ((delim = format[formatPos++]) && delim != '\'') {}
  1205. }
  1206. else if (delim != 'z')
  1207. {
  1208. return delim;
  1209. }
  1210. }
  1211. }
  1212. while (delim > ' ');
  1213. return 0;
  1214. }
Advertisement
Add Comment
Please, Sign In to add comment