Advertisement
Guest User

Untitled

a guest
Feb 21st, 2015
725
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.23 KB | None | 0 0
  1.  
  2.  
  3.  
  4. // INCLUDE FILEOVI
  5. #include <a_samp>
  6. #include <zcmd>
  7.  
  8.  
  9. // DEFINE DEFINICIJE
  10.  
  11.  
  12. #define SLOT_ID 5 // STAVLJA OBJEKAT U SLOT 5. OVO KASNIJE MOŽETE PROMJENITI
  13. #define REFRESH_RATE 15000 // VRIJEME ZA KOLIKO ĆE ODUZETI ''HEALTH'' VATRI. 15000ms = 15s.
  14. #define MAX_GASOLINE 500 // MAKSIMALNO KOLIKO MOŽE SERVER PRIMITI TOČAKA GASOLINE. OVO SLOBODNO MOŽETE PROMIJENITI :)
  15.  
  16. #define DIALOG_Canister 6969 // OVO KASNIJE VI PROMJENITE AKO ŽELITE
  17. #define DIALOG_Canister_STATUS 3105 // OVO KASNIJE VI PROMJENITE AKO ŽELITE
  18.  
  19.  
  20. // VARIABLE
  21. new tocaka_GASOLINE = false;
  22.  
  23. new Float:Canister [MAX_PLAYERS];
  24. new bool:lighter [MAX_PLAYERS];
  25. new bool:in_hand [MAX_PLAYERS];
  26. new Float:lastX [MAX_PLAYERS];
  27. new Float:lastY [MAX_PLAYERS];
  28. new Float:lastZ [MAX_PLAYERS];
  29. new bool:can_spill [MAX_PLAYERS];
  30.  
  31.  
  32. // ENUM
  33. enum benzin
  34. {
  35. Float:benzinX,
  36. Float:benzinY,
  37. Float:benzinZ,
  38.  
  39. Float:playerX,
  40. Float:playerY,
  41. Float:playerZ,
  42. Objekt,
  43. bool:Fireup,
  44. Float:Quanity
  45. }
  46.  
  47. new Benzin[MAX_GASOLINE][benzin];
  48.  
  49.  
  50.  
  51. // FORWARDI
  52. forward inc300_DroppingGASOLINE (playerid);
  53. forward inc300_ZapaliBenzin (playerid);
  54. forward inc300_UnistiVatru ();
  55.  
  56.  
  57. // PUBLICI
  58. public OnPlayerConnect(playerid)
  59. {
  60. Canister[playerid] = 0.0;
  61. lighter[playerid] = false;
  62. in_hand[playerid] = false;
  63. lastX[playerid] = 0.0;
  64. lastY[playerid] = 0.0;
  65. lastZ[playerid] = 0.0;
  66. can_spill[playerid] = false;
  67. return 1;
  68. }
  69.  
  70. public inc300_UnistiVatru()
  71. {
  72. for(new id = false; id < sizeof(Benzin); id++)
  73. {
  74. if(Benzin[id][Fireup] == true)
  75. {
  76. if(Benzin[id][Quanity] < 0.1)
  77. {
  78. Benzin[id][benzinX] = 0.0;
  79. Benzin[id][benzinY] = 0.0;
  80. Benzin[id][benzinZ] = 0.0;
  81. Benzin[id][Quanity] = 0.0;
  82. Benzin[id][Fireup] = false;
  83. DestroyObject(Benzin[id][Objekt]);
  84. tocaka_GASOLINE--;
  85. }
  86. else
  87. {
  88. new string[8];
  89. new broj = (random(99-100));
  90.  
  91. format(string, 8, "0.0%d", broj);
  92. Benzin[id][Quanity] -= floatstr(string);
  93. }
  94. }
  95. }
  96. return 1;
  97. }
  98.  
  99.  
  100. public OnFilterScriptInit()
  101. {
  102. SetTimer("inc300_DestroyFire", REFRESH_RATE, true);
  103.  
  104. print("------------------------------------- INFO -------------------------------------");
  105. print("--------------------------------------------------------------------------------");
  106.  
  107. AddStaticPickup(1239, 2, 1940.2311, -1774.2710, 13.3906, -1);
  108. Create3DTextLabel("Buying Gas\n{F00000}/gas", 0xFFFFFFFF, 1940.2311, -1774.2710, 14.6000, 40.0, 0, 0);
  109. return 1;
  110. }
  111.  
  112. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  113. {
  114. if(dialogid == DIALOG_Canister)
  115. {
  116. if(response)
  117. {
  118. if(listitem == 0)
  119. {
  120. if(in_hand[playerid] == true)
  121. {
  122. RemovePlayerAttachedObject(playerid, SLOT_ID);
  123. in_hand[playerid] = false;
  124. SendClientMessage(playerid, 0xFFFFFFAA, "You have put down your Canister.");
  125. ShowPlayerDialog(playerid, DIALOG_Canister, DIALOG_STYLE_LIST, "Canister", "Izvadi Canister", "Odaberi", "Nazad");
  126. }
  127. else // UKOLIKO GA NEMA
  128. {
  129. SetPlayerAttachedObject(playerid, SLOT_ID, 1650, 5, 0.145482, 0.035119, 0.040793, 8.881844, 276.183959, 329.795593, 1.561557, 1.177534, 1.265636); // BONE ''5'' - POSTAVLJA Canister U IGRAÄŚEVU LIJEVU RUKU
  130. in_hand[playerid] = true;
  131. SendClientMessage(playerid, 0xFFFFFFAA, "You took out your Canister.");
  132. ShowPlayerDialog(playerid, DIALOG_Canister, DIALOG_STYLE_LIST, "Canister", "Put down Canister\nOpen Canister\nStatus of theCanister", "Choose", "Back");
  133. }
  134. }
  135.  
  136. if(listitem == 1)
  137. {
  138. if(tocaka_GASOLINE != MAX_GASOLINE) // UKOLIKO JOŠ NIJE PREĐEN LIMIT
  139. {
  140. if(can_spill[playerid] == false)
  141. {
  142. SendClientMessage(playerid, 0xFFFFFFAA, "To spill the gasoline press {F00000}Y{FFFFFF}.To stop press {F00000}N");
  143. can_spill[playerid] = true;
  144. }
  145. else
  146. {
  147. SendClientMessage(playerid, 0xF00000AA, "You are already spilling gasoline");
  148. ShowPlayerDialog(playerid, DIALOG_Canister, DIALOG_STYLE_LIST, "Canister", "Put down Canister\nOpen Canister\nStatus of Canister", "Choose", "Back");
  149. }
  150. }
  151. else
  152. {
  153. SendClientMessage(playerid, 0xF00000AA, "There is already alot of gasoline in the server");
  154. }
  155. }
  156. if(listitem == 2)
  157. {
  158. for(new id = false; id < sizeof(Benzin); id++)
  159. {
  160. if(IsPlayerInRangeOfPoint(playerid, 0.5, Benzin[id][benzinX], Benzin[id][benzinY], Benzin[id][benzinZ]))
  161. {
  162. if(Benzin[id][Fireup] == true)
  163. {
  164. SendClientMessage(playerid, 0xF00000AA, "You threw the gas canister in the fire!");
  165. new Float:x, Float:y, Float:z;
  166. GetPlayerPos(playerid, x, y, z);
  167. Benzin[playerid][playerX] = x;
  168. Benzin[playerid][playerY] = y;
  169. Benzin[playerid][playerZ] = z;
  170. SetTimerEx("CanisterExplode", 3000, false, "i", playerid);
  171.  
  172. }
  173. }
  174. }
  175. }
  176.  
  177. if(listitem == 3)
  178. {
  179. new string[86];
  180. format(string, 86, "{FFFFFF}- Gasoline Fireup: {F00000}Gas\n{FFFFFF}- Left over: {F00000}%.2f L", Canister[playerid]);
  181. ShowPlayerDialog(playerid, DIALOG_Canister_STATUS, DIALOG_STYLE_MSGBOX, "Canister - Status", string, "OK", "");
  182. }
  183. }
  184. }
  185.  
  186. if(dialogid == DIALOG_Canister_STATUS)
  187. {
  188. ShowPlayerDialog(playerid, DIALOG_Canister, DIALOG_STYLE_LIST, "Canister", "Put down Canister\nOpen Canister\nStatus of the Canistera", "Choose", "Back");
  189. }
  190. return 1;
  191. }
  192.  
  193. forward CanisterExplode(playerid);
  194.  
  195.  
  196. public CanisterExplode(playerid)
  197. {
  198. for(new id = false; id < sizeof(Benzin); id++)
  199. {
  200. CreateExplosion(Benzin[playerid][playerX], Benzin[playerid][playerY], Benzin[playerid][playerZ], 6, 10.0);
  201.  
  202. }
  203. return 1;
  204. }
  205.  
  206. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  207. {
  208. if(newkeys & KEY_YES) // TIPKA ''Y''
  209. {
  210. if(can_spill[playerid] == true)
  211. {
  212. if(tocaka_GASOLINE != MAX_GASOLINE) // UKOLIKO JOĹ  IMA MJESTA DA SERVER PRIMI GASOLINE
  213. {
  214. new Float:x, Float:y, Float:z;
  215. GetPlayerPos(playerid, x, y, z);
  216.  
  217. for(new id = false; id < sizeof(Benzin); id++)
  218. {
  219. if(x != lastX[playerid] && y != lastY[playerid] && y != lastZ[playerid]) //UKOLIKO IGRAÄŚ NIJE NA STAROJ POZICIJI
  220. {
  221. if(Benzin[id][benzinX] == 0.0) // UKOLIKO JE TAJ SLOT SLOBODAN
  222. {
  223. if(Canister[playerid] != 0.0) // UKOLIKO Canister NIJE PRAZAN
  224. {
  225. new string[8];
  226. new random_broj = (random(99-100));
  227.  
  228. format(string, 8, "0.%d", random_broj);
  229.  
  230. tocaka_GASOLINE++;
  231. Benzin[id][benzinX] = x;
  232. Benzin[id][benzinY] = y;
  233. Benzin[id][benzinZ] = z;
  234.  
  235. lastX[playerid] = x;
  236. lastY[playerid] = y;
  237. lastZ[playerid] = z;
  238.  
  239. if(Canister[playerid] > floatstr(string)) // UKOLIKO IMA JOĹ  GASOLINE U CanisterU A DA JE KOLIÄŚINA GASOLINE VEÄŚA OD RANDOMA
  240. {
  241. Canister[playerid] -= floatstr(string);
  242. Benzin[id][Quanity] = floatstr(string);
  243. }
  244. else // UKOLIKO JE KOLIÄŚINA MANJA OD RANDOMA
  245. {
  246. Benzin[id][Quanity] = Canister[playerid];
  247. Canister[playerid] = 0.0;
  248. }
  249. }
  250. else // UKOLIKO JE Canister PRAZAN
  251. {
  252. can_spill[playerid] = false;
  253. SendClientMessage(playerid, 0xFFFFFFAA, "You don't have no gasoline in your canister,buy it at a gas station(/gas)");
  254. }
  255. return 1;
  256. }
  257. }
  258. else
  259. {
  260. if(Benzin[id][benzinX] == 0.0) // UKOLIKO JE TAJ SLOT SLOBODAN
  261. {
  262. if(Canister[playerid] != 0.0) // UKOLIKO Canister NIJE PRAZAN
  263. {
  264. new string[8];
  265. new random_broj = (random(55-20)+20);
  266.  
  267. format(string, 8, "0.%d", random_broj);
  268.  
  269. lastX[playerid] = x;
  270. lastY[playerid] = y;
  271. lastZ[playerid] = z;
  272.  
  273. if(Canister[playerid] > floatstr(string)) // UKOLIKO IMA JOĹ  GASOLINE U CanisterU A DA JE KOLIÄŚINA GASOLINE VEÄŚA OD RANDOMA
  274. {
  275. Canister[playerid] -= floatstr(string);
  276.  
  277. SendClientMessage(playerid, 0xF00000AA, "Some gasoline has spilled on the floor");
  278. }
  279. else // UKOLIKO JE KOLIÄŚINA MANJA OD RANDOMA
  280. {
  281. Canister[playerid] = 0.0;
  282.  
  283. SendClientMessage(playerid, 0xF00000AA, "Some gasoline has spilled on the floor");
  284. }
  285. }
  286. else // UKOLIKO JE Canister PRAZAN
  287. {
  288. can_spill[playerid] = false;
  289. SendClientMessage(playerid, 0xFFFFFFAA, "You don't have no gasoline in your canister,buy it at a gas station(/benzin)");
  290. }
  291. return 1;
  292. }
  293. }
  294. }
  295. }
  296. else // UKOLIKO VIĹ E NEMA MJESTA
  297. {
  298. SendClientMessage(playerid, 0xF00000AA, "There is already alot of gasoline in the server");
  299. }
  300. }
  301. }
  302.  
  303. if(newkeys & KEY_NO) // TIPKA ''N''
  304. {
  305. can_spill[playerid] = false;
  306. SendClientMessage(playerid, 0xFFFFFFAA, "You have stopped spilling out gasoline");
  307. }
  308. return 1;
  309. }
  310.  
  311.  
  312. // ZCMD KOMANDE
  313. CMD:can(playerid, params[])
  314. {
  315. if(in_hand[playerid] == true)
  316. {
  317. ShowPlayerDialog(playerid, DIALOG_Canister, DIALOG_STYLE_LIST, "Canister", "Put in Canister\nOpen Canister\nDrop the can in gasoline\nStatus of the Canistera", "Choose", "Back");
  318. }
  319. else
  320. {
  321. ShowPlayerDialog(playerid, DIALOG_Canister, DIALOG_STYLE_LIST, "Canister", "Take out Canister", "Choose", "Back");
  322. }
  323. return 1;
  324. }
  325.  
  326.  
  327.  
  328. CMD:gas(playerid, params[])
  329. {
  330. if(IsPlayerInRangeOfPoint(playerid, 2.0, 1940.2311, -1774.2710, 13.3906)) // PROVJERA DALI JE NA MJESTU ZA KUPOVINU GASOLINE
  331. {
  332. if(Canister[playerid] != 5.00) // UKOLIKO Canister NIJE PUN
  333. {
  334. Canister[playerid] = 5.00;
  335. SendClientMessage(playerid, 0xFFFFFFAA, "You bought {F00000}5{FFFFFF} gas.");
  336. }
  337. else // UKOLIKO JE PUN
  338. {
  339. SendClientMessage(playerid, 0xF00000AA, "Your canister is already full!");
  340. }
  341. }
  342. else // UKOLIKO NIJE NA MJESTU ZA KUPOVINU GASOLINE
  343. {
  344. SendClientMessage(playerid, 0xF00000AA, "You must be near a gas station to buy gas.");
  345. }
  346. return 1;
  347. }
  348.  
  349. CMD:lightup(playerid, params[])
  350. {
  351. for(new id = false; id < sizeof(Benzin); id++)
  352. {
  353. if(IsPlayerInRangeOfPoint(playerid, 2.5, Benzin[id][benzinX], Benzin[id][benzinY], Benzin[id][benzinZ])) // UKOLIKO JE IGRAÄŚ MAKSIMUM 1.5 METAR OD GASOLINE
  354. {
  355. if(Benzin[id][Fireup] == false)
  356. {
  357. Benzin[id][Fireup] = true;
  358. Benzin[id][Objekt] = CreateObject(18688, Benzin[id][benzinX], Benzin[id][benzinY], Benzin[id][benzinZ] - 2.80, 0.0, 0.0, 0.0, 200.0);
  359. }
  360. }
  361. }
  362. return 1;
  363. }
  364.  
  365. CMD:gaspos(playerid, params[])
  366. {
  367. SetPlayerPos(playerid,1940.2311, -1774.2710, 13.3906);
  368. return 1;
  369. }
  370.  
  371. CMD:turnoffallfire(playerid, params[])
  372. {
  373. if(IsPlayerAdmin(playerid)) // UKOLIKO JE LOGIRAN KAO RCON ADMIN
  374. {
  375. tocaka_GASOLINE = false;
  376. SendClientMessageToAll(0xF00000AA, "Admin deleted all fire made by gasoline.");
  377.  
  378. for(new id = false; id < sizeof(Benzin); id++)
  379. {
  380. if(Benzin[id][Fireup] == true)
  381. {
  382. Benzin[id][benzinX] = 0.0;
  383. Benzin[id][benzinY] = 0.0;
  384. Benzin[id][benzinZ] = 0.0;
  385. Benzin[id][Quanity] = 0.0;
  386. DestroyObject(Benzin[id][Objekt]);
  387. }
  388. }
  389. }
  390. else // UKOLIKO NIJE RCON ADMIN
  391. {
  392. }
  393. return 1;
  394. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement