Guest User

Untitled

a guest
Aug 27th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 84.88 KB | None | 0 0
  1. // MARKO SRBAKOV FS SPEEDOMETAR
  2. // LANGUAGE:MACEDONIAN
  3. //THANKS TO YSI and a_samp
  4. // DON'T CHANGE CREDITS PLS
  5. // ENJOY IN IT
  6. //------------------------------------------------------------------------------
  7. #include <a_samp>
  8. #include <YSI\y_ini>
  9. //------------------------------------------------------------------------------
  10. #define ZA3DTEXT 0x00F5FFFF
  11. #define GREEN 0x21DD00FF
  12. #define RED 0xE60000FF
  13. #define YELLOW 0xFFFF00FF
  14. #define ORANGE 0xF97804FF
  15. #define LIGHTRED 0xFF8080FF
  16. #define LIGHTBLUE 0x00C2ECFF
  17. #define PURPLE 0xB360FDFF
  18. #define BLUE 0x1229FAFF
  19. #define LIGHTGREEN 0x38FF06FF
  20. #define DARKPINK 0xE100E1FF
  21. #define DARKGREEN 0x008040FF
  22. #define ANNOUNCEMENT 0x6AF7E1FF
  23. #define GREY 0xCECECEFF
  24. #define PINK 0xD52DFFFF
  25. #define DARKGREY 0x626262FF
  26. #define AQUAGREEN 0x03D687FF
  27. #define WHITE 0xFFFFFFFF
  28. #define COLOR_RED 0xAA3333AA
  29.  
  30. #define PLAYERS 200
  31. #define TextDrawSetShadow
  32. /////
  33. #define VOZILO_FILE "RegRemVozila/%d.ini" // scriptfiles folder RegRemVozila by Srbakov
  34. #define AVTOKONTROL 12463
  35. #define L_VEHICLE 200
  36. //-----------------------------f-------------------------------------------------
  37. #define VehLockTime 10
  38. #define VehicleMaxSpeed 200
  39. #define UpdateConfig 500
  40.  
  41. #define SPD ShowPlayerDialog
  42. #define SCM SendClientMessage
  43. //------------------------------------------------------------------------------
  44. #define TextBox true
  45. #define LogoName true
  46. //------------------------------------------------------------------------------
  47. #define BoxColor 0xffffffff
  48. #define LogoColor 0xffffffff
  49. #define SideLinesColor 0xffffffff
  50. #define TopLinesColor 0xffffffff
  51. #define CategoriesColor "~b~"
  52. #define MPH_KPH_Color "~g~"
  53. //------------------------------bez warmings----------
  54. #pragma tabsize 0
  55. //------------------------------------------------------------------------------
  56. forward timer_km_lower(playerid);
  57. forward timer_km(playerid);
  58. forward timer_reg(playerid);
  59. forward timer_fuel_lower();
  60. forward timer_refuel(playerid);
  61. forward IsAtGasStation(playerid);
  62. forward IsAtRegRem(playerid);
  63. forward IsAnOwnableCar1(vehicleid);
  64. forward Ucitaj(vehicleid,name[], value[]);
  65. forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
  66. forward split(const strsrc[], strdest[][], delimiter);
  67. //------------------------------------------------------------------------------
  68. #define MAX_ZONE_NAME 28
  69. //------------------------------------------------------------------------------
  70. new fuel[MAX_VEHICLES];
  71. new km[MAX_VEHICLES];
  72. new isrefuelling[MAX_PLAYERS] = 0;
  73. new kmpominati[MAX_PLAYERS] = 0;
  74. new Text:LBox[MAX_PLAYERS];
  75. new Text:LLine1[MAX_PLAYERS];
  76. new Text:LLine2[MAX_PLAYERS];
  77. new Text:LLine3[MAX_PLAYERS];
  78. new Text:LLine4[MAX_PLAYERS];
  79. new Text:LCredits[MAX_PLAYERS];
  80. new Text:Lmph[MAX_PLAYERS];
  81. new Text:LFunc[MAX_PLAYERS];
  82. new Marko_SpeedoMeter[MAX_PLAYERS];
  83. new VehicleStatus[MAX_VEHICLES];
  84. new mammount;
  85. //------------------------------------------------------------------------------
  86. new lstring[256];
  87. new lstr[256];
  88.  
  89. enum vInfo
  90. {
  91. Registrirano,
  92. Remontirano,
  93. };
  94.  
  95. new VoziloInfo[MAX_VEHICLES][vInfo];
  96.  
  97. main()
  98. {
  99. print(" ");
  100. print(" ");
  101. print(" ");
  102. print(" ");
  103. print(" ");
  104. print(" GalaxyWorld Speedo Loaded");
  105. print(" Maden by: ");
  106. print(" -MarkoSrbakov- ");
  107. print(" Project Version: v1.1 ");
  108. print(" Started making on: ");
  109. print(" -15.12.20 15- ");
  110. print(" Helped: ");
  111. print(" -YSI/a_samp- ");
  112. print(" FS Language: ");
  113. print(" -Macedonian- ");
  114. print(" ");
  115. print(" ");
  116. print(" ");
  117. print(" ");
  118. print(" ");
  119. print(" ");
  120.  
  121. }
  122. //------------------------------------------------------------------------------
  123. enum MainZone{
  124. Zone_Name[28], Float:Zone_Area[6] };
  125. //------------------------------------------------------------------------------
  126. static const SanAndreasZones[][MainZone] = {
  127.  
  128. {"Trnovo Maalo", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}},
  129. {"Sipka", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}},
  130. {"Rikivo Maalo", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}},
  131. {"Rikivo Maalo", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}},
  132. {"Gazi Baba", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}},
  133. {"Gazi Baba", {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}},
  134. {"Gazi Baba", {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}},
  135. {"Gazi Baba", {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}},
  136. {"Gazi Baba", {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}},
  137. {"Gazi Baba", {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}},
  138. {"Lusovo Maalo", {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}},
  139. {"Lusovo Maalo", {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}},
  140. {"Lusovo Maalo", {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}},
  141. {"Lusovo Maalo", {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}},
  142. {"Lusovo Maalo", {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}},
  143. {"Talovo Maalo", {964.30,1203.20,-89.00,1197.30,1403.20,110.90}},
  144. {"Talovo Maalo", {964.30,1403.20,-89.00,1197.30,1726.20,110.90}},
  145. {"Talovo Maalo", {1375.60,596.30,-89.00,1558.00,823.20,110.90}},
  146. {"Talovo Maalo", {1325.60,596.30,-89.00,1375.60,795.00,110.90}},
  147. {"Talovo Maalo", {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}},
  148. {"Egovo Maalo", {1166.50,795.00,-89.00,1375.60,1044.60,110.90}},
  149. {"Egovo Maalo", {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}},
  150. {"Egovo Maalo", {1375.60,823.20,-89.00,1457.30,919.40,110.90}},
  151. {"Egovo Maalo", {104.50,-220.10,2.30,349.60,152.20,200.00}},
  152. {"Egovo Maalo", {19.60,-404.10,3.80,349.60,-220.10,200.00}},
  153. {"Belsko Maalo", {-319.60,-220.10,0.00,104.50,293.30,200.00}},
  154. {"Trgovski", {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}},
  155. {"Trgovski", {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}},
  156. {"Trgovski", {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}},
  157. {"Trgovski", {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}},
  158. {"Trgovski", {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}},
  159. {"Trgovski", {2087.30,943.20,-89.00,2623.10,1203.20,110.90}},
  160. {"Kisela voda", {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}},
  161. {"Kisela voda", {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}},
  162. {"Kisela voda", {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}},
  163. {"Kisela voda", {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}},
  164. {"Kisela voda", {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}},
  165. {"Kisela voda", {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}},
  166. {"Crn Pat", {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}},
  167. {"Crn Pat", {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}},
  168. {"Crn Pat", {-2007.80,56.30,0.00,-1922.00,224.70,100.00}},
  169. {"Bel Konj", {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}},
  170. {"Bel Konj", {580.70,-674.80,-9.50,861.00,-404.70,200.00}},
  171. {"Bel Konj", {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}},
  172. {"Bel Konj", {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}},
  173. {"Usova Cesma", {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}},
  174. {"Usova Cesma", {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}},
  175. {"Usova Cesma", {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}},
  176. {"Usova Cesma", {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}},
  177. {"Usova Cesma", {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}},
  178. {"Usova Cesma", {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}},
  179. {"Usova Cesma", {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}},
  180. {"Usova Cesma", {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}},
  181. {"Usova Cesma", {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}},
  182. {"Usova Cesma", {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}},
  183. {"Usova Cesma", {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}},
  184. {"Usova Cesma", {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}},
  185. {"Usova Cesma", {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}},
  186. {"Usova Cesma", {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}},
  187. {"Usova Cesma", {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}},
  188. {"Bel Konj", {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}},
  189. {"Bel Konj", {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}},
  190. {"Bel Konj", {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}},
  191. {"Beli", {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}},
  192. {"Beli", {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}},
  193. {"Beli", {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}},
  194. {"Beli", {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}},
  195. {"Kunska Reka", {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}},
  196. {"Kunska Reka", {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}},
  197. {"Kunska Reka", {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}},
  198. {"Kunska Reka", {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}},
  199. {"MK-Area 101", {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}},
  200. {"MK-Area 101", {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}},
  201. {"MK-Area 101", {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}},
  202. {"MK-Area 101", {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}},
  203. {"MK-Area 101", {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}},
  204. {"MK-Area 101", {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}},
  205. {"Alberska Voda", {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}},
  206. {"Alberska Voda", {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}},
  207. {"Alberska Voda", {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}},
  208. {"Alberska Voda", {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}},
  209. {"Alberska Voda", {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}},
  210. {"Mirovo", {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}},
  211. {"Mirovo", {-464.50,2217.60,0.00,-208.50,2580.30,200.00}},
  212. {"Mirovo", {-208.50,2123.00,-7.60,114.00,2337.10,200.00}},
  213. {"Mirovo", {-208.50,2337.10,0.00,8.40,2487.10,200.00}},
  214. {"Mirovo", {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}},
  215. {"Mirovo", {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}},
  216. {"Bela Tocka", {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}},
  217. {"Bela Tocka", {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}},
  218. {"Bela Tocka", {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}},
  219. {"Bela Tocka", {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}},
  220. {"Bela Tocka", {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}},
  221. {"Bela Tocka", {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}},
  222. {"Bela Tocka", {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}},
  223. {"Bela Tocka", {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}},
  224. {"Bela Tocka", {434.30,366.50,0.00,603.00,555.60,200.00}},
  225. {"Dve Zvezdi", {508.10,-139.20,0.00,1306.60,119.50,200.00}},
  226. {"Dve Zvezdi", {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}},
  227. {"Dve Zvezdi", {1916.90,-233.30,-100.00,2131.70,13.80,200.00}},
  228. {"Dve Zvezdi", {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}},
  229. {"Gazi Baba", {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}},
  230. {"Gazi Baba", {-376.20,826.30,-3.00,123.70,1220.40,200.00}},
  231. {"Lipova Suma", {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}},
  232. {"Lipova Suma", {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}},
  233. {"Lipova Suma", {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}},
  234. {"Lipova Suma", {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}},
  235. {"Bela Tocka", {2759.20,296.50,0.00,2774.20,594.70,200.00}},
  236. {"Zelen Krug", {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}},
  237. {"Lipova Suma", {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}},
  238. {"Lipova Suma", {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}},
  239. {"Bel Most", {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}},
  240. {"Bel Most", {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}},
  241. {"Bel Most", {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}},
  242. {"Bel Most", {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}},
  243. {"Bel Most", {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}},
  244. {"Bel Most", {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}},
  245. {"Glen Park", {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}},
  246. {"Glen Park", {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}},
  247. {"Glen Park", {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}},
  248. {"Glen Park", {176.50,1305.40,-3.00,338.60,1520.70,200.00}},
  249. {"Zlatna Treva", {964.30,1044.60,-89.00,1197.30,1203.20,110.90}},
  250. {"Zlatna Treva", {964.30,930.80,-89.00,1166.50,1044.60,110.90}},
  251. {"Zlatna Treva", {603.00,264.30,0.00,761.90,366.50,200.00}},
  252. {"Henska Tocka", {2576.90,62.10,0.00,2759.20,385.50,200.00}},
  253. {"Henska Tocka", {1777.30,863.20,-89.00,1817.30,2342.80,110.90}},
  254. {"Henska Tocka", {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}},
  255. {"Hilltop Farma", {967.30,-450.30,-3.00,1176.70,-217.90,200.00}},
  256. {"Hilltop Farma", {337.20,710.80,-115.20,860.50,1031.70,203.70}},
  257. {"GSF Zona", {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}},
  258. {"GSF Zona", {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}},
  259. {"GSF Zona", {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}},
  260. {"GSF Zona", {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}},
  261. {"GSF Zona", {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}},
  262. {"GSF Zona", {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}},
  263. {"Jefferson", {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}},
  264. {"Jefferson", {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}},
  265. {"Jefferson", {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}},
  266. {"Jefferson", {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}},
  267. {"Jefferson", {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}},
  268. {"Jefferson", {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}},
  269. {"Istocen Kamen", {2623.10,943.20,-89.00,2749.90,1055.90,110.90}},
  270. {"Istocen Kamen", {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}},
  271. {"Istocen Kamen", {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}},
  272. {"Istocen Kamen", {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}},
  273. {"Istocen Kamen", {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}},
  274. {"Istocen Kamen", {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}},
  275. {"Istocen Kamen", {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}},
  276. {"Istocen Kamen", {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}},
  277. {"Istocen Kamen", {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}},
  278. {"Istocen Kamen", {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}},
  279. {"Istocen Kamen", {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}},
  280. {"Istocen Kamen", {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}},
  281. {"Zlatna Vrata", {1457.30,823.20,-89.00,2377.30,863.20,110.90}},
  282. {"Zlatna Vrata", {2377.30,788.80,-89.00,2537.30,897.90,110.90}},
  283. {"Zlatna Vrata", {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}},
  284. {"Zlatna Vrata", {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}},
  285. {"Zlatna Vrata", {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}},
  286. {"Zlatna Vrata", {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}},
  287. {"Zlatna Vrata", {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}},
  288. {"Cvrst Most", {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}},
  289. {"Cvrst Most", {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}},
  290. {"Cvrst Most", {-1087.90,855.30,-89.00,-961.90,986.20,110.90}},
  291. {"Cvrst Most", {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}},
  292. {"Cvrst Most", {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}},
  293. {"Cvrst Most", {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}},
  294. {"Pesterica", {1457.30,863.20,-89.00,1777.40,1143.20,110.90}},
  295. {"Pesterica", {1375.60,919.40,-89.00,1457.30,1203.20,110.90}},
  296. {"Pesterica", {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}},
  297. {"Pesterica", {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}},
  298. {"Lunska voda", {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}},
  299. {"Lunska voda", {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}},
  300. {"Lunska voda", {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}},
  301. {"Lunska voda", {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}},
  302. {"Lunska voda", {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}},
  303. {"Lunska voda", {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}},
  304. {"Lunska voda", {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}},
  305. {"Lunska voda", {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}},
  306. {"Ilinden", {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}},
  307. {"Ilinden", {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}},
  308. {"Ilinden", {-354.30,2580.30,2.00,-133.60,2816.80,200.00}},
  309. {"Ilinden", {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}},
  310. {"Ilinden", {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}},
  311. {"Ilinden", {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}},
  312. {"Ilinden", {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}},
  313. {"Motel", {1823.00,596.30,-89.00,1997.20,823.20,110.90}},
  314. {"Belsko Maalo", {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}},
  315. {"Liberty City", {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}},
  316. {"Belsko Maalo", {-90.20,1286.80,-3.00,153.80,1554.10,200.00}},
  317. {"Belsko Maalo", {2749.90,943.20,-89.00,2923.30,1198.90,110.90}},
  318. {"Belsko Maalo", {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}},
  319. {"Belsko Maalo", {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}},
  320. {"Belsko Maalo", {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}},
  321. {"Belsko Maalo", {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}},
  322. {"Los Flores", {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}},
  323. {"Los Flores", {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}},
  324. {"Los Santos", {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}},
  325. {"Los Santos", {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}},
  326. {"Los Santos", {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}},
  327. {"Los Santos", {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}},
  328. {"Los Santos", {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}},
  329. {"Los Santos", {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}},
  330. {"Jelmar", {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}},
  331. {"Jelmar", {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}},
  332. {"Jelmar", {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}},
  333. {"Market", {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}},
  334. {"Market", {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}},
  335. {"Market", {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}},
  336. {"Market", {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}},
  337. {"Jelmar", {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}},
  338. {"Jelmar", {-222.10,293.30,0.00,-122.10,476.40,200.00}},
  339. {"Jelmar", {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}},
  340. {"MK Ulica", {1119.50,119.50,-3.00,1451.40,493.30,200.00}},
  341. {"MK Ulica", {1451.40,347.40,-6.10,1582.40,420.80,200.00}},
  342. {"MK Ulica", {1546.60,208.10,0.00,1745.80,347.40,200.00}},
  343. {"MK Ulica", {1582.40,347.40,0.00,1664.60,401.70,200.00}},
  344. {"Strisani", {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}},
  345. {"Strisani", {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}},
  346. {"Strisani", {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}},
  347. {"Strisani", {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}},
  348. {"Strisani", {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}},
  349. {"Strisani", {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}},
  350. {"Strisani", {768.60,-954.60,-89.00,952.60,-860.60,110.90}},
  351. {"Strisani", {687.80,-860.60,-89.00,911.80,-768.00,110.90}},
  352. {"Strisani", {737.50,-768.00,-89.00,1142.20,-674.80,110.90}},
  353. {"Strisani", {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}},
  354. {"Strisani", {952.60,-937.10,-89.00,1096.40,-860.60,110.90}},
  355. {"Strisani", {911.80,-860.60,-89.00,1096.40,-768.00,110.90}},
  356. {"Strisani", {861.00,-674.80,-89.00,1156.50,-600.80,110.90}},
  357. {"Strisani", {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}},
  358. {"Zlatna Osa", {2285.30,-768.00,0.00,2770.50,-269.70,200.00}},
  359. {"Zlatna Osa", {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}},
  360. {"Zlatna Osa", {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}},
  361. {"Zlatna Osa", {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}},
  362. {"Zlatna Osa", {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}},
  363. {"Zlatna Osa", {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}},
  364. {"Zlatna Osa", {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}},
  365. {"Zlatna Osa", {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}},
  366. {"Zlatna Osa", {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}},
  367. {"Zlatna Osa", {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}},
  368. {"Zlatna Osa", {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}},
  369. {"Velinovo", {338.60,1228.50,0.00,664.30,1655.00,200.00}},
  370. {"Strip Klub", {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}},
  371. {"Velinovo", {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}},
  372. {"Velinovo", {2160.20,-149.00,0.00,2576.90,228.30,200.00}},
  373. {"Velinovo", {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}},
  374. {"Velinovo", {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}},
  375. {"Trnsko Maalo", {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}},
  376. {"Trnsko Maalo", {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}},
  377. {"Trnsko Maalo", {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}},
  378. {"Trnsko Maalo", {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}},
  379. {"Trnsko Maalo", {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}},
  380. {"Trnsko Maalo", {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}},
  381. {"Gorski Kamen", {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}},
  382. {"Gorski Kamen", {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}},
  383. {"Gorski Kamen", {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}},
  384. {"Gorski Kamen", {-2533.00,458.40,0.00,-2329.30,578.30,200.00}},
  385. {"Gorski Kamen", {-2593.40,54.70,0.00,-2411.20,458.40,200.00}},
  386. {"Gorski Kamen", {-2411.20,373.50,0.00,-2253.50,458.40,200.00}},
  387. {"Dimska Voda", {1558.00,596.30,-89.00,1823.00,823.20,110.90}},
  388. {"Dimska Voda", {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}},
  389. {"Dimska Voda", {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}},
  390. {"Dimska Voda", {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}},
  391. {"Dimska Voda", {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}},
  392. {"Dimska Voda", {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}},
  393. {"Dimska Voda", {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}},
  394. {"Dimska Voda", {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}},
  395. {"TV Riki", {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}},
  396. {"Richman", {647.50,-1118.20,-89.00,787.40,-954.60,110.90}},
  397. {"Richman", {647.50,-954.60,-89.00,768.60,-860.60,110.90}},
  398. {"Richman", {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}},
  399. {"Richman", {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}},
  400. {"Richman", {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}},
  401. {"Richman", {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}},
  402. {"Richman", {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}},
  403. {"Richman", {321.30,-1044.00,-89.00,647.50,-860.60,110.90}},
  404. {"Richman", {321.30,-860.60,-89.00,687.80,-768.00,110.90}},
  405. {"Richman", {321.30,-768.00,-89.00,700.70,-674.80,110.90}},
  406. {"Kanarski Ost.", {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}},
  407. {"Kanarski Ost.", {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}},
  408. {"Kanarski Ost.", {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}},
  409. {"Kanarski Ost.", {2537.30,676.50,-89.00,2902.30,943.20,110.90}},
  410. {"Kanarski Ost.", {1997.20,596.30,-89.00,2377.30,823.20,110.90}},
  411. {"Kanarski Ost.", {2377.30,596.30,-89.00,2537.30,788.80,110.90}},
  412. {"Rodeo", {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}},
  413. {"Rodeo", {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}},
  414. {"Rodeo", {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}},
  415. {"Rodeo", {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}},
  416. {"Rodeo", {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}},
  417. {"Rodeo", {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}},
  418. {"Rodeo", {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}},
  419. {"Rodeo", {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}},
  420. {"Rodeo", {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}},
  421. {"Rodeo", {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}},
  422. {"Rodeo", {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}},
  423. {"Rodeo", {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}},
  424. {"Royal Casino", {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}},
  425. {"SA Muzika", {2450.30,385.50,-100.00,2759.20,562.30,200.00}},
  426. {"Pork Beli", {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}},
  427. {"Pork Beli", {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}},
  428. {"Pork Beli", {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}},
  429. {"Pork Beli", {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}},
  430. {"Dabska Reka", {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}},
  431. {"Dabska Reka", {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}},
  432. {"Dabska Reka", {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}},
  433. {"Dabska Reka", {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}},
  434. {"Novo Casino", {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}},
  435. {"Novo Casino", {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}},
  436. {"Novo Casino", {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}},
  437. {"Banka", {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}},
  438. {"Banka", {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}},
  439. {"Burger", {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}},
  440. {"Burger", {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}},
  441. {"Benzinska", {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}},
  442. {"LS", {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}},
  443. {"Kamel", {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}},
  444. {"Kamel", {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}},
  445. {"Kamel", {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}},
  446. {"Farma", {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}},
  447. {"Zmejsko Casino", {1817.30,863.20,-89.00,2027.30,1083.20,110.90}},
  448. {"Golemo Trkalo", {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}},
  449. {"Kamel", {1664.60,401.70,0.00,1785.10,567.20,200.00}},
  450. {"Kamel", {-947.90,-304.30,-1.10,-319.60,327.00,200.00}},
  451. {"Kamel", {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}},
  452. {"Moreti", {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}},
  453. {"Moreti", {2027.40,863.20,-89.00,2087.30,1703.20,110.90}},
  454. {"Moreti", {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}},
  455. {"Moreti", {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}},
  456. {"Crn Kamen", {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}},
  457. {"Crn Kamen", {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}},
  458. {"Crn Kamen", {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}},
  459. {"Zelinovo", {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}},
  460. {"Zelinovo", {-936.60,2611.40,2.00,-715.90,2847.90,200.00}},
  461. {"Zelinovo", {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}},
  462. {"Zelinovo", {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}},
  463. {"Zelinovo", {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}},
  464. {"Zelinovo", {37.00,2337.10,-3.00,435.90,2677.90,200.00}},
  465. {"Bela Tocka", {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}},
  466. {"Bela Tocka", {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}},
  467. {"Bela Tocka", {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}},
  468. {"Bela Tocka", {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}},
  469. {"Bela Tocka", {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}},
  470. {"Vinewood", {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}},
  471. {"Vinewood", {787.40,-1130.80,-89.00,952.60,-954.60,110.90}},
  472. {"Vinewood", {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}},
  473. {"Vinewood", {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}},
  474. {"Belwood", {883.30,1726.20,-89.00,1098.30,2507.20,110.90}},
  475. {"Belwood", {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}},
  476. {"Belwood", {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}},
  477. {"Belwood", {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}},
  478. {"Belwood", {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}},
  479. {"Belwood", {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}},
  480. {"Belwood", {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}},
  481. {"Belwood", {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}},
  482. {"Belwood", {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}},
  483. {"Stanica", {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}},
  484. {"Los Santos", {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}},
  485. {"Las Venturas", {869.40,596.30,-242.90,2997.00,2993.80,900.00}},
  486. {"Zolt Krug", {-480.50,596.30,-242.90,869.40,2993.80,900.00}},
  487. {"KumanovoCity", {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}},
  488. {"KumanovoCity", {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}},
  489. {"San Fierro", {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}},
  490. {"Zolt Krug", {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}},
  491. {"Zolt Krug", {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}},
  492. {"Belo Maalo", {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}}
  493. };
  494. //------------------------------------------------------------------------------
  495. enum ReadPositions{Float:ReadX,Float:ReadY,Float:ReadZ
  496. }
  497. //------------------------------------------------------------------------------
  498. new Marko_ReadPlayerPosition[PLAYERS][ReadPositions];
  499. new Float:VehPosX[MAX_VEHICLES], Float:VehPosY[MAX_VEHICLES], Float:VehPosZ[MAX_VEHICLES];
  500. //------------------------------------------------------------------------------
  501. forward LAutoUnlock(vehicleid);
  502. //------------------------------------------------------------------------------
  503. new LVehiclesName[][] =
  504. {
  505. "Landstalker",
  506. "Bravura",
  507. "Buffalo",
  508. "Linerunner",
  509. "Pereniel",
  510. "Sentinel",
  511. "Dumper",
  512. "Firetruck",
  513. "Trashmaster",
  514. "Stretch",
  515. "Manana",
  516. "Infernus",
  517. "Voodoo",
  518. "Pony",
  519. "Mule",
  520. "Cheetah",
  521. "Ambulance",
  522. "Leviathan",
  523. "Moonbeam",
  524. "Esperanto",
  525. "Taxi",
  526. "Washington",
  527. "Bobcat",
  528. "Mr Whoopee",
  529. "BF Injection",
  530. "Hunter",
  531. "Premier",
  532. "Enforcer",
  533. "Securicar",
  534. "Banshee",
  535. "Predator",
  536. "Bus",
  537. "Rhino",
  538. "Barracks",
  539. "Hotknife",
  540. "Trailer",
  541. "Previon",
  542. "Coach",
  543. "Cabbie",
  544. "Stallion",
  545. "Rumpo",
  546. "RC Bandit",
  547. "Romero",
  548. "Packer",
  549. "Monster Truck",
  550. "Admiral",
  551. "Squalo",
  552. "Seasparrow",
  553. "Pizzaboy",
  554. "Tram",
  555. "Trailer",
  556. "Turismo",
  557. "Speeder",
  558. "Reefer",
  559. "Tropic",
  560. "Flatbed",
  561. "Yankee",
  562. "Caddy",
  563. "Solair",
  564. "Berkley's RC Van",
  565. "Skimmer",
  566. "PCJ-600",
  567. "Faggio",
  568. "Freeway",
  569. "RC Baron",
  570. "RC Raider",
  571. "Glendale",
  572. "Oceanic",
  573. "Sanchez",
  574. "Sparrow",
  575. "Patriot",
  576. "Quad",
  577. "Coastguard",
  578. "Dinghy",
  579. "Hermes",
  580. "Sabre",
  581. "Rustler",
  582. "ZR-350",
  583. "Walton",
  584. "Regina",
  585. "Comet",
  586. "BMX",
  587. "Burrito",
  588. "Camper",
  589. "Marquis",
  590. "Baggage",
  591. "Dozer",
  592. "Maverick",
  593. "News Chopper",
  594. "Rancher",
  595. "FBI Rancher",
  596. "Virgo",
  597. "Greenwood",
  598. "Jetmax",
  599. "Hotring",
  600. "Sandking",
  601. "Blista Compact",
  602. "Police Maverick",
  603. "Boxville",
  604. "Benson",
  605. "Mesa",
  606. "RC Goblin",
  607. "Hotring Racer",
  608. "Hotring Racer",
  609. "Bloodring Banger",
  610. "Rancher",
  611. "Super GT",
  612. "Elegant",
  613. "Journey",
  614. "Bike",
  615. "Mountain Bike",
  616. "Beagle",
  617. "Cropdust",
  618. "Stunt",
  619. "Tanker",
  620. "RoadTrain",
  621. "Nebula",
  622. "Majestic",
  623. "Buccaneer",
  624. "Shamal",
  625. "Hydra",
  626. "FCR-900",
  627. "NRG-500",
  628. "HPV1000",
  629. "Cement Truck",
  630. "Tow Truck",
  631. "Fortune",
  632. "Cadrona",
  633. "FBI Truck",
  634. "Willard",
  635. "Forklift",
  636. "Tractor",
  637. "Combine",
  638. "Feltzer",
  639. "Remington",
  640. "Slamvan",
  641. "Blade",
  642. "Freight",
  643. "Streak",
  644. "Vortex",
  645. "Vincent",
  646. "Bullet",
  647. "Clover",
  648. "Sadler",
  649. "Firetruck",
  650. "Hustler",
  651. "Intruder",
  652. "Primo",
  653. "Cargobob",
  654. "Tampa",
  655. "Sunrise",
  656. "Merit",
  657. "Utility",
  658. "Nevada",
  659. "Yosemite",
  660. "Windsor",
  661. "Monster Truck",
  662. "Monster Truck",
  663. "Uranus",
  664. "Jester",
  665. "Sultan",
  666. "Stratum",
  667. "Elegy",
  668. "Raindance",
  669. "RC Tiger",
  670. "Flash",
  671. "Tahoma",
  672. "Savanna",
  673. "Bandito",
  674. "Freight",
  675. "Trailer",
  676. "Kart",
  677. "Mower",
  678. "Duneride",
  679. "Sweeper",
  680. "Broadway",
  681. "Tornado",
  682. "AT-400",
  683. "DFT-30",
  684. "Huntley",
  685. "Stafford",
  686. "BF-400",
  687. "Newsvan",
  688. "Tug",
  689. "Trailer",
  690. "Emperor",
  691. "Wayfarer",
  692. "Euros",
  693. "Hotdog",
  694. "Club",
  695. "Trailer",
  696. "Trailer",
  697. "Andromada",
  698. "Dodo",
  699. "RC Cam",
  700. "Launch",
  701. "Police Car (LS)",
  702. "Police Car (SF)",
  703. "Police Car (LV)",
  704. "Police Ranger",
  705. "Picador",
  706. "MBI Van",
  707. "Alpha",
  708. "Phoenix",
  709. "Glendale",
  710. "Sadler",
  711. "Luggage Trailer",
  712. "Luggage Trailer",
  713. "Stair Trailer",
  714. "Boxville",
  715. "Farm Plow",
  716. "Utility Trailer"
  717. };
  718. //------------------------------------------------------------------------------
  719. forward Marko_SpeedoMeterUp();
  720.  
  721. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  722. {
  723. if(newkeys == KEY_YES)
  724. {
  725. if(PlayerToPoint(3.0,playerid,1863.1718,-1799.4795,13.3062))
  726. {
  727. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,"{37F906}INFO:{FFFFFF}Ne ste vo Vozilo !!!");
  728. SCM(playerid,AQUAGREEN, "{37F906}INFO:{FFFFFF}Pocekajte dodeka vaseto vozilio se Remontira.");
  729. SetTimerEx("timer_km",5000,false,"i",playerid);
  730. SetCameraBehindPlayer(playerid);
  731. TogglePlayerControllable(playerid, 0);
  732. }
  733. }
  734. if(newkeys == KEY_YES)
  735. {
  736. if(PlayerToPoint(3.0,playerid,1850.0088,-1800.1989,13.3062))
  737. {
  738. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,"{37F906}INFO:{FFFFFF}Ne ste vo Vozilo !!!");
  739. SCM(playerid,AQUAGREEN, "{37F906}INFO:{FFFFFF}Pocekajte dodeka vaseto vozilio se Remontira.");
  740. SetTimerEx("timer_km",5000,false,"i",playerid);
  741. SetCameraBehindPlayer(playerid);
  742. TogglePlayerControllable(playerid, 0);
  743. }
  744. }
  745. if(newkeys == KEY_YES)
  746. {
  747. if(PlayerToPoint(3.0,playerid,1759.0515,-1691.8717,14.6696))
  748. {
  749. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,"{37F906}INFO:{FFFFFF}Ne ste vo Vozilo !!!");
  750. SCM(playerid,AQUAGREEN, "{37F906}INFO:{FFFFFF}Pocekajte dodeka vaseto vozilo se Registrira.");
  751. SetTimerEx("timer_reg",5000,false,"i",playerid);
  752. TogglePlayerControllable(playerid, 0);
  753. SetCameraBehindPlayer(playerid);
  754. }
  755. }
  756. return 1;
  757. }
  758. public OnFilterScriptInit()
  759. {
  760. for(new i=0;i<MAX_VEHICLES;i++)
  761. {
  762. new kFile[50];
  763. format(kFile, sizeof(kFile), VOZILO_FILE, i);
  764. if(fexist(kFile))
  765. {
  766. INI_ParseFile(kFile, "Ucitaj", .bExtra = true, .extra = i);
  767. if(VoziloInfo[i][Remontirano] == 1)
  768. {
  769. VoziloInfo[i][Remontirano] = 1;
  770. }
  771. else if(VoziloInfo[i][Remontirano] == 0)
  772. {
  773. VoziloInfo[i][Remontirano] = 0;
  774. }
  775. else if(VoziloInfo[i][Registrirano] == 0)
  776. {
  777. VoziloInfo[i][Registrirano] = 0;
  778. }
  779. else if(VoziloInfo[i][Registrirano] == 1)
  780. {
  781. VoziloInfo[i][Registrirano] = 1;
  782. }
  783. }
  784. }
  785. for(new i=0;i<MAX_VEHICLES;i++)
  786. {
  787. fuel[i] = 100;
  788. }
  789. SetTimer("timer_fuel_lower",20000,true);
  790. SetTimer("Marko_SpeedoMeterUp", UpdateConfig, 1);
  791.  
  792. SetTimer("timer_km_lower",25000,true);
  793. SetTimer("Marko_SpeedoMeterUp", UpdateConfig, 1);
  794.  
  795. for(new v=0; v<MAX_VEHICLES; v++)
  796. {
  797. Marko_ReadPosition(v);}
  798. for(new i=0; i<PLAYERS; i++){
  799. //------------------------------------------------------------------------------
  800. #if TextBox
  801. LBox[i] = TextDrawCreate(640.000000, 369.000000,"C");
  802. TextDrawUseBox(LBox[i],1);
  803. TextDrawBoxColor(LBox[i],0x00000033);
  804. TextDrawTextSize(LBox[i],489.000000, 235.000000);
  805. TextDrawAlignment(LBox[i],0);
  806. TextDrawBackgroundColor(LBox[i],0x000000ff);
  807. TextDrawFont(LBox[i],3);
  808. TextDrawLetterSize(LBox[i],0.479999, 10.700000);
  809. TextDrawColor(LBox[i],BoxColor);
  810. TextDrawSetOutline(LBox[i],1);
  811. TextDrawSetProportional(LBox[i],1);
  812. #endif
  813.  
  814. //---------------------------------------------------------->
  815. format(lstring, sizeof(lstring), "Inicializing...");
  816. LFunc[i] = TextDrawCreate(538.000000, 372.000000,lstring);
  817. TextDrawAlignment(LFunc[i],0);
  818. TextDrawBackgroundColor(LFunc[i],0x000000ff);
  819. TextDrawFont(LFunc[i],1);
  820. TextDrawLetterSize(LFunc[i],0.280000, 1.100000);
  821. TextDrawColor(LFunc[i],0xffffffff);
  822. TextDrawSetOutline(LFunc[i],1);
  823. TextDrawSetProportional(LFunc[i],1);
  824. //---------------------------------------------------------->
  825. format(lstr, sizeof(lstr), "Inicializing...");
  826. Lmph[i] = TextDrawCreate(499.000000, 414.000000,lstr);
  827. TextDrawAlignment(Lmph[i],0);
  828. TextDrawBackgroundColor(Lmph[i],0x000000ff);
  829. TextDrawFont(Lmph[i],3);
  830. TextDrawLetterSize(Lmph[i],0.709999, 3.399996);
  831. TextDrawColor(Lmph[i],0xffffffff);
  832. TextDrawSetOutline(Lmph[i],1);
  833. TextDrawSetProportional(Lmph[i],1);
  834. }
  835. return 1;
  836. }
  837. //------------------------------------------------------------------------------
  838. public OnFilterScriptExit()
  839. {
  840. //------------------------------------------------------------------------------
  841. print("\n");
  842. print("\n");
  843. //------------------------------------------------------------------------------
  844. for(new i=0; i<PLAYERS; i++)
  845. {
  846. TextDrawHideForPlayer(i, LBox[i]);
  847. TextDrawHideForPlayer(i, LLine1[i]);
  848. TextDrawHideForPlayer(i, LLine2[i]);
  849. TextDrawHideForPlayer(i, LLine3[i]);
  850. TextDrawHideForPlayer(i, LLine4[i]);
  851. TextDrawHideForPlayer(i, LCredits[i]);
  852. TextDrawHideForPlayer(i, Lmph[i]);
  853. TextDrawHideForPlayer(i, LFunc[i]);
  854. for(new v=0; v<MAX_VEHICLES; v++)
  855. {
  856. ZacuvajVozilo(v);
  857. }
  858. }
  859. }
  860. //------------------------------------------------------------------------------
  861. public Marko_SpeedoMeterUp()
  862. {
  863. new Float:LPosX;
  864. new Float:LPosY;
  865. new Float:LPosZ;
  866. new Float:PlayerSpeedDistance;
  867. new value;
  868. new Float:L_VehHealth;
  869. new LVehicleStatus[15];
  870.  
  871. for(new i=0; i<PLAYERS; i++)
  872. {
  873. if(VehicleStatus[GetPlayerVehicleID(i)] == 1)
  874. {
  875. LVehicleStatus = "~r~Zakluceno";
  876. }
  877. else
  878. {
  879. LVehicleStatus = "~g~Otkluceno";
  880. }
  881. if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
  882. {
  883. GetPlayerPos(i, LPosX, LPosY, LPosZ);
  884. GetPlayerVehicleID(i);
  885. GetVehicleHealth(GetPlayerVehicleID(i), L_VehHealth);
  886. PlayerSpeedDistance = floatsqroot(floatpower(floatabs(floatsub(LPosX,Marko_ReadPlayerPosition[i][ReadX])),2)+floatpower(floatabs(floatsub(LPosY,Marko_ReadPlayerPosition[i][ReadY])),2)+floatpower(floatabs(floatsub(LPosZ,Marko_ReadPlayerPosition[i][ReadZ])),2));
  887. value = floatround(PlayerSpeedDistance * 5000);
  888. new MarkoZone[MAX_ZONE_NAME];
  889. GetPlayer2DZone(i, MarkoZone, MAX_ZONE_NAME);
  890. if(Marko_SpeedoMeter[i] == 0){
  891. TextDrawShowForPlayer(i, LBox[i]);
  892. TextDrawShowForPlayer(i, LLine1[i]);
  893. TextDrawShowForPlayer(i, LLine2[i]);
  894. TextDrawShowForPlayer(i, LLine3[i]);
  895. TextDrawShowForPlayer(i, LLine4[i]);
  896. TextDrawShowForPlayer(i, LCredits[i]);
  897. TextDrawShowForPlayer(i, Lmph[i]);
  898. TextDrawShowForPlayer(i, LFunc[i]);
  899. Marko_SpeedoMeter[i] = 1; }
  900. new LKPH = floatround(value/1000);
  901. new registrirano[30];
  902. if(VoziloInfo[GetPlayerVehicleID(i)][Registrirano] == 1) { registrirano = "~G~Registrirano"; } else { registrirano = "~R~Ne Registrirano"; }
  903. //------------------------------------------------------------------------------
  904. format(lstring,sizeof(lstring),"~b~Vozilo: ~w~%s~n~~b~Jacina: ~w~%.2f~n~~b~Gorivo: ~w~%d litri~n~~b~~b~KM: ~w~%d~n~%s~n~~b~Lokacija GPS: ~n~~w~%s",LVehiclesName[GetVehicleModel(GetPlayerVehicleID(i))-400],L_VehHealth,fuel[GetPlayerVehicleID(i)],VoziloInfo[GetPlayerVehicleID(i)][Remontirano],registrirano,MarkoZone);
  905. TextDrawSetString(LFunc[i], lstring);
  906. //------------------------------------------------------------------------------
  907. new Float:p[3];
  908. GetVehicleVelocity(GetPlayerVehicleID(i),p[0],p[1],p[2]);
  909. new str[12];
  910. format(str,12,"%.0f",150.0*(p[0]*p[0]+p[1]*p[1]));
  911. TextDrawSetString(Lmph[i], str);
  912. //------------------------------------------------------------------------------
  913. if(LKPH >= VehicleMaxSpeed)
  914. {
  915. format(lstr,sizeof(lstr),"~w~%d",LKPH);
  916. TextDrawSetString(Lmph[i], lstr);
  917. }
  918. }
  919. //------------------------------------------------------------------------------
  920. Marko_ReadPlayerPosition[i][ReadX] = LPosX, Marko_ReadPlayerPosition[i][ReadY] = LPosY, Marko_ReadPlayerPosition[i][ReadZ] = LPosZ;}
  921. for(new i=0; i<PLAYERS; i++){
  922. if(!IsPlayerInAnyVehicle(i)){
  923. TextDrawHideForPlayer(i, LBox[i]);
  924. TextDrawHideForPlayer(i, LLine1[i]);
  925. TextDrawHideForPlayer(i, LLine2[i]);
  926. TextDrawHideForPlayer(i, LLine3[i]);
  927. TextDrawHideForPlayer(i, LLine4[i]);
  928. TextDrawHideForPlayer(i, LCredits[i]);
  929. TextDrawHideForPlayer(i, Lmph[i]);
  930. TextDrawHideForPlayer(i, LFunc[i]);
  931. Marko_SpeedoMeter[i] = 0;
  932. }
  933. }
  934. return 1;
  935. }
  936. //------------------------------------------------------------------------------
  937. //------------------------------------------------------------------------------
  938. public OnVehicleSpawn(vehicleid)
  939. {
  940. Marko_ReadPosition(vehicleid);
  941. return 1;
  942. }
  943. //------------------------------------------------------------------------------
  944. public OnPlayerCommandText(playerid,cmdtext[])
  945. {
  946. new cmd[128];
  947. new idx;
  948.  
  949. cmd = strtok(cmdtext, idx);
  950. if (!strcmp("/fill",cmdtext,true,7)) {
  951. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,"{37F906}INFO:{FFFFFF}Ne ste vo Avtomobil!");
  952. if(!IsAtGasStation(playerid)) return SendClientMessage(playerid,0xFFFFFFAA,"{FF0000}GRESKA:{FFFFFF}Ne ste na Benzinska Pumpa!");
  953. if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,"{37F906}INFO:{FFFFFF}Vie vekje go Polnite Rezervoarot!");
  954. SPD(playerid, 923 , DIALOG_STYLE_LIST, "Goriva","Benzin BMB-95 ($83)\nBenzin BMB-98 ($84)\nDizel ($70)","Izberi","Izlez");
  955. SetCameraBehindPlayer(playerid);
  956. return 1;
  957. }
  958.  
  959. //------------------------------------------------------------------------------
  960. if(strcmp(cmd, "/wqeiojwqeojiwqejojoiqojiqwe(neradi)", true) == 0)
  961. {
  962. new Float:X;
  963. new Float:Y;
  964. new Float:Z;
  965.  
  966. if(IsPlayerConnected(playerid) && VehicleStatus[GetPlayerVehicleID(playerid)] == 0){
  967. new VehicleState = GetPlayerState(playerid);
  968.  
  969. if(VehicleState == PLAYER_STATE_DRIVER){
  970. for(new v = 0; v <L_VEHICLE; v++)
  971. {
  972. if (v != playerid)
  973. {
  974. SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),v, 0, 1);
  975. }
  976. }
  977. SendClientMessage(playerid,AQUAGREEN, "***Avtomobilot e Zaklucen!");
  978. GetPlayerPos(playerid,X,Y,Z);
  979. PlayerPlaySound(playerid,1057,X,Y,Z);
  980. VehicleStatus[GetPlayerVehicleID(playerid)] = 1;
  981. SetTimerEx("LAutoUnlock",VehLockTime*60000,false,"i",GetPlayerVehicleID(playerid));
  982. }
  983. return 1;
  984. }
  985. }
  986.  
  987. if(strcmp(cmd, "/iewqiqewiweq(neradi)", true) == 0)
  988. {
  989. new Float:X;
  990. new Float:Y;
  991. new Float:Z;
  992.  
  993. if(IsPlayerConnected(playerid) && VehicleStatus[GetPlayerVehicleID(playerid)] == 1)
  994. {
  995. new VehicleState = GetPlayerState(playerid);
  996. if(VehicleState == PLAYER_STATE_DRIVER)
  997. {
  998. for(new v = 0; v <L_VEHICLE; v++)
  999. {
  1000. SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),v, 0, 0);
  1001. }
  1002. SendClientMessage(playerid,AQUAGREEN, "***Avtomobilot e otklucen!");
  1003. GetPlayerPos(playerid,X,Y,Z);
  1004. PlayerPlaySound(playerid,1057,X,Y,Z); VehicleStatus[GetPlayerVehicleID(playerid)] = 0;
  1005. }
  1006. return 1;
  1007. }
  1008. }
  1009. return 0;
  1010. }
  1011. //------------------------------------------------------------------------------
  1012. public LAutoUnlock(vehicleid)
  1013. {
  1014. for(new v = 0; v <L_VEHICLE; v++)
  1015. {
  1016. SetVehicleParamsForPlayer(vehicleid,v, 0, 0);
  1017. }
  1018. VehicleStatus[vehicleid] = 0;
  1019. }
  1020.  
  1021. public OnPlayerConnect(playerid)
  1022. {
  1023. for(new i=0; i<PLAYERS; i++)
  1024. {
  1025. // 3D TEXTOVE SRBAKOV
  1026. Create3DTextLabel("[REGISTRIRAJ]\nStisni Y",ZA3DTEXT,1759.0515,-1691.8717,14.6696,15.0, 0);
  1027. Create3DTextLabel("[REMONT]\n Stisni Y",ZA3DTEXT,1863.1473,-1799.4270,13.3062,15.0,0);
  1028. Create3DTextLabel("[REMONT]\n Stisni Y",ZA3DTEXT,1849.8529,-1800.1244,13.3062,15.0,0);
  1029. CreatePickup(1239, 1, 1759.0515,-1691.8717,14.6696);// REGISTRIRAJ
  1030. CreatePickup(3096, 0, 1849.8529,-1800.1244,13.3062, 0); // REMONT 2
  1031. CreatePickup(3096, 0, 1863.1473,-1799.4270,13.3062, 0); // Remont 1
  1032. /// end
  1033. CreateObject(8649,1831.9000000,-1806.3000000,13.2000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall05_lvs) (1)
  1034. CreateObject(8649,1831.9000000,-1777.2000000,13.2000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall05_lvs) (2)
  1035. CreateObject(8649,1885.6000000,-1762.6000000,13.2000000,0.0000000,0.0000000,270.0000000); //object(shbbyhswall05_lvs) (3)
  1036. CreateObject(8649,1846.5996000,-1762.7002000,13.2000000,0.0000000,0.0000000,270.0000000); //object(shbbyhswall05_lvs) (4)
  1037. CreateObject(8649,1900.6000000,-1777.1000000,13.2000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall05_lvs) (5)
  1038. CreateObject(8649,1900.6000000,-1803.1000000,13.2000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall05_lvs) (6)
  1039. CreateObject(8649,1846.2000000,-1804.1000000,13.1000000,0.0000000,0.0000000,256.0000000); //object(shbbyhswall05_lvs) (7)
  1040. CreateObject(8649,1886.5996000,-1814.0996000,13.1000000,0.0000000,0.0000000,255.9980000); //object(shbbyhswall05_lvs) (8)
  1041. CreateObject(8649,1857.9004000,-1807.0000000,13.2000000,0.0000000,0.0000000,255.9980000); //object(shbbyhswall05_lvs) (9)
  1042. CreateObject(9131,1900.5000000,-1762.5000000,12.9000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall13_lvs) (1)
  1043. CreateObject(9131,1870.9000000,-1762.6000000,13.4000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall13_lvs) (2)
  1044. CreateObject(1224,1899.5000000,-1816.3000000,12.9000000,0.0000000,0.0000000,348.0000000); //object(woodenbox) (1)
  1045. CreateObject(1224,1896.9000000,-1815.7000000,12.9000000,0.0000000,0.0000000,348.0000000); //object(woodenbox) (2)
  1046. CreateObject(1224,1898.2000000,-1816.0000000,12.9000000,0.0000000,0.0000000,347.9970000); //object(woodenbox) (3)
  1047. CreateObject(1224,1901.7000000,-1817.7000000,13.2000000,0.0000000,0.0000000,351.9970000); //object(woodenbox) (4)
  1048. CreateObject(4848,1891.8000000,-1779.2000000,15.9000000,0.0000000,0.0000000,270.0000000); //object(sanpedbeaut) (2)
  1049. CreateObject(12978,1891.1000000,-1803.8000000,12.3000000,0.0000000,0.0000000,0.0000000); //object(sw_shed02) (1)
  1050. CreateObject(11480,1849.7000000,-1800.3000000,14.5000000,0.0000000,0.0000000,0.0000000); //object(des_nwt_carport) (1)
  1051. CreateObject(1676,1855.2000000,-1799.2000000,13.9000000,0.0000000,0.0000000,0.0000000); //object(washgaspump) (1)
  1052. CreateObject(1676,1857.7002000,-1799.2002000,13.9000000,0.0000000,0.0000000,0.0000000); //object(washgaspump) (2)
  1053. CreateObject(11480,1863.0996000,-1800.2002000,14.5000000,0.0000000,0.0000000,0.0000000); //object(des_nwt_carport) (2)
  1054. CreateObject(14826,1879.0000000,-1796.7000000,13.1000000,0.0000000,0.0000000,0.0000000); //object(int_kbsgarage2) (1)
  1055. CreateObject(9131,1861.7998000,-1762.7002000,13.1000000,0.0000000,0.0000000,0.0000000); //object(shbbyhswall13_lvs) (3)
  1056. CreateObject(1232,1900.5000000,-1762.5000000,14.5000000,0.0000000,0.0000000,0.0000000); //object(streetlamp1) (1)
  1057. CreateObject(1232,1861.8000000,-1762.6000000,14.5000000,0.0000000,0.0000000,0.0000000); //object(streetlamp1) (2)
  1058. CreateObject(1232,1870.7998000,-1762.5996000,14.6000000,0.0000000,0.0000000,0.0000000); //object(streetlamp1) (3)
  1059. CreateObject(1232,1900.7000000,-1817.7000000,14.0000000,0.0000000,0.0000000,0.0000000); //object(streetlamp1) (4)
  1060. CreateObject(1232,1832.0000000,-1762.7000000,14.7000000,0.0000000,0.0000000,0.0000000); //object(streetlamp1) (5)
  1061. CreateObject(1232,1831.9004000,-1797.9004000,14.7000000,0.0000000,0.0000000,0.0000000); //object(streetlamp1) (6)
  1062. CreateObject(4100,1878.2000000,-1762.5000000,12.8000000,0.0000000,0.0000000,320.0000000); //object(meshfence1_lan) (1)
  1063. CreateObject(4100,1841.6000000,-1762.7000000,12.8000000,0.0000000,0.0000000,319.9990000); //object(meshfence1_lan) (2)
  1064. CreateObject(4100,1839.0000000,-1762.7000000,12.8000000,0.0000000,0.0000000,319.9990000); //object(meshfence1_lan) (3)
  1065. CreateObject(4100,1831.9000000,-1769.7000000,12.8000000,0.0000000,0.0000000,229.9990000); //object(meshfence1_lan) (4)
  1066. CreateObject(4100,1831.8000000,-1783.5000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (5)
  1067. CreateObject(4100,1831.7000000,-1797.1000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (6)
  1068. CreateObject(4100,1839.9000000,-1802.7000000,12.6000000,0.0000000,0.0000000,305.9990000); //object(meshfence1_lan) (7)
  1069. CreateObject(4100,1853.1000000,-1806.0000000,12.6000000,0.0000000,0.0000000,305.9970000); //object(meshfence1_lan) (8)
  1070. CreateObject(4100,1863.0000000,-1808.4000000,12.6000000,0.0000000,0.0000000,305.9970000); //object(meshfence1_lan) (9)
  1071. CreateObject(4100,1876.1000000,-1811.7000000,12.6000000,0.0000000,0.0000000,305.9970000); //object(meshfence1_lan) (10)
  1072. CreateObject(4100,1889.0000000,-1814.9000000,12.6000000,0.0000000,0.0000000,305.9970000); //object(meshfence1_lan) (11)
  1073. CreateObject(4100,1894.8000000,-1816.3000000,12.6000000,0.0000000,0.0000000,305.9970000); //object(meshfence1_lan) (12)
  1074. CreateObject(4100,1900.6000000,-1811.1000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (13)
  1075. CreateObject(4100,1900.6000000,-1797.5000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (14)
  1076. CreateObject(4100,1900.6000000,-1783.9000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (15)
  1077. CreateObject(4100,1900.7000000,-1770.6000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (16)
  1078. CreateObject(4100,1900.7000000,-1769.8000000,12.8000000,0.0000000,0.0000000,229.9930000); //object(meshfence1_lan) (18)
  1079. CreateObject(4100,1855.0000000,-1762.7002000,12.8000000,0.0000000,0.0000000,319.9990000); //object(meshfence1_lan) (19)
  1080. CreateObject(4100,1891.4000000,-1762.5000000,12.8000000,0.0000000,0.0000000,319.9990000); //object(meshfence1_lan) (20)
  1081. CreateObject(4100,1894.2000000,-1762.5000000,12.8000000,0.0000000,0.0000000,319.9990000); //object(meshfence1_lan) (21)
  1082. CreateObject(10281,1884.7000000,-1783.7000000,16.4000000,0.0000000,0.0000000,272.0000000); //object(michsign_sfe) (1)
  1083. CreateObject(16500,1851.3000000,-1803.3000000,12.3000000,90.0000000,180.0000000,270.0000000); //object(cn2_savgardr1_) (3)
  1084. CreateObject(16500,1861.2000000,-1803.1000000,12.3000000,90.0000000,179.9950000,267.9950000); //object(cn2_savgardr1_) (4)
  1085. CreateObject(16500,1864.5996100,-1803.0996100,12.3000000,90.0000000,180.0000000,268.0000000); //object(cn2_savgardr1_) (5)
  1086. CreateObject(16500,1848.1000000,-1803.3000000,12.3000000,90.0000000,179.9950000,270.0000000); //object(cn2_savgardr1_) (6)
  1087. CreateObject(2885,1894.2000000,-1811.6000000,12.0000000,0.0000000,90.0000000,0.0000000); //object(xref_garagedoor) (2)
  1088. CreateObject(3075,1838.8000000,-1790.5000000,11.6000000,0.0000000,0.0000000,226.0000000); //object(impexp_door) (1)
  1089. CreateObject(3075,1838.4000000,-1771.9000000,11.6000000,0.0000000,0.0000000,226.0000000); //object(impexp_door) (2)
  1090. CreateObject(5856,1885.6000000,-1771.5000000,14.3000000,0.0000000,0.0000000,0.0000000); //object(lawnspraydoor1) (1)
  1091. RemoveBuildingForPlayer(playerid, 5536, 1866.3281, -1789.7813, 20.9453, 0.25);
  1092. RemoveBuildingForPlayer(playerid, 5397, 1866.3281, -1789.7813, 20.9453, 0.25);
  1093. RemoveBuildingForPlayer(playerid, 4018, 1791.7969, -1716.9844, 12.52344, 0.25);
  1094. RemoveBuildingForPlayer(playerid, 5397, 1866.3281, -1789.7812, 20.94531, 0.25);
  1095. TextDrawHideForPlayer(i, LBox[i]);
  1096. TextDrawHideForPlayer(i, LLine1[i]);
  1097. TextDrawHideForPlayer(i, LLine2[i]);
  1098. TextDrawHideForPlayer(i, LLine3[i]);
  1099. TextDrawHideForPlayer(i, LLine4[i]);
  1100. TextDrawHideForPlayer(i, LCredits[i]);
  1101. TextDrawHideForPlayer(i, Lmph[i]);
  1102. TextDrawHideForPlayer(i, LFunc[i]);
  1103. }
  1104. return 1;
  1105. }
  1106. //------------------------------------------------------------------------------
  1107. strtok(const string[], &index)
  1108. {
  1109. new length = strlen(string);
  1110. while ((index < length) && (string[index] <= ' ')) { index++; }
  1111. new offset = index; new result[20];
  1112. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  1113. { result[index - offset] = string[index]; index++; }
  1114. result[index - offset] = EOS; return result;
  1115. }
  1116. //------------------------------------------------------------------------------
  1117. stock Marko_DistanceToPoint(vehicleid)
  1118. {
  1119. new Float:LPlayerX, Float:LPlayerY, Float:LPlayerZ, Float:LReadPos;
  1120. GetVehiclePos(vehicleid, LPlayerX, LPlayerY, LPlayerZ);
  1121. LReadPos = floatsqroot(floatpower(floatabs(floatsub(LPlayerX, VehPosX[vehicleid])), 2)+floatpower(floatabs(floatsub(LPlayerY, VehPosY[vehicleid])), 2)+floatpower(floatabs(floatsub(LPlayerZ, VehPosZ[vehicleid])), 2));
  1122. return floatround(LReadPos);
  1123. }
  1124. //------------------------------------------------------------------------------
  1125. stock Marko_ReadPosition(vehicleid)
  1126. {
  1127. new Float:LReadX, Float:LReadY, Float:LReadZ;
  1128. GetVehiclePos(vehicleid, LReadX, LReadY, LReadZ);
  1129. VehPosX[vehicleid]=LReadX; VehPosY[vehicleid]=LReadY; VehPosZ[vehicleid]=LReadZ;
  1130. }
  1131. //------------------------------------------------------------------------------
  1132. stock PlayerZone(playerid, zone[])
  1133. {
  1134. new ReadTmpZone[MAX_ZONE_NAME];
  1135. GetPlayer3DZone(playerid, ReadTmpZone, sizeof(ReadTmpZone)); for(new i = 0; i != sizeof(SanAndreasZones); i++){
  1136. if(strfind(ReadTmpZone, zone, true) != -1)
  1137. return 1;
  1138. }
  1139. return 0;
  1140. }
  1141. //------------------------------------------------------------------------------
  1142. stock GetPlayer2DZone(playerid, zone[], len)
  1143. {
  1144. new Float:x, Float:y, Float:z;
  1145. GetPlayerPos(playerid, x, y, z);
  1146. for(new i = 0; i != sizeof(SanAndreasZones); i++ ){
  1147. if(x >= SanAndreasZones[i][Zone_Area][0] && x <= SanAndreasZones[i][Zone_Area][3] && y >= SanAndreasZones[i][Zone_Area][1] && y <= SanAndreasZones[i][Zone_Area][4]){
  1148. return format(zone, len, SanAndreasZones[i][Zone_Name], 0);}
  1149. }
  1150. return 0;
  1151. }
  1152. //------------------------------------------------------------------------------
  1153. stock GetPlayer3DZone(playerid, zone[], len)
  1154. {
  1155. new Float:x, Float:y, Float:z;
  1156. GetPlayerPos(playerid, x, y, z);
  1157. for(new i = 0; i != sizeof(SanAndreasZones); i++ ){
  1158. if(x >= SanAndreasZones[i][Zone_Area][0] && x <= SanAndreasZones[i][Zone_Area][3] && y >= SanAndreasZones[i][Zone_Area][1] && y <= SanAndreasZones[i][Zone_Area][4] && z >= SanAndreasZones[i][Zone_Area][2] && z <= SanAndreasZones[i][Zone_Area][5]){return format(zone, len, SanAndreasZones[i][Zone_Name], 0);
  1159. }
  1160. }
  1161. return 0;
  1162. }
  1163. //------------------------------------------------------------------------------
  1164. public timer_fuel_lower()
  1165. {
  1166. for(new i=0;i<MAX_PLAYERS;i++) {
  1167. if (isrefuelling[i]) continue;
  1168. new vid = GetPlayerVehicleID(i);
  1169. if (GetPlayerVehicleSeat(i) == 0) {
  1170. fuel[vid] = fuel[vid] -1;
  1171. if (fuel[vid]<1)
  1172. {
  1173. fuel[vid] = 0;
  1174. RemovePlayerFromVehicle(i);
  1175. GameTextForPlayer(i,"~r~Snema ~w~Gorivo~r~!",5000,4); //show text
  1176. }
  1177. }
  1178. }
  1179. return 1;
  1180. }
  1181. public timer_km_lower()
  1182. {
  1183. for(new i=0;i<MAX_PLAYERS;i++) {
  1184. if (kmpominati[i]) continue;
  1185. new vid = GetPlayerVehicleID(i);
  1186. if (GetPlayerVehicleSeat(i) == 0) {
  1187. VoziloInfo[vid][Remontirano] = VoziloInfo[vid][Remontirano] +1;
  1188. ZacuvajVozilo(vid);
  1189. if (km[vid]>2000)
  1190. {
  1191. VoziloInfo[vid][Remontirano] = 2000;
  1192. RemovePlayerFromVehicle(i);
  1193. GameTextForPlayer(i,"~r~Voziloto ima premnugu pominati kilometri ve molime remontirajte go za da funkcunira!",5000,4); //show text
  1194. ZacuvajVozilo(vid);
  1195. }
  1196. }
  1197. }
  1198. return 1;
  1199. }
  1200. //------------------------------------------------------------------------------
  1201. public timer_refuel(playerid)
  1202. {
  1203. new vid = GetPlayerVehicleID(playerid);
  1204. fuel[vid] = fuel[vid] = 100;
  1205. SendClientMessage(playerid,0x009D00AA,"{37F906}INFO:{FFFFFF}Go napolnivte so gorivo voziloto za 300$");
  1206. isrefuelling[playerid] = 0;
  1207. TogglePlayerControllable(playerid,1);
  1208. }
  1209. public timer_km(playerid)
  1210. {
  1211. new vid = GetPlayerVehicleID(playerid);
  1212. VoziloInfo[vid][Remontirano] = VoziloInfo[vid][Remontirano] = 0;
  1213. GivePlayerMoney(playerid, -50000);
  1214. SendClientMessage(playerid,0x009D00AA,"{37F906}INFO:{FFFFFF}Go Remontiravte voziloto za 50.000$");
  1215. TogglePlayerControllable(playerid,1);
  1216. ZacuvajVozilo(GetPlayerVehicleID(playerid));
  1217. }
  1218. public timer_reg(playerid)
  1219. {
  1220. SendClientMessage(playerid,0x009D00AA,"{37F906}INFO:{FFFFFF}Go Registriravte voziloto za 100.000$.");
  1221. VoziloInfo[GetPlayerVehicleID(playerid)][Registrirano] = 1;
  1222. GivePlayerMoney(playerid, -100000);
  1223. TogglePlayerControllable(playerid,1);
  1224. ZacuvajVozilo(GetPlayerVehicleID(playerid));
  1225. }
  1226. //------------------------------------------------------------------------------
  1227. public IsAtGasStation(playerid)
  1228. {
  1229. if(IsPlayerConnected(playerid))
  1230. {
  1231. if(PlayerToPoint(6.0,playerid,1004.0070,-939.3102,42.1797) || PlayerToPoint(6.0,playerid,1944.3260,-1772.9254,13.3906))
  1232. {//LS
  1233. return 1;
  1234. }
  1235. else if(PlayerToPoint(6.0,playerid,-90.5515,-1169.4578,2.4079) || PlayerToPoint(6.0,playerid,-1609.7958,-2718.2048,48.5391))
  1236. {//LS
  1237. return 1;
  1238. }
  1239. else if(PlayerToPoint(6.0,playerid,-2029.4968,156.4366,28.9498) || PlayerToPoint(8.0,playerid,-2408.7590,976.0934,45.4175))
  1240. {//SF
  1241. return 1;
  1242. }
  1243. else if(PlayerToPoint(5.0,playerid,-2243.9629,-2560.6477,31.8841) || PlayerToPoint(8.0,playerid,-1676.6323,414.0262,6.9484))
  1244. {//Between LS and SF
  1245. return 1;
  1246. }
  1247. else if(PlayerToPoint(6.0,playerid,2202.2349,2474.3494,10.5258) || PlayerToPoint(10.0,playerid,614.9333,1689.7418,6.6968))
  1248. {//LV
  1249. return 1;
  1250. }
  1251. else if(PlayerToPoint(8.0,playerid,-1328.8250,2677.2173,49.7665) || PlayerToPoint(6.0,playerid,70.3882,1218.6783,18.5165))
  1252. {//LV
  1253. return 1;
  1254. }
  1255. else if(PlayerToPoint(8.0,playerid,2113.7390,920.1079,10.5255) || PlayerToPoint(6.0,playerid,-1327.7218,2678.8723,50.0625))
  1256. {//LV
  1257. return 1;
  1258. }
  1259. else if(PlayerToPoint(8.0,playerid,656.4265,-559.8610,16.5015) || PlayerToPoint(6.0,playerid,656.3797,-570.4138,16.5015))
  1260. {//Dillimore
  1261. return 1;
  1262. }
  1263. else if(PlayerToPoint(8.0,playerid,125.2434463501, -1935.9764404297, 2.6310691833496) || PlayerToPoint(8.0,playerid,133.91174316406, -1941.7890625, 2.6310691833496))
  1264. {//Pumpa za Helice
  1265. return 1;
  1266. }
  1267. else if(PlayerToPoint(8.0,playerid,1004.1514892578, -936.96557617188, 47.211837768555))
  1268. {//Pumpa za Helice
  1269. return 1;
  1270. }
  1271. }
  1272. return 0;
  1273. }
  1274. public IsAtRegRem(playerid)
  1275. {
  1276. if(IsPlayerConnected(playerid))
  1277. {
  1278. if(PlayerToPoint(6.0,playerid,561.5845,-1291.8468,17.2482))
  1279. {
  1280. return 1;
  1281. }
  1282. }
  1283. return 0;
  1284. }
  1285. public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
  1286. {
  1287. if(IsPlayerConnected(playerid))
  1288. {
  1289. new Float:oldposx, Float:oldposy, Float:oldposz;
  1290. new Float:tempposx, Float:tempposy, Float:tempposz;
  1291. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  1292. tempposx = (oldposx -x);
  1293. tempposy = (oldposy -y);
  1294. tempposz = (oldposz -z);
  1295. //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
  1296. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  1297. {
  1298. return 1;
  1299. }
  1300. }
  1301. return 0;
  1302. }
  1303. stock ZacuvajVozilo(vehicleid)
  1304. {
  1305. new kFile[128];
  1306. format(kFile, sizeof(kFile), VOZILO_FILE, vehicleid);
  1307. new INI:File = INI_Open(kFile);
  1308. INI_WriteInt(File,"Registrirano",VoziloInfo[vehicleid][Registrirano]);
  1309. INI_WriteInt(File,"Remontirano",VoziloInfo[vehicleid][Remontirano]);
  1310. INI_Close(File);
  1311. return 1;
  1312. }
  1313. public Ucitaj(vehicleid,name[], value[])
  1314. {
  1315. INI_Int("Registrirano",VoziloInfo[vehicleid][Registrirano]);
  1316. INI_Int("Remontirano",VoziloInfo[vehicleid][Remontirano]);
  1317. return 1;
  1318. }
  1319. public split(const strsrc[], strdest[][], delimiter)
  1320. {
  1321. new i, li;
  1322. new aNum;
  1323. new len;
  1324. while(i <= strlen(strsrc)){
  1325. if(strsrc[i]==delimiter || i==strlen(strsrc)){
  1326. len = strmid(strdest[aNum], strsrc, li, i, 128);
  1327. strdest[aNum][len] = 0;
  1328. li = i+1;
  1329. aNum++;
  1330. }
  1331. i++;
  1332. }
  1333. return 1;
  1334. }
  1335. public IsAnOwnableCar1(vehicleid)
  1336. {
  1337. if(vehicleid >= 1 && vehicleid <= 296) { return 1; }
  1338. return 0;
  1339. }
  1340. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1341. {
  1342. new vehmd = GetVehicleModel(GetPlayerVehicleID(playerid));
  1343. if(dialogid == 923)
  1344. {
  1345. if(response)
  1346. {
  1347. if(listitem == 0)
  1348. {
  1349. if(vehmd == 400 ||
  1350. vehmd == 401 ||
  1351. vehmd == 403 ||
  1352. vehmd == 404 ||
  1353. vehmd == 412 ||
  1354. vehmd == 413 ||
  1355. vehmd == 414 ||
  1356. vehmd == 416 ||
  1357. vehmd == 418 ||
  1358. vehmd == 419 ||
  1359. vehmd == 438 ||
  1360. vehmd == 440 ||
  1361. vehmd == 442 ||
  1362. vehmd == 466 ||
  1363. vehmd == 467 ||
  1364. vehmd == 474 ||
  1365. vehmd == 478 ||
  1366. vehmd == 565)
  1367. {
  1368. SPD(playerid, 926, DIALOG_STYLE_INPUT, "Gorivo","Vnesete ja kolicija koja sto sakate da turite gorivo","Vnesi","Izlez");
  1369. }
  1370. else
  1371. {
  1372. SendClientMessage(playerid,COLOR_RED,"Ova vozilo ne koristi Benzin BMB-95");
  1373. }
  1374. }
  1375. if(listitem == 1)
  1376. {
  1377. if(vehmd == 402 ||
  1378. vehmd == 405 ||
  1379. vehmd == 409 ||
  1380. vehmd == 410 ||
  1381. vehmd == 420 ||
  1382. vehmd == 421 ||
  1383. vehmd == 426 ||
  1384. vehmd == 429 ||
  1385. vehmd == 434 ||
  1386. vehmd == 436 ||
  1387. vehmd == 437 ||
  1388. vehmd == 439 ||
  1389. vehmd == 444 ||
  1390. vehmd == 445 ||
  1391. vehmd == 458 ||
  1392. vehmd == 461 ||
  1393. vehmd == 462 ||
  1394. vehmd == 463 ||
  1395. vehmd == 468 ||
  1396. vehmd == 470 ||
  1397. vehmd == 471 ||
  1398. vehmd == 475 ||
  1399. vehmd == 477 ||
  1400. vehmd == 479 ||
  1401. vehmd == 480 ||
  1402. vehmd == 483 ||
  1403. vehmd == 489 ||
  1404. vehmd == 490 ||
  1405. vehmd == 491 ||
  1406. vehmd == 492 ||
  1407. vehmd == 495 ||
  1408. vehmd == 504 ||
  1409. vehmd == 505 ||
  1410. vehmd == 514 ||
  1411. vehmd == 515 ||
  1412. vehmd == 516 ||
  1413. vehmd == 517 ||
  1414. vehmd == 518 ||
  1415. vehmd == 521 ||
  1416. vehmd == 523 ||
  1417. vehmd == 526 ||
  1418. vehmd == 527 ||
  1419. vehmd == 529 ||
  1420. vehmd == 533 ||
  1421. vehmd == 545 ||
  1422. vehmd == 555 ||
  1423. vehmd == 507)
  1424. {
  1425. SPD(playerid, 926, DIALOG_STYLE_INPUT, "Gorivo","Vnesete ja kolicija koja sto sakate da turite gorivo","Vnesi","Izlez");
  1426. }
  1427. else
  1428. {
  1429. SendClientMessage(playerid,COLOR_RED,"Ova vozilo ne koristi Benzin BMB-98");
  1430. }
  1431. }
  1432. if(listitem == 2)
  1433. {
  1434. if(vehmd == 411 ||
  1435. vehmd == 415 ||
  1436. vehmd == 451 ||
  1437. vehmd == 477 ||
  1438. vehmd == 494 ||
  1439. vehmd == 502 ||
  1440. vehmd == 503 ||
  1441. vehmd == 506 ||
  1442. vehmd == 522 ||
  1443. vehmd == 523 ||
  1444. vehmd == 535 ||
  1445. vehmd == 541 ||
  1446. vehmd == 559 ||
  1447. vehmd == 558 ||
  1448. vehmd == 560 ||
  1449. vehmd == 561 ||
  1450. vehmd == 562 ||
  1451. vehmd == 565)
  1452. {
  1453. SPD(playerid, 926, DIALOG_STYLE_INPUT, "Gorivo","Vnesete ja kolicija koja sto sakate da turite gorivo","Vnesi","Izlez");
  1454. }
  1455. else
  1456. {
  1457. SendClientMessage(playerid,COLOR_RED,"Ova vozilo ne koristi Dizel");
  1458. }
  1459. }
  1460. }
  1461. }
  1462. if(dialogid == AVTOKONTROL)
  1463. {
  1464. if(response)
  1465. {
  1466. if(listitem == 0)
  1467. {
  1468. SCM(playerid,AQUAGREEN, "{37F906}INFO:{FFFFFF}Pocekajte dodeka vaseto vozilo se Registrira.");
  1469. SetTimerEx("timer_reg",5000,false,"i",playerid);
  1470. TogglePlayerControllable(playerid, 0);
  1471. SetCameraBehindPlayer(playerid);
  1472. }
  1473. if(listitem == 1)
  1474. {
  1475. SCM(playerid,AQUAGREEN, "{37F906}INFO:{FFFFFF}Pocekajte dodeka vaseto vozilio se Remontira.");
  1476. SetTimerEx("timer_km",5000,false,"i",playerid);
  1477. SetCameraBehindPlayer(playerid);
  1478. TogglePlayerControllable(playerid, 0);
  1479. }
  1480. }
  1481. return 1;
  1482. }
  1483. if(dialogid == 926)
  1484. {
  1485. if(response)
  1486. {
  1487. if(sscanf(inputtext, "i", mammount)) return SPD(playerid,924,DIALOG_STYLE_INPUT,"Gorivo","Vnesete ja kolicija koja sto sakate da turite gorivo","Vnesi","Iskluci");return 1;}
  1488. if(fuel[vehmd] > 100){SCM(playerid, COLOR_RED, "Nemozete da napolnete povekje od 100 litri");return 1;}
  1489. fuel[vehmd] = fuel[vehmd]+mammount;
  1490. SCMF(playerid,0x009D00AA,"Voziloto e napolneto za %d",mammount*10);
  1491. isrefuelling[playerid] = 0;
  1492. TogglePlayerControllable(playerid,1);
  1493. GivePlayerMoney(playerid, mammount*10);
  1494. }
  1495. return 1;
  1496. }
  1497. stock SCMF(playerid,color,fstring[],{Float, _}:...)
  1498. {
  1499. new n=(numargs()-3)*4;
  1500. if(n)
  1501. {
  1502. new message[128],arg_start,arg_end;
  1503. #emit CONST.alt fstring
  1504. #emit LCTRL 5
  1505. #emit ADD
  1506. #emit STOR.S.pri arg_start
  1507. #emit LOAD.S.alt n
  1508. #emit ADD
  1509. #emit STOR.S.pri arg_end
  1510. do
  1511. {
  1512. #emit LOAD.I
  1513. #emit PUSH.pri
  1514. arg_end-=4;
  1515. #emit LOAD.S.pri arg_end
  1516. }
  1517. while(arg_end>arg_start);
  1518. #emit PUSH.S fstring
  1519. #emit PUSH.C 255
  1520. #emit PUSH.ADR message
  1521. n+=4*3;
  1522. #emit PUSH.S n
  1523. #emit SYSREQ.C format
  1524. n+=4;
  1525. #emit LCTRL 4
  1526. #emit LOAD.S.alt n
  1527. #emit ADD
  1528. #emit SCTRL 4
  1529. return SCM(playerid,color,message);
  1530. }
  1531. else return SCM(playerid,color,fstring);
  1532. }
  1533. stock sscanf(string[], format[], {Float,_}:...)
  1534. {
  1535. new
  1536. formatPos = 0,
  1537. stringPos = 0,
  1538. paramPos = 2,
  1539. paramCount = numargs();
  1540. while (paramPos < paramCount && string[stringPos])
  1541. {
  1542. switch (format[formatPos++])
  1543. {
  1544. case '\0':
  1545. {
  1546. return 0;
  1547. }
  1548. case 'i', 'd':
  1549. {
  1550. new
  1551. neg = 1,
  1552. num = 0,
  1553. ch = string[stringPos];
  1554. if (ch == '-')
  1555. {
  1556. neg = -1;
  1557. ch = string[++stringPos];
  1558. }
  1559. do
  1560. {
  1561. stringPos++;
  1562. if (ch >= '0' && ch <= '9')
  1563. {
  1564. num = (num * 10) + (ch - '0');
  1565. }
  1566. else
  1567. {
  1568. return 1;
  1569. }
  1570. }
  1571. while ((ch = string[stringPos]) && ch != ' ');
  1572. setarg(paramPos, 0, num * neg);
  1573. }
  1574. case 'h', 'x':
  1575. {
  1576. new
  1577. ch,
  1578. num = 0;
  1579. while ((ch = string[stringPos++]))
  1580. {
  1581. switch (ch)
  1582. {
  1583. case 'x', 'X':
  1584. {
  1585. num = 0;
  1586. continue;
  1587. }
  1588. case '0' .. '9':
  1589. {
  1590. num = (num << 4) | (ch - '0');
  1591. }
  1592. case 'a' .. 'f':
  1593. {
  1594. num = (num << 4) | (ch - ('a' - 10));
  1595. }
  1596. case 'A' .. 'F':
  1597. {
  1598. num = (num << 4) | (ch - ('A' - 10));
  1599. }
  1600. case ' ':
  1601. {
  1602. break;
  1603. }
  1604. default:
  1605. {
  1606. return 1;
  1607. }
  1608. }
  1609. }
  1610. setarg(paramPos, 0, num);
  1611. }
  1612. case 'c':
  1613. {
  1614. setarg(paramPos, 0, string[stringPos++]);
  1615. }
  1616. case 'f':
  1617. {
  1618. new tmp[25];
  1619. strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
  1620. setarg(paramPos, 0, _:floatstr(tmp));
  1621. }
  1622. case 's', 'z':
  1623. {
  1624. new
  1625. i = 0,
  1626. ch;
  1627. if (format[formatPos])
  1628. {
  1629. while ((ch = string[stringPos++]) && ch != ' ')
  1630. {
  1631. setarg(paramPos, i++, ch);
  1632. }
  1633. if (!i) return 1;
  1634. }
  1635. else
  1636. {
  1637. while ((ch = string[stringPos++]))
  1638. {
  1639. setarg(paramPos, i++, ch);
  1640. }
  1641. }
  1642. stringPos--;
  1643. setarg(paramPos, i, '\0');
  1644. }
  1645. default:
  1646. {
  1647. continue;
  1648. }
  1649. }
  1650. while (string[stringPos] && string[stringPos] != ' ')
  1651. {
  1652. stringPos++;
  1653. }
  1654. while (string[stringPos] == ' ')
  1655. {
  1656. stringPos++;
  1657. }
  1658. paramPos++;
  1659. }
  1660. while (format[formatPos] == 'z') formatPos++;
  1661. return format[formatPos];
  1662. }
  1663. //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment