HolyKing

Untitled

Oct 8th, 2011
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.61 KB | None | 0 0
  1. /*
  2. _________
  3. ____ \_ ___ \_____ _______ ______
  4. / \/ \ \/\__ \\_ __ \/ ___/
  5. | | \ \____/ __ \| | \/\___ \
  6. |___| /\______ (____ /__| /____ >
  7. \/ \/ \/ \/
  8.  
  9. nCars by Scott Davey (Norn) - NornWeb.com © 2010
  10.  
  11. Credits:
  12. Zeex - Zcmd - http://forum.sa-mp.com/index.php?action=profile;u=41439
  13. Y_Less - sscanf - http://forum.sa-mp.com/index.php?action=profile;u=36884
  14. DracoBlue - djson - http://forum.sa-mp.com/index.php?action=profile;u=467
  15. Norn - Script - http://forum.sa-mp.com/index.php?action=profile;u=42575
  16. */
  17. #include <a_samp>
  18. #include <djson>
  19. #include <ladmin>
  20. #define FILTERSCRIPT
  21. #include <zcmd>
  22. #define VEHICLES_FILE "nCars"
  23. #define COLOR_WHITE 0xFFFFFFFF
  24.  
  25. forward DeleteVehicle(vehicleid);
  26. forward AddVehicle(Float:carx,Float:cary,Float:carz,carmodel,carcolor1,carcolor2, Float:carangle, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13);
  27. forward LoadVehicle(vehicleid);
  28.  
  29. new VEHICLE_COUNT = 0;
  30. enum VehicleVars
  31. {
  32. vID,
  33. Float:vX,
  34. Float:vY,
  35. Float:vZ,
  36. vModel,
  37. Float:vAngle,
  38. vColor1,
  39. vColor2,
  40. vTune0,
  41. vTune1,
  42. vTune2,
  43. vTune3,
  44. vTune4,
  45. vTune5,
  46. vTune6,
  47. vTune7,
  48. vTune8,
  49. vTune9,
  50. vTune10,
  51. vTune11,
  52. vTune12,
  53. vTune13,
  54. }
  55. new Vehicle[MAX_VEHICLES][VehicleVars], VehicleFileID[MAX_VEHICLES];
  56.  
  57. public OnFilterScriptInit()
  58. {
  59. djson_GameModeInit();
  60. djAutocommit(false); // Disabling autocommit, so file system works faster.
  61. for(new v=0;v<MAX_VEHICLES;v++){VehicleFileID[v] = INVALID_VEHICLE_ID;}
  62. if(!fexist(VEHICLES_FILE))
  63. {
  64. print("ERROR: nCars file not found! creating nCars file...");
  65. fcreate(VEHICLES_FILE);
  66. }
  67. else
  68. {
  69. new string[128];
  70. for(new i=0;i<MAX_VEHICLES;i++)
  71. {
  72. format(string, sizeof(string),"Vehicle_%d",i);
  73. if(djIsSet(VEHICLES_FILE, string)) LoadVehicle(i);
  74. }
  75. printf("nCars loaded %d vehicles.", VEHICLE_COUNT);
  76. }
  77. return 1;
  78. }
  79.  
  80. public OnFilterScriptExit()
  81. {
  82. for(new i=0;i<MAX_VEHICLES;i++)
  83. {
  84. if(Vehicle[i][vID] != INVALID_VEHICLE_ID)
  85. {
  86. DestroyVehicle(Vehicle[i][vID]);
  87. }
  88. }
  89. djson_GameModeExit();
  90. return 1;
  91. }
  92.  
  93. public AddVehicle(Float:carx,Float:cary,Float:carz,carmodel,carcolor1,carcolor2, Float:carangle, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
  94. {
  95. new loopstring[512], otherstring[512], freeid = INVALID_VEHICLE_ID;
  96. new i = 0;
  97. while(i <= MAX_VEHICLES)
  98. {
  99. i++;
  100. format(loopstring, sizeof(loopstring),"Vehicle_%d",i);
  101. if(!djIsSet(VEHICLES_FILE, loopstring))
  102. {
  103. freeid = i;
  104. break;
  105. }
  106. }
  107. if(freeid != INVALID_VEHICLE_ID)
  108. {
  109. format(otherstring, sizeof(otherstring),"Vehicle_%d/vX",freeid); djSetFloat(VEHICLES_FILE,otherstring,carx,true);
  110. format(otherstring, sizeof(otherstring),"Vehicle_%d/vY",freeid); djSetFloat(VEHICLES_FILE,otherstring,cary,true);
  111. format(otherstring, sizeof(otherstring),"Vehicle_%d/vZ",freeid); djSetFloat(VEHICLES_FILE,otherstring,carz,true);
  112. format(otherstring, sizeof(otherstring),"Vehicle_%d/vModel",freeid); djSetInt(VEHICLES_FILE,otherstring,carmodel,true);
  113. format(otherstring, sizeof(otherstring),"Vehicle_%d/vColor1",freeid); djSetInt(VEHICLES_FILE,otherstring,carcolor1,true);
  114. format(otherstring, sizeof(otherstring),"Vehicle_%d/vColor2",freeid); djSetInt(VEHICLES_FILE,otherstring,carcolor2,true);
  115. format(otherstring, sizeof(otherstring),"Vehicle_%d/vAngle",freeid); djSetFloat(VEHICLES_FILE,otherstring,carangle,true);
  116. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune0",freeid); djSetInt(VEHICLES_FILE,otherstring,c0,true);
  117. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune1",freeid); djSetInt(VEHICLES_FILE,otherstring,c1,true);
  118. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune2",freeid); djSetInt(VEHICLES_FILE,otherstring,c2,true);
  119. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune3",freeid); djSetInt(VEHICLES_FILE,otherstring,c3,true);
  120. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune4",freeid); djSetInt(VEHICLES_FILE,otherstring,c4,true);
  121. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune5",freeid); djSetInt(VEHICLES_FILE,otherstring,c5,true);
  122. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune6",freeid); djSetInt(VEHICLES_FILE,otherstring,c6,true);
  123. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune7",freeid); djSetInt(VEHICLES_FILE,otherstring,c7,true);
  124. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune8",freeid); djSetInt(VEHICLES_FILE,otherstring,c8,true);
  125. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune9",freeid); djSetInt(VEHICLES_FILE,otherstring,c9,true);
  126. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune10",freeid); djSetInt(VEHICLES_FILE,otherstring,c10,true);
  127. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune11",freeid); djSetInt(VEHICLES_FILE,otherstring,c11,true);
  128. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune12",freeid); djSetInt(VEHICLES_FILE,otherstring,c12,true);
  129. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune13",freeid); djSetInt(VEHICLES_FILE,otherstring,c13,true);
  130. djCommit(VEHICLES_FILE);
  131. return LoadVehicle(freeid);
  132. }
  133. return INVALID_VEHICLE_ID;
  134. }
  135. public LoadVehicle(vehicleid)
  136. {
  137. new string[128], otherstring[512];
  138. format(string, sizeof(string),"Vehicle_%d",vehicleid);
  139. if(djIsSet(VEHICLES_FILE, string))
  140. {
  141. format(otherstring, sizeof(otherstring),"Vehicle_%d/vX",vehicleid); Vehicle[vehicleid][vX] = djFloat(VEHICLES_FILE, otherstring);
  142. format(otherstring, sizeof(otherstring),"Vehicle_%d/vY",vehicleid); Vehicle[vehicleid][vY] = djFloat(VEHICLES_FILE, otherstring);
  143. format(otherstring, sizeof(otherstring),"Vehicle_%d/vZ",vehicleid); Vehicle[vehicleid][vZ] = djFloat(VEHICLES_FILE, otherstring);
  144. format(otherstring, sizeof(otherstring),"Vehicle_%d/vModel",vehicleid); Vehicle[vehicleid][vModel] = djInt(VEHICLES_FILE, otherstring);
  145. format(otherstring, sizeof(otherstring),"Vehicle_%d/vColor1",vehicleid); Vehicle[vehicleid][vColor1] = djInt(VEHICLES_FILE, otherstring);
  146. format(otherstring, sizeof(otherstring),"Vehicle_%d/vColor2",vehicleid); Vehicle[vehicleid][vColor2] = djInt(VEHICLES_FILE, otherstring);
  147. format(otherstring, sizeof(otherstring),"Vehicle_%d/vAngle",vehicleid); Vehicle[vehicleid][vAngle] = djFloat(VEHICLES_FILE, otherstring);
  148. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune0",vehicleid); Vehicle[vehicleid][vTune0] = djInt(VEHICLES_FILE, otherstring);
  149. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune1",vehicleid); Vehicle[vehicleid][vTune1] = djInt(VEHICLES_FILE, otherstring);
  150. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune2",vehicleid); Vehicle[vehicleid][vTune2] = djInt(VEHICLES_FILE, otherstring);
  151. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune3",vehicleid); Vehicle[vehicleid][vTune3] = djInt(VEHICLES_FILE, otherstring);
  152. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune4",vehicleid); Vehicle[vehicleid][vTune4] = djInt(VEHICLES_FILE, otherstring);
  153. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune5",vehicleid); Vehicle[vehicleid][vTune5] = djInt(VEHICLES_FILE, otherstring);
  154. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune6",vehicleid); Vehicle[vehicleid][vTune6] = djInt(VEHICLES_FILE, otherstring);
  155. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune7",vehicleid); Vehicle[vehicleid][vTune7] = djInt(VEHICLES_FILE, otherstring);
  156. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune8",vehicleid); Vehicle[vehicleid][vTune8] = djInt(VEHICLES_FILE, otherstring);
  157. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune9",vehicleid); Vehicle[vehicleid][vTune9] = djInt(VEHICLES_FILE, otherstring);
  158. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune10",vehicleid); Vehicle[vehicleid][vTune10] = djInt(VEHICLES_FILE, otherstring);
  159. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune11",vehicleid); Vehicle[vehicleid][vTune11] = djInt(VEHICLES_FILE, otherstring);
  160. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune12",vehicleid); Vehicle[vehicleid][vTune12] = djInt(VEHICLES_FILE, otherstring);
  161. format(otherstring, sizeof(otherstring),"Vehicle_%d/vTune13",vehicleid); Vehicle[vehicleid][vTune13] = djInt(VEHICLES_FILE, otherstring);
  162. Vehicle[vehicleid][vID] = CreateVehicle(Vehicle[vehicleid][vModel], Vehicle[vehicleid][vX], Vehicle[vehicleid][vY], Vehicle[vehicleid][vZ], Vehicle[vehicleid][vAngle], Vehicle[vehicleid][vColor1], Vehicle[vehicleid][vColor2], -1);
  163. if(Vehicle[vehicleid][vTune0] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune0]);
  164. if(Vehicle[vehicleid][vTune1] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune1]);
  165. if(Vehicle[vehicleid][vTune2] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune2]);
  166. if(Vehicle[vehicleid][vTune3] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune3]);
  167. if(Vehicle[vehicleid][vTune4] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune4]);
  168. if(Vehicle[vehicleid][vTune5] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune5]);
  169. if(Vehicle[vehicleid][vTune6] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune6]);
  170. if(Vehicle[vehicleid][vTune7] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune7]);
  171. if(Vehicle[vehicleid][vTune8] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune8]);
  172. if(Vehicle[vehicleid][vTune9] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune9]);
  173. if(Vehicle[vehicleid][vTune10] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune10]);
  174. if(Vehicle[vehicleid][vTune11] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune11]);
  175. if(Vehicle[vehicleid][vTune12] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune12]);
  176. if(Vehicle[vehicleid][vTune13] > 0) AddVehicleComponent(vehicleid, Vehicle[vehicleid][vTune13]);
  177. VehicleFileID[Vehicle[vehicleid][vID]] = vehicleid;
  178. VEHICLE_COUNT++;
  179. return Vehicle[vehicleid][vID];
  180. }
  181. return INVALID_VEHICLE_ID;
  182. }
  183. public DeleteVehicle(vehicleid)
  184. {
  185. new string[128];
  186. format(string, sizeof(string),"Vehicle_%d",vehicleid);
  187. if(djIsSet(VEHICLES_FILE, string))
  188. {
  189. djUnset(VEHICLES_FILE, string);
  190. djCommit(VEHICLES_FILE);
  191. DestroyVehicle(Vehicle[vehicleid][vID]);
  192. Vehicle[vehicleid][vX] = 0;
  193. Vehicle[vehicleid][vY] = 0;
  194. Vehicle[vehicleid][vZ] = 0;
  195. Vehicle[vehicleid][vModel] = 0;
  196. Vehicle[vehicleid][vColor1] = 0;
  197. Vehicle[vehicleid][vColor2] = 0;
  198. Vehicle[vehicleid][vAngle] = 0;
  199. Vehicle[vehicleid][vTune0] = 0;
  200. Vehicle[vehicleid][vTune1] = 0;
  201. Vehicle[vehicleid][vTune2] = 0;
  202. Vehicle[vehicleid][vTune3] = 0;
  203. Vehicle[vehicleid][vTune4] = 0;
  204. Vehicle[vehicleid][vTune5] = 0;
  205. Vehicle[vehicleid][vTune6] = 0;
  206. Vehicle[vehicleid][vTune7] = 0;
  207. Vehicle[vehicleid][vTune8] = 0;
  208. Vehicle[vehicleid][vTune9] = 0;
  209. Vehicle[vehicleid][vTune10] = 0;
  210. Vehicle[vehicleid][vTune11] = 0;
  211. Vehicle[vehicleid][vTune12] = 0;
  212. Vehicle[vehicleid][vTune13] = 0;
  213. Vehicle[vehicleid][vID] = INVALID_VEHICLE_ID;
  214. VehicleFileID[Vehicle[vehicleid][vID]] = INVALID_VEHICLE_ID;
  215. VEHICLE_COUNT--;
  216. return true;
  217. }
  218. return false;
  219. }
  220. COMMAND:setcar(playerid, params[])
  221. {
  222. new
  223. cmd[128], string[128];
  224. if (IsPlayerLuxAdminLevel(playerid,3))
  225. {
  226. if (sscanf(params, "s ", cmd) != 0)
  227. {
  228. return SendClientMessage(playerid, COLOR_WHITE, "Használat: /SetCar <create | delete | park | count>");
  229. }
  230. if (strcmp("create", cmd, true, 6) == 0)
  231. {
  232. new model, color1, color2;
  233. if (!sscanf(params, "sddd", cmd, model, color1, color2))
  234. {
  235. if(IsValidVehicleModel(model))
  236. {
  237. new Float:playerx,Float:playery,Float:playerz, Float:playerangle,c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13;
  238. GetPlayerPos(playerid, playerx, playery, playerz);
  239. GetPlayerFacingAngle(playerid, playerangle);
  240. c0 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 0);
  241. c1 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 1);
  242. c2 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 2);
  243. c3 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 3);
  244. c4 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 4);
  245. c5 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 5);
  246. c6 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 6);
  247. c7 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 7);
  248. c8 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 8);
  249. c9 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 9);
  250. c10 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 10);
  251. c11 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 11);
  252. c12 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 12);
  253. c13 = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 13);
  254.  
  255. new vehid = AddVehicle(playerx,playery,playerz,model,color1,color2, playerangle, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13);
  256. format(string,sizeof(string),"Jármű ID %d sikeresen létrehozva! (Fájl ID: %d)", vehid, VehicleFileID[vehid]);
  257. SendClientMessage(playerid, COLOR_WHITE, string);
  258. PutPlayerInVehicle(playerid, vehid, 0);
  259. return 1;
  260. }
  261. else return SendClientMessage(playerid, 0xFFFFFFFF, "HIBA: Ismeretlen model.");
  262. }
  263. else return SendClientMessage(playerid, COLOR_WHITE, "Használat: /SetCar Create [Model ID] [Szín1] [Szín2]");
  264. }
  265. else if (strcmp("delete", cmd, true, 6) == 0)
  266. {
  267. if(!IsPlayerInAnyVehicle(playerid))
  268. {
  269. new vehicleid;
  270. if (!sscanf(params, "sd", cmd, vehicleid))
  271. {
  272. format(string, sizeof(string),"Vehicle_%d",VehicleFileID[vehicleid]);
  273. if(djIsSet(VEHICLES_FILE, string))
  274. {
  275. format(string,sizeof(string),"Jármű ID %d sikeresen törölve! (Fájl ID: %d)", vehicleid, VehicleFileID[vehicleid]);
  276. SendClientMessage(playerid, COLOR_WHITE, string);
  277. DeleteVehicle(VehicleFileID[vehicleid]);
  278. return 1;
  279. }
  280. else
  281. {
  282. format(string,sizeof(string),"A Jármű ID %d nem létezik!", vehicleid);
  283. SendClientMessage(playerid, COLOR_WHITE, string);
  284. }
  285. }
  286. else return SendClientMessage(playerid, 0xFFFFFFFF, "Használat: /SetCar Delete [Jármű ID]");
  287. }
  288. else
  289. {
  290. format(string, sizeof(string),"Vehicle_%d",VehicleFileID[GetPlayerVehicleID(playerid)]);
  291. if(djIsSet(VEHICLES_FILE, string))
  292. {
  293. format(string,sizeof(string),"Jármű ID %d sikeresen törölve! (Fájl ID: %d)", GetPlayerVehicleID(playerid), VehicleFileID[GetPlayerVehicleID(playerid)]);
  294. SendClientMessage(playerid, COLOR_WHITE, string);
  295. DeleteVehicle(VehicleFileID[GetPlayerVehicleID(playerid)]);
  296. return 1;
  297. }
  298. else
  299. {
  300. format(string,sizeof(string),"Ismeretlen hiba a jármű törlése közben: Jármű ID %d || Lépj kapcsolatba a szerver tulajdonossal!", GetPlayerVehicleID(playerid));
  301. SendClientMessage(playerid, COLOR_WHITE, string);
  302. }
  303. }
  304. }
  305. else if (strcmp("park", cmd, true, 4) == 0)
  306. {
  307. if(IsPlayerInAnyVehicle(playerid))
  308. {
  309. format(string, sizeof(string),"Vehicle_%d",VehicleFileID[GetPlayerVehicleID(playerid)]);
  310. if(djIsSet(VEHICLES_FILE, string))
  311. {
  312. GetVehiclePos(GetPlayerVehicleID(playerid),
  313. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vX],
  314. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vY],
  315. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vZ]);
  316. GetVehicleZAngle(GetPlayerVehicleID(playerid), Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vAngle]);
  317. DestroyVehicle(GetPlayerVehicleID(playerid));
  318. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vID] = CreateVehicle(Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vModel],
  319. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vX],
  320. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vY],
  321. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vZ],
  322. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vAngle],
  323. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vColor1],
  324. Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vColor2], -1);
  325. Vehicle[GetPlayerVehicleID(playerid)][vTune0] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 0);
  326. Vehicle[GetPlayerVehicleID(playerid)][vTune1] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 1);
  327. Vehicle[GetPlayerVehicleID(playerid)][vTune2] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 2);
  328. Vehicle[GetPlayerVehicleID(playerid)][vTune3] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 3);
  329. Vehicle[GetPlayerVehicleID(playerid)][vTune4] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 4);
  330. Vehicle[GetPlayerVehicleID(playerid)][vTune5] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 5);
  331. Vehicle[GetPlayerVehicleID(playerid)][vTune6] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 6);
  332. Vehicle[GetPlayerVehicleID(playerid)][vTune7] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 7);
  333. Vehicle[GetPlayerVehicleID(playerid)][vTune8] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 8);
  334. Vehicle[GetPlayerVehicleID(playerid)][vTune9] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 9);
  335. Vehicle[GetPlayerVehicleID(playerid)][vTune10] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 10);
  336. Vehicle[GetPlayerVehicleID(playerid)][vTune11] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 11);
  337. Vehicle[GetPlayerVehicleID(playerid)][vTune12] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 12);
  338. Vehicle[GetPlayerVehicleID(playerid)][vTune13] = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), 13);
  339.  
  340. format(string, sizeof(string),"Vehicle_%d/vX",VehicleFileID[GetPlayerVehicleID(playerid)]);
  341. djSetFloat(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vX],true);
  342. format(string, sizeof(string),"Vehicle_%d/vY",VehicleFileID[GetPlayerVehicleID(playerid)]);
  343. djSetFloat(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vY],true);
  344. format(string, sizeof(string),"Vehicle_%d/vZ",VehicleFileID[GetPlayerVehicleID(playerid)]);
  345. djSetFloat(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vZ],true);
  346. format(string, sizeof(string),"Vehicle_%d/vAngle",VehicleFileID[GetPlayerVehicleID(playerid)]);
  347. djSetFloat(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vAngle],true);
  348. format(string, sizeof(string),"Vehicle_%d/vTune0",VehicleFileID[GetPlayerVehicleID(playerid)]);
  349. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune0],true);
  350. format(string, sizeof(string),"Vehicle_%d/vTune1",VehicleFileID[GetPlayerVehicleID(playerid)]);
  351. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune1],true);
  352. format(string, sizeof(string),"Vehicle_%d/vTune2",VehicleFileID[GetPlayerVehicleID(playerid)]);
  353. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune2],true);
  354. format(string, sizeof(string),"Vehicle_%d/vTune3",VehicleFileID[GetPlayerVehicleID(playerid)]);
  355. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune3],true);
  356. format(string, sizeof(string),"Vehicle_%d/vTune4",VehicleFileID[GetPlayerVehicleID(playerid)]);
  357. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune4],true);
  358. format(string, sizeof(string),"Vehicle_%d/vTune5",VehicleFileID[GetPlayerVehicleID(playerid)]);
  359. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune5],true);
  360. format(string, sizeof(string),"Vehicle_%d/vTune6",VehicleFileID[GetPlayerVehicleID(playerid)]);
  361. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune6],true);
  362. format(string, sizeof(string),"Vehicle_%d/vTune7",VehicleFileID[GetPlayerVehicleID(playerid)]);
  363. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune7],true);
  364. format(string, sizeof(string),"Vehicle_%d/vTune8",VehicleFileID[GetPlayerVehicleID(playerid)]);
  365. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune8],true);
  366. format(string, sizeof(string),"Vehicle_%d/vTune9",VehicleFileID[GetPlayerVehicleID(playerid)]);
  367. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune9],true);
  368. format(string, sizeof(string),"Vehicle_%d/vTune10",VehicleFileID[GetPlayerVehicleID(playerid)]);
  369. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune10],true);
  370. format(string, sizeof(string),"Vehicle_%d/vTune11",VehicleFileID[GetPlayerVehicleID(playerid)]);
  371. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune11],true);
  372. format(string, sizeof(string),"Vehicle_%d/vTune12",VehicleFileID[GetPlayerVehicleID(playerid)]);
  373. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune12],true);
  374. format(string, sizeof(string),"Vehicle_%d/vTune13",VehicleFileID[GetPlayerVehicleID(playerid)]);
  375. djSetInt(VEHICLES_FILE,string,Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vTune13],true);
  376.  
  377. djCommit(VEHICLES_FILE);
  378. format(string,sizeof(string),"Jármű ID %d sikeresen leparkolva, (Fájl ID: %d).",
  379. GetPlayerVehicleID(playerid),
  380. VehicleFileID[GetPlayerVehicleID(playerid)]);
  381. SendClientMessage(playerid, COLOR_WHITE, string);
  382. PutPlayerInVehicle(playerid, Vehicle[VehicleFileID[GetPlayerVehicleID(playerid)]][vID], 0);
  383. return 1;
  384. }
  385. else
  386. {
  387. format(string,sizeof(string),"Ismeretlen hiba a jármű parkolása közben: Jármű ID %d || Lépj kapcsolatba a szerver tulajdonossal!", GetPlayerVehicleID(playerid));
  388. SendClientMessage(playerid, COLOR_WHITE, string);
  389. }
  390. }
  391. else return SendClientMessage(playerid, COLOR_WHITE, "ERROR: You are not in a vehicle!");
  392. }
  393. else if (strcmp("count", cmd, true, 5) == 0)
  394. {
  395. format(string,sizeof(string),"[nCars]: %d jármű van létrehozva.", VEHICLE_COUNT);
  396. SendClientMessage(playerid, COLOR_WHITE, string);
  397. return 1;
  398. }
  399. else return SendClientMessage(playerid, COLOR_WHITE, "HIBA: Érvénytelen paraméter.");
  400. }
  401. else return SendClientMessage(playerid, COLOR_WHITE, "HIBA: Nem vagy legalább 3as szintű admin!");
  402. return 1;
  403. }
  404. stock fcreate(filename[]) {
  405. if (fexist(filename)) return false;
  406. new File:fhnd;
  407. fhnd=fopen(filename,io_write);
  408. if (fhnd) {
  409. fclose(fhnd);
  410. return true;
  411. }
  412. return false;
  413. }
  414. stock sscanf(string[], format[], {Float,_}:...)
  415. {
  416. #if defined isnull
  417. if (isnull(string))
  418. #else
  419. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  420. #endif
  421. {
  422. return format[0];
  423. }
  424. #pragma tabsize 4
  425. new
  426. formatPos = 0,
  427. stringPos = 0,
  428. paramPos = 2,
  429. paramCount = numargs(),
  430. delim = ' ';
  431. while (string[stringPos] && string[stringPos] <= ' ')
  432. {
  433. stringPos++;
  434. }
  435. while (paramPos < paramCount && string[stringPos])
  436. {
  437. switch (format[formatPos++])
  438. {
  439. case '\0':
  440. {
  441. return 0;
  442. }
  443. case 'i', 'd':
  444. {
  445. new
  446. neg = 1,
  447. num = 0,
  448. ch = string[stringPos];
  449. if (ch == '-')
  450. {
  451. neg = -1;
  452. ch = string[++stringPos];
  453. }
  454. do
  455. {
  456. stringPos++;
  457. if ('0' <= ch <= '9')
  458. {
  459. num = (num * 10) + (ch - '0');
  460. }
  461. else
  462. {
  463. return -1;
  464. }
  465. }
  466. while ((ch = string[stringPos]) > ' ' && ch != delim);
  467. setarg(paramPos, 0, num * neg);
  468. }
  469. case 'h', 'x':
  470. {
  471. new
  472. num = 0,
  473. ch = string[stringPos];
  474. do
  475. {
  476. stringPos++;
  477. switch (ch)
  478. {
  479. case 'x', 'X':
  480. {
  481. num = 0;
  482. continue;
  483. }
  484. case '0' .. '9':
  485. {
  486. num = (num << 4) | (ch - '0');
  487. }
  488. case 'a' .. 'f':
  489. {
  490. num = (num << 4) | (ch - ('a' - 10));
  491. }
  492. case 'A' .. 'F':
  493. {
  494. num = (num << 4) | (ch - ('A' - 10));
  495. }
  496. default:
  497. {
  498. return -1;
  499. }
  500. }
  501. }
  502. while ((ch = string[stringPos]) > ' ' && ch != delim);
  503. setarg(paramPos, 0, num);
  504. }
  505. case 'c':
  506. {
  507. setarg(paramPos, 0, string[stringPos++]);
  508. }
  509. case 'f':
  510. {
  511.  
  512. new changestr[16], changepos = 0, strpos = stringPos;
  513. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  514. {
  515. changestr[changepos++] = string[strpos++];
  516. }
  517. changestr[changepos] = '\0';
  518. setarg(paramPos,0,_:floatstr(changestr));
  519. }
  520. case 'p':
  521. {
  522. delim = format[formatPos++];
  523. continue;
  524. }
  525. case '\'':
  526. {
  527. new
  528. end = formatPos - 1,
  529. ch;
  530. while ((ch = format[++end]) && ch != '\'') {}
  531. if (!ch)
  532. {
  533. return -1;
  534. }
  535. format[end] = '\0';
  536. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  537. {
  538. if (format[end + 1])
  539. {
  540. return -1;
  541. }
  542. return 0;
  543. }
  544. format[end] = '\'';
  545. stringPos = ch + (end - formatPos);
  546. formatPos = end + 1;
  547. }
  548. case 'u':
  549. {
  550. new
  551. end = stringPos - 1,
  552. id = 0,
  553. bool:num = true,
  554. ch;
  555. while ((ch = string[++end]) && ch != delim)
  556. {
  557. if (num)
  558. {
  559. if ('0' <= ch <= '9')
  560. {
  561. id = (id * 10) + (ch - '0');
  562. }
  563. else
  564. {
  565. num = false;
  566. }
  567. }
  568. }
  569. if (num && IsPlayerConnected(id))
  570. {
  571. setarg(paramPos, 0, id);
  572. }
  573. else
  574. {
  575. #if !defined foreach
  576. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  577. #define __SSCANF_FOREACH__
  578. #endif
  579. string[end] = '\0';
  580. num = false;
  581. new
  582. name[MAX_PLAYER_NAME];
  583. id = end - stringPos;
  584. foreach (Player, playerid)
  585. {
  586. GetPlayerName(playerid, name, sizeof (name));
  587. if (!strcmp(name, string[stringPos], true, id))
  588. {
  589. setarg(paramPos, 0, playerid);
  590. num = true;
  591. break;
  592. }
  593. }
  594. if (!num)
  595. {
  596. setarg(paramPos, 0, INVALID_PLAYER_ID);
  597. }
  598. string[end] = ch;
  599. #if defined __SSCANF_FOREACH__
  600. #undef foreach
  601. #undef __SSCANF_FOREACH__
  602. #endif
  603. }
  604. stringPos = end;
  605. }
  606. case 's', 'z':
  607. {
  608. new
  609. i = 0,
  610. ch;
  611. if (format[formatPos])
  612. {
  613. while ((ch = string[stringPos++]) && ch != delim)
  614. {
  615. setarg(paramPos, i++, ch);
  616. }
  617. if (!i)
  618. {
  619. return -1;
  620. }
  621. }
  622. else
  623. {
  624. while ((ch = string[stringPos++]))
  625. {
  626. setarg(paramPos, i++, ch);
  627. }
  628. }
  629. stringPos--;
  630. setarg(paramPos, i, '\0');
  631. }
  632. default:
  633. {
  634. continue;
  635. }
  636. }
  637. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  638. {
  639. stringPos++;
  640. }
  641. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  642. {
  643. stringPos++;
  644. }
  645. paramPos++;
  646. }
  647. do
  648. {
  649. if ((delim = format[formatPos++]) > ' ')
  650. {
  651. if (delim == '\'')
  652. {
  653. while ((delim = format[formatPos++]) && delim != '\'') {}
  654. }
  655. else if (delim != 'z')
  656. {
  657. return delim;
  658. }
  659. }
  660. }
  661. while (delim > ' ');
  662. return 0;
  663. }
  664. IsValidVehicleModel(model)
  665. {
  666. if(model >= 400 && model <= 611)
  667. {
  668. return true;
  669. }
  670. return false;
  671. }
  672.  
Advertisement
Add Comment
Please, Sign In to add comment