Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 77.25 KB | None | 0 0
  1. // Car Dealership System.
  2.  
  3. #include <a_samp>
  4. #include <dini>
  5.  
  6. enum car_info
  7. {
  8. Model,
  9. Price,
  10. Float:CarX,
  11. Float:CarY,
  12. Float:CarZ,
  13. Float:CarRot,
  14. Locked,
  15. mod1,
  16. mod2,
  17. mod3,
  18. mod4,
  19. mod5,
  20. mod6,
  21. mod7,
  22. mod8,
  23. mod9,
  24. mod10,
  25. mod11,
  26. mod12,
  27. mod13,
  28. mod14,
  29. mod15,
  30. mod16,
  31. mod17,
  32. paintjob,
  33. colora,
  34. colorb
  35. };
  36. new VehicleInfo[MAX_PLAYERS][car_info];
  37. new DealerCars[8];
  38. new Text3D:DealerCar[8];
  39. new Vehicle[MAX_PLAYERS];
  40. new OwnerID[MAX_VEHICLES];
  41. new CarPrice[MAX_VEHICLES];
  42. new VehOwned[MAX_VEHICLES];
  43. new ConfirmSale[MAX_PLAYERS];
  44. new gVehLocked[MAX_VEHICLES];
  45. new VehPlate[MAX_VEHICLES][256];
  46. new gPlayerHasCar[MAX_PLAYERS];
  47. new IsADealerCar[MAX_VEHICLES];
  48. new Checkpoint[MAX_PLAYERS];
  49. new bool:Destroyed[MAX_VEHICLES];
  50.  
  51. enum trunk_info
  52. {
  53. Slot1,
  54. Slot2,
  55. Slot3,
  56. Slot4,
  57. Slot5,
  58. Slot6,
  59. Slot7,
  60. Slot8,
  61. Slot9,
  62. Slot10,
  63. Ammo1,
  64. Ammo2,
  65. Ammo3,
  66. Ammo4,
  67. Ammo5,
  68. Ammo6,
  69. Ammo7,
  70. Ammo8,
  71. Ammo9,
  72. Ammo10
  73. };
  74. new TrunkInfo[MAX_VEHICLES][trunk_info];
  75. new TrunkOpen[MAX_VEHICLES];
  76.  
  77. forward RemovePlayerWeapon(playerid, weaponid);
  78. forward ini_GetKey(line[]);
  79. forward ini_GetValue(line[]);
  80. forward SaveTrunk(playerid);
  81. forward LoadTrunk(playerid);
  82.  
  83. stock ini_GetKey(line[])
  84. {
  85. new keyRes[256];
  86. keyRes[0] = 0;
  87. if(strfind(line, "=", true) == -1) return keyRes;
  88. strmid(keyRes, line, 0, strfind(line, "=", true), sizeof(keyRes));
  89. return keyRes;
  90. }
  91.  
  92. stock ini_GetValue(line[])
  93. {
  94. new valRes[256];
  95. valRes[0] = 0;
  96. if(strfind(line, "=", true) == -1) return valRes;
  97. strmid(valRes, line, strfind(line, "=", true) + 1, strlen(line), sizeof(valRes));
  98. return valRes;
  99. }
  100.  
  101. new spoiler[20][0] = {
  102. {1000},
  103. {1001},
  104. {1002},
  105. {1003},
  106. {1014},
  107. {1015},
  108. {1016},
  109. {1023},
  110. {1058},
  111. {1060},
  112. {1049},
  113. {1050},
  114. {1138},
  115. {1139},
  116. {1146},
  117. {1147},
  118. {1158},
  119. {1162},
  120. {1163},
  121. {1164}
  122. };
  123.  
  124. new nitro[3][0] = {
  125. {1008},
  126. {1009},
  127. {1010}
  128. };
  129.  
  130. new fbumper[23][0] = {
  131. {1117},
  132. {1152},
  133. {1153},
  134. {1155},
  135. {1157},
  136. {1160},
  137. {1165},
  138. {1167},
  139. {1169},
  140. {1170},
  141. {1171},
  142. {1172},
  143. {1173},
  144. {1174},
  145. {1175},
  146. {1179},
  147. {1181},
  148. {1182},
  149. {1185},
  150. {1188},
  151. {1189},
  152. {1192},
  153. {1193}
  154. };
  155.  
  156. new rbumper[22][0] = {
  157. {1140},
  158. {1141},
  159. {1148},
  160. {1149},
  161. {1150},
  162. {1151},
  163. {1154},
  164. {1156},
  165. {1159},
  166. {1161},
  167. {1166},
  168. {1168},
  169. {1176},
  170. {1177},
  171. {1178},
  172. {1180},
  173. {1183},
  174. {1184},
  175. {1186},
  176. {1187},
  177. {1190},
  178. {1191}
  179. };
  180.  
  181. new exhaust[28][0] = {
  182. {1018},
  183. {1019},
  184. {1020},
  185. {1021},
  186. {1022},
  187. {1028},
  188. {1029},
  189. {1037},
  190. {1043},
  191. {1044},
  192. {1045},
  193. {1046},
  194. {1059},
  195. {1064},
  196. {1065},
  197. {1066},
  198. {1089},
  199. {1092},
  200. {1104},
  201. {1105},
  202. {1113},
  203. {1114},
  204. {1126},
  205. {1127},
  206. {1129},
  207. {1132},
  208. {1135},
  209. {1136}
  210. };
  211.  
  212. new bventr[2][0] = {
  213. {1042},
  214. {1044}
  215. };
  216.  
  217. new bventl[2][0] = {
  218. {1043},
  219. {1045}
  220. };
  221.  
  222. new bscoop[4][0] = {
  223. {1004},
  224. {1005},
  225. {1011},
  226. {1012}
  227. };
  228.  
  229. new rscoop[13][0] = {
  230. {1006},
  231. {1032},
  232. {1033},
  233. {1035},
  234. {1038},
  235. {1053},
  236. {1054},
  237. {1055},
  238. {1061},
  239. {1067},
  240. {1068},
  241. {1088},
  242. {1091}
  243. };
  244.  
  245. new lskirt[21][0] = {
  246. {1007},
  247. {1026},
  248. {1031},
  249. {1036},
  250. {1039},
  251. {1042},
  252. {1047},
  253. {1048},
  254. {1056},
  255. {1057},
  256. {1069},
  257. {1070},
  258. {1090},
  259. {1093},
  260. {1106},
  261. {1108},
  262. {1118},
  263. {1119},
  264. {1133},
  265. {1122},
  266. {1134}
  267. };
  268.  
  269. new rskirt[21][0] = {
  270. {1017},
  271. {1027},
  272. {1030},
  273. {1040},
  274. {1041},
  275. {1051},
  276. {1052},
  277. {1062},
  278. {1063},
  279. {1071},
  280. {1072},
  281. {1094},
  282. {1095},
  283. {1099},
  284. {1101},
  285. {1102},
  286. {1107},
  287. {1120},
  288. {1121},
  289. {1124},
  290. {1137}
  291. };
  292.  
  293. new hydraulics[1][0] = {
  294. {1087}
  295. };
  296.  
  297. new base[1][0] = {
  298. {1086}
  299. };
  300.  
  301. new rbbars[2][0] = {
  302. {1109},
  303. {1110}
  304. };
  305.  
  306. new fbbars[2][0] = {
  307. {1115},
  308. {1116}
  309. };
  310.  
  311. new wheels[17][0] = {
  312. {1025},
  313. {1073},
  314. {1074},
  315. {1075},
  316. {1076},
  317. {1077},
  318. {1078},
  319. {1079},
  320. {1080},
  321. {1081},
  322. {1082},
  323. {1083},
  324. {1084},
  325. {1085},
  326. {1096},
  327. {1097},
  328. {1098}
  329. };
  330.  
  331. new light[2][0] = {
  332. {1013},
  333. {1024}
  334. };
  335.  
  336. InitComponents(componentid)
  337. {
  338. new i;
  339. for(i=0; i<20; i++)
  340. {
  341. if(spoiler[i][0]==componentid) { return 1; }
  342. }
  343. for(i=0; i<3; i++)
  344. {
  345. if(nitro[i][0]==componentid) { return 2; }
  346. }
  347. for(i=0; i<23; i++)
  348. {
  349. if(fbumper[i][0]==componentid) { return 3; }
  350. }
  351. for(i=0; i<22; i++)
  352. {
  353. if(rbumper[i][0]==componentid) { return 4; }
  354. }
  355. for(i=0; i<28; i++)
  356. {
  357. if(exhaust[i][0]==componentid) { return 5; }
  358. }
  359. for(i=0; i<2; i++)
  360. {
  361. if(bventr[i][0]==componentid) { return 6; }
  362. }
  363. for(i=0; i<2; i++)
  364. {
  365. if(bventl[i][0]==componentid) { return 7; }
  366. }
  367. for(i=0; i<4; i++)
  368. {
  369. if(bscoop[i][0]==componentid) { return 8; }
  370. }
  371. for(i=0; i<13; i++)
  372. {
  373. if(rscoop[i][0]==componentid) { return 9; }
  374. }
  375. for(i=0; i<21; i++)
  376. {
  377. if(lskirt[i][0]==componentid) { return 10; }
  378. }
  379. for(i=0; i<21; i++)
  380. {
  381. if(rskirt[i][0]==componentid) { return 11; }
  382. }
  383. if(hydraulics[0][0]==componentid) { return 12; }
  384. if(base[0][0]==componentid) { return 13; }
  385. for(i=0; i<2; i++)
  386. {
  387. if(rbbars[i][0]==componentid) { return 14; }
  388. }
  389. for(i=0; i<2; i++)
  390. {
  391. if(fbbars[i][0]==componentid) { return 15; }
  392. }
  393. for(i=0; i<17; i++)
  394. {
  395. if(wheels[i][0]==componentid) { return 16; }
  396. }
  397. for(i=0; i<2; i++)
  398. {
  399. if(light[i][0]==componentid) { return 17; }
  400. }
  401. return 0;
  402. }
  403.  
  404. stock GetVehicleNameFromID(vehicleid)
  405. {
  406. static const scVehicleNames[][18] = {
  407. "Landstalker",
  408. "Bravura",
  409. "Buffalo",
  410. "Linerunner",
  411. "Perrenial",
  412. "Sentinel",
  413. "Dumper",
  414. "Firetruck",
  415. "Trashmaster",
  416. "Stretch",
  417. "Manana",
  418. "Infernus",
  419. "Voodoo",
  420. "Pony",
  421. "Mule",
  422. "Cheetah",
  423. "Ambulance",
  424. "Leviathan",
  425. "Moonbeam",
  426. "Esperanto",
  427. "Taxi",
  428. "Washington",
  429. "Bobcat",
  430. "Mr Whoopee",
  431. "BF Injection",
  432. "Hunter",
  433. "Premier",
  434. "Enforcer",
  435. "Securicar",
  436. "Banshee",
  437. "Predator",
  438. "Bus",
  439. "Rhino",
  440. "Barracks",
  441. "Hotknife",
  442. "Trailer 1",
  443. "Previon",
  444. "Coach",
  445. "Cabbie",
  446. "Stallion",
  447. "Rumpo",
  448. "RC Bandit",
  449. "Romero",
  450. "Packer",
  451. "Monster",
  452. "Admiral",
  453. "Squalo",
  454. "Seasparrow",
  455. "Pizzaboy",
  456. "Tram",
  457. "Trailer 2",
  458. "Turismo",
  459. "Speeder",
  460. "Reefer",
  461. "Tropic",
  462. "Flatbed",
  463. "Yankee",
  464. "Caddy",
  465. "Solair",
  466. "Berkley's RC Van",
  467. "Skimmer",
  468. "PCJ-600",
  469. "Faggio",
  470. "Freeway",
  471. "RC Baron",
  472. "RC Raider",
  473. "Glendale",
  474. "Oceanic",
  475. "Sanchez",
  476. "Sparrow",
  477. "Patriot",
  478. "Quad",
  479. "Coastguard",
  480. "Dinghy",
  481. "Hermes",
  482. "Sabre",
  483. "Rustler",
  484. "ZR-350",
  485. "Walton",
  486. "Regina",
  487. "Comet",
  488. "BMX",
  489. "Burrito",
  490. "Camper",
  491. "Marquis",
  492. "Baggage",
  493. "Dozer",
  494. "Maverick",
  495. "News Chopper",
  496. "Rancher",
  497. "FBI Rancher",
  498. "Virgo",
  499. "Greenwood",
  500. "Jetmax",
  501. "Hotring",
  502. "Sandking",
  503. "Blista Compact",
  504. "Police Maverick",
  505. "Boxville",
  506. "Benson",
  507. "Mesa",
  508. "RC Goblin",
  509. "Hotring Racer A",
  510. "Hotring Racer B",
  511. "Bloodring Banger",
  512. "Rancher",
  513. "Super GT",
  514. "Elegant",
  515. "Journey",
  516. "Bike",
  517. "Mountain Bike",
  518. "Beagle",
  519. "Cropdust",
  520. "Stunt",
  521. "Tanker",
  522. "Roadtrain",
  523. "Nebula",
  524. "Majestic",
  525. "Buccaneer",
  526. "Shamal",
  527. "Hydra",
  528. "FCR-900",
  529. "NRG-500",
  530. "HPV1000",
  531. "Cement Truck",
  532. "Tow Truck",
  533. "Fortune",
  534. "Cadrona",
  535. "FBI Truck",
  536. "Willard",
  537. "Forklift",
  538. "Tractor",
  539. "Combine",
  540. "Feltzer",
  541. "Remington",
  542. "Slamvan",
  543. "Blade",
  544. "Freight",
  545. "Streak",
  546. "Vortex",
  547. "Vincent",
  548. "Bullet",
  549. "Clover",
  550. "Sadler",
  551. "Firetruck LA",
  552. "Hustler",
  553. "Intruder",
  554. "Primo",
  555. "Cargobob",
  556. "Tampa",
  557. "Sunrise",
  558. "Merit",
  559. "Utility",
  560. "Nevada",
  561. "Yosemite",
  562. "Windsor",
  563. "Monster A",
  564. "Monster B",
  565. "Uranus",
  566. "Jester",
  567. "Sultan",
  568. "Stratum",
  569. "Elegy",
  570. "Raindance",
  571. "RC Tiger",
  572. "Flash",
  573. "Tahoma",
  574. "Savanna",
  575. "Bandito",
  576. "Freight Flat",
  577. "Streak Carriage",
  578. "Kart",
  579. "Mower",
  580. "Duneride",
  581. "Sweeper",
  582. "Broadway",
  583. "Tornado",
  584. "AT-400",
  585. "DFT-30",
  586. "Huntley",
  587. "Stafford",
  588. "BF-400",
  589. "Newsvan",
  590. "Tug",
  591. "Trailer 3",
  592. "Emperor",
  593. "Wayfarer",
  594. "Euros",
  595. "Hotdog",
  596. "Club",
  597. "Freight Carriage",
  598. "Trailer 3",
  599. "Andromada",
  600. "Dodo",
  601. "RC Cam",
  602. "Launch",
  603. "LS Police Car",
  604. "SF Police Car",
  605. "LV Police Car",
  606. "Police Ranger",
  607. "Picador",
  608. "S.W.A.T. Van",
  609. "Alpha",
  610. "Phoenix",
  611. "Glendale",
  612. "Sadler",
  613. "Luggage Trailer A",
  614. "Luggage Trailer B",
  615. "Stair Trailer",
  616. "Boxville",
  617. "Farm Plow",
  618. "Utility Trailer"
  619. },
  620. scOnFoot[18] = "OnFoot";
  621. if (vehicleid > 0) {
  622. return scVehicleNames[GetVehicleModel(vehicleid) - 400];
  623. }
  624. else {
  625. return scOnFoot;
  626. }
  627. }
  628.  
  629. public OnFilterScriptInit()
  630. {
  631. new string[32], string2[32], string3[32], string4[32], string5[32], string6[32], string7[32], string8[32];
  632. DealerCars[0] = AddStaticVehicle(546,2135.7805,-1147.6683,24.2358,45.7344,1,1); // Intruder
  633. DealerCars[1] = AddStaticVehicle(547,2136.1267,-1142.5652,24.8062,48.5747,1,1); // Primo
  634. DealerCars[2] = AddStaticVehicle(550,2136.2810,-1137.8374,25.3877,49.0252,1,1); // Sunrise
  635. DealerCars[3] = AddStaticVehicle(551,2136.1887,-1132.9510,25.4904,50.6219,1,1); // Merit
  636. DealerCars[4] = AddStaticVehicle(554,2120.1875,-1122.7693,25.4782,236.7405,1,1); // Yosemite
  637. DealerCars[5] = AddStaticVehicle(561,2119.2405,-1127.4752,25.1522,235.1129,1,1); // Stratum
  638. DealerCars[6] = AddStaticVehicle(585,2119.3145,-1132.3177,24.8819,236.2470,1,1); // Emperor
  639. DealerCars[7] = AddStaticVehicle(579,2119.3181,-1136.4448,25.1078,231.7601,1,1); // Huntley
  640. IsADealerCar[DealerCars[0]] = true;
  641. IsADealerCar[DealerCars[1]] = true;
  642. IsADealerCar[DealerCars[2]] = true;
  643. IsADealerCar[DealerCars[3]] = true;
  644. IsADealerCar[DealerCars[4]] = true;
  645. IsADealerCar[DealerCars[5]] = true;
  646. IsADealerCar[DealerCars[6]] = true;
  647. IsADealerCar[DealerCars[7]] = true;
  648. CarPrice[DealerCars[0]] = 15000;
  649. CarPrice[DealerCars[1]] = 20000;
  650. CarPrice[DealerCars[2]] = 22500;
  651. CarPrice[DealerCars[3]] = 23500;
  652. CarPrice[DealerCars[4]] = 10000;
  653. CarPrice[DealerCars[5]] = 9000;
  654. CarPrice[DealerCars[6]] = 11500;
  655. CarPrice[DealerCars[7]] = 26500;
  656. format(string, sizeof(string), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[0]), CarPrice[DealerCars[0]]);
  657. format(string2, sizeof(string2), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[1]), CarPrice[DealerCars[1]]);
  658. format(string3, sizeof(string3), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[2]), CarPrice[DealerCars[2]]);
  659. format(string4, sizeof(string4), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[3]), CarPrice[DealerCars[3]]);
  660. format(string5, sizeof(string5), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[4]), CarPrice[DealerCars[4]]);
  661. format(string6, sizeof(string6), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[5]), CarPrice[DealerCars[5]]);
  662. format(string7, sizeof(string7), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[6]), CarPrice[DealerCars[6]]);
  663. format(string8, sizeof(string8), "Name: %s\nPrice: $%i", GetVehicleNameFromID(DealerCars[7]), CarPrice[DealerCars[7]]);
  664. DealerCar[0] = Create3DTextLabel(string, 0x33CCFFAA, 2135.7805,-1147.6683,24.2358, 20.0, 0);
  665. DealerCar[1] = Create3DTextLabel(string2, 0x33CCFFAA, 2136.1267,-1142.5652,24.8062, 20.0, 0);
  666. DealerCar[2] = Create3DTextLabel(string3, 0x33CCFFAA, 2136.2810,-1137.8374,25.3877, 20.0, 0);
  667. DealerCar[3] = Create3DTextLabel(string4, 0x33CCFFAA, 2136.1887,-1132.9510,25.4904, 20.0, 0);
  668. DealerCar[4] = Create3DTextLabel(string5, 0x33CCFFAA, 2120.1875,-1122.7693,25.4782, 20.0, 0);
  669. DealerCar[5] = Create3DTextLabel(string6, 0x33CCFFAA, 2119.2405,-1127.4752,25.1522, 20.0, 0);
  670. DealerCar[6] = Create3DTextLabel(string7, 0x33CCFFAA, 2119.3145,-1132.3177,24.8819, 20.0, 0);
  671. DealerCar[7] = Create3DTextLabel(string8, 0x33CCFFAA, 2119.3181,-1136.4448,25.1078, 20.0, 0);
  672. return 1;
  673. }
  674.  
  675. public OnFilterScriptExit()
  676. {
  677. IsADealerCar[DealerCars[0]] = false;
  678. IsADealerCar[DealerCars[1]] = false;
  679. IsADealerCar[DealerCars[2]] = false;
  680. IsADealerCar[DealerCars[3]] = false;
  681. IsADealerCar[DealerCars[4]] = false;
  682. IsADealerCar[DealerCars[5]] = false;
  683. IsADealerCar[DealerCars[6]] = false;
  684. IsADealerCar[DealerCars[7]] = false;
  685. CarPrice[DealerCars[0]] = 0;
  686. CarPrice[DealerCars[1]] = 0;
  687. CarPrice[DealerCars[2]] = 0;
  688. CarPrice[DealerCars[3]] = 0;
  689. CarPrice[DealerCars[4]] = 0;
  690. CarPrice[DealerCars[5]] = 0;
  691. CarPrice[DealerCars[6]] = 0;
  692. CarPrice[DealerCars[7]] = 0;
  693. DestroyVehicle(DealerCars[0]);
  694. DestroyVehicle(DealerCars[1]);
  695. DestroyVehicle(DealerCars[2]);
  696. DestroyVehicle(DealerCars[3]);
  697. DestroyVehicle(DealerCars[4]);
  698. DestroyVehicle(DealerCars[5]);
  699. DestroyVehicle(DealerCars[6]);
  700. DestroyVehicle(DealerCars[7]);
  701. Delete3DTextLabel(DealerCar[0]);
  702. Delete3DTextLabel(DealerCar[1]);
  703. Delete3DTextLabel(DealerCar[2]);
  704. Delete3DTextLabel(DealerCar[3]);
  705. Delete3DTextLabel(DealerCar[4]);
  706. Delete3DTextLabel(DealerCar[5]);
  707. Delete3DTextLabel(DealerCar[6]);
  708. Delete3DTextLabel(DealerCar[7]);
  709. return 1;
  710. }
  711.  
  712. public OnPlayerConnect(playerid)
  713. {
  714. new file[256], name[MAX_PLAYER_NAME];
  715. GetPlayerName(playerid, name, sizeof(name));
  716. format(file,sizeof(file),"Cars/%s.ini",name);
  717. if(dini_Exists(file))
  718. {
  719. VehicleInfo[playerid][Model] = dini_Int(file, "Model");
  720. VehicleInfo[playerid][Price] = dini_Int(file, "Price");
  721. VehicleInfo[playerid][CarX] = dini_Float(file, "X");
  722. VehicleInfo[playerid][CarY] = dini_Float(file, "Y");
  723. VehicleInfo[playerid][CarZ] = dini_Float(file, "Z");
  724. VehicleInfo[playerid][CarRot] = dini_Float(file, "Rot");
  725. VehicleInfo[playerid][Locked] = dini_Int(file, "Locked");
  726. VehicleInfo[playerid][mod1] = dini_Int(file, "mod1");
  727. VehicleInfo[playerid][mod2] = dini_Int(file, "mod2");
  728. VehicleInfo[playerid][mod3] = dini_Int(file, "mod3");
  729. VehicleInfo[playerid][mod4] = dini_Int(file, "mod4");
  730. VehicleInfo[playerid][mod5] = dini_Int(file, "mod5");
  731. VehicleInfo[playerid][mod6] = dini_Int(file, "mod6");
  732. VehicleInfo[playerid][mod7] = dini_Int(file, "mod7");
  733. VehicleInfo[playerid][mod8] = dini_Int(file, "mod8");
  734. VehicleInfo[playerid][mod9] = dini_Int(file, "mod9");
  735. VehicleInfo[playerid][mod10] = dini_Int(file, "mod10");
  736. VehicleInfo[playerid][mod11] = dini_Int(file, "mod11");
  737. VehicleInfo[playerid][mod12] = dini_Int(file, "mod12");
  738. VehicleInfo[playerid][mod13] = dini_Int(file, "mod13");
  739. VehicleInfo[playerid][mod14] = dini_Int(file, "mod14");
  740. VehicleInfo[playerid][mod15] = dini_Int(file, "mod15");
  741. VehicleInfo[playerid][mod16] = dini_Int(file, "mod16");
  742. VehicleInfo[playerid][mod17] = dini_Int(file, "mod17");
  743. VehicleInfo[playerid][paintjob] = dini_Int(file, "paintjob");
  744. VehicleInfo[playerid][colora] = dini_Int(file, "color1");
  745. VehicleInfo[playerid][colorb] = dini_Int(file, "color2");
  746. Vehicle[playerid] = CreateVehicle(VehicleInfo[playerid][Model], VehicleInfo[playerid][CarX], VehicleInfo[playerid][CarY], VehicleInfo[playerid][CarZ], VehicleInfo[playerid][CarRot], -1, -1, 3600000);
  747. if(VehicleInfo[playerid][mod1]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod1]); }
  748. if(VehicleInfo[playerid][mod2]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod2]); }
  749. if(VehicleInfo[playerid][mod3]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod3]); }
  750. if(VehicleInfo[playerid][mod4]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod4]); }
  751. if(VehicleInfo[playerid][mod5]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod5]); }
  752. if(VehicleInfo[playerid][mod6]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod6]); }
  753. if(VehicleInfo[playerid][mod7]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod7]); }
  754. if(VehicleInfo[playerid][mod8]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod8]); }
  755. if(VehicleInfo[playerid][mod9]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod9]); }
  756. if(VehicleInfo[playerid][mod10]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod10]); }
  757. if(VehicleInfo[playerid][mod11]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod11]); }
  758. if(VehicleInfo[playerid][mod12]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod12]); }
  759. if(VehicleInfo[playerid][mod13]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod13]); }
  760. if(VehicleInfo[playerid][mod14]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod14]); }
  761. if(VehicleInfo[playerid][mod15]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod15]); }
  762. if(VehicleInfo[playerid][mod16]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod16]); }
  763. if(VehicleInfo[playerid][mod17]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod17]); }
  764. if(VehicleInfo[playerid][colora]!=0 || VehicleInfo[playerid][colorb]!=0)
  765. {
  766. ChangeVehicleColor(Vehicle[playerid],VehicleInfo[playerid][colora],VehicleInfo[playerid][colorb]);
  767. }
  768. if(VehicleInfo[playerid][paintjob]!=0)
  769. {
  770. ChangeVehiclePaintjob(Vehicle[playerid],VehicleInfo[playerid][paintjob]);
  771. }
  772. new tmp[256]; tmp = dini_Get(file, "Plate");
  773. gPlayerHasCar[playerid] = 1;
  774. VehOwned[Vehicle[playerid]] = 1;
  775. OwnerID[Vehicle[playerid]] = playerid;
  776. SetVehicleParamsForPlayer(Vehicle[playerid], playerid, 0, VehicleInfo[playerid][Locked]);
  777. gVehLocked[Vehicle[playerid]] = VehicleInfo[playerid][Locked];
  778. SetVehicleNumberPlate(Vehicle[playerid], tmp);
  779. VehPlate[Vehicle[playerid]] = tmp;
  780. LoadTrunk(playerid);
  781. }
  782. return 1;
  783. }
  784.  
  785.  
  786. public OnPlayerDisconnect(playerid)
  787. {
  788. new file[256], name[24];
  789. GetPlayerName(playerid, name, 24);
  790. format(file,sizeof(file),"Cars/%s.ini",name);
  791. if(dini_Exists(file))
  792. {
  793. dini_IntSet(file, "Model", GetVehicleModel(Vehicle[playerid]));
  794. dini_IntSet(file, "Price", VehicleInfo[playerid][Price]);
  795. dini_FloatSet(file, "X", VehicleInfo[playerid][CarX]);
  796. dini_FloatSet(file, "Y", VehicleInfo[playerid][CarY]);
  797. dini_FloatSet(file, "Z", VehicleInfo[playerid][CarZ]);
  798. dini_FloatSet(file, "Rot", VehicleInfo[playerid][CarRot]);
  799. dini_IntSet(file, "Locked", VehicleInfo[playerid][Locked]);
  800. dini_Set(file, "Plate", VehPlate[Vehicle[playerid]]);
  801. dini_IntSet(file, "mod1", VehicleInfo[playerid][mod1]);
  802. dini_IntSet(file, "mod2", VehicleInfo[playerid][mod2]);
  803. dini_IntSet(file, "mod3", VehicleInfo[playerid][mod3]);
  804. dini_IntSet(file, "mod4", VehicleInfo[playerid][mod4]);
  805. dini_IntSet(file, "mod5", VehicleInfo[playerid][mod5]);
  806. dini_IntSet(file, "mod6", VehicleInfo[playerid][mod6]);
  807. dini_IntSet(file, "mod7", VehicleInfo[playerid][mod7]);
  808. dini_IntSet(file, "mod8", VehicleInfo[playerid][mod8]);
  809. dini_IntSet(file, "mod9", VehicleInfo[playerid][mod9]);
  810. dini_IntSet(file, "mod10", VehicleInfo[playerid][mod10]);
  811. dini_IntSet(file, "mod11", VehicleInfo[playerid][mod11]);
  812. dini_IntSet(file, "mod12", VehicleInfo[playerid][mod12]);
  813. dini_IntSet(file, "mod13", VehicleInfo[playerid][mod13]);
  814. dini_IntSet(file, "mod14", VehicleInfo[playerid][mod14]);
  815. dini_IntSet(file, "mod15", VehicleInfo[playerid][mod15]);
  816. dini_IntSet(file, "mod16", VehicleInfo[playerid][mod16]);
  817. dini_IntSet(file, "mod17", VehicleInfo[playerid][mod17]);
  818. dini_IntSet(file, "paintjob", VehicleInfo[playerid][paintjob]);
  819. dini_IntSet(file, "color1", VehicleInfo[playerid][colora]);
  820. dini_IntSet(file, "color2", VehicleInfo[playerid][colorb]);
  821. DestroyVehicle(Vehicle[playerid]);
  822. SaveTrunk(playerid);
  823. }
  824. return 1;
  825. }
  826.  
  827. public OnPlayerStateChange(playerid, newstate, oldstate)
  828. {
  829. if(newstate == PLAYER_STATE_DRIVER)
  830. {
  831. new veh = GetPlayerVehicleID(playerid);
  832. if(VehOwned[veh] == 0)
  833. {
  834. if(IsADealerCar[veh] == 1)
  835. {
  836. new string[128];
  837. format(string, sizeof(string), "Are you sure you would like to buy this %s for $%i?", GetVehicleNameFromID(veh), CarPrice[veh]);
  838. ShowPlayerDialog(playerid, 669, DIALOG_STYLE_MSGBOX, "Dealership", string, "Yes", "No");
  839. return 1;
  840. }
  841. }
  842. else if(VehOwned[veh] == 1)
  843. {
  844. new owner[24], string[128];
  845. GetPlayerName(OwnerID[veh], owner, sizeof(owner));
  846. format(string, sizeof(string), "Warning: This %s is owned by %s.", GetVehicleNameFromID(veh), owner);
  847. SendClientMessage(playerid, 0xFFFFFFAA, string);
  848. return 1;
  849. }
  850. }
  851. return 1;
  852. }
  853.  
  854. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  855. {
  856. if(dialogid == 669)
  857. {
  858. if(response)
  859. {
  860. new file[256], name[MAX_PLAYER_NAME];
  861. GetPlayerName(playerid, name, sizeof(name));
  862. format(file,sizeof(file),"Cars/%s.ini",name);
  863. new veh = GetPlayerVehicleID(playerid);
  864. new money = GetPlayerMoney(playerid);
  865. if(money >= CarPrice[veh])
  866. {
  867. if(gPlayerHasCar[playerid] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "You already own a car.");
  868. new string[64];
  869. SendClientMessage(playerid, 0xAFAFAFAA, "Thank you for buying at Coutt and Schutz.");
  870. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  871. dini_Create(file);
  872. Vehicle[playerid] = CreateVehicle(GetVehicleModel(veh), 2130.1914, -1109.5881, 25.1890, 76.2599, 1, 1, 3600000);
  873. format(string, sizeof(string), "Creating your vehicle %i.", veh);
  874. SendClientMessage(playerid, 0xAFAFAFAA, string);
  875. VehicleInfo[playerid][Model] = GetVehicleModel(veh);
  876. VehicleInfo[playerid][Price] = CarPrice[veh];
  877. VehicleInfo[playerid][CarX] = 2130.1914;
  878. VehicleInfo[playerid][CarY] = -1109.5881;
  879. VehicleInfo[playerid][CarZ] = 25.1890;
  880. VehicleInfo[playerid][CarRot] = 76.2599;
  881. gPlayerHasCar[playerid] = 1;
  882. RemovePlayerFromVehicle(playerid);
  883. OwnerID[Vehicle[playerid]] = playerid;
  884. VehPlate[Vehicle[playerid]] = "XYZR 000";
  885. PutPlayerInVehicle(playerid, Vehicle[playerid], 0);
  886. GivePlayerMoney(playerid, -VehicleInfo[playerid][Price]);
  887. }
  888. else
  889. {
  890. RemovePlayerFromVehicle(playerid);
  891. SendClientMessage(playerid, 0xAFAFAFAA, "You cannot afford this vehicle.");
  892. return 1;
  893. }
  894. }
  895. else
  896. {
  897. RemovePlayerFromVehicle(playerid);
  898. }
  899. }
  900. if(dialogid == 670)
  901. {
  902. if(response)
  903. {
  904. new file[256], name[24], license[10];
  905. GetPlayerName(playerid, name, 24);
  906. format(file,sizeof(file),"Cars/%s.ini",name);
  907. dini_IntSet(file, "Model", VehicleInfo[playerid][Model]);
  908. dini_IntSet(file, "Price", VehicleInfo[playerid][Price]);
  909. dini_FloatSet(file, "X", VehicleInfo[playerid][CarX]);
  910. dini_FloatSet(file, "Y", VehicleInfo[playerid][CarY]);
  911. dini_FloatSet(file, "Z", VehicleInfo[playerid][CarZ]);
  912. dini_FloatSet(file, "Rot", VehicleInfo[playerid][CarRot]);
  913. dini_IntSet(file, "Locked", VehicleInfo[playerid][Locked]);
  914. dini_IntSet(file, "mod1", VehicleInfo[playerid][mod1]);
  915. dini_IntSet(file, "mod2", VehicleInfo[playerid][mod2]);
  916. dini_IntSet(file, "mod3", VehicleInfo[playerid][mod3]);
  917. dini_IntSet(file, "mod4", VehicleInfo[playerid][mod4]);
  918. dini_IntSet(file, "mod5", VehicleInfo[playerid][mod5]);
  919. dini_IntSet(file, "mod6", VehicleInfo[playerid][mod6]);
  920. dini_IntSet(file, "mod7", VehicleInfo[playerid][mod7]);
  921. dini_IntSet(file, "mod8", VehicleInfo[playerid][mod8]);
  922. dini_IntSet(file, "mod9", VehicleInfo[playerid][mod9]);
  923. dini_IntSet(file, "mod10", VehicleInfo[playerid][mod10]);
  924. dini_IntSet(file, "mod11", VehicleInfo[playerid][mod11]);
  925. dini_IntSet(file, "mod12", VehicleInfo[playerid][mod12]);
  926. dini_IntSet(file, "mod13", VehicleInfo[playerid][mod13]);
  927. dini_IntSet(file, "mod14", VehicleInfo[playerid][mod14]);
  928. dini_IntSet(file, "mod15", VehicleInfo[playerid][mod15]);
  929. dini_IntSet(file, "mod16", VehicleInfo[playerid][mod16]);
  930. dini_IntSet(file, "mod17", VehicleInfo[playerid][mod17]);
  931. dini_IntSet(file, "paintjob", VehicleInfo[playerid][paintjob]);
  932. dini_IntSet(file, "color1", VehicleInfo[playerid][colora]);
  933. dini_IntSet(file, "color2", VehicleInfo[playerid][colorb]);
  934. new string[128], Float:CarHP, Float:OldCarHP, Float:X, Float:Y, Float:Z, Float:Rot;
  935. new plate = strlen(inputtext);
  936. if(plate < 4) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Plate", "Plate must be at least 4 characters.\n\nPlease try again.", "Done", "Cancel");
  937. if(plate > 8) return ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Plate", "Plate must be below 8 characters.\n\nPlease try again.", "Done", "Cancel");
  938. GetVehicleHealth(Vehicle[playerid], CarHP);
  939. OldCarHP = CarHP;
  940. GetVehiclePos(Vehicle[playerid], X, Y, Z);
  941. GetVehicleZAngle(Vehicle[playerid], Rot);
  942. SetVehicleNumberPlate(Vehicle[playerid], inputtext);
  943. SetVehicleToRespawn(Vehicle[playerid]);
  944. SetVehiclePos(Vehicle[playerid], X, Y, Z);
  945. SetVehicleZAngle(Vehicle[playerid], Rot);
  946. PutPlayerInVehicle(playerid, Vehicle[playerid], 0);
  947. format(license, sizeof(license), "%s", inputtext);
  948. VehPlate[Vehicle[playerid]] = license;
  949. dini_Set(file, "Plate", VehPlate[Vehicle[playerid]]);
  950. format(string, sizeof(string), "{FFFF00}You have set your vehicle's plate to:{FFFFFF} %s", inputtext);
  951. SendClientMessage(playerid, 0xFFFFFFFF, string);
  952. SendClientMessage(playerid, 0xFFFFFFFF, "NOTE: Your vehicle's health was restored to the previous amount (to prevent exploitation).");
  953. SetVehicleHealth(Vehicle[playerid], OldCarHP);
  954. VehicleInfo[playerid][Model] = dini_Int(file, "Model");
  955. VehicleInfo[playerid][Price] = dini_Int(file, "Price");
  956. VehicleInfo[playerid][CarX] = dini_Float(file, "X");
  957. VehicleInfo[playerid][CarY] = dini_Float(file, "Y");
  958. VehicleInfo[playerid][CarZ] = dini_Float(file, "Z");
  959. VehicleInfo[playerid][CarRot] = dini_Float(file, "Rot");
  960. VehicleInfo[playerid][Locked] = dini_Int(file, "Locked");
  961. VehicleInfo[playerid][mod1] = dini_Int(file, "mod1");
  962. VehicleInfo[playerid][mod2] = dini_Int(file, "mod2");
  963. VehicleInfo[playerid][mod3] = dini_Int(file, "mod3");
  964. VehicleInfo[playerid][mod4] = dini_Int(file, "mod4");
  965. VehicleInfo[playerid][mod5] = dini_Int(file, "mod5");
  966. VehicleInfo[playerid][mod6] = dini_Int(file, "mod6");
  967. VehicleInfo[playerid][mod7] = dini_Int(file, "mod7");
  968. VehicleInfo[playerid][mod8] = dini_Int(file, "mod8");
  969. VehicleInfo[playerid][mod9] = dini_Int(file, "mod9");
  970. VehicleInfo[playerid][mod10] = dini_Int(file, "mod10");
  971. VehicleInfo[playerid][mod11] = dini_Int(file, "mod11");
  972. VehicleInfo[playerid][mod12] = dini_Int(file, "mod12");
  973. VehicleInfo[playerid][mod13] = dini_Int(file, "mod13");
  974. VehicleInfo[playerid][mod14] = dini_Int(file, "mod14");
  975. VehicleInfo[playerid][mod15] = dini_Int(file, "mod15");
  976. VehicleInfo[playerid][mod16] = dini_Int(file, "mod16");
  977. VehicleInfo[playerid][mod17] = dini_Int(file, "mod17");
  978. VehicleInfo[playerid][paintjob] = dini_Int(file, "paintjob");
  979. VehicleInfo[playerid][colora] = dini_Int(file, "color1");
  980. VehicleInfo[playerid][colorb] = dini_Int(file, "color2");
  981. if(VehicleInfo[playerid][mod1]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod1]); }
  982. if(VehicleInfo[playerid][mod2]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod2]); }
  983. if(VehicleInfo[playerid][mod3]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod3]); }
  984. if(VehicleInfo[playerid][mod4]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod4]); }
  985. if(VehicleInfo[playerid][mod5]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod5]); }
  986. if(VehicleInfo[playerid][mod6]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod6]); }
  987. if(VehicleInfo[playerid][mod7]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod7]); }
  988. if(VehicleInfo[playerid][mod8]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod8]); }
  989. if(VehicleInfo[playerid][mod9]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod9]); }
  990. if(VehicleInfo[playerid][mod10]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod10]); }
  991. if(VehicleInfo[playerid][mod11]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod11]); }
  992. if(VehicleInfo[playerid][mod12]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod12]); }
  993. if(VehicleInfo[playerid][mod13]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod13]); }
  994. if(VehicleInfo[playerid][mod14]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod14]); }
  995. if(VehicleInfo[playerid][mod15]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod15]); }
  996. if(VehicleInfo[playerid][mod16]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod16]); }
  997. if(VehicleInfo[playerid][mod17]!=0) { AddVehicleComponent(Vehicle[playerid],VehicleInfo[playerid][mod17]); }
  998. if(VehicleInfo[playerid][colora]!=0 || VehicleInfo[playerid][colorb]!=0)
  999. {
  1000. ChangeVehicleColor(Vehicle[playerid],VehicleInfo[playerid][colora],VehicleInfo[playerid][colorb]);
  1001. }
  1002. if(VehicleInfo[playerid][paintjob]!=0)
  1003. {
  1004. ChangeVehiclePaintjob(Vehicle[playerid],VehicleInfo[playerid][paintjob]);
  1005. }
  1006. SetVehicleParamsForPlayer(Vehicle[playerid], playerid, 0, VehicleInfo[playerid][Locked]);
  1007. gVehLocked[Vehicle[playerid]] = VehicleInfo[playerid][Locked];
  1008. CarHP = 0;
  1009. OldCarHP = 0;
  1010. return 1;
  1011. }
  1012. return 1;
  1013. }
  1014. return 1;
  1015. }
  1016.  
  1017. public OnVehicleMod(playerid,vehicleid,componentid)
  1018. {
  1019. new mods = InitComponents(componentid);
  1020. if(IsPlayerInVehicle(playerid, Vehicle[playerid]))
  1021. {
  1022. switch(mods)
  1023. {
  1024. case 1: { VehicleInfo[playerid][mod1] = componentid; }
  1025. case 2: { VehicleInfo[playerid][mod2] = componentid; }
  1026. case 3: { VehicleInfo[playerid][mod3] = componentid; }
  1027. case 4: { VehicleInfo[playerid][mod4] = componentid; }
  1028. case 5: { VehicleInfo[playerid][mod5] = componentid; }
  1029. case 6: { VehicleInfo[playerid][mod6] = componentid; }
  1030. case 7: { VehicleInfo[playerid][mod7] = componentid; }
  1031. case 8: { VehicleInfo[playerid][mod8] = componentid; }
  1032. case 9: { VehicleInfo[playerid][mod9] = componentid; }
  1033. case 10: { VehicleInfo[playerid][mod10] = componentid; }
  1034. case 11: { VehicleInfo[playerid][mod11] = componentid; }
  1035. case 12: { VehicleInfo[playerid][mod12] = componentid; }
  1036. case 13: { VehicleInfo[playerid][mod13] = componentid; }
  1037. case 14: { VehicleInfo[playerid][mod14] = componentid; }
  1038. case 15: { VehicleInfo[playerid][mod15] = componentid; }
  1039. case 16: { VehicleInfo[playerid][mod16] = componentid; }
  1040. case 17: { VehicleInfo[playerid][mod17] = componentid; }
  1041. }
  1042. }
  1043. return 1;
  1044. }
  1045.  
  1046. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  1047. {
  1048. if(IsPlayerInVehicle(playerid, Vehicle[playerid]))
  1049. {
  1050. if(GetVehicleModel(Vehicle[playerid]) == 483)
  1051. {
  1052. switch(paintjobid)
  1053. {
  1054. case 0: VehicleInfo[playerid][paintjob] = 0;
  1055. }
  1056. }
  1057. if(GetVehicleModel(Vehicle[playerid]) == 534)
  1058. {
  1059. switch(paintjobid)
  1060. {
  1061. case 0: VehicleInfo[playerid][paintjob] = 0;
  1062. case 1: VehicleInfo[playerid][paintjob] = 1;
  1063. case 2: VehicleInfo[playerid][paintjob] = 2;
  1064. }
  1065. }
  1066. if(GetVehicleModel(Vehicle[playerid]) == 535)
  1067. {
  1068. switch(paintjobid)
  1069. {
  1070. case 0: VehicleInfo[playerid][paintjob] = 0;
  1071. case 1: VehicleInfo[playerid][paintjob] = 1;
  1072. case 2: VehicleInfo[playerid][paintjob] = 2;
  1073. }
  1074. }
  1075. if(GetVehicleModel(Vehicle[playerid]) == 536)
  1076. {
  1077. switch(paintjobid)
  1078. {
  1079. case 0: VehicleInfo[playerid][paintjob] = 0;
  1080. case 1: VehicleInfo[playerid][paintjob] = 1;
  1081. case 2: VehicleInfo[playerid][paintjob] = 2;
  1082. }
  1083. }
  1084. if(GetVehicleModel(Vehicle[playerid]) == 558)
  1085. {
  1086. switch(paintjobid)
  1087. {
  1088. case 0: VehicleInfo[playerid][paintjob] = 0;
  1089. case 1: VehicleInfo[playerid][paintjob] = 1;
  1090. case 2: VehicleInfo[playerid][paintjob] = 2;
  1091. }
  1092. }
  1093. if(GetVehicleModel(Vehicle[playerid]) == 559)
  1094. {
  1095. switch(paintjobid)
  1096. {
  1097. case 0: VehicleInfo[playerid][paintjob] = 0;
  1098. case 1: VehicleInfo[playerid][paintjob] = 1;
  1099. case 2: VehicleInfo[playerid][paintjob] = 2;
  1100. }
  1101. }
  1102. if(GetVehicleModel(Vehicle[playerid]) == 560)
  1103. {
  1104. switch(paintjobid)
  1105. {
  1106. case 0: VehicleInfo[playerid][paintjob] = 0;
  1107. case 1: VehicleInfo[playerid][paintjob] = 1;
  1108. case 2: VehicleInfo[playerid][paintjob] = 2;
  1109. }
  1110. }
  1111. if(GetVehicleModel(Vehicle[playerid]) == 561)
  1112. {
  1113. switch(paintjobid)
  1114. {
  1115. case 0: VehicleInfo[playerid][paintjob] = 0;
  1116. case 1: VehicleInfo[playerid][paintjob] = 1;
  1117. case 2: VehicleInfo[playerid][paintjob] = 2;
  1118. }
  1119. }
  1120. if(GetVehicleModel(Vehicle[playerid]) == 562)
  1121. {
  1122. switch(paintjobid)
  1123. {
  1124. case 0: VehicleInfo[playerid][paintjob] = 0;
  1125. case 1: VehicleInfo[playerid][paintjob] = 1;
  1126. case 2: VehicleInfo[playerid][paintjob] = 2;
  1127. }
  1128. }
  1129. if(GetVehicleModel(Vehicle[playerid]) == 565)
  1130. {
  1131. switch(paintjobid)
  1132. {
  1133. case 0: VehicleInfo[playerid][paintjob] = 0;
  1134. case 1: VehicleInfo[playerid][paintjob] = 1;
  1135. case 2: VehicleInfo[playerid][paintjob] = 2;
  1136. }
  1137. }
  1138. if(GetVehicleModel(Vehicle[playerid]) == 567)
  1139. {
  1140. switch(paintjobid)
  1141. {
  1142. case 0: VehicleInfo[playerid][paintjob] = 0;
  1143. case 1: VehicleInfo[playerid][paintjob] = 1;
  1144. case 2: VehicleInfo[playerid][paintjob] = 2;
  1145. }
  1146. }
  1147. if(GetVehicleModel(Vehicle[playerid]) == 575)
  1148. {
  1149. switch(paintjobid)
  1150. {
  1151. case 0: VehicleInfo[playerid][paintjob] = 0;
  1152. case 1: VehicleInfo[playerid][paintjob] = 1;
  1153. }
  1154. }
  1155. if(GetVehicleModel(Vehicle[playerid]) == 576)
  1156. {
  1157. switch(paintjobid)
  1158. {
  1159. case 0: VehicleInfo[playerid][paintjob] = 0;
  1160. case 1: VehicleInfo[playerid][paintjob] = 1;
  1161. case 2: VehicleInfo[playerid][paintjob] = 2;
  1162. }
  1163. }
  1164. }
  1165. return 1;
  1166. }
  1167.  
  1168. public OnVehicleRespray(playerid,vehicleid, color1, color2)
  1169. {
  1170. if(IsPlayerInVehicle(playerid, Vehicle[playerid]))
  1171. {
  1172. VehicleInfo[playerid][colora] = color1;
  1173. VehicleInfo[playerid][colorb] = color2;
  1174. }
  1175. return 1;
  1176. }
  1177.  
  1178. strtok(const string[], &index)
  1179. {
  1180. new length = strlen(string);
  1181. while ((index < length) && (string[index] <= ' '))
  1182. {
  1183. index++;
  1184. }
  1185.  
  1186. new offset = index;
  1187. new result[20];
  1188. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  1189. {
  1190. result[index - offset] = string[index];
  1191. index++;
  1192. }
  1193. result[index - offset] = EOS;
  1194. return result;
  1195. }
  1196.  
  1197. public OnPlayerCommandText(playerid, cmdtext[])
  1198. {
  1199. new idx, tmp[128], cmd[128];
  1200. cmd = strtok(cmdtext, idx);
  1201. if(strcmp(cmd, "/trunk", true) == 0)
  1202. {
  1203. if(gPlayerHasCar[playerid] == 0) return SendClientMessage(playerid, 0xAFAFAFAA, " You don't own a car !");
  1204. new x_nr[256];
  1205. x_nr = strtok(cmdtext, idx);
  1206. if(!strlen(x_nr))
  1207. {
  1208. SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /trunk [item]");
  1209. SendClientMessage(playerid, 0xFFFFFFFF, "Available items: open, close, check, putgun, takegun");
  1210. return 1;
  1211. }
  1212. if(strcmp(x_nr, "open", true) == 0)
  1213. {
  1214. if(TrunkOpen[Vehicle[playerid]] == 1) return SendClientMessage(playerid, 0xAFAFAFAA, " The trunk is already open !");
  1215. new engine, lights, alarm, doors, bonnet, boot, objective;
  1216. GetVehicleParamsEx(Vehicle[playerid], engine, lights, alarm, doors, bonnet, boot, objective);
  1217. SetVehicleParamsEx(Vehicle[playerid], engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_ON, objective);
  1218. TrunkOpen[Vehicle[playerid]] = 1;
  1219. return 1;
  1220. }
  1221. if(strcmp(x_nr, "close", true) == 0)
  1222. {
  1223. if(TrunkOpen[Vehicle[playerid]] == 0) return SendClientMessage(playerid, 0xAFAFAFAA, " The trunk is already closed !");
  1224. new engine, lights, alarm, doors, bonnet, boot, objective;
  1225. GetVehicleParamsEx(Vehicle[playerid], engine, lights, alarm, doors, bonnet, boot, objective);
  1226. SetVehicleParamsEx(Vehicle[playerid], engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_OFF, objective);
  1227. TrunkOpen[Vehicle[playerid]] = 0;
  1228. return 1;
  1229. }
  1230. if(strcmp(x_nr, "putgun", true) == 0)
  1231. {
  1232. if(TrunkOpen[Vehicle[playerid]] == 0) { SendClientMessage(playerid, 0xAFAFAFAA, " You must open the trunk first !"); return 1; }
  1233. tmp = strtok(cmdtext, idx);
  1234. if(!strlen(tmp)) { SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /trunk putgun [slot]"); return 1; }
  1235. new slot = strval(tmp), weapon = GetPlayerWeapon(playerid);
  1236. if(slot < 1 || slot > 10) { SendClientMessage(playerid, 0xAFAFAFAA, " Slot can't be below 1 or above 10 !"); return 1; }
  1237. if(weapon == 0) return SendClientMessage(playerid, 0xAFAFAFAA, " You don't have a weapon !");
  1238. if(slot == 1)
  1239. {
  1240. new string[128], gunname[16];
  1241. new ammo = GetPlayerAmmo(playerid);
  1242. new v = Vehicle[playerid];
  1243. if(TrunkInfo[v][Slot1] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1244. TrunkInfo[v][Slot1] = weapon;
  1245. TrunkInfo[v][Ammo1] = ammo;
  1246. GetWeaponName(weapon, gunname, sizeof(gunname));
  1247. format(string, sizeof(string), "You have stored your %s into slot 1 of your trunk.",gunname);
  1248. SendClientMessage(playerid, 0xFFFF00FF, string);
  1249. RemovePlayerWeapon(playerid, weapon);
  1250. return 1;
  1251. }
  1252. if(slot == 2)
  1253. {
  1254. new string[128], gunname[16];
  1255. new ammo = GetPlayerAmmo(playerid);
  1256. new v = Vehicle[playerid];
  1257. if(TrunkInfo[v][Slot2] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1258. TrunkInfo[v][Slot2] = weapon;
  1259. TrunkInfo[v][Ammo2] = ammo;
  1260. GetWeaponName(weapon, gunname, sizeof(gunname));
  1261. format(string, sizeof(string), "You have stored your %s into slot 2 of your trunk.",gunname);
  1262. SendClientMessage(playerid, 0xFFFF00FF, string);
  1263. RemovePlayerWeapon(playerid, weapon);
  1264. return 1;
  1265. }
  1266. if(slot == 3)
  1267. {
  1268. new string[128], gunname[16];
  1269. new ammo = GetPlayerAmmo(playerid);
  1270. new v = Vehicle[playerid];
  1271. if(TrunkInfo[v][Slot3] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1272. TrunkInfo[v][Slot3] = weapon;
  1273. TrunkInfo[v][Ammo3] = ammo;
  1274. GetWeaponName(weapon, gunname, sizeof(gunname));
  1275. format(string, sizeof(string), "You have stored your %s into slot 3 of your trunk.",gunname);
  1276. SendClientMessage(playerid, 0xFFFF00FF, string);
  1277. RemovePlayerWeapon(playerid, weapon);
  1278. return 1;
  1279. }
  1280. if(slot == 4)
  1281. {
  1282. new string[128], gunname[16];
  1283. new ammo = GetPlayerAmmo(playerid);
  1284. new v = Vehicle[playerid];
  1285. if(TrunkInfo[v][Slot4] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1286. TrunkInfo[v][Slot4] = weapon;
  1287. TrunkInfo[v][Ammo4] = ammo;
  1288. GetWeaponName(weapon, gunname, sizeof(gunname));
  1289. format(string, sizeof(string), "You have stored your %s into slot 4 of your trunk.",gunname);
  1290. SendClientMessage(playerid, 0xFFFF00FF, string);
  1291. RemovePlayerWeapon(playerid, weapon);
  1292. return 1;
  1293. }
  1294. if(slot == 5)
  1295. {
  1296. new string[128], gunname[16];
  1297. new ammo = GetPlayerAmmo(playerid);
  1298. new v = Vehicle[playerid];
  1299. if(TrunkInfo[v][Slot5] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1300. TrunkInfo[v][Slot5] = weapon;
  1301. TrunkInfo[v][Ammo5] = ammo;
  1302. GetWeaponName(weapon, gunname, sizeof(gunname));
  1303. format(string, sizeof(string), "You have stored your %s into slot 5 of your trunk.",gunname);
  1304. SendClientMessage(playerid, 0xFFFF00FF, string);
  1305. RemovePlayerWeapon(playerid, weapon);
  1306. return 1;
  1307. }
  1308. if(slot == 6)
  1309. {
  1310. new string[128], gunname[16];
  1311. new ammo = GetPlayerAmmo(playerid);
  1312. new v = Vehicle[playerid];
  1313. if(TrunkInfo[v][Slot6] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1314. TrunkInfo[v][Slot6] = weapon;
  1315. TrunkInfo[v][Ammo6] = ammo;
  1316. GetWeaponName(weapon, gunname, sizeof(gunname));
  1317. format(string, sizeof(string), "You have stored your %s into slot 6 of your trunk.",gunname);
  1318. SendClientMessage(playerid, 0xFFFF00FF, string);
  1319. RemovePlayerWeapon(playerid, weapon);
  1320. return 1;
  1321. }
  1322. if(slot == 7)
  1323. {
  1324. new string[128], gunname[16];
  1325. new ammo = GetPlayerAmmo(playerid);
  1326. new v = Vehicle[playerid];
  1327. if(TrunkInfo[v][Slot7] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1328. TrunkInfo[v][Slot7] = weapon;
  1329. TrunkInfo[v][Ammo7] = ammo;
  1330. GetWeaponName(weapon, gunname, sizeof(gunname));
  1331. format(string, sizeof(string), "You have stored your %s into slot 7 of your trunk.",gunname);
  1332. SendClientMessage(playerid, 0xFFFF00FF, string);
  1333. RemovePlayerWeapon(playerid, weapon);
  1334. return 1;
  1335. }
  1336. if(slot == 8)
  1337. {
  1338. new string[128], gunname[16];
  1339. new ammo = GetPlayerAmmo(playerid);
  1340. new v = Vehicle[playerid];
  1341. if(TrunkInfo[v][Slot8] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1342. TrunkInfo[v][Slot8] = weapon;
  1343. TrunkInfo[v][Ammo8] = ammo;
  1344. GetWeaponName(weapon, gunname, sizeof(gunname));
  1345. format(string, sizeof(string), "You have stored your %s into slot 8 of your trunk.",gunname);
  1346. SendClientMessage(playerid, 0xFFFF00FF, string);
  1347. RemovePlayerWeapon(playerid, weapon);
  1348. return 1;
  1349. }
  1350. if(slot == 9)
  1351. {
  1352. new string[128], gunname[16];
  1353. new ammo = GetPlayerAmmo(playerid);
  1354. new v = Vehicle[playerid];
  1355. if(TrunkInfo[v][Slot9] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1356. TrunkInfo[v][Slot9] = weapon;
  1357. TrunkInfo[v][Ammo9] = ammo;
  1358. GetWeaponName(weapon, gunname, sizeof(gunname));
  1359. format(string, sizeof(string), "You have stored your %s into slot 9 of your trunk.",gunname);
  1360. SendClientMessage(playerid, 0xFFFF00FF, string);
  1361. RemovePlayerWeapon(playerid, weapon);
  1362. return 1;
  1363. }
  1364. if(slot == 10)
  1365. {
  1366. new string[128], gunname[16];
  1367. new ammo = GetPlayerAmmo(playerid);
  1368. new v = Vehicle[playerid];
  1369. if(TrunkInfo[v][Slot10] > 0) return SendClientMessage(playerid, 0xAFAFAFAA, " There is already something there !");
  1370. TrunkInfo[v][Slot10] = weapon;
  1371. TrunkInfo[v][Ammo10] = ammo;
  1372. GetWeaponName(weapon, gunname, sizeof(gunname));
  1373. format(string, sizeof(string), "You have stored your %s into slot 10 of your trunk.",gunname);
  1374. SendClientMessage(playerid, 0xFFFF00FF, string);
  1375. RemovePlayerWeapon(playerid, weapon);
  1376. return 1;
  1377. }
  1378. }
  1379. if(strcmp(x_nr, "takegun", true) == 0)
  1380. {
  1381. if(TrunkOpen[Vehicle[playerid]] == 0) { SendClientMessage(playerid, 0xAFAFAFAA, " You must open the trunk first !"); return 1; }
  1382. tmp = strtok(cmdtext, idx);
  1383. if(!strlen(tmp)) { SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /trunk takegun [slot]"); return 1; }
  1384. new slot = strval(tmp);
  1385. if(slot < 1 || slot > 10) { SendClientMessage(playerid, 0xAFAFAFAA, " Slot can't be below 1 or above 10 !"); return 1; }
  1386. if(slot == 1)
  1387. {
  1388. new string[128], gunname[16];
  1389. new v = Vehicle[playerid];
  1390. if(TrunkInfo[v][Slot1] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1391. GetWeaponName(TrunkInfo[v][Slot1], gunname, sizeof(gunname));
  1392. format(string, sizeof(string), "You have taken your %s from slot 1 of your trunk.",gunname);
  1393. SendClientMessage(playerid, 0xFFFF00FF, string);
  1394. GivePlayerWeapon(playerid, TrunkInfo[v][Slot1], TrunkInfo[v][Ammo1]);
  1395. TrunkInfo[v][Slot1] = 0;
  1396. TrunkInfo[v][Ammo1] = 0;
  1397. return 1;
  1398. }
  1399. if(slot == 2)
  1400. {
  1401. new string[128], gunname[16];
  1402. new v = Vehicle[playerid];
  1403. if(TrunkInfo[v][Slot2] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1404. GetWeaponName(TrunkInfo[v][Slot2], gunname, sizeof(gunname));
  1405. format(string, sizeof(string), "You have taken your %s from slot 2 of your trunk.",gunname);
  1406. SendClientMessage(playerid, 0xFFFF00FF, string);
  1407. GivePlayerWeapon(playerid, TrunkInfo[v][Slot2], TrunkInfo[v][Ammo2]);
  1408. TrunkInfo[v][Slot2] = 0;
  1409. TrunkInfo[v][Ammo2] = 0;
  1410. return 1;
  1411. }
  1412. if(slot == 3)
  1413. {
  1414. new string[128], gunname[16];
  1415. new v = Vehicle[playerid];
  1416. if(TrunkInfo[v][Slot3] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1417. GetWeaponName(TrunkInfo[v][Slot3], gunname, sizeof(gunname));
  1418. format(string, sizeof(string), "You have taken your %s from slot 3 of your trunk.",gunname);
  1419. SendClientMessage(playerid, 0xFFFF00FF, string);
  1420. GivePlayerWeapon(playerid, TrunkInfo[v][Slot3], TrunkInfo[v][Ammo3]);
  1421. TrunkInfo[v][Slot3] = 0;
  1422. TrunkInfo[v][Ammo3] = 0;
  1423. return 1;
  1424. }
  1425. if(slot == 4)
  1426. {
  1427. new string[128], gunname[16];
  1428. new v = Vehicle[playerid];
  1429. if(TrunkInfo[v][Slot4] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1430. GetWeaponName(TrunkInfo[v][Slot4], gunname, sizeof(gunname));
  1431. format(string, sizeof(string), "You have taken your %s from slot 4 of your trunk.",gunname);
  1432. SendClientMessage(playerid, 0xFFFF00FF, string);
  1433. GivePlayerWeapon(playerid, TrunkInfo[v][Slot4], TrunkInfo[v][Ammo4]);
  1434. TrunkInfo[v][Slot4] = 0;
  1435. TrunkInfo[v][Ammo4] = 0;
  1436. return 1;
  1437. }
  1438. if(slot == 5)
  1439. {
  1440. new string[128], gunname[16];
  1441. new v = Vehicle[playerid];
  1442. if(TrunkInfo[v][Slot5] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1443. GetWeaponName(TrunkInfo[v][Slot5], gunname, sizeof(gunname));
  1444. format(string, sizeof(string), "You have taken your %s from slot 5 of your trunk.",gunname);
  1445. SendClientMessage(playerid, 0xFFFF00FF, string);
  1446. GivePlayerWeapon(playerid, TrunkInfo[v][Slot5], TrunkInfo[v][Ammo5]);
  1447. TrunkInfo[v][Slot5] = 0;
  1448. TrunkInfo[v][Ammo5] = 0;
  1449. return 1;
  1450. }
  1451. if(slot == 6)
  1452. {
  1453. new string[128], gunname[16];
  1454. new v = Vehicle[playerid];
  1455. if(TrunkInfo[v][Slot6] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1456. GetWeaponName(TrunkInfo[v][Slot6], gunname, sizeof(gunname));
  1457. format(string, sizeof(string), "You have taken your %s from slot 6 of your trunk.",gunname);
  1458. SendClientMessage(playerid, 0xFFFF00FF, string);
  1459. GivePlayerWeapon(playerid, TrunkInfo[v][Slot6], TrunkInfo[v][Ammo6]);
  1460. TrunkInfo[v][Slot6] = 0;
  1461. TrunkInfo[v][Ammo6] = 0;
  1462. return 1;
  1463. }
  1464. if(slot == 7)
  1465. {
  1466. new string[128], gunname[16];
  1467. new v = Vehicle[playerid];
  1468. if(TrunkInfo[v][Slot7] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1469. GetWeaponName(TrunkInfo[v][Slot7], gunname, sizeof(gunname));
  1470. format(string, sizeof(string), "You have taken your %s from slot 7 of your trunk.",gunname);
  1471. SendClientMessage(playerid, 0xFFFF00FF, string);
  1472. GivePlayerWeapon(playerid, TrunkInfo[v][Slot7], TrunkInfo[v][Ammo7]);
  1473. TrunkInfo[v][Slot7] = 0;
  1474. TrunkInfo[v][Ammo7] = 0;
  1475. return 1;
  1476. }
  1477. if(slot == 8)
  1478. {
  1479. new string[128], gunname[16];
  1480. new v = Vehicle[playerid];
  1481. if(TrunkInfo[v][Slot8] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1482. GetWeaponName(TrunkInfo[v][Slot8], gunname, sizeof(gunname));
  1483. format(string, sizeof(string), "You have taken your %s from slot 8 of your trunk.",gunname);
  1484. SendClientMessage(playerid, 0xFFFF00FF, string);
  1485. GivePlayerWeapon(playerid, TrunkInfo[v][Slot8], TrunkInfo[v][Ammo8]);
  1486. TrunkInfo[v][Slot8] = 0;
  1487. TrunkInfo[v][Ammo8] = 0;
  1488. return 1;
  1489. }
  1490. if(slot == 9)
  1491. {
  1492. new string[128], gunname[16];
  1493. new v = Vehicle[playerid];
  1494. if(TrunkInfo[v][Slot9] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1495. GetWeaponName(TrunkInfo[v][Slot9], gunname, sizeof(gunname));
  1496. format(string, sizeof(string), "You have taken your %s from slot 9 of your trunk.",gunname);
  1497. SendClientMessage(playerid, 0xFFFF00FF, string);
  1498. GivePlayerWeapon(playerid, TrunkInfo[v][Slot9], TrunkInfo[v][Ammo9]);
  1499. TrunkInfo[v][Slot9] = 0;
  1500. TrunkInfo[v][Ammo9] = 0;
  1501. return 1;
  1502. }
  1503. if(slot == 10)
  1504. {
  1505. new string[128], gunname[16];
  1506. new v = Vehicle[playerid];
  1507. if(TrunkInfo[v][Slot10] < 1) return SendClientMessage(playerid, 0xAFAFAFAA, " There is nothing there !");
  1508. GetWeaponName(TrunkInfo[v][Slot10], gunname, sizeof(gunname));
  1509. format(string, sizeof(string), "You have taken your %s from slot 10 of your trunk.",gunname);
  1510. SendClientMessage(playerid, 0xFFFF00FF, string);
  1511. GivePlayerWeapon(playerid, TrunkInfo[v][Slot10], TrunkInfo[v][Ammo10]);
  1512. TrunkInfo[v][Slot10] = 0;
  1513. TrunkInfo[v][Ammo10] = 0;
  1514. return 1;
  1515. }
  1516. }
  1517. if(strcmp(x_nr, "check", true) == 0)
  1518. {
  1519. new gunname[16], gunname2[16], gunname3[16], gunname4[16], gunname5[16], gunname6[16], gunname7[16], gunname8[16], gunname9[16],
  1520. gunname10[16], string[64], string2[64], string3[64], string4[64], string5[64], string6[64], string7[64], string8[64], string9[64], string10[64];
  1521. if(TrunkOpen[Vehicle[playerid]] == 0) { SendClientMessage(playerid, 0xAFAFAFAA, " You must open the trunk first !"); return 1; }
  1522. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot1], gunname, sizeof(gunname));
  1523. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot2], gunname2, sizeof(gunname2));
  1524. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot3], gunname3, sizeof(gunname3));
  1525. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot4], gunname4, sizeof(gunname4));
  1526. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot5], gunname5, sizeof(gunname5));
  1527. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot6], gunname6, sizeof(gunname6));
  1528. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot7], gunname7, sizeof(gunname7));
  1529. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot8], gunname8, sizeof(gunname8));
  1530. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot9], gunname9, sizeof(gunname9));
  1531. GetWeaponName(TrunkInfo[Vehicle[playerid]][Slot10], gunname10, sizeof(gunname10));
  1532. SendClientMessage(playerid, 0x33AA33AA, "___________________________");
  1533. if(TrunkInfo[Vehicle[playerid]][Slot1] != 0) { format(string, sizeof(string), "Slot 1: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo1]); } else { format(string, sizeof(string), "Slot 1: None (0 Ammo)"); }
  1534. if(TrunkInfo[Vehicle[playerid]][Slot2] != 0) { format(string, sizeof(string), "Slot 2: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo2]); } else { format(string, sizeof(string), "Slot 2: None (0 Ammo)"); }
  1535. if(TrunkInfo[Vehicle[playerid]][Slot3] != 0) { format(string, sizeof(string), "Slot 3: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo3]); } else { format(string, sizeof(string), "Slot 3: None (0 Ammo)"); }
  1536. if(TrunkInfo[Vehicle[playerid]][Slot4] != 0) { format(string, sizeof(string), "Slot 4: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo4]); } else { format(string, sizeof(string), "Slot 4: None (0 Ammo)"); }
  1537. if(TrunkInfo[Vehicle[playerid]][Slot5] != 0) { format(string, sizeof(string), "Slot 5: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo5]); } else { format(string, sizeof(string), "Slot 5: None (0 Ammo)"); }
  1538. if(TrunkInfo[Vehicle[playerid]][Slot6] != 0) { format(string, sizeof(string), "Slot 6: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo6]); } else { format(string, sizeof(string), "Slot 6: None (0 Ammo)"); }
  1539. if(TrunkInfo[Vehicle[playerid]][Slot7] != 0) { format(string, sizeof(string), "Slot 7: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo7]); } else { format(string, sizeof(string), "Slot 7: None (0 Ammo)"); }
  1540. if(TrunkInfo[Vehicle[playerid]][Slot8] != 0) { format(string, sizeof(string), "Slot 8: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo8]); } else { format(string, sizeof(string), "Slot 8: None (0 Ammo)"); }
  1541. if(TrunkInfo[Vehicle[playerid]][Slot9] != 0) { format(string, sizeof(string), "Slot 9: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo9]); } else { format(string, sizeof(string), "Slot 9: None (0 Ammo)"); }
  1542. if(TrunkInfo[Vehicle[playerid]][Slot10] != 0) { format(string, sizeof(string), "Slot 10: %s (%i Ammo)", gunname, TrunkInfo[Vehicle[playerid]][Ammo10]); } else { format(string, sizeof(string), "Slot 10: None (0 Ammo)"); }
  1543. SendClientMessage(playerid, 0xFFFFFFFF, string);
  1544. SendClientMessage(playerid, 0xFFFFFFFF, string2);
  1545. SendClientMessage(playerid, 0xFFFFFFFF, string3);
  1546. SendClientMessage(playerid, 0xFFFFFFFF, string4);
  1547. SendClientMessage(playerid, 0xFFFFFFFF, string5);
  1548. SendClientMessage(playerid, 0xFFFFFFFF, string6);
  1549. SendClientMessage(playerid, 0xFFFFFFFF, string7);
  1550. SendClientMessage(playerid, 0xFFFFFFFF, string8);
  1551. SendClientMessage(playerid, 0xFFFFFFFF, string9);
  1552. SendClientMessage(playerid, 0xFFFFFFFF, string10);
  1553. SendClientMessage(playerid, 0x33AA33AA, "___________________________");
  1554. return 1;
  1555. }
  1556. return 1;
  1557. }
  1558. if(strcmp(cmd, "/lock", true) == 0)
  1559. {
  1560. if(gPlayerHasCar[playerid] == 1)
  1561. {
  1562. new v, Float:vehx, Float:vehy, Float:vehz;
  1563. v = Vehicle[playerid];
  1564. GetVehiclePos(v, vehx, vehy, vehz);
  1565. if(IsPlayerInRangeOfPoint(playerid, 3.0, vehx, vehy, vehz))
  1566. {
  1567. if(VehicleInfo[playerid][Locked] == 0)
  1568. {
  1569. SetVehicleParamsForPlayer(v, playerid, 0, 1);
  1570. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  1571. GameTextForPlayer(playerid, "~r~Car locked!", 3000, 6);
  1572. VehicleInfo[playerid][Locked] = 1;
  1573. gVehLocked[v] = 1;
  1574. return 1;
  1575. }
  1576. if(VehicleInfo[playerid][Locked] == 1)
  1577. {
  1578. SetVehicleParamsForPlayer(v, playerid, 0, 0);
  1579. PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  1580. GameTextForPlayer(playerid, "~g~Car unlocked!", 3000, 6);
  1581. VehicleInfo[playerid][Locked] = 0;
  1582. gVehLocked[v] = 0;
  1583. return 1;
  1584. }
  1585. }
  1586. else
  1587. {
  1588. SendClientMessage(playerid, 0xAFAFAFAA, "You are too far away from your vehicle.");
  1589. return 1;
  1590. }
  1591. }
  1592. else
  1593. {
  1594. SendClientMessage(playerid, 0xAFAFAFAA, "You don't own a vehicle.");
  1595. }
  1596. return 1;
  1597. }
  1598. if(strcmp(cmd, "/carhelp", true) == 0)
  1599. {
  1600. SendClientMessage(playerid, 0x33AA33AA, "_______________________________________");
  1601. SendClientMessage(playerid, 0xFFFFFFAA, "*** HELP *** type a command for more help");
  1602. SendClientMessage(playerid, 0xCBCCCEFF, "*** CAR *** /trunk /park /sellcar /setplate /findcar /lock");
  1603. return 1;
  1604. }
  1605. if(strcmp(cmd, "/setplate", true) == 0)
  1606. {
  1607. if(IsPlayerConnected(playerid))
  1608. {
  1609. if(!IsPlayerInVehicle(playerid, Vehicle[playerid]))
  1610. {
  1611. SendClientMessage(playerid, 0xFFFFFFAA, "You are not in a car that you own.");
  1612. return 1;
  1613. }
  1614. if(IsACar(Vehicle[playerid]))
  1615. {
  1616. ShowPlayerDialog(playerid, 670, DIALOG_STYLE_INPUT, "Plate", "Please set the vehicle's plate.", "Done", "Cancel");
  1617. return 1;
  1618. }
  1619. else
  1620. {
  1621. SendClientMessage(playerid, 0xAFAFAFAA, "This vehicle does not have a plate.");
  1622. return 1;
  1623. }
  1624. }
  1625. return 1;
  1626. }
  1627. if(strcmp(cmd, "/park", true) == 0)
  1628. {
  1629. new Float:X, Float:Y, Float:Z, Float:Rot;
  1630. if(!IsPlayerInVehicle(playerid, Vehicle[playerid]))
  1631. {
  1632. SendClientMessage(playerid, 0xFFFFFFAA, "You are not in a car that you own.");
  1633. return 1;
  1634. }
  1635. new file[256], name[24];
  1636. GetPlayerName(playerid, name, 24);
  1637. format(file,sizeof(file),"Cars/%s.ini",name);
  1638. dini_IntSet(file, "Model", VehicleInfo[playerid][Model]);
  1639. dini_IntSet(file, "Price", VehicleInfo[playerid][Price]);
  1640. dini_FloatSet(file, "X", VehicleInfo[playerid][CarX]);
  1641. dini_FloatSet(file, "Y", VehicleInfo[playerid][CarY]);
  1642. dini_FloatSet(file, "Z", VehicleInfo[playerid][CarZ]);
  1643. dini_FloatSet(file, "Rot", VehicleInfo[playerid][CarRot]);
  1644. dini_IntSet(file, "Locked", VehicleInfo[playerid][Locked]);
  1645. dini_Set(file, "Plate", VehPlate[Vehicle[playerid]]);
  1646. dini_IntSet(file, "mod1", VehicleInfo[playerid][mod1]);
  1647. dini_IntSet(file, "mod2", VehicleInfo[playerid][mod2]);
  1648. dini_IntSet(file, "mod3", VehicleInfo[playerid][mod3]);
  1649. dini_IntSet(file, "mod4", VehicleInfo[playerid][mod4]);
  1650. dini_IntSet(file, "mod5", VehicleInfo[playerid][mod5]);
  1651. dini_IntSet(file, "mod6", VehicleInfo[playerid][mod6]);
  1652. dini_IntSet(file, "mod7", VehicleInfo[playerid][mod7]);
  1653. dini_IntSet(file, "mod8", VehicleInfo[playerid][mod8]);
  1654. dini_IntSet(file, "mod9", VehicleInfo[playerid][mod9]);
  1655. dini_IntSet(file, "mod10", VehicleInfo[playerid][mod10]);
  1656. dini_IntSet(file, "mod11", VehicleInfo[playerid][mod11]);
  1657. dini_IntSet(file, "mod12", VehicleInfo[playerid][mod12]);
  1658. dini_IntSet(file, "mod13", VehicleInfo[playerid][mod13]);
  1659. dini_IntSet(file, "mod14", VehicleInfo[playerid][mod14]);
  1660. dini_IntSet(file, "mod15", VehicleInfo[playerid][mod15]);
  1661. dini_IntSet(file, "mod16", VehicleInfo[playerid][mod16]);
  1662. dini_IntSet(file, "mod17", VehicleInfo[playerid][mod17]);
  1663. dini_IntSet(file, "paintjob", VehicleInfo[playerid][paintjob]);
  1664. dini_IntSet(file, "color1", VehicleInfo[playerid][colora]);
  1665. dini_IntSet(file, "color2", VehicleInfo[playerid][colorb]);
  1666. SendClientMessage(playerid, 0xFFFF00FF, "Car parked successfully, it'll respawn at your parked location.");
  1667. GetVehiclePos(Vehicle[playerid], X, Y, Z);
  1668. GetVehicleZAngle(Vehicle[playerid], Rot);
  1669. VehicleInfo[playerid][Model] = GetVehicleModel(playerid);
  1670. VehicleInfo[playerid][CarX] = X;
  1671. VehicleInfo[playerid][CarY] = Y;
  1672. VehicleInfo[playerid][CarZ] = Z;
  1673. VehicleInfo[playerid][CarRot] = Rot;
  1674. return 1;
  1675. }
  1676. if(strcmp(cmd, "/sellcar", true) == 0)
  1677. {
  1678. if(IsPlayerConnected(playerid))
  1679. {
  1680. if(!IsPlayerInVehicle(playerid, Vehicle[playerid]))
  1681. {
  1682. SendClientMessage(playerid, 0xFFFFFFAA, "You are not in a car that you own.");
  1683. return 1;
  1684. }
  1685. if(ConfirmSale[playerid] == 0) {
  1686. SendClientMessage(playerid, 0xFFFF00FF, "Are you sure you want to sell your car? (Type /sellcar again to confirm).");
  1687. ConfirmSale[playerid] = 1;
  1688. return 1;
  1689. }
  1690. new string[128], file[256], name[MAX_PLAYER_NAME];
  1691. GetPlayerName(playerid, name, sizeof(name));
  1692. format(file,sizeof(file),"Cars/%s.ini",name);
  1693. format(string, sizeof(string), "You have sold your car for a 50 percent value, for $%i.", VehicleInfo[playerid][Price]/2);
  1694. GivePlayerMoney(playerid, VehicleInfo[playerid][Price]/2);
  1695. DestroyVehicle(Vehicle[playerid]);
  1696. dini_Remove(file);
  1697. Vehicle[playerid] = 0;
  1698. gPlayerHasCar[playerid] = 0;
  1699. VehicleInfo[playerid][Model] = 0;
  1700. VehicleInfo[playerid][Price] = 0;
  1701. VehicleInfo[playerid][CarX] = 0;
  1702. VehicleInfo[playerid][CarY] = 0;
  1703. VehicleInfo[playerid][CarZ] = 0;
  1704. VehicleInfo[playerid][CarRot] = 0;
  1705. ConfirmSale[playerid] = 0;
  1706. SendClientMessage(playerid, 0xFFFF00FF, string);
  1707. return 1;
  1708. }
  1709. return 1;
  1710. }
  1711. if(strcmp(cmd, "/findcar", true) == 0)
  1712. {
  1713. if(IsPlayerConnected(playerid))
  1714. {
  1715. if(gPlayerHasCar[playerid] == 1)
  1716. {
  1717. new Float:vx, Float:vy, Float:vz;
  1718. GetVehiclePos(Vehicle[playerid], vx, vy, vz);
  1719. SetPlayerCheckpoint(playerid, vx, vy, vz, 10.0);
  1720. Checkpoint[playerid] = 1;
  1721. SendClientMessage(playerid, 0xFFFFFFAA, "Go to the checkpoint to find your car!");
  1722. return 1;
  1723. }
  1724. else {
  1725. SendClientMessage(playerid, 0xAFAFAFAA, "You don't own a vehicle.");
  1726. return 1;
  1727. }
  1728. }
  1729. return 1;
  1730. }
  1731. return 0;
  1732. }
  1733.  
  1734. public OnPlayerEnterCheckpoint(playerid)
  1735. {
  1736. if(Checkpoint[playerid] == 1)
  1737. {
  1738. PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  1739. DisablePlayerCheckpoint(playerid);
  1740. return 1;
  1741. }
  1742. return 1;
  1743. }
  1744.  
  1745. public OnVehicleStreamIn(vehicleid, forplayerid)
  1746. {
  1747. if(gVehLocked[vehicleid] == 1)
  1748. {
  1749. SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
  1750. gVehLocked[vehicleid] = 1;
  1751. }
  1752. else
  1753. {
  1754. SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0);
  1755. gVehLocked[vehicleid] = 0;
  1756. }
  1757. return 1;
  1758. }
  1759.  
  1760. public OnVehicleSpawn(vehicleid)
  1761. {
  1762. if(Destroyed[vehicleid] == true)
  1763. {
  1764. new file[256], name[MAX_PLAYER_NAME];
  1765. GetPlayerName(OwnerID[vehicleid], name, sizeof(name));
  1766. format(file,sizeof(file),"Cars/%s.ini",name);
  1767. if(dini_Exists(file))
  1768. {
  1769. VehicleInfo[OwnerID[vehicleid]][Model] = dini_Int(file, "Model");
  1770. VehicleInfo[OwnerID[vehicleid]][Price] = dini_Int(file, "Price");
  1771. VehicleInfo[OwnerID[vehicleid]][CarX] = dini_Float(file, "X");
  1772. VehicleInfo[OwnerID[vehicleid]][CarY] = dini_Float(file, "Y");
  1773. VehicleInfo[OwnerID[vehicleid]][CarZ] = dini_Float(file, "Z");
  1774. VehicleInfo[OwnerID[vehicleid]][CarRot] = dini_Float(file, "Rot");
  1775. VehicleInfo[OwnerID[vehicleid]][Locked] = dini_Int(file, "Locked");
  1776. VehicleInfo[OwnerID[vehicleid]][mod1] = dini_Int(file, "mod1");
  1777. VehicleInfo[OwnerID[vehicleid]][mod2] = dini_Int(file, "mod2");
  1778. VehicleInfo[OwnerID[vehicleid]][mod3] = dini_Int(file, "mod3");
  1779. VehicleInfo[OwnerID[vehicleid]][mod4] = dini_Int(file, "mod4");
  1780. VehicleInfo[OwnerID[vehicleid]][mod5] = dini_Int(file, "mod5");
  1781. VehicleInfo[OwnerID[vehicleid]][mod6] = dini_Int(file, "mod6");
  1782. VehicleInfo[OwnerID[vehicleid]][mod7] = dini_Int(file, "mod7");
  1783. VehicleInfo[OwnerID[vehicleid]][mod8] = dini_Int(file, "mod8");
  1784. VehicleInfo[OwnerID[vehicleid]][mod9] = dini_Int(file, "mod9");
  1785. VehicleInfo[OwnerID[vehicleid]][mod10] = dini_Int(file, "mod10");
  1786. VehicleInfo[OwnerID[vehicleid]][mod11] = dini_Int(file, "mod11");
  1787. VehicleInfo[OwnerID[vehicleid]][mod12] = dini_Int(file, "mod12");
  1788. VehicleInfo[OwnerID[vehicleid]][mod13] = dini_Int(file, "mod13");
  1789. VehicleInfo[OwnerID[vehicleid]][mod14] = dini_Int(file, "mod14");
  1790. VehicleInfo[OwnerID[vehicleid]][mod15] = dini_Int(file, "mod15");
  1791. VehicleInfo[OwnerID[vehicleid]][mod16] = dini_Int(file, "mod16");
  1792. VehicleInfo[OwnerID[vehicleid]][mod17] = dini_Int(file, "mod17");
  1793. VehicleInfo[OwnerID[vehicleid]][paintjob] = dini_Int(file, "paintjob");
  1794. VehicleInfo[OwnerID[vehicleid]][colora] = dini_Int(file, "color1");
  1795. VehicleInfo[OwnerID[vehicleid]][colorb] = dini_Int(file, "color2");
  1796. Vehicle[OwnerID[vehicleid]] = CreateVehicle(VehicleInfo[OwnerID[vehicleid]][Model], VehicleInfo[OwnerID[vehicleid]][CarX], VehicleInfo[OwnerID[vehicleid]][CarY], VehicleInfo[OwnerID[vehicleid]][CarZ], VehicleInfo[OwnerID[vehicleid]][CarRot], -1, -1, 3600000);
  1797. if(VehicleInfo[OwnerID[vehicleid]][mod1]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod1]); }
  1798. if(VehicleInfo[OwnerID[vehicleid]][mod2]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod2]); }
  1799. if(VehicleInfo[OwnerID[vehicleid]][mod3]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod3]); }
  1800. if(VehicleInfo[OwnerID[vehicleid]][mod4]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod4]); }
  1801. if(VehicleInfo[OwnerID[vehicleid]][mod5]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod5]); }
  1802. if(VehicleInfo[OwnerID[vehicleid]][mod6]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod6]); }
  1803. if(VehicleInfo[OwnerID[vehicleid]][mod7]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod7]); }
  1804. if(VehicleInfo[OwnerID[vehicleid]][mod8]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod8]); }
  1805. if(VehicleInfo[OwnerID[vehicleid]][mod9]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod9]); }
  1806. if(VehicleInfo[OwnerID[vehicleid]][mod10]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod10]); }
  1807. if(VehicleInfo[OwnerID[vehicleid]][mod11]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod11]); }
  1808. if(VehicleInfo[OwnerID[vehicleid]][mod12]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod12]); }
  1809. if(VehicleInfo[OwnerID[vehicleid]][mod13]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod13]); }
  1810. if(VehicleInfo[OwnerID[vehicleid]][mod14]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod14]); }
  1811. if(VehicleInfo[OwnerID[vehicleid]][mod15]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod15]); }
  1812. if(VehicleInfo[OwnerID[vehicleid]][mod16]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod16]); }
  1813. if(VehicleInfo[OwnerID[vehicleid]][mod17]!=0) { AddVehicleComponent(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][mod17]); }
  1814. if(VehicleInfo[OwnerID[vehicleid]][colora]!=0 || VehicleInfo[OwnerID[vehicleid]][colorb]!=0)
  1815. {
  1816. ChangeVehicleColor(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][colora],VehicleInfo[OwnerID[vehicleid]][colorb]);
  1817. }
  1818. if(VehicleInfo[OwnerID[vehicleid]][paintjob]!=0)
  1819. {
  1820. ChangeVehiclePaintjob(Vehicle[OwnerID[vehicleid]],VehicleInfo[OwnerID[vehicleid]][paintjob]);
  1821. }
  1822. new tmp[256]; tmp = dini_Get(file, "Plate");
  1823. gPlayerHasCar[OwnerID[vehicleid]] = 1;
  1824. VehOwned[Vehicle[OwnerID[vehicleid]]] = 1;
  1825. SetVehicleParamsForPlayer(Vehicle[OwnerID[vehicleid]], OwnerID[vehicleid], 0, VehicleInfo[OwnerID[vehicleid]][Locked]);
  1826. gVehLocked[Vehicle[OwnerID[vehicleid]]] = VehicleInfo[OwnerID[vehicleid]][Locked];
  1827. SetVehicleNumberPlate(Vehicle[OwnerID[vehicleid]], tmp);
  1828. VehPlate[Vehicle[OwnerID[vehicleid]]] = tmp;
  1829. Destroyed[vehicleid] = false;
  1830. }
  1831. }
  1832. return 1;
  1833. }
  1834.  
  1835. public OnVehicleDeath(vehicleid, killerid)
  1836. {
  1837. new string[32], playername[MAX_PLAYER_NAME];
  1838. GetPlayerName(killerid, playername, sizeof(playername));
  1839. format(string, sizeof(string), "Trunk/%s.ini", playername);
  1840. new File: hFile = fopen(string, io_write);
  1841. if(hFile)
  1842. {
  1843. // Vehicle destroyed, too bad...
  1844. fclose(hFile);
  1845. fremove(string);
  1846. }
  1847. Destroyed[vehicleid] = true;
  1848. new file[256], name[24];
  1849. GetPlayerName(killerid, name, 24);
  1850. format(file,sizeof(file),"Cars/%s.ini",name);
  1851. if(dini_Exists(file))
  1852. {
  1853. dini_IntSet(file, "Model", GetVehicleModel(Vehicle[killerid]));
  1854. dini_IntSet(file, "Price", VehicleInfo[killerid][Price]);
  1855. dini_FloatSet(file, "X", VehicleInfo[killerid][CarX]);
  1856. dini_FloatSet(file, "Y", VehicleInfo[killerid][CarY]);
  1857. dini_FloatSet(file, "Z", VehicleInfo[killerid][CarZ]);
  1858. dini_FloatSet(file, "Rot", VehicleInfo[killerid][CarRot]);
  1859. dini_IntSet(file, "Locked", VehicleInfo[killerid][Locked]);
  1860. dini_Set(file, "Plate", VehPlate[Vehicle[killerid]]);
  1861. dini_IntSet(file, "mod1", VehicleInfo[killerid][mod1]);
  1862. dini_IntSet(file, "mod2", VehicleInfo[killerid][mod2]);
  1863. dini_IntSet(file, "mod3", VehicleInfo[killerid][mod3]);
  1864. dini_IntSet(file, "mod4", VehicleInfo[killerid][mod4]);
  1865. dini_IntSet(file, "mod5", VehicleInfo[killerid][mod5]);
  1866. dini_IntSet(file, "mod6", VehicleInfo[killerid][mod6]);
  1867. dini_IntSet(file, "mod7", VehicleInfo[killerid][mod7]);
  1868. dini_IntSet(file, "mod8", VehicleInfo[killerid][mod8]);
  1869. dini_IntSet(file, "mod9", VehicleInfo[killerid][mod9]);
  1870. dini_IntSet(file, "mod10", VehicleInfo[killerid][mod10]);
  1871. dini_IntSet(file, "mod11", VehicleInfo[killerid][mod11]);
  1872. dini_IntSet(file, "mod12", VehicleInfo[killerid][mod12]);
  1873. dini_IntSet(file, "mod13", VehicleInfo[killerid][mod13]);
  1874. dini_IntSet(file, "mod14", VehicleInfo[killerid][mod14]);
  1875. dini_IntSet(file, "mod15", VehicleInfo[killerid][mod15]);
  1876. dini_IntSet(file, "mod16", VehicleInfo[killerid][mod16]);
  1877. dini_IntSet(file, "mod17", VehicleInfo[killerid][mod17]);
  1878. dini_IntSet(file, "paintjob", VehicleInfo[killerid][paintjob]);
  1879. dini_IntSet(file, "color1", VehicleInfo[killerid][colora]);
  1880. dini_IntSet(file, "color2", VehicleInfo[killerid][colorb]);
  1881. }
  1882. SetVehicleToRespawn(vehicleid);
  1883. return 1;
  1884. }
  1885.  
  1886. stock IsACar(vehicleid)
  1887. {
  1888. switch(GetVehicleModel(vehicleid))
  1889. {
  1890. case 400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,
  1891. 418,419,420,421,422,423,424,426,427,428,429,431,432,433,434,435,436,437,438,
  1892. 439,440,442,443,444,445,451,455,456,458,459,466,467,470,474,475,477,478,479,
  1893. 480,482,483,486,489,490,491,492,494,495,496,498,499,500,502,503,504,505,506,
  1894. 507,508,514,515,516,517,518,524,525,526,527,528,529,533,534,535,536,540,541,
  1895. 542,543,544,545,546,547,549,550,551,552,554,555,556,557,558,559,560,561,562,
  1896. 565,566,567,568,573,575,576,578,579,580,582,585,587,588, 589,596,597,598,599,
  1897. 600,601,602,603,604,605,609: return 1;
  1898. }
  1899. return 1;
  1900. }
  1901.  
  1902. public SaveTrunk(playerid)
  1903. {
  1904. if(IsPlayerConnected(playerid))
  1905. {
  1906. if(gPlayerHasCar[playerid] == 1)
  1907. {
  1908. new string[32];
  1909. new playername[MAX_PLAYER_NAME];
  1910. GetPlayerName(playerid, playername, sizeof(playername));
  1911. format(string, sizeof(string), "Trunk/%s.ini", playername);
  1912. new File: hFile = fopen(string, io_write);
  1913. if(hFile)
  1914. {
  1915. new var[64];
  1916. format(var, 32, "Slot1=%i\n", TrunkInfo[Vehicle[playerid]][Slot1]);
  1917. fwrite(hFile, var);
  1918. format(var, 32, "Slot2=%i\n", TrunkInfo[Vehicle[playerid]][Slot2]);
  1919. fwrite(hFile, var);
  1920. format(var, 32, "Slot3=%i\n", TrunkInfo[Vehicle[playerid]][Slot3]);
  1921. fwrite(hFile, var);
  1922. format(var, 32, "Slot4=%i\n", TrunkInfo[Vehicle[playerid]][Slot4]);
  1923. fwrite(hFile, var);
  1924. format(var, 32, "Slot5=%i\n", TrunkInfo[Vehicle[playerid]][Slot5]);
  1925. fwrite(hFile, var);
  1926. format(var, 32, "Slot6=%i\n", TrunkInfo[Vehicle[playerid]][Slot6]);
  1927. fwrite(hFile, var);
  1928. format(var, 32, "Slot7=%i\n", TrunkInfo[Vehicle[playerid]][Slot7]);
  1929. fwrite(hFile, var);
  1930. format(var, 32, "Slot8=%i\n", TrunkInfo[Vehicle[playerid]][Slot8]);
  1931. fwrite(hFile, var);
  1932. format(var, 32, "Slot9=%i\n", TrunkInfo[Vehicle[playerid]][Slot9]);
  1933. fwrite(hFile, var);
  1934. format(var, 32, "Slot10=%i\n", TrunkInfo[Vehicle[playerid]][Slot10]);
  1935. fwrite(hFile, var);
  1936. format(var, 32, "Ammo1=%i\n", TrunkInfo[Vehicle[playerid]][Ammo1]);
  1937. fwrite(hFile, var);
  1938. format(var, 32, "Ammo2=%i\n", TrunkInfo[Vehicle[playerid]][Ammo2]);
  1939. fwrite(hFile, var);
  1940. format(var, 32, "Ammo3=%i\n", TrunkInfo[Vehicle[playerid]][Ammo3]);
  1941. fwrite(hFile, var);
  1942. format(var, 32, "Ammo4=%i\n", TrunkInfo[Vehicle[playerid]][Ammo4]);
  1943. fwrite(hFile, var);
  1944. format(var, 32, "Ammo5=%i\n", TrunkInfo[Vehicle[playerid]][Ammo5]);
  1945. fwrite(hFile, var);
  1946. format(var, 32, "Ammo6=%i\n", TrunkInfo[Vehicle[playerid]][Ammo6]);
  1947. fwrite(hFile, var);
  1948. format(var, 32, "Ammo7=%i\n", TrunkInfo[Vehicle[playerid]][Ammo7]);
  1949. fwrite(hFile, var);
  1950. format(var, 32, "Ammo8=%i\n", TrunkInfo[Vehicle[playerid]][Ammo8]);
  1951. fwrite(hFile, var);
  1952. format(var, 32, "Ammo9=%i\n", TrunkInfo[Vehicle[playerid]][Ammo9]);
  1953. fwrite(hFile, var);
  1954. format(var, 32, "Ammo10=%i\n", TrunkInfo[Vehicle[playerid]][Ammo10]);
  1955. fwrite(hFile, var);
  1956. fclose(hFile);
  1957. }
  1958. }
  1959. }
  1960. return 1;
  1961. }
  1962.  
  1963. public LoadTrunk(playerid)
  1964. {
  1965. new string[128], Playername[24];
  1966. GetPlayerName(playerid, Playername, 24);
  1967. format(string, sizeof(string), "Trunk/%s.ini", Playername);
  1968. new File: UserFile = fopen(string, io_read);
  1969. if(UserFile)
  1970. {
  1971. new key[256], val[256], Data[256];
  1972. while(fread(UserFile, Data, sizeof(Data)))
  1973. {
  1974. key = ini_GetKey(Data);
  1975. if( strcmp( key , "Slot1" , true ) == 0 )
  1976. {
  1977. val = ini_GetValue(Data);
  1978. TrunkInfo[Vehicle[playerid]][Slot1] = strval(val);
  1979. }
  1980. if( strcmp( key , "Slot2" , true ) == 0 )
  1981. {
  1982. val = ini_GetValue(Data);
  1983. TrunkInfo[Vehicle[playerid]][Slot2] = strval(val);
  1984. }
  1985. if( strcmp( key , "Slot3" , true ) == 0 )
  1986. {
  1987. val = ini_GetValue(Data);
  1988. TrunkInfo[Vehicle[playerid]][Slot3] = strval(val);
  1989. }
  1990. if( strcmp( key , "Slot4" , true ) == 0 )
  1991. {
  1992. val = ini_GetValue(Data);
  1993. TrunkInfo[Vehicle[playerid]][Slot4] = strval(val);
  1994. }
  1995. if( strcmp( key , "Slot5" , true ) == 0 )
  1996. {
  1997. val = ini_GetValue(Data);
  1998. TrunkInfo[Vehicle[playerid]][Slot5] = strval(val);
  1999. }
  2000. if( strcmp( key , "Slot6" , true ) == 0 )
  2001. {
  2002. val = ini_GetValue(Data);
  2003. TrunkInfo[Vehicle[playerid]][Slot6] = strval(val);
  2004. }
  2005. if( strcmp( key , "Slot7" , true ) == 0 )
  2006. {
  2007. val = ini_GetValue(Data);
  2008. TrunkInfo[Vehicle[playerid]][Slot7] = strval(val);
  2009. }
  2010. if( strcmp( key , "Slot8" , true ) == 0 )
  2011. {
  2012. val = ini_GetValue(Data);
  2013. TrunkInfo[Vehicle[playerid]][Slot8] = strval(val);
  2014. }
  2015. if( strcmp( key , "Slot9" , true ) == 0 )
  2016. {
  2017. val = ini_GetValue(Data);
  2018. TrunkInfo[Vehicle[playerid]][Slot9] = strval(val);
  2019. }
  2020. if( strcmp( key , "Slot10" , true ) == 0 )
  2021. {
  2022. val = ini_GetValue(Data);
  2023. TrunkInfo[Vehicle[playerid]][Slot10] = strval(val);
  2024. }
  2025. if( strcmp( key , "Ammo1" , true ) == 0 )
  2026. {
  2027. val = ini_GetValue(Data);
  2028. TrunkInfo[Vehicle[playerid]][Ammo1] = strval(val);
  2029. }
  2030. if( strcmp( key , "Ammo2" , true ) == 0 )
  2031. {
  2032. val = ini_GetValue(Data);
  2033. TrunkInfo[Vehicle[playerid]][Ammo2] = strval(val);
  2034. }
  2035. if( strcmp( key , "Ammo3" , true ) == 0 )
  2036. {
  2037. val = ini_GetValue(Data);
  2038. TrunkInfo[Vehicle[playerid]][Ammo3] = strval(val);
  2039. }
  2040. if( strcmp( key , "Ammo4" , true ) == 0 )
  2041. {
  2042. val = ini_GetValue(Data);
  2043. TrunkInfo[Vehicle[playerid]][Ammo4] = strval(val);
  2044. }
  2045. if( strcmp( key , "Ammo5" , true ) == 0 )
  2046. {
  2047. val = ini_GetValue(Data);
  2048. TrunkInfo[Vehicle[playerid]][Ammo5] = strval(val);
  2049. }
  2050. if( strcmp( key , "Ammo6" , true ) == 0 )
  2051. {
  2052. val = ini_GetValue(Data);
  2053. TrunkInfo[Vehicle[playerid]][Ammo6] = strval(val);
  2054. }
  2055. if( strcmp( key , "Ammo7" , true ) == 0 )
  2056. {
  2057. val = ini_GetValue(Data);
  2058. TrunkInfo[Vehicle[playerid]][Ammo7] = strval(val);
  2059. }
  2060. if( strcmp( key , "Ammo8" , true ) == 0 )
  2061. {
  2062. val = ini_GetValue(Data);
  2063. TrunkInfo[Vehicle[playerid]][Ammo8] = strval(val);
  2064. }
  2065. if( strcmp( key , "Ammo9" , true ) == 0 )
  2066. {
  2067. val = ini_GetValue(Data);
  2068. TrunkInfo[Vehicle[playerid]][Ammo9] = strval(val);
  2069. }
  2070. if( strcmp( key , "Ammo10" , true ) == 0 )
  2071. {
  2072. val = ini_GetValue(Data);
  2073. TrunkInfo[Vehicle[playerid]][Ammo10] = strval(val);
  2074. }
  2075. }
  2076. fclose(UserFile);
  2077. }
  2078. return 1;
  2079. }
  2080.  
  2081. public RemovePlayerWeapon(playerid, weaponid)
  2082. {
  2083. new plyWeapons[12] = 0;
  2084. new plyAmmo[12] = 0;
  2085. for(new slot = 0; slot != 12; slot++)
  2086. {
  2087. new wep, ammo;
  2088. GetPlayerWeaponData(playerid, slot, wep, ammo);
  2089.  
  2090. if(wep != weaponid && ammo != 0)
  2091. {
  2092. GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
  2093. }
  2094. }
  2095. ResetPlayerWeapons(playerid);
  2096. for(new slot = 0; slot != 12; slot++)
  2097. {
  2098. if(plyAmmo[slot] != 0)
  2099. {
  2100. GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
  2101. }
  2102. }
  2103. return 1;
  2104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement