Guest User

Untitled

a guest
Dec 21st, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 101.11 KB | None | 0 0
  1. //MacedonianWorld OwnerShip By Pavlesky & JakovoskY
  2.  
  3. #include <a_samp>
  4. #include <foreach>
  5. #include <zcmd>
  6.  
  7. #define FILTERSCRIPT
  8.  
  9. #define PURPLE 0xC2A2DAFF
  10. #define BLUE 0x0000FFFF
  11. #define RED 0xFF0000FF
  12. #define YELLOW 0xFFFF00FF
  13. #define GREEN 0x33AA33FF
  14. #define WHITE 0xFFFFFFFF
  15. #define LIGHTBLUE 0x33CCFFFF
  16. #define LIGHTRED 0xFF6347FF
  17. #define DARKRED 0xAA3333FF
  18. #define COL_INFO "{37F906}"
  19. #define COL_GRESKA "{FF0000}"
  20. #define COL_KORISTI "{F3FF02}"
  21. #define BIJELA "{FFFFFF}"
  22. #define GREY 0xAFAFAFFF
  23. #define ORANGE 0xFFA100FF
  24. #define YELLOW2 0xF5DEB3FF
  25. #define MAX_PLAYER_CARS 4
  26. #define LOCK_PRICE 20000
  27. #pragma dynamic 719196 // FUCKING STRINGS
  28.  
  29. enum vDealerData
  30. {
  31. vModel,
  32. Float:vX,
  33. Float:vY,
  34. Float:vZ,
  35. Float:vRot,
  36. vForSale,
  37. vPrice,
  38. Text3D:vLabel,
  39. vID,
  40. vSQL_ID
  41. };
  42.  
  43. enum pDealerData
  44. {
  45. pCarModel,
  46. Float:pCarX,
  47. Float:pCarY,
  48. Float:pCarZ,
  49. Float:pCarRot,
  50. pCarColor1,
  51. pCarColor2,
  52. pCarPaintjob,
  53. pCarMod1,
  54. pCarMod2,
  55. pCarMod3,
  56. pCarMod4,
  57. pCarMod5,
  58. pCarMod6,
  59. pCarMod7,
  60. pCarMod8,
  61. pCarMod9,
  62. pCarMod10,
  63. pCarMod11,
  64. pCarMod12,
  65. pCarMod13,
  66. pCarMod14,
  67. pCarMod15,
  68. pCarMod16,
  69. pCarMod17,
  70. pCarHasLock,
  71. pCarLocked,
  72. pCarTrunkCash,
  73. pCarTrunkGun1,
  74. pCarTrunkGun2,
  75. pCarTrunkGun3,
  76. pCarTrunkGun4,
  77. pCarTrunkAmmo1,
  78. pCarTrunkAmmo2,
  79. pCarTrunkAmmo3,
  80. pCarTrunkAmmo4,
  81. pCarSpawned,
  82. pCarOwned,
  83. pCarID
  84. };
  85. new PlayerVehicles[MAX_PLAYERS][MAX_PLAYER_CARS + 1][pDealerData];
  86. new DealershipVehicles[MAX_VEHICLES][vDealerData];
  87. new VehicleLocked[MAX_VEHICLES];
  88. new VehicleListitem[MAX_PLAYERS][MAX_PLAYER_CARS + 1];
  89. new DB:VehicleDatabase[MAX_PLAYERS];
  90. new DB:DealerVehicleDatabase;
  91. new dealershipCars;
  92.  
  93. new spoiler[20][0] = {1000, 1001, 1002, 1003, 1014, 1015, 1016, 1023, 1058, 1060, 1049, 1050, 1138, 1139, 1146, 1147, 1158, 1162, 1163, 1164};
  94. new nitro[3][0] = {1008, 1009, 1010};
  95. new front_bumper[23][0] = {1117, 1152, 1153, 1155, 1157, 1160, 1165, 1167, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1179, 1181, 1182, 1185, 1188, 1189, 1192, 1193};
  96. new rear_bumper[22][0] = {1140, 1141, 1148, 1149, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1168, 1176, 1177, 1178, 1180, 1183, 1184, 1186, 1187, 1190, 1191};
  97. new exhaust[28][0] = {1018, 1019, 1020, 1021, 1022, 1028, 1029, 1037, 1043, 1044, 1045, 1046, 1059, 1064, 1065, 1066, 1089, 1092, 1104, 1105, 1113, 1114, 1126, 1127, 1129, 1132, 1135, 1136};
  98. new bventr[2][0] = {1042, 1044};
  99. new bventl[2][0] = {1043, 1045};
  100. new bscoop[4][0] = {1004, 1005, 1011, 1012};
  101. new rscoop[13][0] = {1006, 1032, 1033, 1035, 1038, 1053, 1054, 1055, 1061, 1067, 1068, 1088, 1091};
  102. new left_sideskirt[21][0] = {1007, 1026, 1031, 1036, 1039, 1042, 1047, 1048, 1056, 1057, 1069, 1070, 1090, 1093, 1106, 1108, 1118, 1119, 1133, 1122, 1134};
  103. new right_sideskirt[21][0] = {1017, 1027, 1030, 1040, 1041, 1051, 1052, 1062, 1063, 1071, 1072, 1094, 1095, 1099, 1101, 1102, 1107, 1120, 1121, 1124, 1137};
  104. new hydraulics[1][0] = {1087};
  105. new bass[1][0] = {1086};
  106. new rbbars[2][0] = {1109, 1110};
  107. new fbbars[2][0] = {1115, 1116};
  108. new wheels[17][0] = {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098};
  109. new lights[2][0] = {1013, 1024};
  110.  
  111. stock PlayerName(playerid, bool:show_underscore = true)
  112. {
  113. new pName[24];
  114. GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  115. if (show_underscore == false)
  116. {
  117. for (new i = 0; i < strlen(pName); i += 1)
  118. {
  119. if (pName[i] == '_') pName[i] = ' ';
  120. }
  121. }
  122. return pName;
  123. }
  124.  
  125. stock sscanf(string[], format[], {Float,_}:...)
  126. {
  127. #if defined isnull
  128. if (isnull(string))
  129. #else
  130. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  131. #endif
  132. {
  133. return format[0];
  134. }
  135. #pragma tabsize 4
  136. new
  137. formatPos = 0,
  138. stringPos = 0,
  139. paramPos = 2,
  140. paramCount = numargs(),
  141. delim = ' ';
  142. while (string[stringPos] && string[stringPos] <= ' ')
  143. {
  144. stringPos++;
  145. }
  146. while (paramPos < paramCount && string[stringPos])
  147. {
  148. switch (format[formatPos++])
  149. {
  150. case '\0':
  151. {
  152. return 0;
  153. }
  154. case 'i', 'd':
  155. {
  156. new
  157. neg = 1,
  158. num = 0,
  159. ch = string[stringPos];
  160. if (ch == '-')
  161. {
  162. neg = -1;
  163. ch = string[++stringPos];
  164. }
  165. do
  166. {
  167. stringPos++;
  168. if ('0' <= ch <= '9')
  169. {
  170. num = (num * 10) + (ch - '0');
  171. }
  172. else
  173. {
  174. return -1;
  175. }
  176. }
  177. while ((ch = string[stringPos]) > ' ' && ch != delim);
  178. setarg(paramPos, 0, num * neg);
  179. }
  180. case 'h', 'x':
  181. {
  182. new
  183. num = 0,
  184. ch = string[stringPos];
  185. do
  186. {
  187. stringPos++;
  188. switch (ch)
  189. {
  190. case 'x', 'X':
  191. {
  192. num = 0;
  193. continue;
  194. }
  195. case '0' .. '9':
  196. {
  197. num = (num << 4) | (ch - '0');
  198. }
  199. case 'a' .. 'f':
  200. {
  201. num = (num << 4) | (ch - ('a' - 10));
  202. }
  203. case 'A' .. 'F':
  204. {
  205. num = (num << 4) | (ch - ('A' - 10));
  206. }
  207. default:
  208. {
  209. return -1;
  210. }
  211. }
  212. }
  213. while ((ch = string[stringPos]) > ' ' && ch != delim);
  214. setarg(paramPos, 0, num);
  215. }
  216. case 'c':
  217. {
  218. setarg(paramPos, 0, string[stringPos++]);
  219. }
  220. case 'f':
  221. {
  222.  
  223. new changestr[16], changepos = 0, strpos = stringPos;
  224. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  225. {
  226. changestr[changepos++] = string[strpos++];
  227. }
  228. changestr[changepos] = '\0';
  229. setarg(paramPos,0,_:floatstr(changestr));
  230. }
  231. case 'p':
  232. {
  233. delim = format[formatPos++];
  234. continue;
  235. }
  236. case '\'':
  237. {
  238. new
  239. end = formatPos - 1,
  240. ch;
  241. while ((ch = format[++end]) && ch != '\'') {}
  242. if (!ch)
  243. {
  244. return -1;
  245. }
  246. format[end] = '\0';
  247. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  248. {
  249. if (format[end + 1])
  250. {
  251. return -1;
  252. }
  253. return 0;
  254. }
  255. format[end] = '\'';
  256. stringPos = ch + (end - formatPos);
  257. formatPos = end + 1;
  258. }
  259. case 'u':
  260. {
  261. new
  262. end = stringPos - 1,
  263. id = 0,
  264. bool:num = true,
  265. ch;
  266. while ((ch = string[++end]) && ch != delim)
  267. {
  268. if (num)
  269. {
  270. if ('0' <= ch <= '9')
  271. {
  272. id = (id * 10) + (ch - '0');
  273. }
  274. else
  275. {
  276. num = false;
  277. }
  278. }
  279. }
  280. if (num && IsPlayerConnected(id))
  281. {
  282. setarg(paramPos, 0, id);
  283. }
  284. else
  285. {
  286. #if !defined foreach
  287. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  288. #define __SSCANF_FOREACH__
  289. #endif
  290. string[end] = '\0';
  291. num = false;
  292. new
  293. name[MAX_PLAYER_NAME];
  294. id = end - stringPos;
  295. foreach (Player, playerid)
  296. {
  297. GetPlayerName(playerid, name, sizeof (name));
  298. if (!strcmp(name, string[stringPos], true, id))
  299. {
  300. setarg(paramPos, 0, playerid);
  301. num = true;
  302. break;
  303. }
  304. }
  305. if (!num)
  306. {
  307. setarg(paramPos, 0, INVALID_PLAYER_ID);
  308. }
  309. string[end] = ch;
  310. #if defined __SSCANF_FOREACH__
  311. #undef foreach
  312. #undef __SSCANF_FOREACH__
  313. #endif
  314. }
  315. stringPos = end;
  316. }
  317. case 's', 'z':
  318. {
  319. new
  320. i = 0,
  321. ch;
  322. if (format[formatPos])
  323. {
  324. while ((ch = string[stringPos++]) && ch != delim)
  325. {
  326. setarg(paramPos, i++, ch);
  327. }
  328. if (!i)
  329. {
  330. return -1;
  331. }
  332. }
  333. else
  334. {
  335. while ((ch = string[stringPos++]))
  336. {
  337. setarg(paramPos, i++, ch);
  338. }
  339. }
  340. stringPos--;
  341. setarg(paramPos, i, '\0');
  342. }
  343. default:
  344. {
  345. continue;
  346. }
  347. }
  348. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  349. {
  350. stringPos++;
  351. }
  352. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  353. {
  354. stringPos++;
  355. }
  356. paramPos++;
  357. }
  358. do
  359. {
  360. if ((delim = format[formatPos++]) > ' ')
  361. {
  362. if (delim == '\'')
  363. {
  364. while ((delim = format[formatPos++]) && delim != '\'') {}
  365. }
  366. else if (delim != 'z')
  367. {
  368. return delim;
  369. }
  370. }
  371. }
  372. while (delim > ' ');
  373. return 0;
  374. }
  375.  
  376. stock DB_Escape(text[])
  377. {
  378. new
  379. ret[80 * 2],
  380. ch,
  381. i,
  382. j;
  383. while ((ch = text[i++]) && j < sizeof (ret))
  384. {
  385. if (ch == '\'')
  386. {
  387. if (j < sizeof (ret) - 2)
  388. {
  389. ret[j++] = '\'';
  390. ret[j++] = '\'';
  391. }
  392. }
  393. else if (j < sizeof (ret))
  394. {
  395. ret[j++] = ch;
  396. }
  397. else
  398. {
  399. j++;
  400. }
  401. }
  402. ret[sizeof (ret) - 1] = '\0';
  403. return ret;
  404. }
  405.  
  406. stock ReturnComponentSlot(componentid)
  407. {
  408. new i = 0;
  409. for(i = 0; i < 20; i ++) { if(spoiler[i][0] == componentid) { return 1; } }
  410. for(i = 0; i < 3; i ++) { if(nitro[i][0] == componentid) { return 2; } }
  411. for(i = 0; i < 23; i ++) { if(front_bumper[i][0] == componentid) { return 3; } }
  412. for(i = 0; i < 22; i ++) { if(rear_bumper[i][0] == componentid) { return 4; } }
  413. for(i = 0; i < 28; i ++) { if(exhaust[i][0] == componentid) { return 5; } }
  414. for(i = 0; i < 2; i ++) { if(bventr[i][0] == componentid) { return 6; } }
  415. for(i = 0; i < 2; i ++) { if(bventl[i][0] == componentid) { return 7; } }
  416. for(i = 0; i < 4; i ++) { if(bscoop[i][0] == componentid) { return 8; } }
  417. for(i = 0; i < 13; i ++) { if(rscoop[i][0] == componentid) { return 9; } }
  418. for(i = 0; i < 21; i ++) { if(left_sideskirt[i][0] == componentid) { return 10; } }
  419. for(i = 0; i < 21; i ++) { if(right_sideskirt[i][0] == componentid) { return 11; } }
  420. if(hydraulics[0][0] == componentid) { return 12; }
  421. if(bass[0][0] == componentid) { return 13; }
  422. for(i = 0; i < 2; i ++) { if(rbbars[i][0] == componentid) { return 14; } }
  423. for(i = 0; i < 2; i ++) { if(fbbars[i][0] == componentid) { return 15; } }
  424. for(i = 0; i < 17; i ++) { if(wheels[i][0] == componentid) { return 16; } }
  425. for(i = 0; i < 2; i ++) { if(lights[i][0] == componentid) { return 17; } }
  426. return 0;
  427. }
  428.  
  429. stock GetVehicleName(vehicleid)
  430. {
  431. new
  432. vehicle_name[32] = "None";
  433. if((vehicleid == INVALID_VEHICLE_ID) || (vehicleid < 1 || (vehicleid > MAX_VEHICLES - 1))) return vehicle_name;
  434. switch (GetVehicleModel(vehicleid))
  435. {
  436. case 400: vehicle_name = "Landstalker";
  437. case 401: vehicle_name = "Bravura";
  438. case 402: vehicle_name = "Buffalo";
  439. case 403: vehicle_name = "Linerunner";
  440. case 404: vehicle_name = "Perennial";
  441. case 405: vehicle_name = "Sentinel";
  442. case 406: vehicle_name = "Dumper";
  443. case 407: vehicle_name = "Firetruck";
  444. case 408: vehicle_name = "Trashmaster";
  445. case 409: vehicle_name = "Stretch";
  446. case 410: vehicle_name = "Manana";
  447. case 411: vehicle_name = "Infernus";
  448. case 412: vehicle_name = "Voodoo";
  449. case 413: vehicle_name = "Pony";
  450. case 414: vehicle_name = "Mule";
  451. case 415: vehicle_name = "Cheetah";
  452. case 416: vehicle_name = "Ambulance";
  453. case 417: vehicle_name = "Leviathan";
  454. case 418: vehicle_name = "Moonbeam";
  455. case 419: vehicle_name = "Esperanto";
  456. case 420: vehicle_name = "Taxi";
  457. case 421: vehicle_name = "Washington";
  458. case 422: vehicle_name = "Bobcat";
  459. case 423: vehicle_name = "Mr Whoopee";
  460. case 424: vehicle_name = "BF Injection";
  461. case 425: vehicle_name = "Hunter";
  462. case 426: vehicle_name = "Premier";
  463. case 427: vehicle_name = "Enforcer";
  464. case 428: vehicle_name = "Securicar";
  465. case 429: vehicle_name = "Banshee";
  466. case 430: vehicle_name = "Predator";
  467. case 431: vehicle_name = "Bus";
  468. case 432: vehicle_name = "Rhino";
  469. case 433: vehicle_name = "Barracks";
  470. case 434: vehicle_name = "Hotknife";
  471. case 435: vehicle_name = "Article Trailer";
  472. case 436: vehicle_name = "Previon";
  473. case 437: vehicle_name = "Coach";
  474. case 438: vehicle_name = "Cabbie";
  475. case 439: vehicle_name = "Stallion";
  476. case 440: vehicle_name = "Rumpo";
  477. case 441: vehicle_name = "RC Bandit";
  478. case 442: vehicle_name = "Romero";
  479. case 443: vehicle_name = "Packer";
  480. case 444: vehicle_name = "Monster";
  481. case 445: vehicle_name = "Admiral";
  482. case 446: vehicle_name = "Squalo";
  483. case 447: vehicle_name = "Seasparrow";
  484. case 448: vehicle_name = "Pizzaboy";
  485. case 449: vehicle_name = "Tram";
  486. case 450: vehicle_name = "Article Trailer 2";
  487. case 451: vehicle_name = "Turismo";
  488. case 452: vehicle_name = "Speeder";
  489. case 453: vehicle_name = "Reefer";
  490. case 454: vehicle_name = "Tropic";
  491. case 455: vehicle_name = "Flatbed";
  492. case 456: vehicle_name = "Yankee";
  493. case 457: vehicle_name = "Caddy";
  494. case 458: vehicle_name = "Solair";
  495. case 459: vehicle_name = "Berkley's RC Van";
  496. case 460: vehicle_name = "Skimmer";
  497. case 461: vehicle_name = "PCJ-600";
  498. case 462: vehicle_name = "Faggio";
  499. case 463: vehicle_name = "Freeway";
  500. case 464: vehicle_name = "RC Baron";
  501. case 465: vehicle_name = "RC Raider";
  502. case 466: vehicle_name = "Glendale";
  503. case 467: vehicle_name = "Oceanic";
  504. case 468: vehicle_name = "Sanchez";
  505. case 469: vehicle_name = "Sparrow";
  506. case 470: vehicle_name = "Patriot";
  507. case 471: vehicle_name = "Quad";
  508. case 472: vehicle_name = "Coastguard";
  509. case 473: vehicle_name = "Dinghy";
  510. case 474: vehicle_name = "Hermes";
  511. case 475: vehicle_name = "Sabre";
  512. case 476: vehicle_name = "Rustler";
  513. case 477: vehicle_name = "ZR-350";
  514. case 478: vehicle_name = "Walton";
  515. case 479: vehicle_name = "Regina";
  516. case 480: vehicle_name = "Comet";
  517. case 481: vehicle_name = "BMX";
  518. case 482: vehicle_name = "Burrito";
  519. case 483: vehicle_name = "Camper";
  520. case 484: vehicle_name = "Marquis";
  521. case 485: vehicle_name = "Baggage";
  522. case 486: vehicle_name = "Dozer";
  523. case 487: vehicle_name = "Maverick";
  524. case 488: vehicle_name = "SAN News Maverick";
  525. case 489, 505: vehicle_name = "Rancher";
  526. case 490: vehicle_name = "FBI Rancher";
  527. case 491: vehicle_name = "Virgo";
  528. case 492: vehicle_name = "Greenwood";
  529. case 493: vehicle_name = "Jetmax";
  530. case 494: vehicle_name = "Hotring Racer A";
  531. case 495: vehicle_name = "Sandking";
  532. case 496: vehicle_name = "Blista Compact";
  533. case 497: vehicle_name = "Police Maverick";
  534. case 498: vehicle_name = "Boxville";
  535. case 499: vehicle_name = "Benson";
  536. case 500: vehicle_name = "Mesa";
  537. case 501: vehicle_name = "RC Goblin";
  538. case 502: vehicle_name = "Hotring Racer B";
  539. case 503: vehicle_name = "Hotring Racer C";
  540. case 504: vehicle_name = "Bloodring Banger";
  541. case 506: vehicle_name = "Super GT";
  542. case 507: vehicle_name = "Elegant";
  543. case 508: vehicle_name = "Journey";
  544. case 509: vehicle_name = "Bike";
  545. case 510: vehicle_name = "Mountain Bike";
  546. case 511: vehicle_name = "Beagle";
  547. case 512: vehicle_name = "Cropduster";
  548. case 513: vehicle_name = "Stuntplane";
  549. case 514: vehicle_name = "Tanker";
  550. case 515: vehicle_name = "Roadtrain";
  551. case 516: vehicle_name = "Nebula";
  552. case 517: vehicle_name = "Majestic";
  553. case 518: vehicle_name = "Buccaneer";
  554. case 519: vehicle_name = "Shamal";
  555. case 520: vehicle_name = "Hydra";
  556. case 521: vehicle_name = "FCR-900";
  557. case 522: vehicle_name = "NRG-500";
  558. case 523: vehicle_name = "HPV1000";
  559. case 524: vehicle_name = "Cement Truck";
  560. case 525: vehicle_name = "Towtruck";
  561. case 526: vehicle_name = "Fortune";
  562. case 527: vehicle_name = "Cadrona";
  563. case 528: vehicle_name = "FBI Truck";
  564. case 529: vehicle_name = "Willard";
  565. case 530: vehicle_name = "Forklift";
  566. case 531: vehicle_name = "Tractor";
  567. case 532: vehicle_name = "Combine Harvester";
  568. case 533: vehicle_name = "Feltzer";
  569. case 534: vehicle_name = "Remington";
  570. case 535: vehicle_name = "Slamvan";
  571. case 536: vehicle_name = "Blade";
  572. case 537: vehicle_name = "Freight";
  573. case 538: vehicle_name = "Brownstreak";
  574. case 539: vehicle_name = "Vortex";
  575. case 540: vehicle_name = "Vincent";
  576. case 541: vehicle_name = "Bullet";
  577. case 542: vehicle_name = "Clover";
  578. case 543: vehicle_name = "Sadler";
  579. case 544: vehicle_name = "Firetruck LA";
  580. case 545: vehicle_name = "Hustler";
  581. case 546: vehicle_name = "Intruder";
  582. case 547: vehicle_name = "Primo";
  583. case 548: vehicle_name = "Cargobob";
  584. case 549: vehicle_name = "Tampa";
  585. case 550: vehicle_name = "Sunrise";
  586. case 551: vehicle_name = "Merit";
  587. case 552: vehicle_name = "Utility Van";
  588. case 553: vehicle_name = "Nevada";
  589. case 554: vehicle_name = "Yosemite";
  590. case 555: vehicle_name = "Windsor";
  591. case 556: vehicle_name = "Monster A";
  592. case 557: vehicle_name = "Monster B";
  593. case 558: vehicle_name = "Uranus";
  594. case 559: vehicle_name = "Jester";
  595. case 560: vehicle_name = "Sultan";
  596. case 561: vehicle_name = "Stratum";
  597. case 562: vehicle_name = "Elegy";
  598. case 563: vehicle_name = "Raindance";
  599. case 564: vehicle_name = "RC Tiger";
  600. case 565: vehicle_name = "Flash";
  601. case 566: vehicle_name = "Tahoma";
  602. case 567: vehicle_name = "Savanna";
  603. case 568: vehicle_name = "Bandito";
  604. case 569: vehicle_name = "Freight Flat Trailer";
  605. case 570: vehicle_name = "Streak Trailer";
  606. case 571: vehicle_name = "Kart";
  607. case 572: vehicle_name = "Mower";
  608. case 573: vehicle_name = "Dune";
  609. case 574: vehicle_name = "Sweeper";
  610. case 575: vehicle_name = "Broadway";
  611. case 576: vehicle_name = "Tornado";
  612. case 577: vehicle_name = "AT-400";
  613. case 578: vehicle_name = "DFT-30";
  614. case 579: vehicle_name = "Huntley";
  615. case 580: vehicle_name = "Stafford";
  616. case 581: vehicle_name = "BF-400";
  617. case 582: vehicle_name = "Newsvan";
  618. case 583: vehicle_name = "Tug";
  619. case 584: vehicle_name = "Petrol Trailer";
  620. case 585: vehicle_name = "Emperor";
  621. case 586: vehicle_name = "Wayfarer";
  622. case 587: vehicle_name = "Euros";
  623. case 588: vehicle_name = "Hotdog";
  624. case 589: vehicle_name = "Club";
  625. case 590: vehicle_name = "Freight Box Trailer";
  626. case 591: vehicle_name = "Article Trailer 3";
  627. case 592: vehicle_name = "Andromada";
  628. case 593: vehicle_name = "Dodo";
  629. case 594: vehicle_name = "RC Cam";
  630. case 595: vehicle_name = "Launch";
  631. case 596: vehicle_name = "LSPD Cruiser";
  632. case 597: vehicle_name = "SFPD Cruiser";
  633. case 598: vehicle_name = "LVPD Cruiser";
  634. case 599: vehicle_name = "Police Ranger";
  635. case 600: vehicle_name = "Picador";
  636. case 601: vehicle_name = "S.W.A.T.";
  637. case 602: vehicle_name = "Alpha";
  638. case 603: vehicle_name = "Phoenix";
  639. case 604: vehicle_name = "Glendale Shit";
  640. case 605: vehicle_name = "Sadler Shit";
  641. case 606: vehicle_name = "Baggage Trailer A";
  642. case 607: vehicle_name = "Baggage Trailer B";
  643. case 608: vehicle_name = "Tug Stairs";
  644. case 609: vehicle_name = "Boxville";
  645. case 610: vehicle_name = "Farm Trailer";
  646. case 611: vehicle_name = "Utility Trailer";
  647. default: vehicle_name = "None";
  648. }
  649. return vehicle_name;
  650. }
  651.  
  652. stock GetVehicleNameByModel(model)
  653. {
  654. new
  655. vehicle_name[32] = "None";
  656. if(model < 400 || model > 611) return vehicle_name;
  657. switch (model)
  658. {
  659. case 400: vehicle_name = "Landstalker";
  660. case 401: vehicle_name = "Bravura";
  661. case 402: vehicle_name = "Buffalo";
  662. case 403: vehicle_name = "Linerunner";
  663. case 404: vehicle_name = "Perennial";
  664. case 405: vehicle_name = "Sentinel";
  665. case 406: vehicle_name = "Dumper";
  666. case 407: vehicle_name = "Firetruck";
  667. case 408: vehicle_name = "Trashmaster";
  668. case 409: vehicle_name = "Stretch";
  669. case 410: vehicle_name = "Manana";
  670. case 411: vehicle_name = "Infernus";
  671. case 412: vehicle_name = "Voodoo";
  672. case 413: vehicle_name = "Pony";
  673. case 414: vehicle_name = "Mule";
  674. case 415: vehicle_name = "Cheetah";
  675. case 416: vehicle_name = "Ambulance";
  676. case 417: vehicle_name = "Leviathan";
  677. case 418: vehicle_name = "Moonbeam";
  678. case 419: vehicle_name = "Esperanto";
  679. case 420: vehicle_name = "Taxi";
  680. case 421: vehicle_name = "Washington";
  681. case 422: vehicle_name = "Bobcat";
  682. case 423: vehicle_name = "Mr Whoopee";
  683. case 424: vehicle_name = "BF Injection";
  684. case 425: vehicle_name = "Hunter";
  685. case 426: vehicle_name = "Premier";
  686. case 427: vehicle_name = "Enforcer";
  687. case 428: vehicle_name = "Securicar";
  688. case 429: vehicle_name = "Banshee";
  689. case 430: vehicle_name = "Predator";
  690. case 431: vehicle_name = "Bus";
  691. case 432: vehicle_name = "Rhino";
  692. case 433: vehicle_name = "Barracks";
  693. case 434: vehicle_name = "Hotknife";
  694. case 435: vehicle_name = "Article Trailer";
  695. case 436: vehicle_name = "Previon";
  696. case 437: vehicle_name = "Coach";
  697. case 438: vehicle_name = "Cabbie";
  698. case 439: vehicle_name = "Stallion";
  699. case 440: vehicle_name = "Rumpo";
  700. case 441: vehicle_name = "RC Bandit";
  701. case 442: vehicle_name = "Romero";
  702. case 443: vehicle_name = "Packer";
  703. case 444: vehicle_name = "Monster";
  704. case 445: vehicle_name = "Admiral";
  705. case 446: vehicle_name = "Squalo";
  706. case 447: vehicle_name = "Seasparrow";
  707. case 448: vehicle_name = "Pizzaboy";
  708. case 449: vehicle_name = "Tram";
  709. case 450: vehicle_name = "Article Trailer 2";
  710. case 451: vehicle_name = "Turismo";
  711. case 452: vehicle_name = "Speeder";
  712. case 453: vehicle_name = "Reefer";
  713. case 454: vehicle_name = "Tropic";
  714. case 455: vehicle_name = "Flatbed";
  715. case 456: vehicle_name = "Yankee";
  716. case 457: vehicle_name = "Caddy";
  717. case 458: vehicle_name = "Solair";
  718. case 459: vehicle_name = "Berkley's RC Van";
  719. case 460: vehicle_name = "Skimmer";
  720. case 461: vehicle_name = "PCJ-600";
  721. case 462: vehicle_name = "Faggio";
  722. case 463: vehicle_name = "Freeway";
  723. case 464: vehicle_name = "RC Baron";
  724. case 465: vehicle_name = "RC Raider";
  725. case 466: vehicle_name = "Glendale";
  726. case 467: vehicle_name = "Oceanic";
  727. case 468: vehicle_name = "Sanchez";
  728. case 469: vehicle_name = "Sparrow";
  729. case 470: vehicle_name = "Patriot";
  730. case 471: vehicle_name = "Quad";
  731. case 472: vehicle_name = "Coastguard";
  732. case 473: vehicle_name = "Dinghy";
  733. case 474: vehicle_name = "Hermes";
  734. case 475: vehicle_name = "Sabre";
  735. case 476: vehicle_name = "Rustler";
  736. case 477: vehicle_name = "ZR-350";
  737. case 478: vehicle_name = "Walton";
  738. case 479: vehicle_name = "Regina";
  739. case 480: vehicle_name = "Comet";
  740. case 481: vehicle_name = "BMX";
  741. case 482: vehicle_name = "Burrito";
  742. case 483: vehicle_name = "Camper";
  743. case 484: vehicle_name = "Marquis";
  744. case 485: vehicle_name = "Baggage";
  745. case 486: vehicle_name = "Dozer";
  746. case 487: vehicle_name = "Maverick";
  747. case 488: vehicle_name = "SAN News Maverick";
  748. case 489, 505: vehicle_name = "Rancher";
  749. case 490: vehicle_name = "FBI Rancher";
  750. case 491: vehicle_name = "Virgo";
  751. case 492: vehicle_name = "Greenwood";
  752. case 493: vehicle_name = "Jetmax";
  753. case 494: vehicle_name = "Hotring Racer A";
  754. case 495: vehicle_name = "Sandking";
  755. case 496: vehicle_name = "Blista Compact";
  756. case 497: vehicle_name = "Police Maverick";
  757. case 498: vehicle_name = "Boxville";
  758. case 499: vehicle_name = "Benson";
  759. case 500: vehicle_name = "Mesa";
  760. case 501: vehicle_name = "RC Goblin";
  761. case 502: vehicle_name = "Hotring Racer B";
  762. case 503: vehicle_name = "Hotring Racer C";
  763. case 504: vehicle_name = "Bloodring Banger";
  764. case 506: vehicle_name = "Super GT";
  765. case 507: vehicle_name = "Elegant";
  766. case 508: vehicle_name = "Journey";
  767. case 509: vehicle_name = "Bike";
  768. case 510: vehicle_name = "Mountain Bike";
  769. case 511: vehicle_name = "Beagle";
  770. case 512: vehicle_name = "Cropduster";
  771. case 513: vehicle_name = "Stuntplane";
  772. case 514: vehicle_name = "Tanker";
  773. case 515: vehicle_name = "Roadtrain";
  774. case 516: vehicle_name = "Nebula";
  775. case 517: vehicle_name = "Majestic";
  776. case 518: vehicle_name = "Buccaneer";
  777. case 519: vehicle_name = "Shamal";
  778. case 520: vehicle_name = "Hydra";
  779. case 521: vehicle_name = "FCR-900";
  780. case 522: vehicle_name = "NRG-500";
  781. case 523: vehicle_name = "HPV1000";
  782. case 524: vehicle_name = "Cement Truck";
  783. case 525: vehicle_name = "Towtruck";
  784. case 526: vehicle_name = "Fortune";
  785. case 527: vehicle_name = "Cadrona";
  786. case 528: vehicle_name = "FBI Truck";
  787. case 529: vehicle_name = "Willard";
  788. case 530: vehicle_name = "Forklift";
  789. case 531: vehicle_name = "Tractor";
  790. case 532: vehicle_name = "Combine Harvester";
  791. case 533: vehicle_name = "Feltzer";
  792. case 534: vehicle_name = "Remington";
  793. case 535: vehicle_name = "Slamvan";
  794. case 536: vehicle_name = "Blade";
  795. case 537: vehicle_name = "Freight";
  796. case 538: vehicle_name = "Brownstreak";
  797. case 539: vehicle_name = "Vortex";
  798. case 540: vehicle_name = "Vincent";
  799. case 541: vehicle_name = "Bullet";
  800. case 542: vehicle_name = "Clover";
  801. case 543: vehicle_name = "Sadler";
  802. case 544: vehicle_name = "Firetruck LA";
  803. case 545: vehicle_name = "Hustler";
  804. case 546: vehicle_name = "Intruder";
  805. case 547: vehicle_name = "Primo";
  806. case 548: vehicle_name = "Cargobob";
  807. case 549: vehicle_name = "Tampa";
  808. case 550: vehicle_name = "Sunrise";
  809. case 551: vehicle_name = "Merit";
  810. case 552: vehicle_name = "Utility Van";
  811. case 553: vehicle_name = "Nevada";
  812. case 554: vehicle_name = "Yosemite";
  813. case 555: vehicle_name = "Windsor";
  814. case 556: vehicle_name = "Monster A";
  815. case 557: vehicle_name = "Monster B";
  816. case 558: vehicle_name = "Uranus";
  817. case 559: vehicle_name = "Jester";
  818. case 560: vehicle_name = "Sultan";
  819. case 561: vehicle_name = "Stratum";
  820. case 562: vehicle_name = "Elegy";
  821. case 563: vehicle_name = "Raindance";
  822. case 564: vehicle_name = "RC Tiger";
  823. case 565: vehicle_name = "Flash";
  824. case 566: vehicle_name = "Tahoma";
  825. case 567: vehicle_name = "Savanna";
  826. case 568: vehicle_name = "Bandito";
  827. case 569: vehicle_name = "Freight Flat Trailer";
  828. case 570: vehicle_name = "Streak Trailer";
  829. case 571: vehicle_name = "Kart";
  830. case 572: vehicle_name = "Mower";
  831. case 573: vehicle_name = "Dune";
  832. case 574: vehicle_name = "Sweeper";
  833. case 575: vehicle_name = "Broadway";
  834. case 576: vehicle_name = "Tornado";
  835. case 577: vehicle_name = "AT-400";
  836. case 578: vehicle_name = "DFT-30";
  837. case 579: vehicle_name = "Huntley";
  838. case 580: vehicle_name = "Stafford";
  839. case 581: vehicle_name = "BF-400";
  840. case 582: vehicle_name = "Newsvan";
  841. case 583: vehicle_name = "Tug";
  842. case 584: vehicle_name = "Petrol Trailer";
  843. case 585: vehicle_name = "Emperor";
  844. case 586: vehicle_name = "Wayfarer";
  845. case 587: vehicle_name = "Euros";
  846. case 588: vehicle_name = "Hotdog";
  847. case 589: vehicle_name = "Club";
  848. case 590: vehicle_name = "Freight Box Trailer";
  849. case 591: vehicle_name = "Article Trailer 3";
  850. case 592: vehicle_name = "Andromada";
  851. case 593: vehicle_name = "Dodo";
  852. case 594: vehicle_name = "RC Cam";
  853. case 595: vehicle_name = "Launch";
  854. case 596: vehicle_name = "LSPD Cruiser";
  855. case 597: vehicle_name = "SFPD Cruiser";
  856. case 598: vehicle_name = "LVPD Cruiser";
  857. case 599: vehicle_name = "Police Ranger";
  858. case 600: vehicle_name = "Picador";
  859. case 601: vehicle_name = "S.W.A.T.";
  860. case 602: vehicle_name = "Alpha";
  861. case 603: vehicle_name = "Phoenix";
  862. case 604: vehicle_name = "Glendale Shit";
  863. case 605: vehicle_name = "Sadler Shit";
  864. case 606: vehicle_name = "Baggage Trailer A";
  865. case 607: vehicle_name = "Baggage Trailer B";
  866. case 608: vehicle_name = "Tug Stairs";
  867. case 609: vehicle_name = "Boxville";
  868. case 610: vehicle_name = "Farm Trailer";
  869. case 611: vehicle_name = "Utility Trailer";
  870. default: vehicle_name = "None";
  871. }
  872. return vehicle_name;
  873. }
  874.  
  875. stock CreateVehicleTables(playerid)
  876. {
  877. if (IsPlayerConnected(playerid))
  878. {
  879. new query[1536];
  880. format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `VEHICLES` ");
  881. strcat(query, "(`Name`, `Model`, `X`, `Y`, `Z`, `Rot`, `Color1`, `Color2`, `Paintjob`, `Mod1`, `Mod2`, `Mod3`, ");
  882. strcat(query, "`Mod4`, `Mod5`, `Mod6`, `Mod7`, `Mod8`, `Mod9`, `Mod10`, `Mod11`, `Mod12`, `Mod13`, ");
  883. strcat(query, "`Mod14`, `Mod15`, `Mod16`, `Mod17`, `HasLock`, `Locked`, `TrunkCash`, ");
  884. strcat(query, "`TrunkGun1`, `TrunkGun2`, `TrunkGun3`, `TrunkGun4`, `TrunkAmmo1`, `TrunkAmmo2`, `TrunkAmmo3`, ");
  885. strcat(query, "`TrunkAmmo4`, `Spawned`, `Owned`, `Slot`)");
  886. db_query(VehicleDatabase[playerid], query);
  887. }
  888. return 1;
  889. }
  890.  
  891. stock DeleteDealershipVehicle(vehicleid)
  892. {
  893. new query[128];
  894. if (DealershipVehicles[vehicleid][vForSale])
  895. {
  896. format(query, sizeof(query), "DELETE FROM `DEALERCARS` WHERE `vID` = '%d'", DealershipVehicles[vehicleid][vSQL_ID]);
  897. db_query(DealerVehicleDatabase, query);
  898. DealershipVehicles[vehicleid][vModel] = 0;
  899. DealershipVehicles[vehicleid][vX] = 0.0;
  900. DealershipVehicles[vehicleid][vY] = 0.0;
  901. DealershipVehicles[vehicleid][vZ] = 0.0;
  902. DealershipVehicles[vehicleid][vRot] = 0.0;
  903. DealershipVehicles[vehicleid][vForSale] = 0;
  904. DealershipVehicles[vehicleid][vPrice] = 0;
  905. Delete3DTextLabel(DealershipVehicles[vehicleid][vLabel]);
  906. DestroyVehicle(DealershipVehicles[vehicleid][vID]);
  907. DealershipVehicles[vehicleid][vID] = 0;
  908. DealershipVehicles[vehicleid][vSQL_ID] = 0;
  909. dealershipCars -= 1;
  910. return 1;
  911. }
  912. return 0;
  913. }
  914.  
  915. stock DeletePlayerVehicle(playerid, slot)
  916. {
  917. new query[128];
  918. if (PlayerVehicles[playerid][slot][pCarOwned])
  919. {
  920. format(query, sizeof(query), "DELETE FROM `VEHICLES` WHERE `Name` = '%s' AND `Slot` = '%d'", PlayerName(playerid), slot);
  921. db_query(VehicleDatabase[playerid], query);
  922. PlayerVehicles[playerid][slot][pCarModel] = 0;
  923. PlayerVehicles[playerid][slot][pCarX] = 0.0;
  924. PlayerVehicles[playerid][slot][pCarY] = 0.0;
  925. PlayerVehicles[playerid][slot][pCarZ] = 0.0;
  926. PlayerVehicles[playerid][slot][pCarRot] = 0.0;
  927. PlayerVehicles[playerid][slot][pCarColor1] = 0;
  928. PlayerVehicles[playerid][slot][pCarColor2] = 0;
  929. PlayerVehicles[playerid][slot][pCarPaintjob] = -1;
  930. PlayerVehicles[playerid][slot][pCarMod1] = 0;
  931. PlayerVehicles[playerid][slot][pCarMod2] = 0;
  932. PlayerVehicles[playerid][slot][pCarMod3] = 0;
  933. PlayerVehicles[playerid][slot][pCarMod4] = 0;
  934. PlayerVehicles[playerid][slot][pCarMod5] = 0;
  935. PlayerVehicles[playerid][slot][pCarMod6] = 0;
  936. PlayerVehicles[playerid][slot][pCarMod7] = 0;
  937. PlayerVehicles[playerid][slot][pCarMod8] = 0;
  938. PlayerVehicles[playerid][slot][pCarMod9] = 0;
  939. PlayerVehicles[playerid][slot][pCarMod10] = 0;
  940. PlayerVehicles[playerid][slot][pCarMod11] = 0;
  941. PlayerVehicles[playerid][slot][pCarMod12] = 0;
  942. PlayerVehicles[playerid][slot][pCarMod13] = 0;
  943. PlayerVehicles[playerid][slot][pCarMod14] = 0;
  944. PlayerVehicles[playerid][slot][pCarMod15] = 0;
  945. PlayerVehicles[playerid][slot][pCarMod16] = 0;
  946. PlayerVehicles[playerid][slot][pCarMod17] = 0;
  947. PlayerVehicles[playerid][slot][pCarHasLock] = 0;
  948. PlayerVehicles[playerid][slot][pCarLocked] = 0;
  949. PlayerVehicles[playerid][slot][pCarTrunkCash] = 0;
  950. PlayerVehicles[playerid][slot][pCarTrunkGun1] = 0;
  951. PlayerVehicles[playerid][slot][pCarTrunkGun2] = 0;
  952. PlayerVehicles[playerid][slot][pCarTrunkGun3] = 0;
  953. PlayerVehicles[playerid][slot][pCarTrunkGun4] = 0;
  954. PlayerVehicles[playerid][slot][pCarTrunkAmmo1] = 0;
  955. PlayerVehicles[playerid][slot][pCarTrunkAmmo2] = 0;
  956. PlayerVehicles[playerid][slot][pCarTrunkAmmo3] = 0;
  957. PlayerVehicles[playerid][slot][pCarTrunkAmmo4] = 0;
  958. PlayerVehicles[playerid][slot][pCarSpawned] = 0;
  959. PlayerVehicles[playerid][slot][pCarOwned] = 0;
  960. if (PlayerVehicles[playerid][slot][pCarID] != 0)
  961. {
  962. UnlockVehicle(PlayerVehicles[playerid][slot][pCarID]);
  963. DestroyVehicle(PlayerVehicles[playerid][slot][pCarID]);
  964. PlayerVehicles[playerid][slot][pCarID] = 0;
  965. }
  966. return 1;
  967. }
  968. return 0;
  969. }
  970.  
  971. stock CreateDealershipVehicle(model, price, Float:x, Float:y, Float:z, Float:rotation)
  972. {
  973. if (model < 400 || model > 611)
  974. return 0;
  975.  
  976. new
  977. vehicleid,
  978. string[256],
  979. query[1536];
  980.  
  981. vehicleid = CreateVehicle(model, x, y, z, rotation, 1, 1, 5);
  982. if (vehicleid == INVALID_VEHICLE_ID)
  983. return 0;
  984.  
  985. DealershipVehicles[vehicleid][vModel] = model;
  986. DealershipVehicles[vehicleid][vX] = x;
  987. DealershipVehicles[vehicleid][vY] = y;
  988. DealershipVehicles[vehicleid][vZ] = z;
  989. DealershipVehicles[vehicleid][vRot] = rotation;
  990. DealershipVehicles[vehicleid][vForSale] = 1;
  991. DealershipVehicles[vehicleid][vPrice] = price;
  992. DealershipVehicles[vehicleid][vID] = vehicleid;
  993. DealershipVehicles[vehicleid][vSQL_ID] = dealershipCars + 1;
  994. format(string, sizeof(string), "Voziloto {FFFFFF}%s {F5DEB3}e na prodazba.\nVoziloto kosta {FFFFFF}$%d.\n{F5DEB3}Za poveke informacii, vlezete vo voziloto.", GetVehicleName(vehicleid), price);
  995. DealershipVehicles[vehicleid][vLabel] = Create3DTextLabel(string, YELLOW2, x, y, z, 10.0, 0);
  996. dealershipCars += 1;
  997.  
  998. format(query, sizeof(query), "INSERT INTO `DEALERCARS` (`vID`, `vModel`, `vX`, `vY`, `vZ`, `vRot`, `vForSale`, `vPrice`) VALUES('%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d')", dealershipCars, model, x, y, z, rotation, 1, price);
  999. db_query(DealerVehicleDatabase, query);
  1000. return vehicleid;
  1001. }
  1002.  
  1003. stock CreatePlayerVehicle(playerid, model, Float:x, Float:y, Float:z, Float:rotation)
  1004. {
  1005. new slot = -1;
  1006. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1007. {
  1008. if (PlayerVehicles[playerid][i][pCarOwned] == 0)
  1009. {
  1010. slot = i;
  1011. break;
  1012. }
  1013. }
  1014. if (slot == -1) return 0;
  1015. new vehicleid = CreateVehicle(model, x, y, z, rotation, 1, 1, -1);
  1016. if (vehicleid == INVALID_VEHICLE_ID) return -1;
  1017. PlayerVehicles[playerid][slot][pCarModel] = model;
  1018. PlayerVehicles[playerid][slot][pCarX] = x;
  1019. PlayerVehicles[playerid][slot][pCarY] = y;
  1020. PlayerVehicles[playerid][slot][pCarZ] = z;
  1021. PlayerVehicles[playerid][slot][pCarRot] = rotation;
  1022. PlayerVehicles[playerid][slot][pCarColor1] = 1;
  1023. PlayerVehicles[playerid][slot][pCarColor2] = 1;
  1024. PlayerVehicles[playerid][slot][pCarPaintjob] = -1;
  1025. PlayerVehicles[playerid][slot][pCarMod1] = 0;
  1026. PlayerVehicles[playerid][slot][pCarMod2] = 0;
  1027. PlayerVehicles[playerid][slot][pCarMod3] = 0;
  1028. PlayerVehicles[playerid][slot][pCarMod4] = 0;
  1029. PlayerVehicles[playerid][slot][pCarMod5] = 0;
  1030. PlayerVehicles[playerid][slot][pCarMod6] = 0;
  1031. PlayerVehicles[playerid][slot][pCarMod7] = 0;
  1032. PlayerVehicles[playerid][slot][pCarMod8] = 0;
  1033. PlayerVehicles[playerid][slot][pCarMod9] = 0;
  1034. PlayerVehicles[playerid][slot][pCarMod10] = 0;
  1035. PlayerVehicles[playerid][slot][pCarMod11] = 0;
  1036. PlayerVehicles[playerid][slot][pCarMod12] = 0;
  1037. PlayerVehicles[playerid][slot][pCarMod13] = 0;
  1038. PlayerVehicles[playerid][slot][pCarMod14] = 0;
  1039. PlayerVehicles[playerid][slot][pCarMod15] = 0;
  1040. PlayerVehicles[playerid][slot][pCarMod16] = 0;
  1041. PlayerVehicles[playerid][slot][pCarMod17] = 0;
  1042. PlayerVehicles[playerid][slot][pCarHasLock] = 0;
  1043. PlayerVehicles[playerid][slot][pCarLocked] = 0;
  1044. PlayerVehicles[playerid][slot][pCarTrunkCash] = 0;
  1045. PlayerVehicles[playerid][slot][pCarTrunkGun1] = 0;
  1046. PlayerVehicles[playerid][slot][pCarTrunkGun2] = 0;
  1047. PlayerVehicles[playerid][slot][pCarTrunkGun3] = 0;
  1048. PlayerVehicles[playerid][slot][pCarTrunkGun4] = 0;
  1049. PlayerVehicles[playerid][slot][pCarTrunkAmmo1] = 0;
  1050. PlayerVehicles[playerid][slot][pCarTrunkAmmo2] = 0;
  1051. PlayerVehicles[playerid][slot][pCarTrunkAmmo3] = 0;
  1052. PlayerVehicles[playerid][slot][pCarTrunkAmmo4] = 0;
  1053. PlayerVehicles[playerid][slot][pCarSpawned] = 1;
  1054. PlayerVehicles[playerid][slot][pCarOwned] = 1;
  1055. PlayerVehicles[playerid][slot][pCarID] = vehicleid;
  1056.  
  1057. new query[1536], query2[1536];
  1058. format(query, sizeof(query), "INSERT INTO `VEHICLES` ");
  1059. strcat(query, "(`Name`, `Model`, `X`, `Y`, `Z`, `Rot`, `Color1`, `Color2`, `Paintjob`, `Mod1`, `Mod2`, `Mod3`, ");
  1060. strcat(query, "`Mod4`, `Mod5`, `Mod6`, `Mod7`, `Mod8`, `Mod9`, `Mod10`, `Mod11`, `Mod12`, `Mod13`, ");
  1061. strcat(query, "`Mod14`, `Mod15`, `Mod16`, `Mod17`, `HasLock`, `Locked`, `TrunkCash`, ");
  1062. strcat(query, "`TrunkGun1`, `TrunkGun2`, `TrunkGun3`, `TrunkGun4`, `TrunkAmmo1`, `TrunkAmmo2`, `TrunkAmmo3`, ");
  1063. strcat(query, "`TrunkAmmo4`, `Spawned`, `Owned`, `Slot`) ");
  1064.  
  1065. format(query2, sizeof(query2), "VALUES('%s', '%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
  1066. DB_Escape(PlayerName(playerid)),
  1067. PlayerVehicles[playerid][slot][pCarModel],
  1068. PlayerVehicles[playerid][slot][pCarX],
  1069. PlayerVehicles[playerid][slot][pCarY],
  1070. PlayerVehicles[playerid][slot][pCarZ],
  1071. PlayerVehicles[playerid][slot][pCarRot],
  1072. PlayerVehicles[playerid][slot][pCarColor1],
  1073. PlayerVehicles[playerid][slot][pCarColor2],
  1074. PlayerVehicles[playerid][slot][pCarPaintjob],
  1075. PlayerVehicles[playerid][slot][pCarMod1],
  1076. PlayerVehicles[playerid][slot][pCarMod2],
  1077. PlayerVehicles[playerid][slot][pCarMod3],
  1078. PlayerVehicles[playerid][slot][pCarMod4],
  1079. PlayerVehicles[playerid][slot][pCarMod5],
  1080. PlayerVehicles[playerid][slot][pCarMod6],
  1081. PlayerVehicles[playerid][slot][pCarMod7],
  1082. PlayerVehicles[playerid][slot][pCarMod8],
  1083. PlayerVehicles[playerid][slot][pCarMod9],
  1084. PlayerVehicles[playerid][slot][pCarMod10],
  1085. PlayerVehicles[playerid][slot][pCarMod11],
  1086. PlayerVehicles[playerid][slot][pCarMod12],
  1087. PlayerVehicles[playerid][slot][pCarMod13],
  1088. PlayerVehicles[playerid][slot][pCarMod14],
  1089. PlayerVehicles[playerid][slot][pCarMod15],
  1090. PlayerVehicles[playerid][slot][pCarMod16],
  1091. PlayerVehicles[playerid][slot][pCarMod17],
  1092. PlayerVehicles[playerid][slot][pCarHasLock],
  1093. PlayerVehicles[playerid][slot][pCarLocked],
  1094. PlayerVehicles[playerid][slot][pCarTrunkCash],
  1095. PlayerVehicles[playerid][slot][pCarTrunkGun1],
  1096. PlayerVehicles[playerid][slot][pCarTrunkGun2],
  1097. PlayerVehicles[playerid][slot][pCarTrunkGun3],
  1098. PlayerVehicles[playerid][slot][pCarTrunkGun4],
  1099. PlayerVehicles[playerid][slot][pCarTrunkAmmo1],
  1100. PlayerVehicles[playerid][slot][pCarTrunkAmmo2],
  1101. PlayerVehicles[playerid][slot][pCarTrunkAmmo3],
  1102. PlayerVehicles[playerid][slot][pCarTrunkAmmo4],
  1103. PlayerVehicles[playerid][slot][pCarSpawned],
  1104. PlayerVehicles[playerid][slot][pCarOwned],
  1105. slot);
  1106. strcat(query, query2);
  1107. db_query(VehicleDatabase[playerid], query);
  1108. SavePlayerVehicle(playerid, slot);
  1109. return 1;
  1110. }
  1111.  
  1112. stock SavePlayerVehicle(playerid, slot)
  1113. {
  1114. if (PlayerVehicles[playerid][slot][pCarOwned])
  1115. {
  1116. new query[1536], query2[1536];
  1117. format(query, sizeof(query), "UPDATE `VEHICLES` SET ");
  1118. format(query2, sizeof(query2), "Name = '%s', Model = '%d', X = '%f', Y = '%f', Z = '%f', Rot = '%f', Color1 = '%d', Color2 = '%d', Paintjob = '%d', Mod1 = '%d', Mod2 = '%d', Mod3 = '%d', ",
  1119. DB_Escape(PlayerName(playerid)),
  1120. PlayerVehicles[playerid][slot][pCarModel],
  1121. PlayerVehicles[playerid][slot][pCarX],
  1122. PlayerVehicles[playerid][slot][pCarY],
  1123. PlayerVehicles[playerid][slot][pCarZ],
  1124. PlayerVehicles[playerid][slot][pCarRot],
  1125. PlayerVehicles[playerid][slot][pCarColor1],
  1126. PlayerVehicles[playerid][slot][pCarColor2],
  1127. PlayerVehicles[playerid][slot][pCarPaintjob],
  1128. PlayerVehicles[playerid][slot][pCarMod1],
  1129. PlayerVehicles[playerid][slot][pCarMod2],
  1130. PlayerVehicles[playerid][slot][pCarMod3]);
  1131. strcat(query, query2);
  1132.  
  1133. format(query2, sizeof(query2), "Mod4 = '%d', Mod5 = '%d', Mod6 = '%d', Mod7 = '%d', Mod8 = '%d', Mod9 = '%d', Mod10 = '%d', Mod11 = '%d', Mod12 = '%d', Mod13 = '%d', Mod14 = '%d', Mod15 = '%d', ",
  1134. PlayerVehicles[playerid][slot][pCarMod4],
  1135. PlayerVehicles[playerid][slot][pCarMod5],
  1136. PlayerVehicles[playerid][slot][pCarMod6],
  1137. PlayerVehicles[playerid][slot][pCarMod7],
  1138. PlayerVehicles[playerid][slot][pCarMod8],
  1139. PlayerVehicles[playerid][slot][pCarMod9],
  1140. PlayerVehicles[playerid][slot][pCarMod10],
  1141. PlayerVehicles[playerid][slot][pCarMod11],
  1142. PlayerVehicles[playerid][slot][pCarMod12],
  1143. PlayerVehicles[playerid][slot][pCarMod13],
  1144. PlayerVehicles[playerid][slot][pCarMod14],
  1145. PlayerVehicles[playerid][slot][pCarMod15]);
  1146. strcat(query, query2);
  1147.  
  1148. format(query2, sizeof(query2), "Mod16 = '%d', Mod17 = '%d', HasLock = '%d', Locked = '%d', TrunkCash = '%d', TrunkGun1 = '%d', TrunkGun2 = '%d', TrunkGun3 = '%d', TrunkGun4 = '%d', TrunkAmmo1 = '%d', TrunkAmmo2 = '%d', TrunkAmmo3 = '%d', ",
  1149. PlayerVehicles[playerid][slot][pCarMod16],
  1150. PlayerVehicles[playerid][slot][pCarMod17],
  1151. PlayerVehicles[playerid][slot][pCarHasLock],
  1152. PlayerVehicles[playerid][slot][pCarLocked],
  1153. PlayerVehicles[playerid][slot][pCarTrunkCash],
  1154. PlayerVehicles[playerid][slot][pCarTrunkGun1],
  1155. PlayerVehicles[playerid][slot][pCarTrunkGun2],
  1156. PlayerVehicles[playerid][slot][pCarTrunkGun3],
  1157. PlayerVehicles[playerid][slot][pCarTrunkGun4],
  1158. PlayerVehicles[playerid][slot][pCarTrunkAmmo1],
  1159. PlayerVehicles[playerid][slot][pCarTrunkAmmo2],
  1160. PlayerVehicles[playerid][slot][pCarTrunkAmmo3]);
  1161. strcat(query, query2);
  1162.  
  1163. format(query2, sizeof(query2), "TrunkAmmo4 = '%d', Spawned = '%d', Owned = '%d', Slot = '%d' WHERE Name = '%s' AND Slot = '%d'",
  1164. PlayerVehicles[playerid][slot][pCarTrunkAmmo4],
  1165. PlayerVehicles[playerid][slot][pCarSpawned],
  1166. PlayerVehicles[playerid][slot][pCarOwned],
  1167. slot,
  1168. DB_Escape(PlayerName(playerid)),
  1169. slot);
  1170. strcat(query, query2);
  1171. db_query(VehicleDatabase[playerid], query);
  1172. }
  1173. return 1;
  1174. }
  1175.  
  1176. stock LoadPlayerVehicles(playerid)
  1177. {
  1178. new DBResult:result;
  1179. new query[192], field[64];
  1180. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1181. {
  1182. format(query, sizeof(query), "SELECT * FROM `VEHICLES` WHERE `Name` = '%s' COLLATE NOCASE AND `Slot` = '%d'", PlayerName(playerid), i);
  1183. result = db_query(VehicleDatabase[playerid], query);
  1184. if (db_num_rows(result))
  1185. {
  1186. db_get_field_assoc(result, "Model", field, sizeof(field)); PlayerVehicles[playerid][i][pCarModel] = strval(field);
  1187. db_get_field_assoc(result, "X", field, sizeof(field)); PlayerVehicles[playerid][i][pCarX] = floatstr(field);
  1188. db_get_field_assoc(result, "Y", field, sizeof(field)); PlayerVehicles[playerid][i][pCarY] = floatstr(field);
  1189. db_get_field_assoc(result, "Z", field, sizeof(field)); PlayerVehicles[playerid][i][pCarZ] = floatstr(field);
  1190. db_get_field_assoc(result, "Rot", field, sizeof(field)); PlayerVehicles[playerid][i][pCarRot] = floatstr(field);
  1191. db_get_field_assoc(result, "Color1", field, sizeof(field)); PlayerVehicles[playerid][i][pCarColor1] = strval(field);
  1192. db_get_field_assoc(result, "Color2", field, sizeof(field)); PlayerVehicles[playerid][i][pCarColor2] = strval(field);
  1193. db_get_field_assoc(result, "Paintjob", field, sizeof(field)); PlayerVehicles[playerid][i][pCarPaintjob] = strval(field);
  1194. db_get_field_assoc(result, "Mod1", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod1] = strval(field);
  1195. db_get_field_assoc(result, "Mod2", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod2] = strval(field);
  1196. db_get_field_assoc(result, "Mod3", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod3] = strval(field);
  1197. db_get_field_assoc(result, "Mod4", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod4] = strval(field);
  1198. db_get_field_assoc(result, "Mod5", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod5] = strval(field);
  1199. db_get_field_assoc(result, "Mod6", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod6] = strval(field);
  1200. db_get_field_assoc(result, "Mod7", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod7] = strval(field);
  1201. db_get_field_assoc(result, "Mod8", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod8] = strval(field);
  1202. db_get_field_assoc(result, "Mod9", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod9] = strval(field);
  1203. db_get_field_assoc(result, "Mod10", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod10] = strval(field);
  1204. db_get_field_assoc(result, "Mod11", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod11] = strval(field);
  1205. db_get_field_assoc(result, "Mod12", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod12] = strval(field);
  1206. db_get_field_assoc(result, "Mod13", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod13] = strval(field);
  1207. db_get_field_assoc(result, "Mod14", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod14] = strval(field);
  1208. db_get_field_assoc(result, "Mod15", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod15] = strval(field);
  1209. db_get_field_assoc(result, "Mod16", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod16] = strval(field);
  1210. db_get_field_assoc(result, "Mod17", field, sizeof(field)); PlayerVehicles[playerid][i][pCarMod17] = strval(field);
  1211. db_get_field_assoc(result, "HasLock", field, sizeof(field)); PlayerVehicles[playerid][i][pCarHasLock] = strval(field);
  1212. db_get_field_assoc(result, "Locked", field, sizeof(field)); PlayerVehicles[playerid][i][pCarLocked] = strval(field);
  1213. db_get_field_assoc(result, "TrunkCash", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkCash] = strval(field);
  1214. db_get_field_assoc(result, "TrunkGun1", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkGun1] = strval(field);
  1215. db_get_field_assoc(result, "TrunkGun2", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkGun2] = strval(field);
  1216. db_get_field_assoc(result, "TrunkGun3", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkGun3] = strval(field);
  1217. db_get_field_assoc(result, "TrunkGun4", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkGun4] = strval(field);
  1218. db_get_field_assoc(result, "TrunkAmmo1", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkAmmo1] = strval(field);
  1219. db_get_field_assoc(result, "TrunkAmmo2", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkAmmo2] = strval(field);
  1220. db_get_field_assoc(result, "TrunkAmmo3", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkAmmo3] = strval(field);
  1221. db_get_field_assoc(result, "TrunkAmmo4", field, sizeof(field)); PlayerVehicles[playerid][i][pCarTrunkAmmo4] = strval(field);
  1222. db_get_field_assoc(result, "Spawned", field, sizeof(field)); PlayerVehicles[playerid][i][pCarSpawned] = strval(field);
  1223. db_get_field_assoc(result, "Owned", field, sizeof(field)); PlayerVehicles[playerid][i][pCarOwned] = strval(field);
  1224. }
  1225. if (PlayerVehicles[playerid][i][pCarOwned])
  1226. {
  1227. if (PlayerVehicles[playerid][i][pCarSpawned])
  1228. {
  1229. PlayerVehicles[playerid][i][pCarID] = CreateVehicle(PlayerVehicles[playerid][i][pCarModel], PlayerVehicles[playerid][i][pCarX], PlayerVehicles[playerid][i][pCarY], PlayerVehicles[playerid][i][pCarZ], PlayerVehicles[playerid][i][pCarRot], PlayerVehicles[playerid][i][pCarColor1], PlayerVehicles[playerid][i][pCarColor2], -1);
  1230. ModifyVehicle(playerid, i);
  1231. }
  1232. }
  1233. db_free_result(result);
  1234. }
  1235. return 1;
  1236. }
  1237.  
  1238. stock SaveDealershipVehicles()
  1239. {
  1240. new query[512], query2[512];
  1241. for (new i = 1; i < MAX_VEHICLES; i += 1)
  1242. {
  1243. if (!DealershipVehicles[i][vForSale]) continue;
  1244.  
  1245. format(query, sizeof(query), "UPDATE `DEALERCARS` SET ");
  1246. format(query2, sizeof(query2), "vID = '%d', vModel = '%d', vX = '%f', vY = '%f', vZ = '%f', vRot = '%f', vForSale = '%d', vPrice = '%d' WHERE `vID` = '%d'",
  1247. DealershipVehicles[i][vSQL_ID],
  1248. DealershipVehicles[i][vModel],
  1249. DealershipVehicles[i][vX],
  1250. DealershipVehicles[i][vY],
  1251. DealershipVehicles[i][vZ],
  1252. DealershipVehicles[i][vRot],
  1253. DealershipVehicles[i][vForSale],
  1254. DealershipVehicles[i][vPrice],
  1255. DealershipVehicles[i][vSQL_ID]);
  1256.  
  1257. strcat(query, query2);
  1258. db_query(DealerVehicleDatabase, query);
  1259. }
  1260. return 1;
  1261. }
  1262.  
  1263. stock LoadDealershipVehicles()
  1264. {
  1265. new DBResult:result;
  1266. new query[128], field[64], string[256];
  1267. for (new i = 1; i < MAX_VEHICLES; i += 1)
  1268. {
  1269. format(query, sizeof(query), "SELECT * FROM `DEALERCARS` WHERE vID = '%d'", i);
  1270. result = db_query(DealerVehicleDatabase, query);
  1271. if (db_num_rows(result))
  1272. {
  1273. new model, Float:x, Float:y, Float:z, Float:rot, forsale, price, vehicleid;
  1274. db_get_field_assoc(result, "vModel", field, sizeof(field)); model = strval(field);
  1275. db_get_field_assoc(result, "vX", field, sizeof(field)); x = strval(field);
  1276. db_get_field_assoc(result, "vY", field, sizeof(field)); y = strval(field);
  1277. db_get_field_assoc(result, "vZ", field, sizeof(field)); z = strval(field);
  1278. db_get_field_assoc(result, "vRot", field, sizeof(field)); rot = strval(field);
  1279. db_get_field_assoc(result, "vForSale", field, sizeof(field)); forsale = strval(field);
  1280. db_get_field_assoc(result, "vPrice", field, sizeof(field)); price = strval(field);
  1281. vehicleid = CreateVehicle(model, x, y, z, rot, 1, 1, 5);
  1282.  
  1283. DealershipVehicles[vehicleid][vModel] = model;
  1284. DealershipVehicles[vehicleid][vX] = x;
  1285. DealershipVehicles[vehicleid][vY] = y;
  1286. DealershipVehicles[vehicleid][vZ] = z;
  1287. DealershipVehicles[vehicleid][vRot] = rot;
  1288. DealershipVehicles[vehicleid][vForSale] = forsale;
  1289. DealershipVehicles[vehicleid][vPrice] = price;
  1290. DealershipVehicles[vehicleid][vID] = vehicleid;
  1291. format(string, sizeof(string), "Voziloto {FFFFFF}%s {F5DEB3}e na prodazba.\nVoziloto kosta {FFFFFF}$%d.\n{F5DEB3}Za poveke informacii, vlezete vo voziloto.", GetVehicleName(vehicleid), price);
  1292. DealershipVehicles[vehicleid][vLabel] = Create3DTextLabel(string, YELLOW2, x, y, z, 10.0, 0);
  1293. DealershipVehicles[vehicleid][vSQL_ID] = dealershipCars + 1;
  1294. dealershipCars += 1;
  1295. }
  1296. db_free_result(result);
  1297. }
  1298. return 1;
  1299. }
  1300.  
  1301. stock ModifyVehicle(playerid, slot)
  1302. {
  1303. if (!PlayerVehicles[playerid][slot][pCarOwned]) return 1;
  1304. if (!PlayerVehicles[playerid][slot][pCarSpawned]) return 1;
  1305. new vehicleid = PlayerVehicles[playerid][slot][pCarID];
  1306. new comp1 = PlayerVehicles[playerid][slot][pCarMod1];
  1307. new comp2 = PlayerVehicles[playerid][slot][pCarMod2];
  1308. new comp3 = PlayerVehicles[playerid][slot][pCarMod3];
  1309. new comp4 = PlayerVehicles[playerid][slot][pCarMod4];
  1310. new comp5 = PlayerVehicles[playerid][slot][pCarMod5];
  1311. new comp6 = PlayerVehicles[playerid][slot][pCarMod6];
  1312. new comp7 = PlayerVehicles[playerid][slot][pCarMod7];
  1313. new comp8 = PlayerVehicles[playerid][slot][pCarMod8];
  1314. new comp9 = PlayerVehicles[playerid][slot][pCarMod9];
  1315. new comp10 = PlayerVehicles[playerid][slot][pCarMod10];
  1316. new comp11 = PlayerVehicles[playerid][slot][pCarMod11];
  1317. new comp12 = PlayerVehicles[playerid][slot][pCarMod12];
  1318. new comp13 = PlayerVehicles[playerid][slot][pCarMod13];
  1319. new comp14 = PlayerVehicles[playerid][slot][pCarMod14];
  1320. new comp15 = PlayerVehicles[playerid][slot][pCarMod15];
  1321. new comp16 = PlayerVehicles[playerid][slot][pCarMod16];
  1322. new comp17 = PlayerVehicles[playerid][slot][pCarMod17];
  1323. new color1 = PlayerVehicles[playerid][slot][pCarColor1];
  1324. new color2 = PlayerVehicles[playerid][slot][pCarColor2];
  1325. new paintjob = PlayerVehicles[playerid][slot][pCarPaintjob];
  1326.  
  1327. if (comp1 != 0) AddVehicleComponent(vehicleid, comp1);
  1328. if (comp2 != 0) AddVehicleComponent(vehicleid, comp2);
  1329. if (comp3 != 0) AddVehicleComponent(vehicleid, comp3);
  1330. if (comp4 != 0) AddVehicleComponent(vehicleid, comp4);
  1331. if (comp5 != 0) AddVehicleComponent(vehicleid, comp5);
  1332. if (comp6 != 0) AddVehicleComponent(vehicleid, comp6);
  1333. if (comp7 != 0) AddVehicleComponent(vehicleid, comp7);
  1334. if (comp8 != 0) AddVehicleComponent(vehicleid, comp8);
  1335. if (comp9 != 0) AddVehicleComponent(vehicleid, comp9);
  1336. if (comp10 != 0) AddVehicleComponent(vehicleid, comp10);
  1337. if (comp11 != 0) AddVehicleComponent(vehicleid, comp11);
  1338. if (comp12 != 0) AddVehicleComponent(vehicleid, comp12);
  1339. if (comp13 != 0) AddVehicleComponent(vehicleid, comp13);
  1340. if (comp14 != 0) AddVehicleComponent(vehicleid, comp14);
  1341. if (comp15 != 0) AddVehicleComponent(vehicleid, comp15);
  1342. if (comp16 != 0) AddVehicleComponent(vehicleid, comp16);
  1343. if (comp17 != 0) AddVehicleComponent(vehicleid, comp17);
  1344. ChangeVehicleColor(vehicleid, color1, color2);
  1345. if (paintjob != -1) ChangeVehiclePaintjob(vehicleid, paintjob);
  1346.  
  1347. switch (PlayerVehicles[playerid][slot][pCarLocked])
  1348. {
  1349. case 0: UnlockVehicle(PlayerVehicles[playerid][slot][pCarID]);
  1350. case 1: LockVehicle(PlayerVehicles[playerid][slot][pCarID]);
  1351. }
  1352. return 1;
  1353. }
  1354.  
  1355. stock LockVehicle(vehicleid)
  1356. {
  1357. foreach(Player, i)
  1358. {
  1359. SetVehicleParamsForPlayer(vehicleid, i, 0, 1);
  1360. }
  1361. VehicleLocked[vehicleid] = 1;
  1362. return 1;
  1363. }
  1364.  
  1365. stock UnlockVehicle(vehicleid)
  1366. {
  1367. foreach(Player, i)
  1368. {
  1369. SetVehicleParamsForPlayer(vehicleid, i, 0, 0);
  1370. }
  1371. VehicleLocked[vehicleid] = 0;
  1372. return 1;
  1373. }
  1374.  
  1375. stock PlayerOwnsVehicle(playerid, vehicleid)
  1376. {
  1377. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1378. {
  1379. if (PlayerVehicles[playerid][i][pCarID] == vehicleid && PlayerVehicles[playerid][i][pCarSpawned]) return 1;
  1380. }
  1381. return 0;
  1382. }
  1383.  
  1384. stock GetPlayerVehicleSlot(playerid)
  1385. {
  1386. if (IsPlayerInAnyVehicle(playerid))
  1387. {
  1388. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1389. {
  1390. if (PlayerVehicles[playerid][i][pCarID] == GetPlayerVehicleID(playerid) && PlayerVehicles[playerid][i][pCarSpawned])
  1391. {
  1392. return i;
  1393. }
  1394. }
  1395. }
  1396. return 0;
  1397. }
  1398.  
  1399. stock GetPlayerVehicleAmount(playerid)
  1400. {
  1401. new iCars;
  1402. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1403. {
  1404. if (PlayerVehicles[playerid][i][pCarOwned]) ++iCars;
  1405. }
  1406. return iCars;
  1407. }
  1408.  
  1409. stock ParkVehicle(playerid, slot)
  1410. {
  1411. if (IsPlayerInVehicle(playerid, PlayerVehicles[playerid][slot][pCarID]))
  1412. {
  1413. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1414. {
  1415. new Float:x, Float:y, Float:z, Float:angle;
  1416. GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  1417. GetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
  1418. PlayerVehicles[playerid][slot][pCarX] = x;
  1419. PlayerVehicles[playerid][slot][pCarY] = y;
  1420. PlayerVehicles[playerid][slot][pCarZ] = z;
  1421. PlayerVehicles[playerid][slot][pCarRot] = angle;
  1422. foreach(Player, i)
  1423. {
  1424. if (i == playerid) continue;
  1425. if (IsPlayerInVehicle(i, PlayerVehicles[playerid][slot][pCarID]))
  1426. {
  1427. SetPVarInt(i, "CarID", PlayerVehicles[playerid][slot][pCarID]);
  1428. SetPVarInt(i, "CarSeat", GetPlayerVehicleSeat(playerid));
  1429. }
  1430. }
  1431. VehicleLocked[GetPlayerVehicleID(playerid)] = 0;
  1432. UnlockVehicle(GetPlayerVehicleID(playerid));
  1433. DestroyVehicle(GetPlayerVehicleID(playerid));
  1434. PlayerVehicles[playerid][slot][pCarID] = CreateVehicle(PlayerVehicles[playerid][slot][pCarModel], x, y, z, angle, PlayerVehicles[playerid][slot][pCarColor1], PlayerVehicles[playerid][slot][pCarColor2], -1);
  1435. PutPlayerInVehicle(playerid, PlayerVehicles[playerid][slot][pCarID], 0);
  1436. foreach(Player, i)
  1437. {
  1438. if (GetPVarInt(i, "CarID") == PlayerVehicles[playerid][slot][pCarID])
  1439. {
  1440. PutPlayerInVehicle(i, PlayerVehicles[playerid][slot][pCarID], GetPVarInt(i, "CarSeat"));
  1441. DeletePVar(i, "CarID");
  1442. DeletePVar(i, "CarSeat");
  1443. }
  1444. }
  1445. ModifyVehicle(playerid, slot);
  1446. return 1;
  1447. }
  1448. return 0;
  1449. }
  1450. return -1;
  1451. }
  1452.  
  1453. public OnVehicleStreamIn(vehicleid, forplayerid)
  1454. {
  1455. if (VehicleLocked[vehicleid]) SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
  1456. else SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0);
  1457. return 1;
  1458. }
  1459.  
  1460. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  1461. {
  1462. foreach(Player, i)
  1463. {
  1464. for (new j = 1; j < MAX_PLAYER_CARS + 1; j += 1)
  1465. {
  1466. if (PlayerVehicles[i][j][pCarSpawned] && PlayerVehicles[i][j][pCarID] == vehicleid)
  1467. {
  1468. PlayerVehicles[i][j][pCarColor1] = color1;
  1469. PlayerVehicles[i][j][pCarColor2] = color2;
  1470. break;
  1471. }
  1472. }
  1473. }
  1474. return 1;
  1475. }
  1476.  
  1477. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  1478. {
  1479. foreach(Player, i)
  1480. {
  1481. for (new j = 1; j < MAX_PLAYER_CARS + 1; j += 1)
  1482. {
  1483. if (PlayerVehicles[i][j][pCarSpawned] && PlayerVehicles[i][j][pCarID] == vehicleid)
  1484. {
  1485. PlayerVehicles[i][j][pCarPaintjob] = paintjobid;
  1486. break;
  1487. }
  1488. }
  1489. }
  1490. return 1;
  1491. }
  1492.  
  1493. public OnVehicleMod(playerid, vehicleid, componentid)
  1494. {
  1495. foreach(Player, i)
  1496. {
  1497. for (new j = 1; j < MAX_PLAYER_CARS + 1; j += 1)
  1498. {
  1499. if (PlayerVehicles[i][j][pCarSpawned] && PlayerVehicles[i][j][pCarID] == vehicleid)
  1500. {
  1501. switch (ReturnComponentSlot(componentid))
  1502. {
  1503. case 1: PlayerVehicles[i][j][pCarMod1] = componentid;
  1504. case 2: PlayerVehicles[i][j][pCarMod2] = componentid;
  1505. case 3: PlayerVehicles[i][j][pCarMod3] = componentid;
  1506. case 4: PlayerVehicles[i][j][pCarMod4] = componentid;
  1507. case 5: PlayerVehicles[i][j][pCarMod5] = componentid;
  1508. case 6: PlayerVehicles[i][j][pCarMod6] = componentid;
  1509. case 7: PlayerVehicles[i][j][pCarMod7] = componentid;
  1510. case 8: PlayerVehicles[i][j][pCarMod8] = componentid;
  1511. case 9: PlayerVehicles[i][j][pCarMod9] = componentid;
  1512. case 10: PlayerVehicles[i][j][pCarMod10] = componentid;
  1513. case 11: PlayerVehicles[i][j][pCarMod11] = componentid;
  1514. case 12: PlayerVehicles[i][j][pCarMod12] = componentid;
  1515. case 13: PlayerVehicles[i][j][pCarMod13] = componentid;
  1516. case 14: PlayerVehicles[i][j][pCarMod14] = componentid;
  1517. case 15: PlayerVehicles[i][j][pCarMod15] = componentid;
  1518. case 16: PlayerVehicles[i][j][pCarMod16] = componentid;
  1519. case 17: PlayerVehicles[i][j][pCarMod17] = componentid;
  1520. }
  1521. break;
  1522. }
  1523. }
  1524. }
  1525. return 1;
  1526. }
  1527.  
  1528. public OnFilterScriptInit()
  1529. {
  1530. new query[142];
  1531. DealerVehicleDatabase = db_open("DealershipVehicles.db");
  1532. format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `DEALERCARS` (`vID`, `vModel`, `vX`, `vY`, `vZ`, `vRot`, `vForSale`, `vPrice`)");
  1533. db_query(DealerVehicleDatabase, query);
  1534. LoadDealershipVehicles();
  1535. foreach(Player, i)
  1536. {
  1537. VehicleConnect(i);
  1538. }
  1539. return 1;
  1540. }
  1541.  
  1542. public OnFilterScriptExit()
  1543. {
  1544. SaveDealershipVehicles();
  1545. db_close(DealerVehicleDatabase);
  1546. foreach(Player, i)
  1547. {
  1548. VehicleDisconnect(i);
  1549. }
  1550. return 1;
  1551. }
  1552.  
  1553. public OnPlayerConnect(playerid)
  1554. {
  1555. VehicleConnect(playerid);
  1556. return 1;
  1557. }
  1558.  
  1559. public OnPlayerDisconnect(playerid)
  1560. {
  1561. return 1;
  1562. }
  1563.  
  1564. stock VehicleDisconnect(playerid)
  1565. {
  1566. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1567. {
  1568. if (PlayerVehicles[playerid][i][pCarOwned])
  1569. {
  1570. SavePlayerVehicle(playerid, i);
  1571. if (PlayerVehicles[playerid][i][pCarSpawned]) DestroyVehicle(PlayerVehicles[playerid][i][pCarID]);
  1572. }
  1573. }
  1574. db_close(VehicleDatabase[playerid]);
  1575. return 1;
  1576. }
  1577.  
  1578. stock VehicleConnect(playerid)
  1579. {
  1580. new string[64];
  1581. format(string, sizeof(string), "Vehicles/%s.db", PlayerName(playerid));
  1582. VehicleDatabase[playerid] = db_open(string);
  1583. CreateVehicleTables(playerid);
  1584. for (new s = 1; s < MAX_PLAYER_CARS + 1; s += 1)
  1585. {
  1586. PlayerVehicles[playerid][s][pCarModel] = 0;
  1587. PlayerVehicles[playerid][s][pCarX] = 0.0;
  1588. PlayerVehicles[playerid][s][pCarY] = 0.0;
  1589. PlayerVehicles[playerid][s][pCarZ] = 0.0;
  1590. PlayerVehicles[playerid][s][pCarRot] = 0.0;
  1591. PlayerVehicles[playerid][s][pCarColor1] = 0;
  1592. PlayerVehicles[playerid][s][pCarColor2] = 0;
  1593. PlayerVehicles[playerid][s][pCarPaintjob] = -1;
  1594. PlayerVehicles[playerid][s][pCarMod1] = 0;
  1595. PlayerVehicles[playerid][s][pCarMod2] = 0;
  1596. PlayerVehicles[playerid][s][pCarMod3] = 0;
  1597. PlayerVehicles[playerid][s][pCarMod4] = 0;
  1598. PlayerVehicles[playerid][s][pCarMod5] = 0;
  1599. PlayerVehicles[playerid][s][pCarMod6] = 0;
  1600. PlayerVehicles[playerid][s][pCarMod7] = 0;
  1601. PlayerVehicles[playerid][s][pCarMod8] = 0;
  1602. PlayerVehicles[playerid][s][pCarMod9] = 0;
  1603. PlayerVehicles[playerid][s][pCarMod10] = 0;
  1604. PlayerVehicles[playerid][s][pCarMod11] = 0;
  1605. PlayerVehicles[playerid][s][pCarMod12] = 0;
  1606. PlayerVehicles[playerid][s][pCarMod13] = 0;
  1607. PlayerVehicles[playerid][s][pCarMod14] = 0;
  1608. PlayerVehicles[playerid][s][pCarMod15] = 0;
  1609. PlayerVehicles[playerid][s][pCarMod16] = 0;
  1610. PlayerVehicles[playerid][s][pCarMod17] = 0;
  1611. PlayerVehicles[playerid][s][pCarHasLock] = 0;
  1612. PlayerVehicles[playerid][s][pCarLocked] = 0;
  1613. PlayerVehicles[playerid][s][pCarTrunkCash] = 0;
  1614. PlayerVehicles[playerid][s][pCarTrunkGun1] = 0;
  1615. PlayerVehicles[playerid][s][pCarTrunkGun2] = 0;
  1616. PlayerVehicles[playerid][s][pCarTrunkGun3] = 0;
  1617. PlayerVehicles[playerid][s][pCarTrunkGun4] = 0;
  1618. PlayerVehicles[playerid][s][pCarTrunkAmmo1] = 0;
  1619. PlayerVehicles[playerid][s][pCarTrunkAmmo2] = 0;
  1620. PlayerVehicles[playerid][s][pCarTrunkAmmo3] = 0;
  1621. PlayerVehicles[playerid][s][pCarTrunkAmmo4] = 0;
  1622. PlayerVehicles[playerid][s][pCarSpawned] = 0;
  1623. PlayerVehicles[playerid][s][pCarOwned] = 0;
  1624. PlayerVehicles[playerid][s][pCarID] = 0;
  1625. VehicleListitem[playerid][s] = -1;
  1626. }
  1627. SetPVarInt(playerid, "CarOffer", INVALID_PLAYER_ID);
  1628. LoadPlayerVehicles(playerid);
  1629. return 1;
  1630. }
  1631.  
  1632. public OnPlayerStateChange(playerid, newstate, oldstate)
  1633. {
  1634. new string[256];
  1635. if (newstate == PLAYER_STATE_DRIVER && DealershipVehicles[GetPlayerVehicleID(playerid)][vForSale])
  1636. {
  1637. if (GetVehicleModel(GetPlayerVehicleID(playerid)) == DealershipVehicles[GetPlayerVehicleID(playerid)][vModel])
  1638. {
  1639. format(string, sizeof(string), "{D5DEB3}Ova vozilo e na PRODAZBA!\n\nVozilo: {FFFFFF}%s{F5DEB3}\nCena: {FFFFFF}$%d{F5DEB3}\n\nDali sakate da go kupite ova vozilo?", GetVehicleName(GetPlayerVehicleID(playerid)), DealershipVehicles[GetPlayerVehicleID(playerid)][vPrice]);
  1640. ShowPlayerDialog(playerid, 9, DIALOG_STYLE_MSGBOX, "Prodavnica", string, "Da", "Ne");
  1641. TogglePlayerControllable(playerid, 0);
  1642. }
  1643. }
  1644. return 1;
  1645. }
  1646.  
  1647. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1648. {
  1649. new string[128];
  1650. if (dialogid == 9)
  1651. {
  1652. if (!response)
  1653. {
  1654. TogglePlayerControllable(playerid, 1);
  1655. return RemovePlayerFromVehicle(playerid);
  1656. }
  1657. else
  1658. {
  1659. if (!IsPlayerInAnyVehicle(playerid))
  1660. {
  1661. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Vie ne ste vo voziloto.");
  1662. TogglePlayerControllable(playerid, 1);
  1663. return RemovePlayerFromVehicle(playerid);
  1664. }
  1665. if (!DealershipVehicles[GetPlayerVehicleID(playerid)][vForSale])
  1666. {
  1667. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Vie ne ste vo privatno vozilo, ova e na prodazba.");
  1668. TogglePlayerControllable(playerid, 1);
  1669. return RemovePlayerFromVehicle(playerid);
  1670. }
  1671. if (GetPlayerMoney(playerid) < DealershipVehicles[GetPlayerVehicleID(playerid)][vPrice])
  1672. {
  1673. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Nemate dovolno pari da go kupite ova vozilo.");
  1674. TogglePlayerControllable(playerid, 1);
  1675. return RemovePlayerFromVehicle(playerid);
  1676. }
  1677.  
  1678. new
  1679. iModel = DealershipVehicles[GetPlayerVehicleID(playerid)][vModel],
  1680. Float:fAngle = DealershipVehicles[GetPlayerVehicleID(playerid)][vRot],
  1681. Float:fX = DealershipVehicles[GetPlayerVehicleID(playerid)][vX],
  1682. Float:fY = DealershipVehicles[GetPlayerVehicleID(playerid)][vY],
  1683. Float:fZ = DealershipVehicles[GetPlayerVehicleID(playerid)][vZ];
  1684.  
  1685. switch (iModel)
  1686. {
  1687. case 460, 464, 476, 511, 512, 513, 519, 520, 553, 577, 592, 593, 430, 446, 452, 453,
  1688. 454, 472, 473, 484, 493, 595, 417, 425, 447, 465, 469, 487, 488, 497, 501, 548, 563:
  1689. {
  1690. fX = (fX + (24.0 * floatsin(-fAngle, degrees)));
  1691. fY = (fY + (24.0 * floatcos(fAngle, degrees)));
  1692. }
  1693. default:
  1694. {
  1695. fX = (fX + (6.0 * floatsin(-fAngle, degrees)));
  1696. fY = (fY + (6.0 * floatcos(fAngle, degrees)));
  1697. }
  1698. }
  1699. switch (CreatePlayerVehicle(playerid, iModel, fX, fY, fZ, fAngle))
  1700. {
  1701. case -1:
  1702. {
  1703. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Ova vozilo ne mozete da go kupite.");
  1704. TogglePlayerControllable(playerid, 1);
  1705. return RemovePlayerFromVehicle(playerid);
  1706. }
  1707. case 0:
  1708. {
  1709. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Veke go postignavte maksimalniot broj na vozila.");
  1710. TogglePlayerControllable(playerid, 1);
  1711. return RemovePlayerFromVehicle(playerid);
  1712. }
  1713. case 1:
  1714. {
  1715. GivePlayerMoney(playerid, -DealershipVehicles[GetPlayerVehicleID(playerid)][vPrice]);
  1716. format(string, sizeof(string), "Uspesno go kupivte voziloto %s za $%d, za poveke informacii, napisete /carhelp.", GetVehicleName(GetPlayerVehicleID(playerid)), DealershipVehicles[GetPlayerVehicleID(playerid)][vPrice]);
  1717. SendClientMessage(playerid, YELLOW, string);
  1718. RemovePlayerFromVehicle(playerid);
  1719. TogglePlayerControllable(playerid, 1);
  1720. return 1;
  1721. }
  1722. }
  1723. }
  1724. }
  1725. if (dialogid == 10 && response)
  1726. {
  1727. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1728. {
  1729. if (VehicleListitem[playerid][i] == listitem)
  1730. {
  1731. if (!PlayerVehicles[playerid][i][pCarOwned]) return SendClientMessage(playerid, 0xFFFFFFFF, "An error has occurred.");
  1732. PlayerVehicles[playerid][i][pCarSpawned] = !PlayerVehicles[playerid][i][pCarSpawned];
  1733. switch (PlayerVehicles[playerid][i][pCarSpawned])
  1734. {
  1735. case 0:
  1736. {
  1737. UnlockVehicle(PlayerVehicles[playerid][i][pCarID]);
  1738. DestroyVehicle(PlayerVehicles[playerid][i][pCarID]);
  1739. PlayerVehicles[playerid][i][pCarID] = 0;
  1740. format(string, sizeof(string), "Go despawnavte vaseto vozilo %s na slot #%d.", GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), i);
  1741. SendClientMessage(playerid, 0xFFFFFFFF, string);
  1742. }
  1743. case 1:
  1744. {
  1745. PlayerVehicles[playerid][i][pCarID] = CreateVehicle(PlayerVehicles[playerid][i][pCarModel], PlayerVehicles[playerid][i][pCarX], PlayerVehicles[playerid][i][pCarY], PlayerVehicles[playerid][i][pCarZ], PlayerVehicles[playerid][i][pCarRot], PlayerVehicles[playerid][i][pCarColor1], PlayerVehicles[playerid][i][pCarColor2], -1);
  1746. ModifyVehicle(playerid, i);
  1747. format(string, sizeof(string), "Go spawnavte vaseto vozilo %s na slot #%d.", GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), i);
  1748. SendClientMessage(playerid, 0xFFFFFFFF, string);
  1749. }
  1750. }
  1751. VehicleListitem[playerid][i] = -1;
  1752. return 1;
  1753. }
  1754. }
  1755. }
  1756. if (dialogid == 11 && response)
  1757. {
  1758. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1759. {
  1760. if (VehicleListitem[playerid][i] == listitem)
  1761. {
  1762. if (!PlayerVehicles[playerid][i][pCarOwned]) return SendClientMessage(playerid, 0xFFFFFFFF, "An error has occurred.");
  1763. new iModel = PlayerVehicles[playerid][i][pCarModel];
  1764. if (DeletePlayerVehicle(playerid, i))
  1765. {
  1766. format(string, sizeof(string), "Go izbrisavte vaseto vozilo %s od slot #%d.", GetVehicleNameByModel(iModel), i);
  1767. SendClientMessage(playerid, 0xFFFFFFFF, string);
  1768. }
  1769. VehicleListitem[playerid][i] = -1;
  1770. return 1;
  1771. }
  1772. }
  1773. }
  1774. if (dialogid == 12 && response)
  1775. {
  1776. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1777. {
  1778. if (VehicleListitem[playerid][i] == listitem)
  1779. {
  1780. if (!PlayerVehicles[playerid][i][pCarOwned]) return SendClientMessage(playerid, 0xFFFFFFFF, "An error has occurred.");
  1781. SetPVarInt(playerid, "UpgradingVehicle", i);
  1782. ShowPlayerDialog(playerid, 13, DIALOG_STYLE_LIST, "Vozilo nadograduvanje", "Vozilo Zakluceno ("#LOCK_PRICE")", "Nadogradi", "Izlez");
  1783. VehicleListitem[playerid][i] = -1;
  1784. return 1;
  1785. }
  1786. }
  1787. }
  1788. if (dialogid == 13)
  1789. {
  1790. if (response)
  1791. {
  1792. new slot = GetPVarInt(playerid, "UpgradingVehicle");
  1793. if (!slot)
  1794. return SendClientMessage(playerid, 0xFFFFFFFF, "Odberete vozilo prvo!.");
  1795.  
  1796. if (!PlayerVehicles[playerid][slot][pCarOwned]) return SendClientMessage(playerid, 0xFFFFFFFF, "An error has occurred."), DeletePVar(playerid, "UpgradingVehicle");
  1797. if (PlayerVehicles[playerid][slot][pCarHasLock]) return SendClientMessage(playerid, 0xFFFFFFFF, "Ova kola veke ima kluc."), DeletePVar(playerid, "UpgradingVehicle");
  1798.  
  1799. if (GetPlayerMoney(playerid) >= LOCK_PRICE)
  1800. {
  1801. GivePlayerMoney(playerid, -LOCK_PRICE);
  1802. PlayerVehicles[playerid][slot][pCarHasLock] = 1;
  1803. SendClientMessage(playerid, YELLOW, "Vie kupivte kluc za da ja zaklucete kolata. Ova ve kostase $"#LOCK_PRICE".");
  1804. SendClientMessage(playerid, 0xFFFFFFFF, "HINT: Pisete /lock za da ja zaklucite ili otklucite kolata.");
  1805. DeletePVar(playerid, "UpgradingVehicle");
  1806. return 1;
  1807. }
  1808. else
  1809. {
  1810. SendClientMessage(playerid, 0xFFFFFFFF, "You cannot afford the lock.");
  1811. DeletePVar(playerid, "UpgradingVehicle");
  1812. }
  1813. }
  1814. else return DeletePVar(playerid, "UpgradingVehicle");
  1815. }
  1816. return 1;
  1817. }
  1818.  
  1819. CMD:kreirajvozilonabuy(playerid, params[])
  1820. {
  1821. if (IsPlayerAdmin(playerid))
  1822. {
  1823. new model, price, string[128];
  1824. if (sscanf(params, "dd", model, price)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /kreirajvozilonabuy [model] [cena]");
  1825. if (model < 400 || model > 611) return SendClientMessage(playerid, 0xFFFFFFFF, "Nevaliden model.");
  1826. new Float:x, Float:y, Float:z, Float:a;
  1827. GetPlayerPos(playerid, x, y, z);
  1828. GetPlayerFacingAngle(playerid, a);
  1829.  
  1830. new cdv = CreateDealershipVehicle(model, price, x, y, z, a);
  1831. switch (cdv)
  1832. {
  1833. case 0: return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}The vehicle could not be created.");
  1834. case 1:
  1835. {
  1836. SetPlayerPos(playerid, x, y, z + 5);
  1837. format(string, sizeof(string), "Dealership kola #%d kreirana (model: %d | cena: $%d).", cdv, model, price);
  1838. SendClientMessage(playerid, 0xFFFFFFFF, string);
  1839. SaveDealershipVehicles();
  1840. }
  1841. }
  1842. return 1;
  1843. }
  1844. else SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Nemozete da ja koristite ovaa komanda treba da se logirate kako RCON Admin.");
  1845. return 1;
  1846. }
  1847.  
  1848. CMD:izbrisivozilo(playerid, params[])
  1849. {
  1850. if (IsPlayerAdmin(playerid))
  1851. {
  1852. new vehicleid, string[128], iModel, iSQL;
  1853. if (sscanf(params, "d", vehicleid)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /izbrisivozilo [voziloid]");
  1854. if (!DealershipVehicles[vehicleid][vForSale]) return SendClientMessage(playerid, 0xFFFFFFFF, "That is not a dealership vehicle.");
  1855.  
  1856. iModel = DealershipVehicles[vehicleid][vModel];
  1857. iSQL = DealershipVehicles[vehicleid][vSQL_ID];
  1858. if (DeleteDealershipVehicle(vehicleid))
  1859. {
  1860. format(string, sizeof(string), "Ti ja izbrisa dealership kolata #%d (SQL ID: %d | Model: %s)", vehicleid, iSQL, GetVehicleNameByModel(iModel));
  1861. SendClientMessage(playerid, 0xFFFFFFFF, string);
  1862. SaveDealershipVehicles();
  1863. }
  1864. return 1;
  1865. }
  1866. else SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Nemozete da ja koristite ovaa komanda treba da se logirate kako RCON Admin.");
  1867. return 1;
  1868. }
  1869.  
  1870. CMD:parkiraj(playerid, params[])
  1871. {
  1872. if (!GetPlayerVehicleAmount(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Vie nemate nikakva kola.");
  1873. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Vie nemate nikakva kola.");
  1874. if (!GetPlayerVehicleSlot(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Vie nemate nikakva kola.");
  1875. switch (ParkVehicle(playerid, GetPlayerVehicleSlot(playerid)))
  1876. {
  1877. case -1:
  1878. {
  1879. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Vie ne ste vo voziloto.");
  1880. }
  1881. case 0:
  1882. {
  1883. SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Vie mora da ste na vozackoto mesto.");
  1884. }
  1885. case 1:
  1886. {
  1887. SendClientMessage(playerid, YELLOW, "{37F906}INFO:{FFFFFF}Uspesno go parkiravte vaseto vozilo na ovaa lokacija.");
  1888. }
  1889. }
  1890. return 1;
  1891. }
  1892.  
  1893. CMD:vozila(playerid, params[])
  1894. {
  1895. if (!GetPlayerVehicleAmount(playerid))
  1896. return SendClientMessage(playerid, 0xFFFFFFFF, "Vie nemate vozilo.");
  1897.  
  1898. new szString[128];
  1899. new szStatus[12];
  1900. new szCarString[128 * MAX_PLAYER_CARS];
  1901. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1902. {
  1903. if (PlayerVehicles[playerid][i][pCarOwned] == 0) continue;
  1904. switch (PlayerVehicles[playerid][i][pCarSpawned])
  1905. {
  1906. case 0: szStatus = "Despawned", format(szString, sizeof(szString), "#%d - %s (Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), szStatus);
  1907. case 1: szStatus = "Spawned", format(szString, sizeof(szString), "#%d - %s (ID: %d - Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), PlayerVehicles[playerid][i][pCarID], szStatus);
  1908. }
  1909. strcat(szCarString, szString);
  1910. }
  1911. ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Moj vozila", szCarString, "Izlez", "");
  1912. return 1;
  1913. }
  1914.  
  1915. CMD:spawncar(playerid, params[])
  1916. {
  1917. if (!GetPlayerVehicleAmount(playerid))
  1918. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You don't own any vehicles.");
  1919.  
  1920. new szString[128];
  1921. new szStatus[12];
  1922. new szCarString[128 * MAX_PLAYER_CARS];
  1923. new iListitem = 0;
  1924. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1925. {
  1926. if (PlayerVehicles[playerid][i][pCarOwned] == 0) continue;
  1927. switch (PlayerVehicles[playerid][i][pCarSpawned])
  1928. {
  1929. case 0: szStatus = "Despawned", format(szString, sizeof(szString), "#%d - %s (Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), szStatus);
  1930. case 1: szStatus = "Spawned", format(szString, sizeof(szString), "#%d - %s (ID: %d - Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), PlayerVehicles[playerid][i][pCarID], szStatus);
  1931. }
  1932. strcat(szCarString, szString);
  1933.  
  1934. VehicleListitem[playerid][i] = iListitem ++;
  1935. }
  1936. ShowPlayerDialog(playerid, 10, DIALOG_STYLE_LIST, "Spawn / Despawn Vehicle", szCarString, "Select", "Cancel");
  1937. return 1;
  1938. }
  1939.  
  1940. CMD:deletecar(playerid, params[])
  1941. {
  1942. if (!GetPlayerVehicleAmount(playerid))
  1943. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Vie nemate nikakvi koli.");
  1944.  
  1945. new szString[128];
  1946. new szStatus[12];
  1947. new szCarString[128 * MAX_PLAYER_CARS];
  1948. new iListitem = 0;
  1949. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1950. {
  1951. if (PlayerVehicles[playerid][i][pCarOwned] == 0) continue;
  1952. switch (PlayerVehicles[playerid][i][pCarSpawned])
  1953. {
  1954. case 0: szStatus = "Despawned", format(szString, sizeof(szString), "#%d - %s (Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), szStatus);
  1955. case 1: szStatus = "Spawned", format(szString, sizeof(szString), "#%d - %s (ID: %d - Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), PlayerVehicles[playerid][i][pCarID], szStatus);
  1956. }
  1957. strcat(szCarString, szString);
  1958.  
  1959. VehicleListitem[playerid][i] = iListitem ++;
  1960. }
  1961. ShowPlayerDialog(playerid, 11, DIALOG_STYLE_LIST, "Delete Vehicle", szCarString, "Select", "Cancel");
  1962. return 1;
  1963. }
  1964.  
  1965. CMD:upgradecar(playerid, params[])
  1966. {
  1967. if (!GetPlayerVehicleAmount(playerid))
  1968. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Ti nemas nikakvi vozila.");
  1969.  
  1970. new szString[128];
  1971. new szStatus[12];
  1972. new szCarString[128 * MAX_PLAYER_CARS];
  1973. new iListitem = 0;
  1974. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  1975. {
  1976. if (PlayerVehicles[playerid][i][pCarOwned] == 0) continue;
  1977. switch (PlayerVehicles[playerid][i][pCarSpawned])
  1978. {
  1979. case 0: szStatus = "Despawned", format(szString, sizeof(szString), "#%d - %s (Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), szStatus);
  1980. case 1: szStatus = "Spawned", format(szString, sizeof(szString), "#%d - %s (ID: %d - Status: %s)\n", i, GetVehicleNameByModel(PlayerVehicles[playerid][i][pCarModel]), PlayerVehicles[playerid][i][pCarID], szStatus);
  1981. }
  1982. strcat(szCarString, szString);
  1983.  
  1984. VehicleListitem[playerid][i] = iListitem ++;
  1985. }
  1986. ShowPlayerDialog(playerid, 12, DIALOG_STYLE_LIST, "Nadogradi Vozilo", szCarString, "Selektiraj", "Cancel");
  1987. return 1;
  1988. }
  1989.  
  1990. CMD:lock(playerid, params[])
  1991. {
  1992. if (!GetPlayerVehicleAmount(playerid))
  1993. return SendClientMessage(playerid, 0xFFFFFFFF, "Ti nemas nikakvi vozila.");
  1994.  
  1995. if (IsPlayerInAnyVehicle(playerid))
  1996. {
  1997. new vehicleid = GetPlayerVehicleID(playerid);
  1998. if (!PlayerOwnsVehicle(playerid, vehicleid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Ti ne ja poseduvas ovaa kola.");
  1999. if (PlayerVehicles[playerid][GetPlayerVehicleSlot(playerid)][pCarHasLock] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Ovaa kola nema kluc (/upgradecar za da kupis).");
  2000. VehicleLocked[vehicleid] = !VehicleLocked[vehicleid];
  2001. switch (VehicleLocked[vehicleid])
  2002. {
  2003. case 0:
  2004. {
  2005. UnlockVehicle(vehicleid);
  2006. PlayerVehicles[playerid][GetPlayerVehicleSlot(playerid)][pCarLocked] = 0;
  2007. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~w~Vozilo ~g~Otkluceno", 3000, 3);
  2008. }
  2009. case 1:
  2010. {
  2011. LockVehicle(vehicleid);
  2012. PlayerVehicles[playerid][GetPlayerVehicleSlot(playerid)][pCarLocked] = 1;
  2013. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~w~Vozilo ~r~Zakluceno", 3000, 3);
  2014. }
  2015. }
  2016. return 1;
  2017. }
  2018. else
  2019. {
  2020. new carcount;
  2021. new vehicleid = -1;
  2022. new slotid = -1;
  2023. new Float:pos[3];
  2024. for (new i = 1; i < MAX_VEHICLES; i += 1)
  2025. {
  2026. GetVehiclePos(i, pos[0], pos[1], pos[2]);
  2027. if (IsPlayerInRangeOfPoint(playerid, 3.5, pos[0], pos[1], pos[2]) && PlayerOwnsVehicle(playerid, i))
  2028. {
  2029. vehicleid = i;
  2030. carcount += 1;
  2031. break;
  2032. }
  2033. }
  2034. if (vehicleid == -1 && !carcount) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not near any vehicle that you've purchased.");
  2035. if (carcount >= 2) return SendClientMessage(playerid, 0xFFFFFFFF, "There are too many vehicles in range.");
  2036. else
  2037. {
  2038. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  2039. {
  2040. if (PlayerVehicles[playerid][i][pCarID] == vehicleid)
  2041. {
  2042. slotid = i;
  2043. break;
  2044. }
  2045. }
  2046. if (!slotid) return SendClientMessage(playerid, 0xFFFFFFFF, "You don't own this vehicle.");
  2047. if (PlayerVehicles[playerid][slotid][pCarHasLock] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "This vehicle doesn't have a lock (/upgradecar to buy one).");
  2048. VehicleLocked[vehicleid] = !VehicleLocked[vehicleid];
  2049. switch (VehicleLocked[vehicleid])
  2050. {
  2051. case 0:
  2052. {
  2053. UnlockVehicle(vehicleid);
  2054. PlayerVehicles[playerid][slotid][pCarLocked] = 0;
  2055. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~w~Vozilo ~g~Otkluceno", 3000, 3);
  2056. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  2057. }
  2058. case 1:
  2059. {
  2060. LockVehicle(vehicleid);
  2061. PlayerVehicles[playerid][slotid][pCarLocked] = 1;
  2062. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~w~Vozilo ~r~Zakluceno", 3000, 3);
  2063. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  2064. }
  2065. }
  2066. }
  2067. }
  2068. return 1;
  2069. }
  2070.  
  2071. CMD:carhelp(playerid, params[])
  2072. {
  2073. SendClientMessage(playerid, 0xFFFFFFFF, "VOZILO: /parkiraj, /vozila, /upgradecar, /lock, /sellcar.");
  2074. return 1;
  2075. }
  2076.  
  2077. CMD:prodadivozilo(playerid, params[])
  2078. {
  2079. if (!GetPlayerVehicleAmount(playerid))
  2080. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Vie nemate avtomobil.");
  2081.  
  2082. if (!IsPlayerInAnyVehicle(playerid))
  2083. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Morate da bidete vnatre vo voziloto.");
  2084.  
  2085. if (!PlayerOwnsVehicle(playerid, GetPlayerVehicleID(playerid)))
  2086. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Ova vozilo ne e vase.");
  2087.  
  2088. new userid, price, string[128];
  2089. if (sscanf(params, "ud", userid, price))
  2090. return SendClientMessage(playerid, 0xFFFFFFFF, "{37F906}KORISTI:{FFFFFF} /sellcar [target] [cena]");
  2091.  
  2092. if (!IsPlayerConnected(userid))
  2093. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Igracot ne e na serverot!");
  2094.  
  2095. if (userid == playerid)
  2096. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Nemozete da go prodadete voziloto na samiot sebesi!");
  2097.  
  2098. if (!IsPlayerNearPlayer(playerid, userid, 7.0)) return SendClientMessage(playerid, 0xFFFFFFFF, "Igracot ne e vo vasa blizina.");
  2099. format(string, sizeof(string), "* %s vi ponudi da go kupite negovoto vozilo %s za $%d (koristi /acceptcar dokolku prifakate).", PlayerName(playerid, false), GetVehicleName(GetPlayerVehicleID(playerid)), price);
  2100. SendClientMessage(userid, LIGHTBLUE, string);
  2101.  
  2102. format(string, sizeof(string), "* Igracot %s prifati da go kupi vaseto vozilo %s za $%d.", PlayerName(userid, false), GetVehicleName(GetPlayerVehicleID(playerid)), price);
  2103. SendClientMessage(playerid, LIGHTBLUE, string);
  2104.  
  2105. SetPVarInt(userid, "CarOffer", playerid);
  2106. SetPVarInt(userid, "CarPrice", price);
  2107. SetPVarInt(userid, "CarSlot", GetPlayerVehicleSlot(playerid));
  2108. return 1;
  2109. }
  2110.  
  2111. stock RemovePlayerWeapon(playerid, weaponid)
  2112. {
  2113. new weapons[12] = 0;
  2114. new ammo[12] = 0;
  2115. for (new i = 0; i < 13; i += 1)
  2116. {
  2117. new weapon, ammo2;
  2118. GetPlayerWeaponData(playerid, i, weapon, ammo2);
  2119. if ((weapon != weaponid) && (ammo2 > 0)) GetPlayerWeaponData(playerid, i, weapons[i], ammo[i]);
  2120. }
  2121. ResetPlayerWeapons(playerid);
  2122. for (new i = 0; i < 13; i += 1)
  2123. {
  2124. if(weapons[i] > 0 && ammo[i] != 0) GivePlayerWeapon(playerid, weapons[i], ammo[i]);
  2125. }
  2126. return 1;
  2127. }
  2128.  
  2129. stock GetWeaponNameEx(weaponid, weapon[], len)
  2130. {
  2131. GetWeaponName(weaponid, weapon, len);
  2132. if (weaponid == 0) format(weapon, 24, "None");
  2133. if (weaponid == 18) format(weapon, 24, "Molotov");
  2134. if (weaponid == 44) format(weapon, 24, "Nightvision Goggles");
  2135. if (weaponid == 45) format(weapon, 24, "Infrared Goggles");
  2136. return 1;
  2137. }
  2138.  
  2139. stock IsPlayerNearPlayer(playerid, targetid, Float:radius)
  2140. {
  2141. if (IsPlayerConnected(playerid) && IsPlayerConnected(targetid))
  2142. {
  2143. new Float:x, Float:y, Float:z;
  2144. GetPlayerPos(targetid, x, y, z);
  2145. if (IsPlayerInRangeOfPoint(playerid, radius, x, y, z)) return 1;
  2146. }
  2147. return 0;
  2148. }
  2149.  
  2150. stock IsPlayerNearVehicle(playerid, vehicleid, Float:radius)
  2151. {
  2152. if (IsPlayerConnected(playerid))
  2153. {
  2154. new
  2155. Float:playerFloats[3],
  2156. Float:vehicleFloats[3],
  2157. Float:fCalculation;
  2158.  
  2159. GetPlayerPos(playerid, playerFloats[0], playerFloats[1], playerFloats[2]);
  2160. GetVehiclePos(vehicleid, vehicleFloats[0], vehicleFloats[1], vehicleFloats[2]);
  2161. fCalculation = (vehicleFloats[0] - playerFloats[0]) * (vehicleFloats[0] - playerFloats[0]) + (vehicleFloats[1] - playerFloats[1]) * (vehicleFloats[1] - playerFloats[1]) + (vehicleFloats[2] - playerFloats[2]) * (vehicleFloats[2] - playerFloats[2]);
  2162. if (fCalculation <= (radius * radius))
  2163. {
  2164. if (GetPlayerVirtualWorld(playerid) == GetVehicleVirtualWorld(vehicleid))
  2165. return 1;
  2166. }
  2167. }
  2168. return 0;
  2169. }
  2170.  
  2171. CMD:acceptcar(playerid, params[])
  2172. {
  2173. new string[128];
  2174. if (GetPVarInt(playerid, "CarOffer") != INVALID_PLAYER_ID)
  2175. {
  2176. new query[192];
  2177. if (GetPVarInt(playerid, "CarOffer") != INVALID_PLAYER_ID && IsPlayerConnected(GetPVarInt(playerid, "CarOffer")))
  2178. {
  2179. if (IsPlayerNearPlayer(playerid, GetPVarInt(playerid, "CarOffer"), 7.0))
  2180. {
  2181. if (GetPlayerMoney(playerid) >= GetPVarInt(playerid, "CarPrice"))
  2182. {
  2183. if (GetPlayerVehicleAmount(playerid) < MAX_PLAYER_CARS)
  2184. {
  2185. new slot = GetPVarInt(playerid, "CarSlot");
  2186. if (PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarOwned] && PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarSpawned])
  2187. {
  2188. new slotid = -1;
  2189. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  2190. {
  2191. if (!PlayerVehicles[playerid][i][pCarOwned])
  2192. {
  2193. slotid = i;
  2194. break;
  2195. }
  2196. }
  2197. if (slotid == -1) return SendClientMessage(playerid, 0xFFFFFFFF, "Go dostignavte maksimumot na vozila!");
  2198.  
  2199. GivePlayerMoney(playerid, -GetPVarInt(playerid, "CarPrice"));
  2200. GivePlayerMoney(GetPVarInt(playerid, "CarOffer"), GetPVarInt(playerid, "CarPrice"));
  2201.  
  2202. format(string, sizeof(string), "* %s ja prifati ponuda ponuda; go prodadovte voziloto %s za $%d.", PlayerName(playerid, false), GetVehicleNameByModel(PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarModel]), GetPVarInt(playerid, "CarPrice"));
  2203. SendClientMessage(GetPVarInt(playerid, "CarOffer"), LIGHTBLUE, string);
  2204.  
  2205. format(string, sizeof(string), "* Vie go kupivte voziloto %s za $%d od igracot %s.", GetVehicleNameByModel(PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarModel]), GetPVarInt(playerid, "CarPrice"), PlayerName(GetPVarInt(playerid, "CarOffer"), false));
  2206. SendClientMessage(playerid, LIGHTBLUE, string);
  2207.  
  2208. PlayerVehicles[playerid][slotid][pCarModel] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarModel];
  2209. PlayerVehicles[playerid][slotid][pCarX] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarX];
  2210. PlayerVehicles[playerid][slotid][pCarY] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarY];
  2211. PlayerVehicles[playerid][slotid][pCarZ] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarZ];
  2212. PlayerVehicles[playerid][slotid][pCarRot] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarRot];
  2213. PlayerVehicles[playerid][slotid][pCarColor1] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarColor1];
  2214. PlayerVehicles[playerid][slotid][pCarColor2] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarColor2];
  2215. PlayerVehicles[playerid][slotid][pCarPaintjob] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarPaintjob];
  2216. PlayerVehicles[playerid][slotid][pCarMod1] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod1];
  2217. PlayerVehicles[playerid][slotid][pCarMod2] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod2];
  2218. PlayerVehicles[playerid][slotid][pCarMod3] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod3];
  2219. PlayerVehicles[playerid][slotid][pCarMod4] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod4];
  2220. PlayerVehicles[playerid][slotid][pCarMod5] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod5];
  2221. PlayerVehicles[playerid][slotid][pCarMod6] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod6];
  2222. PlayerVehicles[playerid][slotid][pCarMod7] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod7];
  2223. PlayerVehicles[playerid][slotid][pCarMod8] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod8];
  2224. PlayerVehicles[playerid][slotid][pCarMod9] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod9];
  2225. PlayerVehicles[playerid][slotid][pCarMod10] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod10];
  2226. PlayerVehicles[playerid][slotid][pCarMod11] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod11];
  2227. PlayerVehicles[playerid][slotid][pCarMod12] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod12];
  2228. PlayerVehicles[playerid][slotid][pCarMod13] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod13];
  2229. PlayerVehicles[playerid][slotid][pCarMod14] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod14];
  2230. PlayerVehicles[playerid][slotid][pCarMod15] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod15];
  2231. PlayerVehicles[playerid][slotid][pCarMod16] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod16];
  2232. PlayerVehicles[playerid][slotid][pCarMod17] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod17];
  2233. PlayerVehicles[playerid][slotid][pCarHasLock] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarHasLock];
  2234. PlayerVehicles[playerid][slotid][pCarLocked] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarLocked];
  2235. PlayerVehicles[playerid][slotid][pCarTrunkCash] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkCash];
  2236. PlayerVehicles[playerid][slotid][pCarTrunkGun1] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun1];
  2237. PlayerVehicles[playerid][slotid][pCarTrunkGun2] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun2];
  2238. PlayerVehicles[playerid][slotid][pCarTrunkGun3] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun3];
  2239. PlayerVehicles[playerid][slotid][pCarTrunkGun4] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun4];
  2240. PlayerVehicles[playerid][slotid][pCarTrunkAmmo1] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo1];
  2241. PlayerVehicles[playerid][slotid][pCarTrunkAmmo2] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo2];
  2242. PlayerVehicles[playerid][slotid][pCarTrunkAmmo3] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo3];
  2243. PlayerVehicles[playerid][slotid][pCarTrunkAmmo4] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo4];
  2244. PlayerVehicles[playerid][slotid][pCarSpawned] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarSpawned];
  2245. PlayerVehicles[playerid][slotid][pCarOwned] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarOwned];
  2246. PlayerVehicles[playerid][slotid][pCarID] = PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarID];
  2247.  
  2248. format(query, sizeof(query), "DELETE FROM `VEHICLES` WHERE `Name` = '%s' AND `Slot` = '%d'", PlayerName(GetPVarInt(playerid, "CarOffer")), slot);
  2249. db_query(VehicleDatabase[GetPVarInt(playerid, "CarOffer")], query);
  2250. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarModel] = 0;
  2251. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarX] = 0.0;
  2252. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarY] = 0.0;
  2253. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarZ] = 0.0;
  2254. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarRot] = 0.0;
  2255. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarColor1] = 0;
  2256. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarColor2] = 0;
  2257. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarPaintjob] = -1;
  2258. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod1] = 0;
  2259. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod2] = 0;
  2260. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod3] = 0;
  2261. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod4] = 0;
  2262. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod5] = 0;
  2263. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod6] = 0;
  2264. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod7] = 0;
  2265. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod8] = 0;
  2266. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod9] = 0;
  2267. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod10] = 0;
  2268. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod11] = 0;
  2269. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod12] = 0;
  2270. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod13] = 0;
  2271. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod14] = 0;
  2272. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod15] = 0;
  2273. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod16] = 0;
  2274. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarMod17] = 0;
  2275. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarHasLock] = 0;
  2276. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarLocked] = 0;
  2277. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkCash] = 0;
  2278. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun1] = 0;
  2279. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun2] = 0;
  2280. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun3] = 0;
  2281. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkGun4] = 0;
  2282. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo1] = 0;
  2283. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo2] = 0;
  2284. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo3] = 0;
  2285. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarTrunkAmmo4] = 0;
  2286. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarSpawned] = 0;
  2287. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarOwned] = 0;
  2288. PlayerVehicles[GetPVarInt(playerid, "CarOffer")][slot][pCarID] = 0;
  2289.  
  2290. SetPVarInt(playerid, "CarOffer", INVALID_PLAYER_ID);
  2291. DeletePVar(playerid, "CarPrice");
  2292. DeletePVar(playerid, "CarSlot");
  2293. return 1;
  2294. }
  2295. }
  2296. else return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Go dostignavte maksimumot za kupuvanej na vozila.");
  2297. }
  2298. else return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You can't afford that.");
  2299. }
  2300. else return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You are not near the player who offered you the car.");
  2301. }
  2302. else return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}Nobody offered you a car.");
  2303. }
  2304. return 1;
  2305. }
  2306.  
  2307. CMD:trunkput(playerid, params[])
  2308. {
  2309. new carcount;
  2310. new slotid = -1;
  2311. new string[128];
  2312. if (IsPlayerInAnyVehicle(playerid))
  2313. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You cannot use this command while inside a vehicle.");
  2314. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  2315. {
  2316. if (!PlayerVehicles[playerid][i][pCarOwned]) continue;
  2317. if (!PlayerVehicles[playerid][i][pCarSpawned]) continue;
  2318. if (IsPlayerNearVehicle(playerid, PlayerVehicles[playerid][i][pCarID], 3.5))
  2319. {
  2320. slotid = i;
  2321. carcount += 1;
  2322. }
  2323. }
  2324. if (slotid == -1 && !carcount)
  2325. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You are not near any vehicle that you've purchased.");
  2326.  
  2327. if (carcount >= 2)
  2328. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}There are too many vehicles in range.");
  2329.  
  2330. new name[24], value;
  2331. if (sscanf(params, "sd", name, value)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /trunkput [name] [value]"), SendClientMessage(playerid, 0xFFFFFFFF, "Available names: cash, weapon");
  2332. if (strlen(name) > 22) return 1;
  2333. if (strcmp(name, "cash", true) == 0)
  2334. {
  2335. if (GetPlayerMoney(playerid) <= 0)
  2336. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You don't have any money.");
  2337.  
  2338. if (value > GetPlayerMoney(playerid) || value < 1)
  2339. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You don't have that much.");
  2340.  
  2341. PlayerVehicles[playerid][slotid][pCarTrunkCash] += value;
  2342. GivePlayerMoney(playerid, -value);
  2343. format(string, sizeof(string), "You have stored $%d into your vehicle.", value);
  2344. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2345. return 1;
  2346. }
  2347. if (strcmp(name, "weapon", true) == 0)
  2348. {
  2349. if (!GetPlayerWeapon(playerid))
  2350. return SendClientMessage(playerid, 0xFFFFFFFF, "You must equip the weapon you're storing.");
  2351.  
  2352. if (value < 1 || value > 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Invalid slot. Slots range from 1-4.");
  2353. if (value == 1 && PlayerVehicles[playerid][slotid][pCarTrunkGun1]) return SendClientMessage(playerid, 0xFFFFFFFF, "You already have a weapon in that slot.");
  2354. if (value == 2 && PlayerVehicles[playerid][slotid][pCarTrunkGun2]) return SendClientMessage(playerid, 0xFFFFFFFF, "You already have a weapon in that slot.");
  2355. if (value == 3 && PlayerVehicles[playerid][slotid][pCarTrunkGun3]) return SendClientMessage(playerid, 0xFFFFFFFF, "You already have a weapon in that slot.");
  2356. if (value == 4 && PlayerVehicles[playerid][slotid][pCarTrunkGun4]) return SendClientMessage(playerid, 0xFFFFFFFF, "You already have a weapon in that slot.");
  2357.  
  2358. new weapon[24];
  2359. GetWeaponNameEx(GetPlayerWeapon(playerid), weapon, 24);
  2360.  
  2361. switch (value)
  2362. {
  2363. case 1: { PlayerVehicles[playerid][slotid][pCarTrunkGun1] = GetPlayerWeapon(playerid); PlayerVehicles[playerid][slotid][pCarTrunkAmmo1] = GetPlayerAmmo(playerid); }
  2364. case 2: { PlayerVehicles[playerid][slotid][pCarTrunkGun2] = GetPlayerWeapon(playerid); PlayerVehicles[playerid][slotid][pCarTrunkAmmo2] = GetPlayerAmmo(playerid); }
  2365. case 3: { PlayerVehicles[playerid][slotid][pCarTrunkGun3] = GetPlayerWeapon(playerid); PlayerVehicles[playerid][slotid][pCarTrunkAmmo3] = GetPlayerAmmo(playerid); }
  2366. case 4: { PlayerVehicles[playerid][slotid][pCarTrunkGun4] = GetPlayerWeapon(playerid); PlayerVehicles[playerid][slotid][pCarTrunkAmmo4] = GetPlayerAmmo(playerid); }
  2367. }
  2368. RemovePlayerWeapon(playerid, GetPlayerWeapon(playerid));
  2369. format(string, sizeof(string), "You have stored a %s into slot %d of your vehicle.", weapon, value);
  2370. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2371. return 1;
  2372. }
  2373. return 1;
  2374. }
  2375.  
  2376. CMD:trunktake(playerid, params[])
  2377. {
  2378. new carcount;
  2379. new slotid = -1;
  2380. new string[128];
  2381. if (IsPlayerInAnyVehicle(playerid))
  2382. return SendClientMessage(playerid, 0xFFFFFFFF, "You cannot use this command while inside a vehicle.");
  2383. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  2384. {
  2385. if (!PlayerVehicles[playerid][i][pCarOwned]) continue;
  2386. if (!PlayerVehicles[playerid][i][pCarSpawned]) continue;
  2387. if (IsPlayerNearVehicle(playerid, PlayerVehicles[playerid][i][pCarID], 3.5))
  2388. {
  2389. slotid = i;
  2390. carcount += 1;
  2391. }
  2392. }
  2393. if (slotid == -1 && !carcount)
  2394. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}You are not near any vehicle that you've purchased.");
  2395.  
  2396. if (carcount >= 2)
  2397. return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}GRESKA:{FFFFFF}There are too many vehicles in range.");
  2398.  
  2399. new name[24], value;
  2400. if (sscanf(params, "sd", name, value)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /trunktake [name] [value]"), SendClientMessage(playerid, 0xFFFFFFFF, "Available names: cash, weapon");
  2401. if (strlen(name) > 22) return 1;
  2402. if (strcmp(name, "cash", true) == 0)
  2403. {
  2404. if (PlayerVehicles[playerid][slotid][pCarTrunkCash] <= 0)
  2405. return SendClientMessage(playerid, 0xFFFFFFFF, "You don't have any money in your trunk.");
  2406.  
  2407. if (value > PlayerVehicles[playerid][slotid][pCarTrunkCash] || value < 1)
  2408. return SendClientMessage(playerid, 0xFFFFFFFF, "You don't have that much money in your trunk.");
  2409.  
  2410. PlayerVehicles[playerid][slotid][pCarTrunkCash] -= value;
  2411. GivePlayerMoney(playerid, value);
  2412. format(string, sizeof(string), "You have taken $%d from your vehicle.", value);
  2413. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2414. return 1;
  2415. }
  2416. if (strcmp(name, "weapon", true) == 0)
  2417. {
  2418. new weaponid, ammo;
  2419. if (value < 1 || value > 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Invalid slot. Slots range from 1-4.");
  2420. switch (value)
  2421. {
  2422. case 1: { weaponid = PlayerVehicles[playerid][slotid][pCarTrunkGun1]; ammo = PlayerVehicles[playerid][slotid][pCarTrunkAmmo1]; }
  2423. case 2: { weaponid = PlayerVehicles[playerid][slotid][pCarTrunkGun2]; ammo = PlayerVehicles[playerid][slotid][pCarTrunkAmmo2]; }
  2424. case 3: { weaponid = PlayerVehicles[playerid][slotid][pCarTrunkGun3]; ammo = PlayerVehicles[playerid][slotid][pCarTrunkAmmo3]; }
  2425. case 4: { weaponid = PlayerVehicles[playerid][slotid][pCarTrunkGun4]; ammo = PlayerVehicles[playerid][slotid][pCarTrunkAmmo4]; }
  2426. }
  2427. if (!weaponid) return SendClientMessage(playerid, 0xFFFFFFFF, "You don't have any weapon in that slot.");
  2428.  
  2429. new weapon[24];
  2430. GetWeaponNameEx(weaponid, weapon, 24);
  2431. if (value == 1) PlayerVehicles[playerid][slotid][pCarTrunkGun1] = 0, PlayerVehicles[playerid][slotid][pCarTrunkAmmo1] = 0;
  2432. if (value == 2) PlayerVehicles[playerid][slotid][pCarTrunkGun2] = 0, PlayerVehicles[playerid][slotid][pCarTrunkAmmo2] = 0;
  2433. if (value == 3) PlayerVehicles[playerid][slotid][pCarTrunkGun3] = 0, PlayerVehicles[playerid][slotid][pCarTrunkAmmo3] = 0;
  2434. if (value == 4) PlayerVehicles[playerid][slotid][pCarTrunkGun4] = 0, PlayerVehicles[playerid][slotid][pCarTrunkAmmo4] = 0;
  2435.  
  2436. GivePlayerWeapon(playerid, weaponid, ammo);
  2437. format(string, sizeof(string), "You have taken a %s from slot %d of your vehicle.", weapon, value);
  2438. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2439. return 1;
  2440. }
  2441. return 1;
  2442. }
  2443.  
  2444. CMD:trunkbalance(playerid, params[])
  2445. {
  2446. new carcount;
  2447. new slotid = -1;
  2448. new string[128];
  2449. if (IsPlayerInAnyVehicle(playerid))
  2450. return SendClientMessage(playerid, 0xFFFFFFFF, "You cannot use this command while inside a vehicle.");
  2451. for (new i = 1; i < MAX_PLAYER_CARS + 1; i += 1)
  2452. {
  2453. if (!PlayerVehicles[playerid][i][pCarOwned]) continue;
  2454. if (!PlayerVehicles[playerid][i][pCarSpawned]) continue;
  2455. if (IsPlayerNearVehicle(playerid, PlayerVehicles[playerid][i][pCarID], 3.5))
  2456. {
  2457. slotid = i;
  2458. carcount += 1;
  2459. }
  2460. }
  2461. if (slotid == -1 && !carcount)
  2462. return SendClientMessage(playerid, 0xFFFFFFFF, "You are not near any vehicle that you've purchased.");
  2463.  
  2464. if (carcount >= 2)
  2465. return SendClientMessage(playerid, 0xFFFFFFFF, "There are too many vehicles in range.");
  2466.  
  2467. new weapon1[24];
  2468. new weapon2[24];
  2469. new weapon3[24];
  2470. new weapon4[24];
  2471.  
  2472. GetWeaponNameEx(PlayerVehicles[playerid][slotid][pCarTrunkGun1], weapon1, 24);
  2473. GetWeaponNameEx(PlayerVehicles[playerid][slotid][pCarTrunkGun2], weapon2, 24);
  2474. GetWeaponNameEx(PlayerVehicles[playerid][slotid][pCarTrunkGun3], weapon3, 24);
  2475. GetWeaponNameEx(PlayerVehicles[playerid][slotid][pCarTrunkGun4], weapon4, 24);
  2476.  
  2477. SendClientMessage(playerid, GREEN, "_________________________________");
  2478. SendClientMessage(playerid, 0xFFFFFFFF, "** Trunk Balance **");
  2479. format(string, sizeof(string), "Cash: $%d", PlayerVehicles[playerid][slotid][pCarTrunkCash]);
  2480. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2481. format(string, sizeof(string), "Weapon 1: %s | Ammo: %d", weapon1, PlayerVehicles[playerid][slotid][pCarTrunkAmmo1]);
  2482. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2483. format(string, sizeof(string), "Weapon 2: %s | Ammo: %d", weapon2, PlayerVehicles[playerid][slotid][pCarTrunkAmmo2]);
  2484. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2485. format(string, sizeof(string), "Weapon 3: %s | Ammo: %d", weapon3, PlayerVehicles[playerid][slotid][pCarTrunkAmmo3]);
  2486. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2487. format(string, sizeof(string), "Weapon 4: %s | Ammo: %d", weapon4, PlayerVehicles[playerid][slotid][pCarTrunkAmmo4]);
  2488. SendClientMessage(playerid, 0xFFFFFFFF, string);
  2489. SendClientMessage(playerid, GREEN, "_________________________________");
  2490. return 1;
  2491. }
Advertisement
Add Comment
Please, Sign In to add comment