Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 65.87 KB | None | 0 0
  1. /*
  2. PawnFox´s CarSystem Version 1.0.0
  3. _________________________________________________
  4.  
  5.  
  6.  
  7.  
  8. Diese Funktion bitte in´s Script einfügen: - Du sagtest ja du nutzt ein GF
  9.  
  10. forward GetPlayerAdminLevel(playerid)
  11. public GetPlayerAdminLevel(playerid)
  12. {
  13. return PlayerInfo[playerid][pAdmin];
  14. }
  15.  
  16.  
  17.  
  18. Functions:
  19.  
  20.  
  21. GetPlayerAdminLevel(playerid)
  22. GetUserName(playerid);
  23. LoadCarDealerShips()
  24. UpdateCarDealerShip(id)
  25. CountCarDealerShips()
  26. GetFreeCarDealerShipID()
  27. CreateCarDealerShip(Name[], Float: X, Float: Y, Float: Z, Float: aX, Float: aY, Float: aZ)
  28. DeleteCarDealerShip(id)
  29. CreatePlayerCarDealerShipList(playerid, dialogid, Caption[], Button1[], Button2[], Page)
  30. DeleteListRAM(playerid)
  31. LoadCarDealerCars(cardealer)
  32. CreateCarDealerCar(Model, Float: X, Float: Y, Float: Z; Float: R, C1, C2, Price)
  33. DeleteCarDealerCar(CarDealer, id)
  34. CountCarDealerCars(cardealer)
  35. GetFreeCarDealerCarID(cardealer)
  36. CreatePlayerCarDealerCarList(playerid, dialogid, Caption[], Button1[], Button2[], CarDealer, Page)
  37. IsPlayerInBuyAbleCar(playerid, CarDealer, ID)
  38. LoadPlayerCars(playerid)
  39. UpdatePlayerCar(playerid, id)
  40. CountPlayerCars(playerid)
  41. GetFreePlayerCarID(playerid)
  42. CreatePlayerCar(playerid, cardealer, id)
  43. ChangeCarOwner(playerid, id, toplayerid)
  44. IsPlayerInNearOfHisCar(playerid)
  45. IsPlayerInHisCar(playerid)
  46. strtok(const string[], &index)
  47. IsNumeric(const string[])
  48. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  49.  
  50. */
  51.  
  52. #include <a_samp>
  53. #include <a_mysql>
  54.  
  55.  
  56.  
  57. #define SQL_HOST "localhost"
  58. #define SQL_USER "root"
  59. #define SQL_DB "pwnfox_carowner"
  60. #define SQL_PW ""
  61.  
  62.  
  63. forward OnDialogResponse2(playerid, dialogid, response, listitem, inputtext[]);
  64. forward OnPlayerListResponse(playerid, dialogid, response, listitem);
  65.  
  66.  
  67.  
  68. new LIST_INFO[MAX_PLAYERS][20][15];
  69. new bool:LIST_PAGE_EXIST[MAX_PLAYERS][20];
  70. new bool:LIST_INFO_EXIST[MAX_PLAYERS][20][15];
  71. new VehicleName[][] = {
  72. "Landstalker",
  73. "Bravura",
  74. "Buffalo",
  75. "Linerunner",
  76. "Pereniel",
  77. "Sentinel",
  78. "Dumper",
  79. "Firetruck",
  80. "Trashmaster",
  81. "Stretch",
  82. "Manana",
  83. "Infernus",
  84. "Voodoo",
  85. "Pony",
  86. "Mule",
  87. "Cheetah",
  88. "Ambulance",
  89. "Leviathan",
  90. "Moonbeam",
  91. "Esperanto",
  92. "Taxi",
  93. "Washington",
  94. "Bobcat",
  95. "Mr Whoopee",
  96. "BF Injection",
  97. "Hunter",
  98. "Premier",
  99. "Enforcer",
  100. "Securicar",
  101. "Banshee",
  102. "Predator",
  103. "Bus",
  104. "Rhino",
  105. "Barracks",
  106. "Hotknife",
  107. "Trailer",
  108. "Previon",
  109. "Coach",
  110. "Cabbie",
  111. "Stallion",
  112. "Rumpo",
  113. "RC Bandit",
  114. "Romero",
  115. "Packer",
  116. "Monster",
  117. "Admiral",
  118. "Squalo",
  119. "Seasparrow",
  120. "Pizzaboy",
  121. "Tram",
  122. "Trailer",
  123. "Turismo",
  124. "Speeder",
  125. "Reefer",
  126. "Tropic",
  127. "Flatbed",
  128. "Yankee",
  129. "Caddy",
  130. "Solair",
  131. "RC Van",
  132. "Skimmer",
  133. "PCJ-600",
  134. "Faggio",
  135. "Freeway",
  136. "RC Baron",
  137. "RC Raider",
  138. "Glendale",
  139. "Oceanic",
  140. "Sanchez",
  141. "Sparrow",
  142. "Patriot",
  143. "Quad",
  144. "Coastguard",
  145. "Dinghy",
  146. "Hermes",
  147. "Sabre",
  148. "Rustler",
  149. "ZR-350",
  150. "Walton",
  151. "Regina",
  152. "Comet",
  153. "BMX",
  154. "Burrito",
  155. "Camper",
  156. "Marquis",
  157. "Baggage",
  158. "Dozer",
  159. "Maverick",
  160. "News Chopper",
  161. "Rancher",
  162. "FBI Rancher",
  163. "Virgo",
  164. "Greenwood",
  165. "Jetmax",
  166. "Hotring",
  167. "Sandking",
  168. "Blista Compact",
  169. "PD Maverick",
  170. "Boxville",
  171. "Benson",
  172. "Mesa",
  173. "RC Goblin",
  174. "Hotring",
  175. "Hotring",
  176. "Bloodring",
  177. "Rancher",
  178. "Super GT",
  179. "Elegant",
  180. "Journey",
  181. "Bike",
  182. "Mountain Bike",
  183. "Beagle",
  184. "Cropdust",
  185. "Stunt",
  186. "Tanker",
  187. "RoadTrain",
  188. "Nebula",
  189. "Majestic",
  190. "Buccaneer",
  191. "Shamal",
  192. "Hydra",
  193. "FCR-900",
  194. "NRG-500",
  195. "HPV1000",
  196. "Cement",
  197. "Tow Truck",
  198. "Fortune",
  199. "Cadrona",
  200. "FBI Truck",
  201. "Willard",
  202. "Forklift",
  203. "Tractor",
  204. "Combine",
  205. "Feltzer",
  206. "Remington",
  207. "Slamvan",
  208. "Blade",
  209. "Freight",
  210. "Streak",
  211. "Vortex",
  212. "Vincent",
  213. "Bullet",
  214. "Clover",
  215. "Sadler",
  216. "Firetruck",
  217. "Hustler",
  218. "Intruder",
  219. "Primo",
  220. "Cargobob",
  221. "Tampa",
  222. "Sunrise",
  223. "Merit",
  224. "Utility",
  225. "Nevada",
  226. "Yosemite",
  227. "Windsor",
  228. "Monster",
  229. "Monster",
  230. "Uranus",
  231. "Jester",
  232. "Sultan",
  233. "Stratum",
  234. "Elegy",
  235. "Raindance",
  236. "RC Tiger",
  237. "Flash",
  238. "Tahoma",
  239. "Savanna",
  240. "Bandito",
  241. "Freight",
  242. "Trailer",
  243. "Kart",
  244. "Mower",
  245. "Duneride",
  246. "Sweeper",
  247. "Broadway",
  248. "Tornado",
  249. "AT-400",
  250. "DFT-30",
  251. "Huntley",
  252. "Stafford",
  253. "BF-400",
  254. "Newsvan",
  255. "Tug",
  256. "Trailer",
  257. "Emperor",
  258. "Wayfarer",
  259. "Euros",
  260. "Hotdog",
  261. "Club",
  262. "Trailer",
  263. "Trailer",
  264. "Andromada",
  265. "Dodo",
  266. "RC Cam",
  267. "Launch",
  268. "Police Car",
  269. "Police Car",
  270. "Police Car",
  271. "Police Ranger",
  272. "Picador",
  273. "S.W.A.T",
  274. "Alpha",
  275. "Phoenix",
  276. "Glendale",
  277. "Sadler",
  278. "Luggage Trailer",
  279. "Luggage Trailer",
  280. "Stair Trailer",
  281. "Boxville",
  282. "Farm Plow",
  283. "Utility Trailer"
  284. };
  285.  
  286.  
  287.  
  288. #define Max_Car_Dealer_Ships 10 //Maximal 10 Autohäuser
  289. #define Max_Cars_Per_Dealer_Ship 30 //Maximal 30 Autos pro Autohaus
  290. #define Max_Player_Cars 2 //Maximale besitzbare Fahrzeuge pro Spieler
  291.  
  292.  
  293.  
  294. #define Dia_CarSys1 1
  295. #define Dia_CarSys2 2
  296. #define Dia_CarSys3 3
  297. #define Dia_CarSys4 4
  298. #define Dia_CarSys5 5
  299. #define Dia_CarSys6 6
  300. #define Dia_CarSys7 7
  301. #define Dia_CarSys8 8
  302. #define Dia_CarSys9 9
  303. #define Dia_CarSys10 10
  304. #define Dia_CarSys11 11
  305. #define Dia_CarSys12 12
  306. #define Dia_CarSys13 13
  307. #define Dia_CarSys14 14
  308. #define Dia_CarSys15 15
  309. #define Dia_CarSys16 16
  310. #define Dia_CarSys17 17
  311. #define Dia_CarSys18 18
  312. #define Dia_CarSys19 19
  313. #define Dia_CarSys20 20
  314. #define Dia_CarSys21 21
  315. #define Dia_CarSys22 22
  316. #define Dia_CarSys23 23
  317. #define Dia_CarSys24 24
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324. enum cDealer
  325. {
  326. cName[32],
  327. Float: cX,
  328. Float: cY,
  329. Float: cZ,
  330. Float: caX,
  331. Float: caY,
  332. Float: caZ,
  333. cSQLid,
  334. cPickup,
  335. Text3D:cText,
  336. bool: cExist,
  337. }
  338. new CarDealerShipInfo[Max_Car_Dealer_Ships][cDealer];
  339.  
  340.  
  341. enum cCar
  342. {
  343. cModel,
  344. Float: cX,
  345. Float: cY,
  346. Float: cZ,
  347. Float: cR,
  348. c1,
  349. c2,
  350. cPrice,
  351. cCarDealer,
  352. cSQLid,
  353. bool:cExist,
  354. cVehid,
  355. Text3D: cText,
  356. }
  357. new CarsInfo[Max_Car_Dealer_Ships][Max_Cars_Per_Dealer_Ship][cCar];
  358.  
  359.  
  360.  
  361. enum pCar
  362. {
  363. pModel,
  364. Float: pX,
  365. Float: pY,
  366. Float: pZ,
  367. Float: pR,
  368. pC1,
  369. pC2,
  370. pMod[14],
  371. pLocked,
  372. pSQLid,
  373. bool: pExist,
  374. pVehid,
  375. }
  376. new CarInfo[MAX_PLAYERS][Max_Player_Cars][pCar];
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384. main(){}
  385.  
  386.  
  387. public OnGameModeInit()
  388. {
  389. print(" PawnFox´s CarSystem ");
  390. print("________________________");
  391. print("Version 1.0.0");
  392.  
  393.  
  394. mysql_debug();
  395. mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PW);
  396. if(mysql_ping()!=1)
  397. {
  398. printf("MySql-Fehler: Es konnte keine Verbindung zur Datenbank: %s hergestellt werden.\nServer wird beendet.", SQL_DB);
  399. SendRconCommand("exit");
  400. return 1;
  401. }
  402. LoadCarDealerShips();
  403.  
  404.  
  405. AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
  406. return 1;
  407. }
  408.  
  409. public OnPlayerConnect(playerid)
  410. {
  411. LoadPlayerCars(playerid);
  412. return 1;
  413. }
  414.  
  415. public OnPlayerDisconnect(playerid, reason)
  416. {
  417. return 1;
  418. }
  419.  
  420. public OnPlayerCommandText(playerid, cmdtext[])
  421. {
  422. new cmd[128], tmp[128], string[128], idx;
  423. cmd = strtok(cmdtext, idx);
  424.  
  425. if(strcmp(cmd, "/caracp", true) == 0)
  426. {
  427. if(GetPlayerAdminLevel(playerid) >= 1337)
  428. {
  429. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  430. return 1;
  431. }
  432. }
  433. if(strcmp(cmd, "/aPoint", true) == 0)
  434. {
  435. if(GetPVarInt(playerid, "aPoint"))
  436. {
  437. DeletePVar(playerid, "aPoint");
  438. new Float: X, Float: Y, Float: Z;
  439. GetPlayerPos(playerid, X, Y, Z);
  440. SetPVarFloat(playerid, "aX", X);
  441. SetPVarFloat(playerid, "aY", Y);
  442. SetPVarFloat(playerid, "aZ", Z);
  443. new name[32];
  444. GetPVarString(playerid, "name", name, sizeof(name));
  445. format(string, sizeof(string), "AutohausName: %s\n\nAutohaus wirklich erstellen?", name);
  446. ShowPlayerDialog(playerid, Dia_CarSys4, DIALOG_STYLE_MSGBOX, "Erstellen?", string, "Erstellen", "Abbrechen");
  447. return 1;
  448. }
  449. else if(GetPVarInt(playerid, "aPoint2"))
  450. {
  451. DeletePVar(playerid, "aPoint2");
  452. format(string, sizeof(string), "Auto: %s\nPreis: %d$\n\nAutohaus wirklich erstellen?", VehicleName[GetPVarInt(playerid, "model")-400], GetPVarInt(playerid, "price"));
  453. ShowPlayerDialog(playerid, Dia_CarSys15, DIALOG_STYLE_MSGBOX, "Erstellen?", string, "Erstellen", "Abbrechen");
  454. return 1;
  455. }
  456. else if(GetPVarInt(playerid, "aPoint3"))
  457. {
  458. DeletePVar(playerid, "aPoint3");
  459. ShowPlayerDialog(playerid, Dia_CarSys22, DIALOG_STYLE_MSGBOX, "Speichern", "Auto hier her versetzt\n\nÄnderung Speichern?", "Speichern", "Abbrechen");
  460. return 1;
  461. }
  462. }
  463. if(strcmp(cmd, "/sellveh", true) == 0)
  464. {
  465. new id = IsPlayerInNearOfHisCar(playerid);
  466. if(id != -1)
  467. {
  468. tmp = strtok(cmdtext, idx);
  469. if(!tmp[0])
  470. {
  471. SendClientMessage(playerid, 0xFFFFFFFF, "Verwendung: /SellVeh [Playerid/Name][Preis]");
  472. return 1;
  473. }
  474. new pId = ReturnUser(tmp);
  475. if(!IsPlayerConnected(pId))
  476. {
  477. SendClientMessage(playerid, 0xAA3333AA, "Dieser Spieler ist offline.");
  478. return 1;
  479. }
  480. new Float: X, Float: Y, Float: Z;
  481. GetPlayerPos(pId, X, Y, Z);
  482. if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  483. {
  484. tmp = strtok(cmdtext, idx);
  485. if(!tmp[0])
  486. {
  487. SendClientMessage(playerid, 0xFFFFFFFF, "Verwendung: /SellVeh [Playerid/Name][Preis]");
  488. return 1;
  489. }
  490. new price = strval(tmp);
  491. if(price < 1)
  492. {
  493. SendClientMessage(playerid, 0xAA3333AA, "Der Preis darf nicht unter 1$ sein.");
  494. return 1;
  495. }
  496. format(string, sizeof(string), "Info: Du bietest %s dein Auto für %d$ an.", GetUserName(pId), price);
  497. SendClientMessage(playerid, 0xFFFFFFFF, string);
  498. SetPVarInt(pId, "sp", playerid);
  499. SetPVarInt(pId, "id", id);
  500. SetPVarInt(pId, "spp", price);
  501. format(string, sizeof(string), "%s bietet dir sein Auto an\nFahrzeug: %s\nPreis: %d$", GetUserName(playerid), VehicleName[CarInfo[playerid][id][pModel]],price);
  502. ShowPlayerDialog(playerid, Dia_CarSys24, DIALOG_STYLE_MSGBOX, "Kaufen?", string, "Annehmen", "Ablehnen");
  503. return 1;
  504. }
  505. else
  506. {
  507. SendClientMessage(playerid, 0xAA3333AA, "Dieser Spieler befindet sich nicht in deiner Nähe.");
  508. return 1;
  509. }
  510. }
  511. else
  512. {
  513. SendClientMessage(playerid, 0xAA3333AA, "Du befindest dich nicht in der Nähe von eins deiner Fahrzeuge.");
  514. return 1;
  515. }
  516. }
  517. if(strcmp(cmd, "/carlock", true) == 0)
  518. {
  519. new id = IsPlayerInNearOfHisCar(playerid);
  520. if(id != -1)
  521. {
  522. if(CarInfo[playerid][id][pLocked] == 0)
  523. {
  524. CarInfo[playerid][id][pLocked] = 1;
  525. for(new i = 0; i < MAX_PLAYERS; i++)
  526. {
  527. if(i == playerid)continue;
  528. SetVehicleParamsForPlayer(CarInfo[playerid][id][pVehid], playerid, 1, 1);
  529. }
  530. SendClientMessage(playerid, 0xFFFFFFFF, "Du hast dein Fahrzeug für andere Spieler abgeschlossen");
  531. return 1;
  532. }
  533. if(CarInfo[playerid][id][pLocked] == 1)
  534. {
  535. CarInfo[playerid][id][pLocked] = 0;
  536. for(new i = 0; i < MAX_PLAYERS; i++)
  537. {
  538. if(i == playerid)continue;
  539. SetVehicleParamsForPlayer(CarInfo[playerid][id][pVehid], playerid, 0, 0);
  540. }
  541. SendClientMessage(playerid, 0xFFFFFFFF, "Du hast dein Fahrzeug für andere Spieler aufgeschlossen");
  542. return 1;
  543. }
  544. }
  545. else
  546. {
  547. SendClientMessage(playerid, 0xAA3333AA, "Du befindest dich nicht in der Nähe von eins deiner Fahrzeuge.");
  548. return 1;
  549. }
  550. }
  551. if(strcmp(cmd, "/Park", true) == 0)
  552. {
  553. new id = IsPlayerInHisCar(playerid);
  554. if(id != -1)
  555. {
  556. GetVehiclePos(GetPlayerVehicleID(playerid), CarInfo[playerid][id][pX], CarInfo[playerid][id][pY], CarInfo[playerid][id][pZ]);
  557. GetPlayerFacingAngle(playerid, CarInfo[playerid][id][pR]);
  558. UpdatePlayerCar(playerid, id);
  559. SendClientMessage(playerid, 0x00D000FF, "Fahrzeug geparkt.");
  560. return 1;
  561. }
  562. else
  563. {
  564. SendClientMessage(playerid, 0xAA3333AA, "Du befindest dich nicht in deinem Fahrzeug.");
  565. return 1;
  566. }
  567. }
  568. return 0;
  569. }
  570.  
  571. public OnPlayerStateChange(playerid, newstate, oldstate)
  572. {
  573. new string[128], CarDealer, id;
  574. IsPlayerInBuyAbleCar(playerid, CarDealer, id);
  575. if(CarDealer != -1 && id != -1)
  576. {
  577. format(string, sizeof(string), "Auto: %s\nPreis: %d$", VehicleName[CarsInfo[CarDealer][id][cModel]], CarsInfo[CarDealer][id][cPrice]);
  578. ShowPlayerDialog(playerid, Dia_CarSys23, DIALOG_STYLE_MSGBOX, "Kaufen?", string, "Kaufen", "Verlassen");
  579. return 1;
  580. }
  581. return 1;
  582. }
  583.  
  584. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  585. {
  586. new string[128];
  587. if(dialogid == Dia_CarSys2)
  588. {
  589. if(response)
  590. {
  591. if(GetPVarInt(playerid, "NotCarDealerShips"))
  592. {
  593. listitem = 1;
  594. }
  595. switch(listitem)
  596. {
  597. case 0: //Autohaus bearbeiten
  598. {
  599. ShowPlayerDialog(playerid, Dia_CarSys6, DIALOG_STYLE_LIST, "Autohaus bearbeiten", "Name\nPosition\nAusgabe Punkt\nFahrzeuge", "Weiter", "Zurück");
  600. return 1;
  601. }
  602. case 1: //Autohaus hinzufügen
  603. {
  604. ShowPlayerDialog(playerid, Dia_CarSys3, DIALOG_STYLE_INPUT, "Autohaus hinzufügen", "Bitte gebe einen Namen ein.", "Weiter", "Zurück");
  605. return 1;
  606. }
  607. case 3: //Autohaus löschen
  608. {
  609. ShowPlayerDialog(playerid, Dia_CarSys5, DIALOG_STYLE_MSGBOX, "Löschen?", "Dieses Autohaus wirklich löschen?", "Löschen", "Abbrechen");
  610. return 1;
  611. }
  612. }
  613. }
  614. else
  615. {
  616. new c[32], b1[32], b2[32];
  617. GetPVarString(playerid, "CAPTION", c, sizeof(c));
  618. GetPVarString(playerid, "BUTTON1", b1, sizeof(b1));
  619. GetPVarString(playerid, "BUTTON2", b2, sizeof(b2));
  620. CreatePlayerCarDealerShipList(playerid, dialogid, c, b1, b2, GetPVarInt(playerid, "PAGE"));
  621. return 1;
  622. }
  623. }
  624. if(dialogid == Dia_CarSys3)
  625. {
  626. if(response)
  627. {
  628. if(!inputtext[0])
  629. {
  630. SendClientMessage(playerid, 0xAA3333AA, "Fehler: Bitte gebe einen Autohaus Name ein.");
  631. ShowPlayerDialog(playerid, Dia_CarSys3, DIALOG_STYLE_INPUT, "Autohaus hinzufügen", "Bitte gebe einen Namen ein.", "Weiter", "Zurück");
  632. return 1;
  633. }
  634. new Float: X, Float: Y, Float: Z;
  635. SetPVarFloat(playerid, "X", X);
  636. SetPVarFloat(playerid, "Y", Y);
  637. SetPVarFloat(playerid, "Z", Z);
  638. SetPVarString(playerid, "name", inputtext);
  639. SendClientMessage(playerid, 0x33AA33AA, "Info: Bitte stelle dich nun an einem Gewünschten Ausgabepunkt und gebe /Point ein.");
  640. SetPVarInt(playerid, "aPoint", 1);
  641. }
  642. else
  643. {
  644. if(GetPVarInt(playerid, "NotCarDealerShips"))
  645. {
  646. ShowPlayerDialog(playerid, Dia_CarSys2, DIALOG_STYLE_LIST, "Menü", "Autohaus hinzufügen", "Auswählen", "Zurück");
  647. return 1;
  648. }
  649. else
  650. {
  651. ShowPlayerDialog(playerid, Dia_CarSys2, DIALOG_STYLE_LIST, "Menü", "Autohaus bearbeiten\nAutohaus hinzufügen\nAutohaus löschen", "Auswählen", "Zurück");
  652. SetPVarInt(playerid, "selcardealer", listitem);
  653. return 1;
  654. }
  655. }
  656. }
  657. if(dialogid == Dia_CarSys4)
  658. {
  659. if(response)
  660. {
  661. new name[32], Float: X, Float: Y, Float: Z, Float: aX, Float: aY, Float: aZ;
  662. GetPVarString(playerid, "name", name, sizeof(name));
  663. X = GetPVarFloat(playerid, "X");
  664. Y = GetPVarFloat(playerid, "Y");
  665. Z = GetPVarFloat(playerid, "Z");
  666. aX = GetPVarFloat(playerid, "aX");
  667. aY = GetPVarFloat(playerid, "aY");
  668. aZ = GetPVarFloat(playerid, "aZ");
  669. CreateCarDealerShip(name, X, Y, Z, aX, aY, aZ);
  670. SendClientMessage(playerid, 0x33AA33AA, "Autohaus erfolgreich erstellt.");
  671. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  672. return 1;
  673. }
  674. else
  675. {
  676. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  677. return 1;
  678. }
  679. }
  680. if(dialogid == Dia_CarSys5)
  681. {
  682. if(response)
  683. {
  684. new ID = GetPVarInt(playerid, "selcardealer");
  685. DeleteCarDealerShip(ID);
  686. format(string, sizeof(string), "Info: Autohaus ID: %d erfolgreich gelöscht.", ID);
  687. SendClientMessage(playerid, 0x33AA33AA, string);
  688. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  689. return 1;
  690. }
  691. else
  692. {
  693. ShowPlayerDialog(playerid, Dia_CarSys2, DIALOG_STYLE_LIST, "Menü", "Autohaus bearbeiten\nAutohaus hinzufügen\nAutohaus löschen", "Auswählen", "Zurück");
  694. return 1;
  695. }
  696. }
  697. if(dialogid == Dia_CarSys6)
  698. {
  699. if(response)
  700. {
  701. switch(listitem)
  702. {
  703. case 0: //Name Bearbeiten
  704. {
  705. ShowPlayerDialog(playerid, Dia_CarSys7, DIALOG_STYLE_INPUT, "Name bearbeiten", "Bitte gebe einen neuen Namen ein.", "Weiter", "Zurück");
  706. return 1;
  707. }
  708. case 1: //Position Bearbeiten
  709. {
  710. ShowPlayerDialog(playerid, Dia_CarSys9, DIALOG_STYLE_MSGBOX, "Speichern?", "Position Hier versetzt.\n\nÄnderung Speichern?", "Speichern", "Abbrechen");
  711. return 1;
  712. }
  713. case 2: //Ausgabepukt bearbeiten
  714. {
  715. ShowPlayerDialog(playerid, Dia_CarSys10, DIALOG_STYLE_MSGBOX, "Speichern?", "Ausgabepunkt Hier versetzt.\n\nÄnderung Speichern?", "Speichern", "Abbrechen");
  716. return 1;
  717. }
  718. case 3: //Fahrzeuge
  719. {
  720. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  721. return 1;
  722. }
  723. }
  724. }
  725. else
  726. {
  727. ShowPlayerDialog(playerid, Dia_CarSys2, DIALOG_STYLE_LIST, "Menü", "Autohaus bearbeiten\nAutohaus hinzufügen\nAutohaus löschen", "Auswählen", "Zurück");
  728. return 1;
  729. }
  730. }
  731. if(dialogid == Dia_CarSys7)
  732. {
  733. if(response)
  734. {
  735. if(!inputtext[0])
  736. {
  737. SendClientMessage(playerid, 0xAA3333AA, "Fehler: Bitte gebe einen Autohaus Name ein.");
  738. ShowPlayerDialog(playerid, Dia_CarSys7, DIALOG_STYLE_INPUT, "Name bearbeiten", "Bitte gebe einen neuen Namen ein.", "Weiter", "Zurück");
  739. return 1;
  740. }
  741. SetPVarString(playerid, "name", inputtext);
  742. format(string, sizeof(string), "AlterName: %s\nNeuerName: %s\n\nÄnderung Speichern?", CarDealerShipInfo[GetPVarInt(playerid, "selcardealer")][cName], inputtext);
  743. ShowPlayerDialog(playerid, Dia_CarSys8, DIALOG_STYLE_MSGBOX, "Speichern?", string, "Speichern", "Abbrechen");
  744. return 1;
  745. }
  746. else
  747. {
  748. ShowPlayerDialog(playerid, Dia_CarSys6, DIALOG_STYLE_LIST, "Autohaus bearbeiten", "Name\nPosition\nAusgabe Punkt\nFahrzeuge", "Weiter", "Zurück");
  749. return 1;
  750. }
  751. }
  752. if(dialogid == Dia_CarSys8)
  753. {
  754. if(response)
  755. {
  756. new name[32];
  757. new ID = GetPVarInt(playerid, "selcardealer");
  758. GetPVarString(playerid, "name", name, sizeof(name));
  759. strmid(CarDealerShipInfo[ID][cName], name, 0, strlen(name), 32);
  760. UpdateCarDealerShip(ID);
  761. SendClientMessage(playerid, 0x33AA33AA, "Änderung gespeichert");
  762. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  763. return 1;
  764. }
  765. else
  766. {
  767. ShowPlayerDialog(playerid, Dia_CarSys6, DIALOG_STYLE_LIST, "Autohaus bearbeiten", "Name\nPosition\nAusgabe Punkt\nFahrzeuge", "Weiter", "Zurück");
  768. return 1;
  769. }
  770. }
  771. if(dialogid == Dia_CarSys9)
  772. {
  773. if(response)
  774. {
  775. new ID = GetPVarInt(playerid, "selcardealer");
  776. GetPlayerPos(playerid, CarDealerShipInfo[ID][cX], CarDealerShipInfo[ID][cY], CarDealerShipInfo[ID][cZ]);
  777. UpdateCarDealerShip(ID);
  778. SendClientMessage(playerid, 0x33AA33AA, "Änderung gespeichert");
  779. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  780. return 1;
  781. }
  782. else
  783. {
  784. ShowPlayerDialog(playerid, Dia_CarSys6, DIALOG_STYLE_LIST, "Autohaus bearbeiten", "Name\nPosition\nAusgabe Punkt\nFahrzeuge", "Weiter", "Zurück");
  785. return 1;
  786. }
  787. }
  788. if(dialogid == Dia_CarSys10)
  789. {
  790. if(response)
  791. {
  792. new ID = GetPVarInt(playerid, "selcardealer");
  793. GetPlayerPos(playerid, CarDealerShipInfo[ID][caX], CarDealerShipInfo[ID][caY], CarDealerShipInfo[ID][caZ]);
  794. UpdateCarDealerShip(ID);
  795. SendClientMessage(playerid, 0x33AA33AA, "Änderung gespeichert");
  796. CreatePlayerCarDealerShipList(playerid, Dia_CarSys1, "Autohäuser", "Menü", "Beenden", 1);
  797. return 1;
  798. }
  799. else
  800. {
  801. ShowPlayerDialog(playerid, Dia_CarSys6, DIALOG_STYLE_LIST, "Autohaus bearbeiten", "Name\nPosition\nAusgabe Punkt\nFahrzeuge", "Weiter", "Zurück");
  802. return 1;
  803. }
  804. }
  805. if(dialogid == Dia_CarSys12)
  806. {
  807. if(response)
  808. {
  809. if(GetPVarInt(playerid, "NotCarDealerCars"))
  810. {
  811. listitem = 1;
  812. }
  813. switch(listitem)
  814. {
  815. case 0: //Auto bearbeiten
  816. {
  817. ShowPlayerDialog(playerid, Dia_CarSys17, DIALOG_STYLE_LIST, "Auto bearbeiten", "Model\nPreis\nPosition", "Weiter", "Zurück");
  818. return 1;
  819. }
  820. case 1: //Auto hinzufügen
  821. {
  822. ShowPlayerDialog(playerid, Dia_CarSys13, DIALOG_STYLE_INPUT, "Auto Hinzufügen", "Bitte gebe eine ModelID ein (400-611)", "Weiter", "Zurück");
  823. return 1;
  824. }
  825. case 2: //Auto löschen
  826. {
  827. ShowPlayerDialog(playerid, Dia_CarSys16, DIALOG_STYLE_MSGBOX, "Auto lösche", "Möchtest du dieses Auto wirklich löschen?", "Löschen", "Zurück");
  828. return 1;
  829. }
  830. }
  831. }
  832. else
  833. {
  834. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  835. return 1;
  836. }
  837. }
  838. if(dialogid == Dia_CarSys13)
  839. {
  840. if(response)
  841. {
  842. if(strval(inputtext) < 400 || strval(inputtext) > 611)
  843. {
  844. SendClientMessage(playerid, 0xAA3333AA, "Fehler: Es gibt nur Model IDs von 400 - 611");
  845. ShowPlayerDialog(playerid, Dia_CarSys13, DIALOG_STYLE_INPUT, "Auto Hinzufügen", "Bitte gebe eine ModelID ein (400-611)", "Weiter", "Zurück");
  846. return 1;
  847. }
  848. SetPVarInt(playerid, "model", strval(inputtext));
  849. ShowPlayerDialog(playerid, Dia_CarSys14, DIALOG_STYLE_INPUT, "Auto Hinzufügen", "Bitte gebe einen Preis ein", "Weiter", "Zurück");
  850. return 1;
  851. }
  852. else
  853. {
  854. if(GetPVarInt(playerid, "NotCarDealerCars"))
  855. {
  856. ShowPlayerDialog(playerid, Dia_CarSys12, DIALOG_STYLE_LIST, "Menü", "Auto hinzufügen", "Auswählen", "Zurück");
  857. return 1;
  858. }
  859. else
  860. {
  861. ShowPlayerDialog(playerid, Dia_CarSys12, DIALOG_STYLE_LIST, "Menü", "Auto bearbeiten\nAuto hinzufügen\nAuto löschen", "Auswählen", "Zurück");
  862. SetPVarInt(playerid, "selcardealercar", listitem);
  863. return 1;
  864. }
  865. }
  866. }
  867. if(dialogid == Dia_CarSys14)
  868. {
  869. if(response)
  870. {
  871. if(strval(inputtext) < 1)
  872. {
  873. SendClientMessage(playerid, 0xAA3333AA, "Der Preis darf nicht unter 1$ sein");
  874. ShowPlayerDialog(playerid, Dia_CarSys13, DIALOG_STYLE_INPUT, "Auto Hinzufügen", "Bitte gebe einen Preis ein.", "Weiter", "Zurück");
  875. return 1;
  876. }
  877. SetPVarInt(playerid, "price", strval(inputtext));
  878. SetPVarInt(playerid, "aPoint2", 1);
  879. SendClientMessage(playerid, 0x33AA33AA, "Info: Bitte stelle dich nun zu einer Position und gebe /aPoint ein.");
  880. return 1;
  881. }
  882. else
  883. {
  884. ShowPlayerDialog(playerid, Dia_CarSys13, DIALOG_STYLE_INPUT, "Auto Hinzufügen", "Bitte gebe eine ModelID ein (400-611)", "Weiter", "Zurück");
  885. return 1;
  886. }
  887. }
  888. if(dialogid == Dia_CarSys15)
  889. {
  890. if(response)
  891. {
  892. new Float: X, Float: Y, Float: Z, Float: R;
  893. GetPlayerPos(playerid, X, Y, Z);
  894. GetPlayerFacingAngle(playerid, R);
  895. CreateCarDealerCar(GetPVarInt(playerid, "model"), X, Y, Z, R, random(126), random(126), GetPVarInt(playerid, "price"), GetPVarInt(playerid, "selcardealer"));
  896. SendClientMessage(playerid, 0x33AA33AA, "Info: Auto erfolgreich erstellt.");
  897. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  898. return 1;
  899. }
  900. else
  901. {
  902. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  903. return 1;
  904. }
  905. }
  906. if(dialogid == Dia_CarSys16)
  907. {
  908. if(response)
  909. {
  910. DeleteCarDealerCar(GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "selcardealercar"));
  911. SendClientMessage(playerid, 0x33AA33AA, "Info: Auto erfolgreich gelöscht.");
  912. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  913. }
  914. else
  915. {
  916. ShowPlayerDialog(playerid, Dia_CarSys12, DIALOG_STYLE_LIST, "Menü", "Auto bearbeiten\nAuto hinzufügen\nAuto löschen", "Auswählen", "Zurück");
  917. return 1;
  918. }
  919. }
  920. if(dialogid == Dia_CarSys17)
  921. {
  922. if(response)
  923. {
  924. switch(listitem)
  925. {
  926. case 0: //Model
  927. {
  928. ShowPlayerDialog(playerid, Dia_CarSys18, DIALOG_STYLE_INPUT, "Model", "Bitte gebe eine neue Model ID ein.", "Weiter", "Zurück");
  929. return 1;
  930. }
  931. case 1: //Preis
  932. {
  933. ShowPlayerDialog(playerid, Dia_CarSys20, DIALOG_STYLE_INPUT, "Preis", "Bitte gebe einen neuen Preis ein", "Weiter", "Zurück");
  934. return 1;
  935. }
  936. case 2: //Position
  937. {
  938. SetPVarInt(playerid, "aPoint3", 1);
  939. SendClientMessage(playerid, 0x33AA33AA, "Info: Bitte gehe zur neuen Position und gebe /aPoint ein.");
  940. return 1;
  941. }
  942. }
  943. }
  944. else
  945. {
  946. ShowPlayerDialog(playerid, Dia_CarSys12, DIALOG_STYLE_LIST, "Menü", "Auto bearbeiten\nAuto hinzufügen\nAuto löschen", "Auswählen", "Zurück");
  947. return 1;
  948. }
  949. }
  950. if(dialogid == Dia_CarSys18)
  951. {
  952. if(response)
  953. {
  954. if(strval(inputtext) < 400 || strval(inputtext) > 611)
  955. {
  956. SendClientMessage(playerid, 0xAA3333AA, "Es gibt nur Model ID´s von 400 - 611");
  957. ShowPlayerDialog(playerid, Dia_CarSys18, DIALOG_STYLE_INPUT, "Model", "Bitte gebe eine neue Model ID ein.", "Weiter", "Zurück");
  958. return 1;
  959. }
  960. SetPVarInt(playerid, "model", strval(inputtext));
  961. format(string, sizeof(string), "Altes Auto: %s\n\nNeues Auto: %s\n\nÄnderung Speichern?", VehicleName[CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cModel]], VehicleName[strval(inputtext)-400]);
  962. ShowPlayerDialog(playerid, Dia_CarSys19, DIALOG_STYLE_MSGBOX, "Speichern?", string, "Speichern", "Abbrechen");
  963. return 1;
  964. }
  965. else
  966. {
  967. ShowPlayerDialog(playerid, Dia_CarSys17, DIALOG_STYLE_LIST, "Auto bearbeiten", "Model\nPreis\nPosition", "Weiter", "Zurück");
  968. return 1;
  969. }
  970. }
  971. if(dialogid == Dia_CarSys19)
  972. {
  973. if(response)
  974. {
  975. CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cModel] = GetPVarInt(playerid, "model");
  976. UpdateCarDealerCar(GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "selcardealercar"));
  977. SendClientMessage(playerid, 0x33AA33AA, "Info: Änderung gespeichert.");
  978. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  979. return 1;
  980. }
  981. else
  982. {
  983. ShowPlayerDialog(playerid, Dia_CarSys17, DIALOG_STYLE_LIST, "Auto bearbeiten", "Model\nPreis\nPosition", "Weiter", "Zurück");
  984. return 1;
  985. }
  986. }
  987. if(dialogid == Dia_CarSys20)
  988. {
  989. if(response)
  990. {
  991. if(strval(inputtext) < 1)
  992. {
  993. SendClientMessage(playerid, 0xAA3333AA, "Der Preis darf nicht unter 1$ sein.");
  994. ShowPlayerDialog(playerid, Dia_CarSys20, DIALOG_STYLE_INPUT, "Preis", "Bitte gebe einen neuen Preis ein", "Weiter", "Zurück");
  995. return 1;
  996. }
  997. SetPVarInt(playerid, "price", strval(inputtext));
  998. format(string, sizeof(string), "Alter Preis: %d$\n\nNeuer Preis: %d$\n\nÄnderung Speichern?", CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cPrice], strval(inputtext));
  999. ShowPlayerDialog(playerid, Dia_CarSys21, DIALOG_STYLE_MSGBOX, "Speichern?", string, "Speichern", "Abbrechen");
  1000. return 1;
  1001. }
  1002. else
  1003. {
  1004. ShowPlayerDialog(playerid, Dia_CarSys17, DIALOG_STYLE_LIST, "Auto bearbeiten", "Model\nPreis\nPosition", "Weiter", "Zurück");
  1005. return 1;
  1006. }
  1007. }
  1008. if(dialogid == Dia_CarSys21)
  1009. {
  1010. if(response)
  1011. {
  1012. CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cPrice] = GetPVarInt(playerid, "price");
  1013. UpdateCarDealerCar(GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "selcardealercar"));
  1014. SendClientMessage(playerid, 0x33AA33AA, "Info: Änderung gespeichert.");
  1015. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  1016. return 1;
  1017. }
  1018. else
  1019. {
  1020. ShowPlayerDialog(playerid, Dia_CarSys17, DIALOG_STYLE_LIST, "Auto bearbeiten", "Model\nPreis\nPosition", "Weiter", "Zurück");
  1021. return 1;
  1022. }
  1023. }
  1024. if(dialogid == Dia_CarSys22)
  1025. {
  1026. if(response)
  1027. {
  1028. new Float: X, Float: Y, Float: Z, Float: R;
  1029. GetPlayerPos(playerid, X, Y, Z);
  1030. GetPlayerFacingAngle(playerid, R);
  1031. CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cX] = X;
  1032. CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cY] = Y;
  1033. CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cZ] = Z;
  1034. CarsInfo[GetPVarInt(playerid, "selcardealer")][GetPVarInt(playerid, "selcardealercar")][cR] = R;
  1035. UpdateCarDealerCar(GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "selcardealercar"));
  1036. SendClientMessage(playerid, 0x33AA33AA, "Info: Änderung gespeichert.");
  1037. CreatePlayerCarDealerCarList(playerid, Dia_CarSys11, "Autos", "Menü", "Zurück", GetPVarInt(playerid, "selcardealer"), 1);
  1038. return 1;
  1039. }
  1040. else
  1041. {
  1042. ShowPlayerDialog(playerid, Dia_CarSys17, DIALOG_STYLE_LIST, "Auto bearbeiten", "Model\nPreis\nPosition", "Weiter", "Zurück");
  1043. return 1;
  1044. }
  1045. }
  1046. if(dialogid == Dia_CarSys23)
  1047. {
  1048. if(response)
  1049. {
  1050. new CarDealer, ID;
  1051. IsPlayerInBuyAbleCar(playerid, CarDealer, ID);
  1052. if(GetPlayerMoney(playerid) >= CarsInfo[CarDealer][ID][cPrice])
  1053. {
  1054. if(CountPlayerCars(playerid) < Max_Player_Cars)
  1055. {
  1056. GivePlayerMoney(playerid, -CarsInfo[CarDealer][ID][cPrice]);
  1057. CreatePlayerCar(playerid, CarDealer, ID);
  1058. format(string, sizeof(string), "Du hast dieses Auto für: %d$ gekauft.", CarsInfo[CarDealer][ID][cPrice]);
  1059. SendClientMessage(playerid, 0x33AA33AA, string);
  1060. SendClientMessage(playerid, 0x33AA33AA, "Dein Fahrzeug steht für dich am Ausgabepunkt bereit.");
  1061. SendClientMessage(playerid, 0x33AA33AA, "Du kannst es mit /park parken mit /sellveh verkaufen und mit /carlock verriegeln/entriegeln");
  1062. RemovePlayerFromVehicle(playerid);
  1063. return 1;
  1064. }
  1065. else
  1066. {
  1067. SendClientMessage(playerid, 0xAA3333AA, "Du besitzt schon zu viele Fahrzeuge.");
  1068. RemovePlayerFromVehicle(playerid);
  1069. return 1;
  1070. }
  1071. }
  1072. else
  1073. {
  1074. format(string, sizeof(string), "Info: Du hast nicht genug Geld dieses Fahrzeug kostet: %d$.", CarsInfo[CarDealer][ID][cPrice]);
  1075. SendClientMessage(playerid, 0xAA3333AA, string);
  1076. RemovePlayerFromVehicle(playerid);
  1077. return 1;
  1078. }
  1079. }
  1080. else
  1081. {
  1082. RemovePlayerFromVehicle(playerid);
  1083. return 1;
  1084. }
  1085. }
  1086. if(dialogid == Dia_CarSys24)
  1087. {
  1088. new pId = GetPVarInt(playerid, "sp");
  1089. if(response)
  1090. {
  1091. new price = GetPVarInt(playerid, "spp");
  1092. new id = GetPVarInt(playerid, "id");
  1093. if(GetPlayerMoney(playerid) >= price)
  1094. {
  1095. if(CountPlayerCars(playerid) < Max_Player_Cars)
  1096. {
  1097. GivePlayerMoney(playerid, -price);
  1098. GivePlayerMoney(pId, price);
  1099. ChangeCarOwner(pId, id, playerid);
  1100. format(string, sizeof(string), "Info: Du hast %s das Fahrzeug für %d$ abgekauft.", GetUserName(pId), price);
  1101. SendClientMessage(playerid, 0x33AA33AA, string);
  1102. format(string, sizeof(string), "Info: %s hat das Fahrzeug für %d$ abgekauft.", GetUserName(playerid), price);
  1103. SendClientMessage(playerid, 0x33AA33AA, string);
  1104. return 1;
  1105. }
  1106. else
  1107. {
  1108. SendClientMessage(playerid, 0xAA3333AA, "Info: Du schon zu viele Autos.");
  1109. SendClientMessage(pId, 0xAA3333AA, "Info: Dieser Spieler besitzt zu viele Autos.");
  1110. return 1;
  1111. }
  1112. }
  1113. else
  1114. {
  1115. SendClientMessage(playerid, 0xAA3333AA, "Info: Du besitzt zu wenig Geld.");
  1116. SendClientMessage(pId, 0xAA3333AA, "Info: Dieser Spieler besitzt zu wenig Geld.");
  1117. return 1;
  1118. }
  1119. }
  1120. else
  1121. {
  1122. format(string, sizeof(string), "Info: Du hast %s´s Angebot abgelehnt.", GetUserName(pId));
  1123. SendClientMessage(playerid, 0xAA3333AA, string);
  1124. format(string, sizeof(string), "Info: %s hat dein Angebot abgelehnt.", GetUserName(playerid));
  1125. SendClientMessage(pId, 0xAA3333AA, string);
  1126. return 1;
  1127. }
  1128. }
  1129. return OnDialogResponse2(playerid, dialogid, response, listitem, inputtext);
  1130. }
  1131.  
  1132. public OnDialogResponse2(playerid, dialogid, response, listitem, inputtext[])
  1133. {
  1134. if(GetPVarInt(playerid, "CarDealerShipList"))
  1135. {
  1136. if(response)
  1137. {
  1138. if(listitem == GetPVarInt(playerid, "LIST_BACK") && GetPVarInt(playerid, "LIST_BACK"))
  1139. {
  1140. new c[32], b1[32], b2[32];
  1141. GetPVarString(playerid, "CAPTION", c, sizeof(c));
  1142. GetPVarString(playerid, "BUTTON1", b1, sizeof(b1));
  1143. GetPVarString(playerid, "BUTTON2", b2, sizeof(b2));
  1144. CreatePlayerCarDealerShipList(playerid, dialogid, c, b1, b2, GetPVarInt(playerid, "PAGE")-1);
  1145. return 1;
  1146. }
  1147. if(listitem == GetPVarInt(playerid, "LIST_NEXT") && GetPVarInt(playerid, "LIST_NEXT"))
  1148. {
  1149. new c[32], b1[32], b2[32];
  1150. GetPVarString(playerid, "CAPTION", c, sizeof(c));
  1151. GetPVarString(playerid, "BUTTON1", b1, sizeof(b1));
  1152. GetPVarString(playerid, "BUTTON2", b2, sizeof(b2));
  1153. CreatePlayerCarDealerShipList(playerid, dialogid, c, b1, b2, GetPVarInt(playerid, "PAGE")+1);
  1154. return 1;
  1155. }
  1156. else
  1157. {
  1158. return OnPlayerListResponse(playerid, dialogid, response, LIST_INFO[playerid][GetPVarInt(playerid, "PAGE")][listitem]);
  1159. }
  1160. }
  1161. }
  1162. if(GetPVarInt(playerid, "CarDealerCarList"))
  1163. {
  1164. if(response)
  1165. {
  1166. if(listitem == GetPVarInt(playerid, "LIST_BACK") && GetPVarInt(playerid, "LIST_BACK"))
  1167. {
  1168. new c[32], b1[32], b2[32];
  1169. GetPVarString(playerid, "CAPTION", c, sizeof(c));
  1170. GetPVarString(playerid, "BUTTON1", b1, sizeof(b1));
  1171. GetPVarString(playerid, "BUTTON2", b2, sizeof(b2));
  1172. CreatePlayerCarDealerCarList(playerid, dialogid, c, b1, b2, GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "PAGE")-1);
  1173. return 1;
  1174. }
  1175. if(listitem == GetPVarInt(playerid, "LIST_NEXT") && GetPVarInt(playerid, "LIST_NEXT"))
  1176. {
  1177. new c[32], b1[32], b2[32];
  1178. GetPVarString(playerid, "CAPTION", c, sizeof(c));
  1179. GetPVarString(playerid, "BUTTON1", b1, sizeof(b1));
  1180. GetPVarString(playerid, "BUTTON2", b2, sizeof(b2));
  1181. CreatePlayerCarDealerCarList(playerid, dialogid, c, b1, b2, GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "PAGE")+1);
  1182. return 1;
  1183. }
  1184. else
  1185. {
  1186. return OnPlayerListResponse(playerid, dialogid, response, LIST_INFO[playerid][GetPVarInt(playerid, "PAGE")][listitem]);
  1187. }
  1188. }
  1189. }
  1190. return 1;
  1191. }
  1192.  
  1193. public OnPlayerListResponse(playerid, dialogid, response, listitem)
  1194. {
  1195. if(dialogid == Dia_CarSys1)
  1196. {
  1197. if(response)
  1198. {
  1199. if(GetPVarInt(playerid, "NotCarDealerShips"))
  1200. {
  1201. ShowPlayerDialog(playerid, Dia_CarSys2, DIALOG_STYLE_LIST, "Menü", "Autohaus hinzufügen", "Auswählen", "Zurück");
  1202. return 1;
  1203. }
  1204. else
  1205. {
  1206. ShowPlayerDialog(playerid, Dia_CarSys2, DIALOG_STYLE_LIST, "Menü", "Autohaus bearbeiten\nAutohaus hinzufügen\nAutohaus löschen", "Auswählen", "Zurück");
  1207. SetPVarInt(playerid, "selcardealer", listitem);
  1208. return 1;
  1209. }
  1210. }
  1211. }
  1212. if(dialogid == Dia_CarSys11)
  1213. {
  1214. if(response)
  1215. {
  1216. if(GetPVarInt(playerid, "NotCarDealerCars"))
  1217. {
  1218. ShowPlayerDialog(playerid, Dia_CarSys12, DIALOG_STYLE_LIST, "Menü", "Auto hinzufügen", "Auswählen", "Zurück");
  1219. return 1;
  1220. }
  1221. else
  1222. {
  1223. ShowPlayerDialog(playerid, Dia_CarSys12, DIALOG_STYLE_LIST, "Menü", "Auto bearbeiten\nAuto hinzufügen\nAuto löschen", "Auswählen", "Zurück");
  1224. SetPVarInt(playerid, "selcardealercar", listitem);
  1225. return 1;
  1226. }
  1227. }
  1228. else
  1229. {
  1230. new c[32], b1[32], b2[32];
  1231. GetPVarString(playerid, "CAPTION", c, sizeof(c));
  1232. GetPVarString(playerid, "BUTTON1", b1, sizeof(b1));
  1233. GetPVarString(playerid, "BUTTON2", b2, sizeof(b2));
  1234. CreatePlayerCarDealerCarList(playerid, dialogid, c, b1, b2, GetPVarInt(playerid, "selcardealer"), GetPVarInt(playerid, "PAGE"));
  1235. return 1;
  1236. }
  1237. }
  1238. return 1;
  1239. }
  1240.  
  1241. stock GetPlayerAdminLevel(playerid)
  1242. {
  1243. return CallRemoteFunction("GetPlayerAdminLevel", "d", playerid);
  1244. }
  1245.  
  1246. stock GetUserName(playerid)
  1247. {
  1248. new Name[MAX_PLAYER_NAME];
  1249. GetPlayerName(playerid, Name, sizeof(Name));
  1250. return Name;
  1251. }
  1252.  
  1253. stock LoadCarDealerShips()
  1254. {
  1255. new Load[32], c=0;
  1256. print("Autohäuser werden geladen...\n\n");
  1257. mysql_query("SELECT * FROM cardealerships");
  1258. mysql_store_result();
  1259. while(mysql_retrieve_row())
  1260. {
  1261. mysql_fetch_field_row(Load, "Name");
  1262. strmid(CarDealerShipInfo[c][cName], Load, 0, strlen(Load), 32);
  1263. mysql_fetch_field_row(Load, "X");
  1264. CarDealerShipInfo[c][cX] = floatstr(Load);
  1265. mysql_fetch_field_row(Load, "Y");
  1266. CarDealerShipInfo[c][cY] = floatstr(Load);
  1267. mysql_fetch_field_row(Load, "Z");
  1268. CarDealerShipInfo[c][cZ] = floatstr(Load);
  1269. mysql_fetch_field_row(Load, "aX");
  1270. CarDealerShipInfo[c][caX] = floatstr(Load);
  1271. mysql_fetch_field_row(Load, "aY");
  1272. CarDealerShipInfo[c][caY] = floatstr(Load);
  1273. mysql_fetch_field_row(Load, "aZ");
  1274. CarDealerShipInfo[c][caZ] = floatstr(Load);
  1275. mysql_fetch_field_row(Load, "sqlid");
  1276. CarDealerShipInfo[c][cSQLid] = strval(Load);
  1277. CarDealerShipInfo[c][cExist] = true;
  1278. printf("Autohaus[ID: %d] %s ", c, CarDealerShipInfo[c][cName]);
  1279. CarDealerShipInfo[c][cPickup] = CreatePickup(1239, 1, CarDealerShipInfo[c][cX], CarDealerShipInfo[c][cY], CarDealerShipInfo[c][cZ], 0);
  1280. CarDealerShipInfo[c][cText] = Create3DTextLabel(CarDealerShipInfo[c][cName], 0x33AA33AA, CarDealerShipInfo[c][cX], CarDealerShipInfo[c][cY], CarDealerShipInfo[c][cZ], 0, 0);
  1281. c++;
  1282. }
  1283. print("_______________________________________");
  1284. mysql_free_result();
  1285. return 1;
  1286. }
  1287.  
  1288. stock UpdateCarDealerShip(id)
  1289. {
  1290. new Query[128];
  1291. if(CarDealerShipInfo[id][cExist] == true)
  1292. {
  1293. format(Query, sizeof(Query), "UPDATE cardealerships SET `Name` = '%s' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][cName], CarDealerShipInfo[id][cSQLid]);
  1294. mysql_query(Query);
  1295. format(Query, sizeof(Query), "UPDATE cardealerships SET `X` = '%f' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][cX], CarDealerShipInfo[id][cSQLid]);
  1296. mysql_query(Query);
  1297. format(Query, sizeof(Query), "UPDATE cardealerships SET `Y` = '%f' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][cY], CarDealerShipInfo[id][cSQLid]);
  1298. mysql_query(Query);
  1299. format(Query, sizeof(Query), "UPDATE cardealerships SET `Z` = '%f' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][cZ], CarDealerShipInfo[id][cSQLid]);
  1300. mysql_query(Query);
  1301. format(Query, sizeof(Query), "UPDATE cardealerships SET `aX` = '%f' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][caX], CarDealerShipInfo[id][cSQLid]);
  1302. mysql_query(Query);
  1303. format(Query, sizeof(Query), "UPDATE cardealerships SET `aY` = '%f' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][caY], CarDealerShipInfo[id][cSQLid]);
  1304. mysql_query(Query);
  1305. format(Query, sizeof(Query), "UPDATE cardealerships SET `aZ` = '%f' WHERE `sqlid` = '%d'", CarDealerShipInfo[id][caZ], CarDealerShipInfo[id][cSQLid]);
  1306. mysql_query(Query);
  1307. DestroyPickup(CarDealerShipInfo[id][cPickup]);
  1308. Delete3DTextLabel(CarDealerShipInfo[id][cText]);
  1309. CarDealerShipInfo[id][cPickup] = CreatePickup(1239, 1,CarDealerShipInfo[id][cX], CarDealerShipInfo[id][cY], CarDealerShipInfo[id][cZ], 0);
  1310. CarDealerShipInfo[id][cText] = Create3DTextLabel(CarDealerShipInfo[id][cName], 0x33AA33AA, CarDealerShipInfo[id][cX], CarDealerShipInfo[id][cY], CarDealerShipInfo[id][cZ], 0, 0);
  1311. return 1;
  1312. }
  1313. return 0;
  1314. }
  1315.  
  1316. stock CountCarDealerShips()
  1317. {
  1318. new c = 0;
  1319. for(new i = 0; i < Max_Car_Dealer_Ships; i++)
  1320. {
  1321. if(CarDealerShipInfo[c][cExist] == true)
  1322. {
  1323. c++;
  1324. }
  1325. }
  1326. return c;
  1327. }
  1328.  
  1329. stock GetFreeCarDealerShipID()
  1330. {
  1331. for(new i = 0; i < Max_Car_Dealer_Ships; i++)
  1332. {
  1333. if(CarDealerShipInfo[i][cExist] == false)
  1334. {
  1335. return i;
  1336. }
  1337. }
  1338. return -1;
  1339. }
  1340.  
  1341. stock CreateCarDealerShip(Name[], Float: X, Float: Y, Float: Z, Float: aX, Float: aY, Float: aZ)
  1342. {
  1343. new Query[128];
  1344. new ID = GetFreeCarDealerShipID();
  1345. if(ID != -1)
  1346. {
  1347. strmid(CarDealerShipInfo[ID][cName], Name, 0, strlen(Name), 32);
  1348. CarDealerShipInfo[ID][cX] = X;
  1349. CarDealerShipInfo[ID][cY] = Y;
  1350. CarDealerShipInfo[ID][cZ] = Z;
  1351. CarDealerShipInfo[ID][caX] = aX;
  1352. CarDealerShipInfo[ID][caY] = aY;
  1353. CarDealerShipInfo[ID][caZ] = aZ;
  1354. CarDealerShipInfo[ID][cExist] = true;
  1355. format(Query, sizeof(Query), "INSERT INTO `cardealerships`(`Name`, `X`, `Y`, `Z`, `aX`, `aY`, `aZ`) VALUES ('%s', %f, %f, %f, %f, %f, %f)", Name, X, Y, Z, aX, aY, aZ);
  1356. mysql_query(Query);
  1357. mysql_query("SELECT max(sqlid) FROM `cardealerships`");
  1358. mysql_store_result();
  1359. mysql_fetch_row_format(Query);
  1360. mysql_free_result();
  1361. CarDealerShipInfo[ID][cSQLid] = strval(Query);
  1362. CarDealerShipInfo[ID][cPickup] = CreatePickup(1239, 1, X, Y, Z, 0);
  1363. CarDealerShipInfo[ID][cText] = Create3DTextLabel(Name, 0x33AA33AA, X, Y, Z, 0, 0);
  1364. return 1;
  1365. }
  1366. return 0;
  1367. }
  1368.  
  1369. stock DeleteCarDealerShip(id)
  1370. {
  1371. new Query[128];
  1372. if(CarDealerShipInfo[id][cExist] == true)
  1373. {
  1374. DestroyPickup(CarDealerShipInfo[id][cPickup]);
  1375. Delete3DTextLabel(CarDealerShipInfo[id][cText]);
  1376. CarDealerShipInfo[id][cExist] = true;
  1377. format(Query, sizeof(Query), "DELETE FROM `%s`.`cardealerships` WHERE `cardealerships`.`sqlid` = %d", SQL_DB, CarDealerShipInfo[id][cSQLid]);
  1378. mysql_query(Query);
  1379. return 1;
  1380. }
  1381. return 0;
  1382. }
  1383.  
  1384. stock CreatePlayerCarDealerShipList(playerid, dialogid, Caption[], Button1[], Button2[], Page)
  1385. {
  1386. new info[512], c = 0, cc = 0;
  1387. if(Page == 1)
  1388. {
  1389. DeleteListRAM(playerid);
  1390. LIST_PAGE_EXIST[playerid][0] = true;
  1391. for(new i = 0; i < Max_Car_Dealer_Ships; i++)
  1392. {
  1393. if(CarDealerShipInfo[i][cExist] == true)
  1394. {
  1395. LIST_INFO[playerid][cc][c] = i;
  1396. LIST_INFO_EXIST[playerid][cc][c] = true;
  1397. c ++;
  1398. if(c == 15)
  1399. {
  1400. c = 0;
  1401. cc ++;
  1402. LIST_PAGE_EXIST[playerid][cc] = true;
  1403. }
  1404. }
  1405. }
  1406. }
  1407. SetPVarInt(playerid, "PAGE", Page);
  1408. SetPVarString(playerid, "CAPTION", Caption);
  1409. SetPVarString(playerid, "BUTTON1", Button1);
  1410. SetPVarString(playerid, "BUTTON2", Button2);
  1411. for(new i = 0; i < 15; i++)
  1412. {
  1413. if(LIST_INFO_EXIST[playerid][Page-1][i] == true)
  1414. {
  1415. format(info, sizeof(info), "%s\n%s[ID: %d]", info, CarDealerShipInfo[LIST_INFO[playerid][Page-1][i]][cName], LIST_INFO[playerid][Page-1][i]);
  1416. }
  1417. }
  1418. if(Page > 1)
  1419. {
  1420. format(info, sizeof(info), "%s\nVohrrige Seite");
  1421. SetPVarInt(playerid, "LIST_BACK", c);
  1422. }
  1423. if(Page < cc)
  1424. {
  1425. format(info, sizeof(info), "%s\nNächste Seite");
  1426. if(GetPVarInt(playerid, "LIST_BACK"))
  1427. {
  1428. c++;
  1429. }
  1430. SetPVarInt(playerid, "LIST_NEXT", c);
  1431. }
  1432. if(c == 0 && cc == 0)
  1433. {
  1434. format(info, sizeof(info), "Keine Autohäuser vorhanden.");
  1435. SetPVarInt(playerid, "NotCarDealerShips", 1);
  1436. }
  1437. new newcaption[32];
  1438. if(cc > 1)
  1439. {
  1440. format(newcaption, sizeof(newcaption), "%s (%d/%d)", Caption, Page, cc);
  1441. }
  1442. else
  1443. {
  1444. format(newcaption, sizeof(newcaption), "%s (%d/%d)", Caption);
  1445. }
  1446. SetPVarInt(playerid, "CarDealerShipList", 1);
  1447. ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_LIST, newcaption, info, Button1, Button2);
  1448. return 1;
  1449. }
  1450.  
  1451. stock DeleteListRAM(playerid)
  1452. {
  1453. DeletePVar(playerid, "CarDealerShipList");
  1454. DeletePVar(playerid, "CarDealerCarList");
  1455. DeletePVar(playerid, "PAGE");
  1456. DeletePVar(playerid, "CAPTION");
  1457. DeletePVar(playerid, "BUTTON1");
  1458. DeletePVar(playerid, "BUTTON2");
  1459. DeletePVar(playerid, "X");
  1460. DeletePVar(playerid, "Y");
  1461. DeletePVar(playerid, "Z");
  1462. DeletePVar(playerid, "aX");
  1463. DeletePVar(playerid, "aY");
  1464. DeletePVar(playerid, "aZ");
  1465. DeletePVar(playerid, "NotCarDealerShips");
  1466. DeletePVar(playerid, "NotCarDealerCars");
  1467. DeletePVar(playerid, "name");
  1468. DeletePVar(playerid, "model");
  1469. DeletePVar(playerid, "price");
  1470. DeletePVar(playerid, "aPoint2");
  1471. if(GetPVarInt(playerid, "LIST_NEXT"))DeletePVar(playerid, "LIST_NEXT");
  1472. if(GetPVarInt(playerid, "LIST_BACK"))DeletePVar(playerid, "LIST_BACK");
  1473. if(GetPVarInt(playerid, "selcardealer"))DeletePVar(playerid, "selcardealer");
  1474. if(GetPVarInt(playerid, "aPoint"))DeletePVar(playerid, "aPoint");
  1475. for(new i = 0; i < 20; i++)
  1476. {
  1477. if(LIST_PAGE_EXIST[playerid][i] == true)
  1478. {
  1479. LIST_PAGE_EXIST[playerid][i] = false;
  1480. for(new i2 = 0; i2 < 15; i2++)
  1481. {
  1482. if(LIST_INFO_EXIST[playerid][i][i2] == true)
  1483. {
  1484. LIST_INFO_EXIST[playerid][i][i2] = false;
  1485. LIST_INFO[playerid][i][i2] = 0;
  1486. }
  1487. }
  1488. }
  1489. }
  1490. return 1;
  1491. }
  1492.  
  1493. stock LoadCarDealerCars(cardealer)
  1494. {
  1495. new Query[128], Load[64], c = 0;
  1496. format(Query, sizeof(Query), "SELECT * FROM DealerCars WHERE `CarDealer` = '%d'", CarDealerShipInfo[cardealer][cSQLid]);
  1497. mysql_query(Query);
  1498. mysql_store_result();
  1499. while(mysql_retrieve_row())
  1500. {
  1501. mysql_fetch_field_row(Load, "Model");
  1502. CarsInfo[cardealer][c][cModel] = strval(Load);
  1503. mysql_fetch_field_row(Load, "X");
  1504. CarsInfo[cardealer][c][cX] = floatstr(Load);
  1505. mysql_fetch_field_row(Load, "Y");
  1506. CarsInfo[cardealer][c][cY] = floatstr(Load);
  1507. mysql_fetch_field_row(Load, "Z");
  1508. CarsInfo[cardealer][c][cZ] = floatstr(Load);
  1509. mysql_fetch_field_row(Load, "R");
  1510. CarsInfo[cardealer][c][cR] = floatstr(Load);
  1511. mysql_fetch_field_row(Load, "C1");
  1512. CarsInfo[cardealer][c][c1] = strval(Load);
  1513. mysql_fetch_field_row(Load, "C2");
  1514. CarsInfo[cardealer][c][c1] = strval(Load);
  1515. mysql_fetch_field_row(Load, "Price");
  1516. CarsInfo[cardealer][c][cPrice] = strval(Load);
  1517. mysql_fetch_field_row(Load, "CarDealer");
  1518. CarsInfo[cardealer][c][cCarDealer] = strval(Load);
  1519. mysql_fetch_field_row(Load, "sqlid");
  1520. CarsInfo[cardealer][c][cSQLid] = strval(Load);
  1521. CarsInfo[cardealer][c][cExist] = true;
  1522. CarsInfo[cardealer][c][cVehid] = CreateVehicle(CarsInfo[cardealer][c][cModel], CarsInfo[cardealer][c][cX], CarsInfo[cardealer][c][cY], CarsInfo[cardealer][c][cZ], CarsInfo[cardealer][c][cR], CarsInfo[cardealer][c][c1], CarsInfo[cardealer][c][c2], 60000);
  1523. CarsInfo[cardealer][c][cText] = Create3DTextLabel(Query, 0x33AA33AA, CarsInfo[cardealer][c][cX], CarsInfo[cardealer][c][cY], CarsInfo[cardealer][c][cZ], 0, 0);
  1524. c ++;
  1525. }
  1526. mysql_free_result();
  1527. return 1;
  1528. }
  1529.  
  1530. stock UpdateCarDealerCar(cardealer, id)
  1531. {
  1532. new Query[128];
  1533. format(Query, sizeof(Query), "UPDATE DealerCars SET `Model` = '%d' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cModel], CarsInfo[cardealer][id][cSQLid]);
  1534. mysql_query(Query);
  1535. format(Query, sizeof(Query), "UPDATE DealerCars SET `X` = '%f' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cX], CarsInfo[cardealer][id][cSQLid]);
  1536. mysql_query(Query);
  1537. format(Query, sizeof(Query), "UPDATE DealerCars SET `Y` = '%f' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cY], CarsInfo[cardealer][id][cSQLid]);
  1538. mysql_query(Query);
  1539. format(Query, sizeof(Query), "UPDATE DealerCars SET `Z` = '%f' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cZ], CarsInfo[cardealer][id][cSQLid]);
  1540. mysql_query(Query);
  1541. format(Query, sizeof(Query), "UPDATE DealerCars SET `R` = '%f' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cR], CarsInfo[cardealer][id][cSQLid]);
  1542. mysql_query(Query);
  1543. format(Query, sizeof(Query), "UPDATE DealerCars SET `C1` = '%d' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][c1], CarsInfo[cardealer][id][cSQLid]);
  1544. mysql_query(Query);
  1545. format(Query, sizeof(Query), "UPDATE DealerCars SET `C2` = '%d' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][c2], CarsInfo[cardealer][id][cSQLid]);
  1546. mysql_query(Query);
  1547. format(Query, sizeof(Query), "UPDATE DealerCars SET `Price` = '%d' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cPrice], CarsInfo[cardealer][id][cSQLid]);
  1548. mysql_query(Query);
  1549. format(Query, sizeof(Query), "UPDATE DealerCars SET `CarDealer` = '%d' WHERE `sqlid` = '%d'", CarsInfo[cardealer][id][cCarDealer], CarsInfo[cardealer][id][cSQLid]);
  1550. mysql_query(Query);
  1551. DestroyVehicle(CarsInfo[cardealer][id][cVehid]);
  1552. Delete3DTextLabel(CarsInfo[cardealer][id][cText]);
  1553. CarsInfo[cardealer][id][cVehid] = CreateVehicle(CarsInfo[cardealer][id][cModel], CarsInfo[cardealer][id][cX], CarsInfo[cardealer][id][cY], CarsInfo[cardealer][id][cZ], CarsInfo[cardealer][id][cR], CarsInfo[cardealer][id][c1], CarsInfo[cardealer][id][c2], 60000);
  1554. format(Query, sizeof(Query), "Preis: %d$", CarsInfo[cardealer][id][cPrice]);
  1555. CarsInfo[cardealer][id][cText] = Create3DTextLabel(Query, 0x33AA33AA, CarsInfo[cardealer][id][cX], CarsInfo[cardealer][id][cY], CarsInfo[cardealer][id][cZ], 0, 0);
  1556. return 1;
  1557. }
  1558.  
  1559. stock CountCarDealerCars(cardealer)
  1560. {
  1561. new c = 0;
  1562. for(new i = 0; i < Max_Cars_Per_Dealer_Ship; i++)
  1563. {
  1564. if(CarsInfo[cardealer][i][cExist] == true)
  1565. {
  1566. c++;
  1567. }
  1568. }
  1569. return c;
  1570. }
  1571.  
  1572. stock GetFreeCarDealerCarID(cardealer)
  1573. {
  1574. for(new i = 0; i < Max_Cars_Per_Dealer_Ship; i++)
  1575. {
  1576. if(CarsInfo[cardealer][i][cExist] == false)
  1577. {
  1578. return i;
  1579. }
  1580. }
  1581. return -1;
  1582. }
  1583.  
  1584. stock CreateCarDealerCar(Model, Float:X, Float:Y, Float:Z, Float:R, C1, C2, Price, CarDealer)
  1585. {
  1586. new Query[128];
  1587. new id = GetFreeCarDealerCarID(CarDealer);
  1588. if(id != -1)
  1589. {
  1590. CarsInfo[CarDealer][id][cModel] = Model;
  1591. CarsInfo[CarDealer][id][cX] = X;
  1592. CarsInfo[CarDealer][id][cY] = Y;
  1593. CarsInfo[CarDealer][id][cZ] = Z;
  1594. CarsInfo[CarDealer][id][cR] = R;
  1595. CarsInfo[CarDealer][id][c1] = C1;
  1596. CarsInfo[CarDealer][id][c2] = C2;
  1597. CarsInfo[CarDealer][id][cPrice] = Price;
  1598. CarsInfo[CarDealer][id][cCarDealer] = CarDealer;
  1599. format(Query, sizeof(Query), "INSERT INTO `dealercars`(`Model`, `X`, `Y`, `Z`, `R`, `C1`, `C2`, `Price`, `CarDealer`) VALUES (%d, %f, %f, %f, %f, %d, %d, %d, %d)", Model, X, Y, Z, R, C1, C2, Price, CarDealer);
  1600. mysql_query(Query);
  1601. mysql_query("SELECT max(sqlid) FROM `dealercars`");
  1602. mysql_store_result();
  1603. mysql_fetch_row_format(Query);
  1604. mysql_free_result();
  1605. CarsInfo[CarDealer][id][cSQLid] = strval(Query);
  1606. CarsInfo[CarDealer][id][cExist] = true;
  1607. CarsInfo[CarDealer][id][cVehid] = CreateVehicle(Model, X, Y, Z, R, C1, C2, 60000);
  1608. CarsInfo[CarDealer][id][cText] = Create3DTextLabel(Query, 0x33AA33AA, CarsInfo[CarDealer][id][cX], CarsInfo[CarDealer][id][cY], CarsInfo[CarDealer][id][cZ], 0, 0);
  1609. return 1;
  1610. }
  1611. return 0;
  1612. }
  1613.  
  1614. stock DeleteCarDealerCar(CarDealer, id)
  1615. {
  1616. new Query[128];
  1617. if(CarsInfo[CarDealer][id][cExist] == true)
  1618. {
  1619. CarsInfo[CarDealer][id][cExist] = false;
  1620. Delete3DTextLabel(CarsInfo[CarDealer][id][cText]);
  1621. DestroyVehicle(CarsInfo[CarDealer][id][cVehid]);
  1622. format(Query, sizeof(Query), "DELETE FROM `%s`.`dealercars` WHERE `dealercars`.`sqlid` = %d", SQL_DB, CarsInfo[CarDealer][id][cSQLid]);
  1623. mysql_query(Query);
  1624. }
  1625. return 0;
  1626. }
  1627.  
  1628. stock CreatePlayerCarDealerCarList(playerid, dialogid, Caption[], Button1[], Button2[], CarDealer, Page)
  1629. {
  1630. new info[512], c = 0, cc = 0;
  1631. if(Page == 1)
  1632. {
  1633. DeleteListRAM(playerid);
  1634. LIST_PAGE_EXIST[playerid][0] = true;
  1635. for(new i = 0; i < Max_Cars_Per_Dealer_Ship; i++)
  1636. {
  1637. if(CarsInfo[CarDealer][i][cExist] == true)
  1638. {
  1639. LIST_INFO[playerid][cc][c] = i;
  1640. LIST_INFO_EXIST[playerid][cc][c] = true;
  1641. c ++;
  1642. if(c == 15)
  1643. {
  1644. c = 0;
  1645. cc ++;
  1646. LIST_PAGE_EXIST[playerid][cc] = true;
  1647. }
  1648. }
  1649. }
  1650. }
  1651. SetPVarInt(playerid, "PAGE", Page);
  1652. SetPVarString(playerid, "CAPTION", Caption);
  1653. SetPVarString(playerid, "BUTTON1", Button1);
  1654. SetPVarString(playerid, "BUTTON2", Button2);
  1655. for(new i = 0; i < 15; i++)
  1656. {
  1657. if(LIST_INFO_EXIST[playerid][Page-1][i] == true)
  1658. {
  1659. format(info, sizeof(info), "%s\n%s[ID: %d]", info, VehicleName[CarsInfo[CarDealer][LIST_INFO[playerid][Page-1][i]][cModel]-400], LIST_INFO[playerid][Page-1][i]);
  1660. }
  1661. }
  1662. if(Page > 1)
  1663. {
  1664. format(info, sizeof(info), "%s\nVohrrige Seite");
  1665. SetPVarInt(playerid, "LIST_BACK", c);
  1666. }
  1667. if(Page < cc)
  1668. {
  1669. format(info, sizeof(info), "%s\nNächste Seite");
  1670. if(GetPVarInt(playerid, "LIST_BACK"))
  1671. {
  1672. c++;
  1673. }
  1674. SetPVarInt(playerid, "LIST_NEXT", c);
  1675. }
  1676. if(c == 0 && cc == 0)
  1677. {
  1678. format(info, sizeof(info), "Keine Autos vorhanden.");
  1679. SetPVarInt(playerid, "NotCarDealerCars", 1);
  1680. }
  1681. new newcaption[32];
  1682. if(cc > 1)
  1683. {
  1684. format(newcaption, sizeof(newcaption), "%s (%d/%d)", Caption, Page, cc);
  1685. }
  1686. else
  1687. {
  1688. format(newcaption, sizeof(newcaption), "%s (%d/%d)", Caption);
  1689. }
  1690. SetPVarInt(playerid, "CarDealerCarList", 1);
  1691. ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_LIST, newcaption, info, Button1, Button2);
  1692. return 1;
  1693. }
  1694.  
  1695. stock IsPlayerInBuyAbleCar(playerid, CarDealer, ID)
  1696. {
  1697. #pragma unused CarDealer, ID
  1698. for(new i = 0; i < Max_Car_Dealer_Ships; i++)
  1699. {
  1700. if(CarDealerShipInfo[i][cExist] == true)
  1701. {
  1702. for(new i2 = 0; i2 < Max_Cars_Per_Dealer_Ship; i2++)
  1703. {
  1704. if(CarsInfo[i][i2][cExist] == true)
  1705. {
  1706. if(CarsInfo[i][i2][cVehid] == GetPlayerVehicleID(playerid))
  1707. {
  1708. CarDealer = i;
  1709. ID = i2;
  1710. }
  1711. }
  1712. }
  1713. }
  1714. }
  1715. CarDealer = -1;
  1716. ID = -1;
  1717. return 1;
  1718. }
  1719.  
  1720. stock LoadPlayerCars(playerid)
  1721. {
  1722. new Query[128], Load[64], c=0;
  1723. format(Query, sizeof(Query), "SELECT * FROM playercars WHERE `owner` = '%s'", GetUserName(playerid));
  1724. mysql_query(Query);
  1725. mysql_store_result();
  1726. while(mysql_retrieve_row())
  1727. {
  1728. mysql_fetch_field_row(Load, "Model");
  1729. CarInfo[playerid][c][pModel] = strval(Load);
  1730. mysql_fetch_field_row(Load, "X");
  1731. CarInfo[playerid][c][pX] = floatstr(Load);
  1732. mysql_fetch_field_row(Load, "Y");
  1733. CarInfo[playerid][c][pY] = floatstr(Load);
  1734. mysql_fetch_field_row(Load, "Z");
  1735. CarInfo[playerid][c][pZ] = floatstr(Load);
  1736. mysql_fetch_field_row(Load, "R");
  1737. CarInfo[playerid][c][pR] = floatstr(Load);
  1738. mysql_fetch_field_row(Load, "C1");
  1739. CarInfo[playerid][c][pC1] = strval(Load);
  1740. mysql_fetch_field_row(Load, "C2");
  1741. CarInfo[playerid][c][pC2] = strval(Load);
  1742. for(new i = 0; i < 14; i++)
  1743. {
  1744. format(Query, sizeof(Query), "Mod%d", i);
  1745. mysql_fetch_field_row(Load, Query);
  1746. CarInfo[playerid][c][pMod][i] = strval(Load);
  1747. }
  1748. mysql_fetch_field_row(Load, "Locked");
  1749. CarInfo[playerid][c][pLocked] = strval(Load);
  1750. mysql_fetch_field_row(Load, "sqlid");
  1751. CarInfo[playerid][c][pSQLid] = strval(Load);
  1752. CarInfo[playerid][c][pExist] = true;
  1753. CarInfo[playerid][c][pVehid] = CreateVehicle(CarInfo[playerid][c][pModel], CarInfo[playerid][c][pX], CarInfo[playerid][c][pY], CarInfo[playerid][c][pZ], CarInfo[playerid][c][pR], CarInfo[playerid][c][pC1], CarInfo[playerid][c][pC2], 60000);
  1754. for(new i = 0; i < 14; i++)
  1755. {
  1756. AddVehicleComponent(CarInfo[playerid][c][pVehid], CarInfo[playerid][c][pMod][i]);
  1757. }
  1758. if(CarInfo[playerid][c][pLocked] == 1)
  1759. {
  1760. for(new i = 0; i < MAX_PLAYERS; i++)
  1761. {
  1762. if(i == playerid)continue;
  1763. SetVehicleParamsForPlayer(CarInfo[playerid][c][pVehid], playerid, 1, 1);
  1764. }
  1765. }
  1766. c ++;
  1767. }
  1768. mysql_free_result();
  1769. return 1;
  1770. }
  1771.  
  1772. stock UpdatePlayerCar(playerid, id)
  1773. {
  1774. new Query[128];
  1775. format(Query, sizeof(Query), "UPDATE playercars SET `Model` = '%d' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pModel], CarInfo[playerid][id][pSQLid]);
  1776. mysql_query(Query);
  1777. format(Query, sizeof(Query), "UPDATE playercars SET `X` = '%f' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pX], CarInfo[playerid][id][pSQLid]);
  1778. mysql_query(Query);
  1779. format(Query, sizeof(Query), "UPDATE playercars SET `Y` = '%f' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pY], CarInfo[playerid][id][pSQLid]);
  1780. mysql_query(Query);
  1781. format(Query, sizeof(Query), "UPDATE playercars SET `Z` = '%f' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pZ], CarInfo[playerid][id][pSQLid]);
  1782. mysql_query(Query);
  1783. format(Query, sizeof(Query), "UPDATE playercars SET `R` = '%f' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pR], CarInfo[playerid][id][pSQLid]);
  1784. mysql_query(Query);
  1785. format(Query, sizeof(Query), "UPDATE playercars SET `C1` = '%d' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pC1], CarInfo[playerid][id][pSQLid]);
  1786. mysql_query(Query);
  1787. format(Query, sizeof(Query), "UPDATE playercars SET `C2` = '%d' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pC2], CarInfo[playerid][id][pSQLid]);
  1788. mysql_query(Query);
  1789. for(new i = 0; i < 14; i++)
  1790. {
  1791. CarInfo[playerid][id][pMod][i] = GetVehicleComponentInSlot(CarInfo[playerid][id][pVehid], i);
  1792. format(Query, sizeof(Query), "UPDATE playercars SET `Mod%d` = '%d' WHERE `sqlid` = '%d'", i, CarInfo[playerid][id][pMod][i], CarInfo[playerid][id][pSQLid]);
  1793. mysql_query(Query);
  1794. }
  1795. format(Query, sizeof(Query), "UPDATE playercars SET `Locked` = '%d' WHERE `sqlid` = '%d'", CarInfo[playerid][id][pLocked], CarInfo[playerid][id][pSQLid]);
  1796. mysql_query(Query);
  1797. return 1;
  1798. }
  1799.  
  1800. stock CountPlayerCars(playerid)
  1801. {
  1802. new c = 0;
  1803. for(new i = 0; i < Max_Player_Cars; i++)
  1804. {
  1805. if(CarInfo[playerid][i][pExist] == true)
  1806. {
  1807. c ++;
  1808. }
  1809. }
  1810. return c;
  1811. }
  1812.  
  1813. stock GetFreePlayerCarID(playerid)
  1814. {
  1815. new c = 0;
  1816. for(new i = 0; i < Max_Player_Cars; i++)
  1817. {
  1818. if(CarInfo[playerid][i][pExist] == false)
  1819. {
  1820. return c;
  1821. }
  1822. }
  1823. return -1;
  1824. }
  1825.  
  1826. stock CreatePlayerCar(playerid, cardealer, id)
  1827. {
  1828. new Query[128];
  1829. new id2 = GetFreePlayerCarID(playerid);
  1830. if(id!=-1)
  1831. {
  1832. new C1 = random(126);
  1833. new C2 = random(126);
  1834. CarInfo[playerid][id2][pModel] = CarsInfo[cardealer][id][cModel];
  1835. CarInfo[playerid][id2][pX] = CarDealerShipInfo[cardealer][caX];
  1836. CarInfo[playerid][id2][pY] = CarDealerShipInfo[cardealer][caY];
  1837. CarInfo[playerid][id2][pZ] = CarDealerShipInfo[cardealer][caZ];
  1838. CarInfo[playerid][id2][pR] = 0.0;
  1839. CarInfo[playerid][id2][pC1] = C1;
  1840. CarInfo[playerid][id2][pC2] = C2;
  1841. CarInfo[playerid][id2][pExist] = true;
  1842. CarInfo[playerid][id2][pVehid] = CreateVehicle(CarInfo[playerid][id2][pModel], CarDealerShipInfo[cardealer][caX], CarDealerShipInfo[cardealer][caY], CarDealerShipInfo[cardealer][caZ], CarInfo[playerid][id2][pR], C1, C2, 60000);
  1843. format(Query, sizeof(Query), "INSERT INTO `playercars`(`Owner`, `Model`, `X`, `Y`, `Z`, `R`, `C1`, `C2`) VALUES ('%s', %d, %f, %f, %f, %f, %d, %d)", GetUserName(playerid), CarsInfo[cardealer][id][cModel], CarDealerShipInfo[cardealer][caX], CarDealerShipInfo[cardealer][caY], CarDealerShipInfo[cardealer][caZ], CarInfo[playerid][id2][pR], 0.0, C1, C2);
  1844. mysql_query(Query);
  1845. return 1;
  1846. }
  1847. return 0;
  1848. }
  1849.  
  1850. stock ChangeCarOwner(playerid, id, toplayerid)
  1851. {
  1852. new id2 = GetFreePlayerCarID(toplayerid);
  1853. if(id2 != -1)
  1854. {
  1855. new Query[128];
  1856. format(Query, sizeof(Query), "UPDATE playercars SET `Owner` = '%s' WHERE `sqlid` = '%d'", GetUserName(playerid), CarInfo[playerid][id][pSQLid]);
  1857. mysql_query(Query);
  1858. CarInfo[toplayerid][id2][pModel] = CarInfo[playerid][id][pModel];
  1859. CarInfo[toplayerid][id2][pX] = CarInfo[playerid][id][pX];
  1860. CarInfo[toplayerid][id2][pY] = CarInfo[playerid][id][pY];
  1861. CarInfo[toplayerid][id2][pZ] = CarInfo[playerid][id][pZ];
  1862. CarInfo[toplayerid][id2][pR] = CarInfo[playerid][id][pR];
  1863. CarInfo[toplayerid][id2][pC1] = CarInfo[playerid][id][pC1];
  1864. CarInfo[toplayerid][id2][pC2] = CarInfo[playerid][id][pC2];
  1865. CarInfo[toplayerid][id2][pMod][0] = CarInfo[playerid][id][pMod][0];
  1866. CarInfo[toplayerid][id2][pMod][1] = CarInfo[playerid][id][pMod][1];
  1867. CarInfo[toplayerid][id2][pMod][2] = CarInfo[playerid][id][pMod][2];
  1868. CarInfo[toplayerid][id2][pMod][3] = CarInfo[playerid][id][pMod][3];
  1869. CarInfo[toplayerid][id2][pMod][4] = CarInfo[playerid][id][pMod][4];
  1870. CarInfo[toplayerid][id2][pMod][5] = CarInfo[playerid][id][pMod][5];
  1871. CarInfo[toplayerid][id2][pMod][6] = CarInfo[playerid][id][pMod][6];
  1872. CarInfo[toplayerid][id2][pMod][7] = CarInfo[playerid][id][pMod][7];
  1873. CarInfo[toplayerid][id2][pMod][8] = CarInfo[playerid][id][pMod][8];
  1874. CarInfo[toplayerid][id2][pMod][9] = CarInfo[playerid][id][pMod][9];
  1875. CarInfo[toplayerid][id2][pMod][10] = CarInfo[playerid][id][pMod][10];
  1876. CarInfo[toplayerid][id2][pMod][11] = CarInfo[playerid][id][pMod][11];
  1877. CarInfo[toplayerid][id2][pMod][12] = CarInfo[playerid][id][pMod][12];
  1878. CarInfo[toplayerid][id2][pMod][13] = CarInfo[playerid][id][pMod][13];
  1879. CarInfo[toplayerid][id2][pLocked] = CarInfo[playerid][id][pLocked];
  1880. CarInfo[toplayerid][id2][pSQLid] = CarInfo[playerid][id][pSQLid];
  1881. CarInfo[toplayerid][id2][pVehid] = CarInfo[playerid][id][pVehid];
  1882. CarInfo[toplayerid][id2][pExist] = true;
  1883. CarInfo[playerid][id][pExist] = false;
  1884. return 1;
  1885. }
  1886. return 0;
  1887. }
  1888.  
  1889. stock IsPlayerInNearOfHisCar(playerid)
  1890. {
  1891. for(new i = 0; i < Max_Player_Cars; i++)
  1892. {
  1893. if(CarInfo[playerid][i][pExist] == true)
  1894. {
  1895. new Float: X, Float: Y, Float: Z;
  1896. GetVehiclePos(CarInfo[playerid][i][pVehid], X, Y, Z);
  1897. if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  1898. {
  1899. return i;
  1900. }
  1901. }
  1902. }
  1903. return -1;
  1904. }
  1905.  
  1906. stock IsPlayerInHisCar(playerid)
  1907. {
  1908. for(new i = 0; i < Max_Player_Cars; i++)
  1909. {
  1910. if(CarInfo[playerid][i][pExist] == true)
  1911. {
  1912. if(CarInfo[playerid][i][pVehid] == GetPlayerVehicleID(playerid))
  1913. {
  1914. return i;
  1915. }
  1916. }
  1917. }
  1918. return -1;
  1919. }
  1920.  
  1921. stock strtok(const string[], &index)
  1922. {
  1923. new length = strlen(string);
  1924. while ((index < length) && (string[index] <= ' '))
  1925. {
  1926. index++;
  1927. }
  1928.  
  1929. new offset = index;
  1930. new result[20];
  1931. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  1932. {
  1933. result[index - offset] = string[index];
  1934. index++;
  1935. }
  1936. result[index - offset] = EOS;
  1937. return result;
  1938. }
  1939.  
  1940. stock ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  1941. {
  1942. new pos = 0;
  1943. while (text[pos] < 0x21) // Strip out leading spaces
  1944. {
  1945. if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
  1946. pos++;
  1947. }
  1948. new userid = INVALID_PLAYER_ID;
  1949. if (IsNumeric(text[pos])) // Check whole passed string
  1950. {
  1951. // If they have a numeric name you have a problem (although names are checked on id failure)
  1952. userid = strval(text[pos]);
  1953. if (userid >=0 && userid < MAX_PLAYERS)
  1954. {
  1955. if(!IsPlayerConnected(userid))
  1956. {
  1957. /*if (playerid != INVALID_PLAYER_ID)
  1958. {
  1959. SendClientMessage(playerid, 0xFF0000AA, "User not connected");
  1960. }*/
  1961. userid = INVALID_PLAYER_ID;
  1962. }
  1963. else
  1964. {
  1965. return userid; // A player was found
  1966. }
  1967. }
  1968. /*else
  1969. {
  1970. if (playerid != INVALID_PLAYER_ID)
  1971. {
  1972. SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
  1973. }
  1974. userid = INVALID_PLAYER_ID;
  1975. }
  1976. return userid;*/
  1977. // Removed for fallthrough code
  1978. }
  1979. // They entered [part of] a name or the id search failed (check names just incase)
  1980. new len = strlen(text[pos]);
  1981. new count = 0;
  1982. new name[MAX_PLAYER_NAME];
  1983. for (new i = 0; i < MAX_PLAYERS; i++)
  1984. {
  1985. if (IsPlayerConnected(i))
  1986. {
  1987. GetPlayerName(i, name, sizeof (name));
  1988. if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
  1989. {
  1990. if (len == strlen(name)) // Exact match
  1991. {
  1992. return i; // Return the exact player on an exact match
  1993. // Otherwise if there are two players:
  1994. // Me and MeYou any time you entered Me it would find both
  1995. // And never be able to return just Me's id
  1996. }
  1997. else // Partial match
  1998. {
  1999. count++;
  2000. userid = i;
  2001. }
  2002. }
  2003. }
  2004. }
  2005. if (count != 1)
  2006. {
  2007. if (playerid != INVALID_PLAYER_ID)
  2008. {
  2009. if (count)
  2010. {
  2011. SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
  2012. }
  2013. else
  2014. {
  2015. SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
  2016. }
  2017. }
  2018. userid = INVALID_PLAYER_ID;
  2019. }
  2020. return userid; // INVALID_USER_ID for bad return
  2021. }
  2022.  
  2023. stock IsNumeric(const string[])
  2024. {
  2025. for (new i = 0, j = strlen(string); i < j; i++)
  2026. {
  2027. if (string[i] > '9' || string[i] < '0') return 0;
  2028. }
  2029. return 1;
  2030. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement