Guest User

Untitled

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