Guest User

Untitled

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