Advertisement
Guest User

client.lua

a guest
Jun 7th, 2017
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.84 KB | None | 0 0
  1. local garages = {
  2. { ['x'] = -333.6833, ['y'] = -739.7866, ['z'] = 33.9657 }, -- Mutli Story
  3. { ['x'] = 46.4554, ['y'] = 6458.1826, ['z'] = 31.4252 }, -- Paleto Bay
  4. { ['x'] = 644.9803, ['y'] = 2792.7102, ['z'] = 41.9462 }, -- Route68
  5. }
  6.  
  7. local menu = {
  8. {
  9. name = "Bicycles",
  10. vehicles = {
  11. {
  12. name = "BMX",
  13. price = 1000,
  14. model = "bmx",
  15. },
  16. {
  17. name = "Cruiser",
  18. price = 1000,
  19. model = "crusier",
  20. },
  21. {
  22. name = "Scorcher",
  23. price = 2000,
  24. model = "scorcher",
  25. },
  26. {
  27. name = "Race Bike Green",
  28. price = 5000,
  29. model = "tribike",
  30. },
  31. {
  32. name = "Race Bike Red",
  33. price = 5000,
  34. model = "tribike2",
  35. },
  36. {
  37. name = "Race Bike Blue",
  38. price = 5000,
  39. model = "tribike3",
  40. }
  41. }
  42. },
  43. {
  44. name = "Motorcycles",
  45. vehicles = {
  46. {
  47. name = "Faggio",
  48. price = 4000,
  49. model = "faggio",
  50. },
  51. {
  52. name = "Faggio Classic",
  53. price = 4500,
  54. model = "faggio2",
  55. },
  56. {
  57. name = "Bagger",
  58. price = 5000,
  59. model = "bagger",
  60. },
  61. {
  62. name = "Daemon",
  63. price = 5000,
  64. model = "daemon",
  65. },
  66. {
  67. name = "Sanchez",
  68. price = 7000,
  69. model = "sanchez",
  70. },
  71. {
  72. name = "Blazer",
  73. price = 8000,
  74. model = "blazer",
  75. },
  76. {
  77. name = "Akuma",
  78. price = 9000,
  79. model = "AKUMA",
  80. },
  81. {
  82. name = "Vader",
  83. price = 9000,
  84. model = "vader",
  85. },
  86. {
  87. name = "PCJ-600",
  88. price = 9000,
  89. model = "pcj",
  90. },
  91. {
  92. name = "Ruffian",
  93. price = 9000,
  94. model = "ruffian",
  95. },
  96. {
  97. name = "Nemesis",
  98. price = 12000,
  99. model = "nemesis",
  100. },
  101. {
  102. name = "Double T",
  103. price = 12000,
  104. model = "double",
  105. },
  106. {
  107. name = "Bati 801",
  108. price = 15000,
  109. model = "bati",
  110. },
  111. {
  112. name = "Bati 801RR",
  113. price = 15000,
  114. model = "bati2",
  115. },
  116. {
  117. name = "Hexer",
  118. price = 15000,
  119. model = "hexer",
  120. },
  121. {
  122. name = "HotRod Blazer",
  123. price = 20000,
  124. model = "blazer3",
  125. },
  126. {
  127. name = "Carbon RS",
  128. price = 40000,
  129. model = "carbonrs",
  130. },
  131. {
  132. name = "Enduro",
  133. price = 48000,
  134. model = "enduro",
  135. },
  136. {
  137. name = "Thrust",
  138. price = 75000,
  139. model = "thrust",
  140. },
  141. {
  142. name = "Hakuchou",
  143. price = 82000,
  144. model = "hakuchou",
  145. },
  146. {
  147. name = "Innovation",
  148. price = 90000,
  149. model = "innovation",
  150. },
  151. {
  152. name = "Sovereign",
  153. price = 90000,
  154. model = "sovereign",
  155. },
  156. {
  157. name = "BF400",
  158. price = 95000,
  159. model = "bf400",
  160. },
  161. {
  162. name = "Gargoyle",
  163. price = 120000,
  164. model = "gargoyle",
  165. },
  166. {
  167. name = "Cliffhanger",
  168. price = 225000,
  169. model = "cliffhanger",
  170. },
  171. {
  172. name = "Vindicator",
  173. price = 600000,
  174. model = "vindicator",
  175. },
  176. {
  177. name = "Lectro",
  178. price = 700000,
  179. model = "lectro",
  180. }
  181. }
  182. },
  183. {
  184. name = "Compacts",
  185. vehicles = {
  186. {
  187. name = "Blista",
  188. price = 15000,
  189. model = "blista",
  190. },
  191. {
  192. name = "Issi",
  193. price = 18000,
  194. model = "issi2",
  195. },
  196. {
  197. name = "Dilettante",
  198. price = 25000,
  199. model = "dilettante",
  200. },
  201. {
  202. name = "Asea",
  203. price = 25000,
  204. model = "asea",
  205. },
  206. {
  207. name = "Asterope",
  208. price = 30000,
  209. model = "asterope",
  210. },
  211. {
  212. name = "Prairie",
  213. price = 30000,
  214. model = "prairie",
  215. },
  216. {
  217. name = "Panto",
  218. price = 85000,
  219. model = "panto",
  220. },
  221. {
  222. name = "Rhapsody",
  223. price = 120000,
  224. model = "rhapsody",
  225. },
  226. {
  227. name = "Brioso",
  228. price = 155000,
  229. model = "brioso",
  230. }
  231. }
  232. },
  233. {
  234. name = "Sedans",
  235. vehicles = {
  236. {
  237. name = "Regina",
  238. price = 8000,
  239. model = "regina",
  240. },
  241. {
  242. name = "Ingot",
  243. price = 9000,
  244. model = "ingot",
  245. },
  246. {
  247. name = "Primo",
  248. price = 9000,
  249. model = "primo",
  250. },
  251. {
  252. name = "Primo Custom",
  253. price = 9500,
  254. model = "primo2",
  255. },
  256. {
  257. name = "Premier",
  258. price = 10000,
  259. model = "premier",
  260. },
  261. {
  262. name = "Stanier",
  263. price = 10000,
  264. model = "stanier",
  265. },
  266. {
  267. name = "Stratum",
  268. price = 10000,
  269. model = "stratum",
  270. },
  271. {
  272. name = "Washington",
  273. price = 15000,
  274. model = "washington",
  275. },
  276. {
  277. name = "Intruder",
  278. price = 16000,
  279. model = "intruder",
  280. },
  281. {
  282. name = "Surge",
  283. price = 38000,
  284. model = "surge",
  285. },
  286. {
  287. name = "Tailgater",
  288. price = 55000,
  289. model = "tailgater",
  290. },
  291. {
  292. name = "Schafter",
  293. price = 65000,
  294. model = "schafter2",
  295. },
  296. {
  297. name = "Warrener",
  298. price = 120000,
  299. model = "warrener",
  300. },
  301. {
  302. name = "Blade",
  303. price = 160000,
  304. model = "blade",
  305. },
  306. {
  307. name = "Glendale",
  308. price = 200000,
  309. model = "glendale",
  310. },
  311. {
  312. name = "Fugitive",
  313. price = 240000,
  314. model = "fugitive",
  315. }
  316. }
  317. },
  318. {
  319. name = "Coupes",
  320. vehicles = {
  321. {
  322. name = "Jackal",
  323. price = 60000,
  324. model = "jackal",
  325. },
  326. {
  327. name = "Zion",
  328. price = 60000,
  329. model = "zion",
  330. },
  331. {
  332. name = "Zion Cabrio",
  333. price = 65000,
  334. model = "zion2",
  335. },
  336. {
  337. name = "F620",
  338. price = 80000,
  339. model = "f620",
  340. },
  341. {
  342. name = "Oracle",
  343. price = 80000,
  344. model = "oracle",
  345. },
  346. {
  347. name = "Oracle XS",
  348. price = 82000,
  349. model = "oracle2",
  350. },
  351. {
  352. name = "Felon",
  353. price = 90000,
  354. model = "felon",
  355. },
  356. {
  357. name = "Sentinel",
  358. price = 90000,
  359. model = "sentinel",
  360. },
  361. {
  362. name = "Sentinel XS",
  363. price = 92000,
  364. model = "sentinel2",
  365. },
  366. {
  367. name = "Felon GT",
  368. price = 95000,
  369. model = "felon2",
  370. },
  371. {
  372. name = "Cognoscenti Cabrio",
  373. price = 180000,
  374. model = "cogcabrio",
  375. },
  376. {
  377. name = "Exemplar",
  378. price = 200000,
  379. model = "exemplar",
  380. }
  381. }
  382. },
  383. {
  384. name = "Muscle",
  385. vehicles = {
  386. {
  387. name = "Picador",
  388. price = 9000,
  389. model = "picador",
  390. },
  391. --{
  392. --name = "Sabre Turbo", -- NOT WORKING
  393. --price = 15000,
  394. --model = "sabregt",
  395. --},
  396. {
  397. name = "Vigero",
  398. price = 21000,
  399. model = "vigero",
  400. },
  401. {
  402. name = "Stallion",
  403. price = 25000,
  404. model = "stalion",
  405. },
  406. {
  407. name = "Buccaneer",
  408. price = 29000,
  409. model = "buccaneer",
  410. },
  411. {
  412. name = "Gauntlet",
  413. price = 32000,
  414. model = "gauntlet",
  415. },
  416. {
  417. name = "Buffalo",
  418. price = 35000,
  419. model = "buffalo",
  420. },
  421. {
  422. name = "Dominator",
  423. price = 35000,
  424. model = "dominator",
  425. },
  426. {
  427. name = "Faction",
  428. price = 36000,
  429. model = "faction",
  430. },
  431. {
  432. name = "BurgerShot Stallion",
  433. price = 40000,
  434. model = "stalion2",
  435. },
  436. {
  437. name = "Redwood Gauntlet",
  438. price = 40000,
  439. model = "gauntlet2",
  440. },
  441. {
  442. name = "Pisswasser Dominator",
  443. price = 40000,
  444. model = "dominator2",
  445. },
  446. {
  447. name = "Sprunk Buffalo",
  448. price = 40000,
  449. model = "buffalo3",
  450. },
  451. {
  452. name = "Dukes",
  453. price = 62000,
  454. model = "dukes",
  455. },
  456. {
  457. name = "Duke o'Death",
  458. price = 85000,
  459. model = "dukes2",
  460. },
  461. {
  462. name = "Hotknife",
  463. price = 90000,
  464. model = "hotknife",
  465. },
  466. {
  467. name = "Buffalo S",
  468. price = 96000,
  469. model = "buffalo2",
  470. },
  471. {
  472. name = "Virgo",
  473. price = 195000,
  474. model = "virgo",
  475. },
  476. {
  477. name = "Chino",
  478. price = 225000,
  479. model = "chino",
  480. },
  481. {
  482. name = "Tampa",
  483. price = 375000,
  484. model = "tampa",
  485. },
  486. {
  487. name = "Nightshade",
  488. price = 585000,
  489. model = "nightshade",
  490. }
  491. }
  492. },
  493. {
  494. name = "Vans",
  495. vehicles = {
  496. {
  497. name = "Surfer",
  498. price = 11000,
  499. model = "surfer",
  500. },
  501. {
  502. name = "Rumpo",
  503. price = 13000,
  504. model = "rumpo",
  505. },
  506. {
  507. name = "Journey",
  508. price = 15000,
  509. model = "journey",
  510. },
  511. {
  512. name = "Youga",
  513. price = 16000,
  514. model = "youga",
  515. },
  516. {
  517. name = "Bobcat XL",
  518. price = 23000,
  519. model = "bobcatxl",
  520. },
  521. {
  522. name = "Paradise",
  523. price = 25000,
  524. model = "paradise",
  525. },
  526. {
  527. name = "Minivan",
  528. price = 30000,
  529. model = "minivan",
  530. },
  531. {
  532. name = "Seminole",
  533. price = 30000,
  534. model = "seminole",
  535. },
  536. {
  537. name = "Bison",
  538. price = 30000,
  539. model = "bison",
  540. },
  541. {
  542. name = "Gang Slam Van",
  543. price = 35000,
  544. model = "slamvan2",
  545. },
  546. {
  547. name = "Gang Burrito",
  548. price = 65000,
  549. model = "gburrito",
  550. }
  551. }
  552. },
  553. {
  554. name = "Off-Road",
  555. vehicles = {
  556. {
  557. name = "Blazer",
  558. price = 8000,
  559. model = "blazer",
  560. },
  561. {
  562. name = "Dune Buggy",
  563. price = 20000,
  564. model = "dune",
  565. },
  566. {
  567. name = "Rebel",
  568. price = 22000,
  569. model = "rebel2",
  570. },
  571. {
  572. name = "Sandking",
  573. price = 38000,
  574. model = "sandking",
  575. },
  576. {
  577. name = "Bifta",
  578. price = 75000,
  579. model = "bifta",
  580. },
  581. {
  582. name = "Bubsta 6x6",
  583. price = 249000,
  584. model = "dubsta3",
  585. },
  586. {
  587. name = "Contender",
  588. price = 400000,
  589. model = "contender",
  590. },
  591. {
  592. name = "Guardian",
  593. price = 450000,
  594. model = "guardian",
  595. },
  596. {
  597. name = "Brawler",
  598. price = 715000,
  599. model = "brawler",
  600. },
  601. {
  602. name = "Marshall",
  603. price = 500000,
  604. model = "marshall",
  605. },
  606. {
  607. name = "The Liberator",
  608. price = 550000,
  609. model = "monster",
  610. },
  611. {
  612. name = "Trophy Truck",
  613. price = 550000,
  614. model = "trophytruck",
  615. }
  616. }
  617. },
  618. {
  619. name = "SUV",
  620. vehicles = {
  621. {
  622. name = "Radius",
  623. price = 32000,
  624. model = "radi",
  625. },
  626. {
  627. name = "Landstalker",
  628. price = 35000,
  629. model = "landstalker",
  630. },
  631. {
  632. name = "Granger",
  633. price = 50000,
  634. model = "granger",
  635. },
  636. {
  637. name = "Cavalcade",
  638. price = 60000,
  639. model = "cavalcade",
  640. },
  641. {
  642. name = "Rocoto",
  643. price = 85000,
  644. model = "rocoto",
  645. },
  646. {
  647. name = "Dubsta",
  648. price = 85000,
  649. model = "dubsta",
  650. },
  651. {
  652. name = "Baller",
  653. price = 90000,
  654. model = "baller",
  655. },
  656. {
  657. name = "XLS",
  658. price = 100000,
  659. model = "xls",
  660. },
  661. {
  662. name = "Baller SE",
  663. price = 110000,
  664. model = "baller2",
  665. },
  666. {
  667. name = "Dubsta Carbon",
  668. price = 150000,
  669. model = "dubsta2",
  670. },
  671. {
  672. name = "Baller LE",
  673. price = 180000,
  674. model = "baller3",
  675. },
  676. {
  677. name = "Huntley S",
  678. price = 195000,
  679. model = "huntley",
  680. }
  681. }
  682. },
  683. {
  684. name = "Sports",
  685. vehicles = {
  686. {
  687. name = "Sultan",
  688. price = 12000,
  689. model = "sultan",
  690. },
  691. {
  692. name = "Futo",
  693. price = 15000,
  694. model = "futo",
  695. },
  696. {
  697. name = "Penumbra",
  698. price = 24000,
  699. model = "penumbra",
  700. },
  701. {
  702. name = "Elegy RH8",
  703. price = 30000,
  704. model = "elegy2",
  705. },
  706. {
  707. name = "Fusilade",
  708. price = 36000,
  709. model = "fusilade",
  710. },
  711. {
  712. name = "Khamelion",
  713. price = 85000,
  714. model = "khamelion",
  715. },
  716. {
  717. name = "Voltic",
  718. price = 90000,
  719. model = "voltic",
  720. },
  721. {
  722. name = "Kuruma",
  723. price = 95000,
  724. model = "kuruma",
  725. },
  726. {
  727. name = "Comet",
  728. price = 100000,
  729. model = "comet2",
  730. },
  731. {
  732. name = "Banshee",
  733. price = 105000,
  734. model = "banshee",
  735. },
  736. {
  737. name = "Surano",
  738. price = 110000,
  739. model = "surano",
  740. },
  741. {
  742. name = "9F",
  743. price = 120000,
  744. model = "ninef",
  745. },
  746. {
  747. name = "Feltzer",
  748. price = 130000,
  749. model = "feltzer2",
  750. },
  751. {
  752. name = "9F Cabrio",
  753. price = 130000,
  754. model = "ninef2",
  755. },
  756. {
  757. name = "Coquette",
  758. price = 138000,
  759. model = "coquette",
  760. },
  761. {
  762. name = "Schafter V12",
  763. price = 140000,
  764. model = "schafter3",
  765. },
  766. {
  767. name = "Rapid GT",
  768. price = 140000,
  769. model = "rapidgt",
  770. },
  771. {
  772. name = "Rapid GT Convertible",
  773. price = 150000,
  774. model = "rapidgt2",
  775. },
  776. {
  777. name = "Alpha",
  778. price = 150000,
  779. model = "alpha",
  780. },
  781. {
  782. name = "Carbonizzare",
  783. price = 195000,
  784. model = "carbonizzare",
  785. },
  786. {
  787. name = "ETR1",
  788. price = 199500,
  789. model = "sheava",
  790. },
  791. {
  792. name = "Jester",
  793. price = 240000,
  794. model = "jester",
  795. },
  796. {
  797. name = "Massacro",
  798. price = 275000,
  799. model = "massacro",
  800. },
  801. {
  802. name = "Jester(Racecar)",
  803. price = 350000,
  804. model = "jester2",
  805. },
  806. {
  807. name = "Massacro(Racecar)",
  808. price = 385000,
  809. model = "massacro2",
  810. },
  811. {
  812. name = "Furore GT",
  813. price = 448000,
  814. model = "furoregt",
  815. },
  816. {
  817. name = "Bestia GTS",
  818. price = 610000,
  819. model = "bestiagts",
  820. },
  821. {
  822. name = "Omnis",
  823. price = 701000,
  824. model = "omnis",
  825. },
  826. {
  827. name = "Tropos",
  828. price = 816000,
  829. model = "tropos",
  830. },
  831. {
  832. name = "Drift Tampa",
  833. price = 995000,
  834. model = "tampa2",
  835. },
  836. {
  837. name = "Lynx",
  838. price = 1735000,
  839. model = "lynx",
  840. }
  841. }
  842. },
  843. {
  844. name = "Super",
  845. vehicles = {
  846. {
  847. name = "Bullet",
  848. price = 155000,
  849. model = "bullet",
  850. },
  851. {
  852. name = "Vacca",
  853. price = 240000,
  854. model = "vacca",
  855. },
  856. {
  857. name = "811",
  858. price = 400000,
  859. model = "pfister811",
  860. },
  861. {
  862. name = "Infurnus",
  863. price = 440000,
  864. model = "infurnus",
  865. },
  866. {
  867. name = "Turismo R",
  868. price = 500000,
  869. model = "turismor",
  870. },
  871. {
  872. name = "Banshee 900R",
  873. price = 565000,
  874. model = "banshee2",
  875. },
  876. {
  877. name = "Cheetah",
  878. price = 650000,
  879. model = "cheetah",
  880. },
  881. {
  882. name = "Seven 70",
  883. price = 675000,
  884. model = "seven70",
  885. },
  886. {
  887. name = "Zentorno",
  888. price = 725000,
  889. model = "zentorno",
  890. },
  891. {
  892. name = "Sultan RS",
  893. price = 795000,
  894. model = "sultanrs",
  895. },
  896. {
  897. name = "Entity XF",
  898. price = 735000,
  899. model = "entityxf",
  900. },
  901. {
  902. name = "Adder",
  903. price = 1000000,
  904. model = "adder",
  905. },
  906. {
  907. name = "Reaper",
  908. price = 1595000,
  909. model = "reaper",
  910. },
  911. {
  912. name = "FMJ",
  913. price = 1750000,
  914. model = "fmj",
  915. },
  916. {
  917. name = "Osiris",
  918. price = 1950000,
  919. model = "osiris",
  920. },
  921. {
  922. name = "T20",
  923. price = 2200000,
  924. model = "t20",
  925. },
  926. {
  927. name = "RE-7B",
  928. price = 2475000,
  929. model = "le7b",
  930. },
  931. {
  932. name = "Tyrus",
  933. price = 2550000,
  934. model = "tyrus",
  935. },
  936. {
  937. name = "X80 Proto",
  938. price = 2700000,
  939. model = "prototipo",
  940. }
  941. }
  942. },
  943. {
  944. name = "Classics",
  945. vehicles = {
  946. {
  947. name = "Pigalle",
  948. price = 350000,
  949. model = "pigalle",
  950. },
  951. {
  952. name = "JB 700",
  953. price = 400000,
  954. model = "jb700",
  955. },
  956. {
  957. name = "Roosevelt",
  958. price = 575000,
  959. model = "btype",
  960. },
  961. {
  962. name = "Coquette Cabrio",
  963. price = 665000,
  964. model = "coquette2",
  965. },
  966. {
  967. name = "Casco",
  968. price = 680000,
  969. model = "casco",
  970. },
  971. {
  972. name = "Verlierer",
  973. price = 695000,
  974. model = "verlierer2",
  975. },
  976. {
  977. name = "Coquette BlackFin",
  978. price = 695000,
  979. model = "coquette3",
  980. },
  981. {
  982. name = "Stinger",
  983. price = 850000,
  984. model = "stinger",
  985. },
  986. {
  987. name = "Mamba",
  988. price = 850000,
  989. model = "mamba",
  990. },
  991. {
  992. name = "Stinger GT",
  993. price = 875000,
  994. model = "stingergt",
  995. },
  996. {
  997. name = "Monroe",
  998. price = 900000,
  999. model = "monroe",
  1000. },
  1001. {
  1002. name = "Stirling GT",
  1003. price = 950000,
  1004. model = "feltzer3",
  1005. },
  1006. {
  1007. name = "Z Type",
  1008. price = 970000,
  1009. model = "ztype",
  1010. },
  1011. {
  1012. name = "Roosevelt custom",
  1013. price = 1000000,
  1014. model = "btype2",
  1015. }
  1016. }
  1017. },
  1018. {
  1019. name = "Executive",
  1020. vehicles = {
  1021. {
  1022. name = "Stretch",
  1023. price = 100000,
  1024. model = "stretch",
  1025. },
  1026. {
  1027. name = "Super Diamond",
  1028. price = 250000,
  1029. model = "superd",
  1030. },
  1031. {
  1032. name = "Windsor",
  1033. price = 800000,
  1034. model = "windsor",
  1035. },
  1036. {
  1037. name = "Windsor Drop",
  1038. price = 850000,
  1039. model = "windsor2",
  1040. },
  1041. {
  1042. name = "Cognoscenti",
  1043. price = 900000,
  1044. model = "cognoscenti",
  1045. },
  1046. {
  1047. name = "Kuruma(Armoured)",
  1048. price = 1000000,
  1049. model = "kuruma2",
  1050. },
  1051. {
  1052. name = "XLS(Armoured)",
  1053. price = 1250000,
  1054. model = "xls2",
  1055. },
  1056. {
  1057. name = "Baller(Armoured)",
  1058. price = 1300000,
  1059. model = "baller6",
  1060. },
  1061. {
  1062. name = "Cognoscenti(Armoured)",
  1063. price = 1500000,
  1064. model = "cognoscenti2",
  1065. },
  1066. {
  1067. name = "Insurgent",
  1068. price = 2000000,
  1069. model = "insurgent2",
  1070. }
  1071. }
  1072. }
  1073. }
  1074.  
  1075. local inGarage = false
  1076. local currentMenu = "menu"
  1077. local selected = 0
  1078. local owned = {}
  1079.  
  1080. function DisplayHelpText(str)
  1081. BeginTextCommandDisplayHelp("STRING")
  1082. AddTextComponentScaleform(str)
  1083. EndTextCommandDisplayHelp(0, 0, 1, -1)
  1084. end
  1085.  
  1086. function drawText(top, left, size, str, color, font, center)
  1087. SetTextFont(font or 0)
  1088. SetTextScale(1, size)
  1089. SetTextColour(color[1], color[2], color[3], color[4])
  1090. if center then SetTextCentre(true) end
  1091. BeginTextCommandDisplayText("STRING")
  1092. AddTextComponentSubstringPlayerName(tostring(str))
  1093. EndTextCommandDisplayText(left, top)
  1094. end
  1095.  
  1096. RegisterNetEvent('es_garages:notify')
  1097. AddEventHandler('es_garages:notify', function(str)
  1098. SetNotificationTextEntry("STRING")
  1099. AddTextComponentSubstringPlayerName(str)
  1100. DrawNotification(false, false)
  1101. end)
  1102.  
  1103. RegisterNetEvent('es_garages:owned')
  1104. AddEventHandler('es_garages:owned', function(tab)
  1105. for i in ipairs(tab) do
  1106. owned[tab[i]] = true
  1107.  
  1108. Citizen.Trace(tab[i] .. "\n")
  1109. end
  1110. end)
  1111.  
  1112. RegisterNetEvent('es_garages:spawnVehicle')
  1113. AddEventHandler('es_garages:spawnVehicle', function(carid)
  1114. Citizen.CreateThread(function()
  1115. local playerPed = GetPlayerPed(-1)
  1116. FreezeEntityPosition(GetPlayerPed(-1), false)
  1117.  
  1118. Citizen.Trace(carid .. " <- Spawn\n")
  1119. RequestModel(GetHashKey(carid))
  1120. while not HasModelLoaded(GetHashKey(carid)) do
  1121. Citizen.Wait(0)
  1122. end
  1123. local playerCoords = GetEntityCoords(playerPed, false)
  1124.  
  1125. inGarage = false
  1126. currentMenu = "menu"
  1127. selected = 0
  1128.  
  1129. local veh = CreateVehicle(GetHashKey(carid), playerCoords.x, playerCoords.y, playerCoords.z - 1.0, 0.0, true, false)
  1130. TaskWarpPedIntoVehicle(playerPed, veh, -1)
  1131. SetVehicleDirtLevel(veh, 0)
  1132. SetVehicleEngineOn(veh, true, true)
  1133.  
  1134. return
  1135. end)
  1136. end)
  1137.  
  1138. RegisterNetEvent('es_garages:newOwned')
  1139. AddEventHandler('es_garages:newOwned', function(veh)
  1140. owned[veh] = true
  1141. end)
  1142.  
  1143. Citizen.CreateThread(function()
  1144. while true do
  1145. local p = GetEntityCoords(GetPlayerPed(-1), true)
  1146. for i in ipairs(garages) do
  1147. local garage = garages[i]
  1148. DrawMarker(1, garage.x, garage.y, garage.z - 1, 0, 0, 0, 0, 0, 0, 3.4001, 3.4001, 0.8001, 0, 75, 255, 165, 0,0, 0,0)
  1149.  
  1150. if (Vdist(garage.x, garage.y, garage.z, p.x, p.y, p.z) < 2.4) then
  1151.  
  1152. if not inGarage then
  1153. if(IsPedInAnyVehicle(GetPlayerPed(-1), false))then
  1154. DisplayHelpText("Please leave your vehicle first.")
  1155. else
  1156. DisplayHelpText("Press ~INPUT_CONTEXT~ to access the garage")
  1157.  
  1158. if IsControlJustPressed(1, 51) then
  1159. inGarage = true
  1160.  
  1161. FreezeEntityPosition(GetPlayerPed(-1), true)
  1162. end
  1163. end
  1164. else
  1165. if currentMenu == "menu" then
  1166. DrawRect(0.15, 0.15, 0.23, 0.05, 0, 0, 0, 255)
  1167. drawText(0.13, 0.153, 0.5, "Garage", {255, 255, 255, 255}, 0, true)
  1168.  
  1169. local cur = 0
  1170. for i in ipairs(menu) do
  1171. if cur == selected then DrawRect(0.15, 0.20 + (0.05 * cur), 0.23, 0.05, 40, 40, 40, 200) else DrawRect(0.15, 0.20 + (0.05 * cur), 0.23, 0.05, 100, 100, 100, 200) end
  1172. drawText(0.18 + (0.05 * cur), 0.153, 0.5, "" .. menu[i].name, {255, 255, 255, 255}, 0, true)
  1173. cur = cur + 1
  1174. end
  1175. else
  1176. DrawRect(0.15, 0.15, 0.23, 0.05, 0, 0, 0, 255)
  1177. drawText(0.13, 0.153, 0.5, "" .. menu[currentMenu + 1].name, {255, 255, 255, 255}, 0, true)
  1178.  
  1179. local cur = 0
  1180. for i in ipairs(menu[currentMenu + 1].vehicles) do
  1181. if cur == selected then DrawRect(0.15, 0.20 + (0.05 * cur), 0.23, 0.05, 40, 40, 40, 200) else DrawRect(0.15, 0.20 + (0.05 * cur), 0.23, 0.05, 100, 100, 100, 200) end
  1182. drawText(0.18 + (0.05 * cur), 0.042, 0.5, "" .. menu[currentMenu + 1].vehicles[i].name, {255, 255, 255, 255}, 0, false)
  1183.  
  1184. if(owned[menu[currentMenu + 1].vehicles[i].model])then
  1185. drawText(0.18 + (0.05 * cur), 0.182, 0.5, "owned", {255, 255, 255, 255}, 0, false)
  1186. else
  1187. drawText(0.18 + (0.05 * cur), 0.182, 0.5, "£" .. menu[currentMenu + 1].vehicles[i].price, {255, 255, 255, 255}, 0, false)
  1188. end
  1189. cur = cur + 1
  1190. end
  1191. end
  1192.  
  1193. if IsControlJustReleased(1, 173) then
  1194. if currentMenu == "menu" then
  1195. if selected < (#menu - 1) then
  1196. selected = selected + 1
  1197. end
  1198. else
  1199. if selected < (#menu[currentMenu + 1].vehicles - 1) then
  1200. selected = selected + 1
  1201. end
  1202. end
  1203. end
  1204.  
  1205. DisableControlAction(1, 27, true)
  1206.  
  1207. if IsDisabledControlJustPressed(1, 172) then
  1208. if selected ~= 0 then
  1209. selected = selected - 1
  1210. end
  1211. end
  1212.  
  1213. if IsControlJustReleased(1, 176) then
  1214. if currentMenu == "menu" then
  1215. currentMenu = selected
  1216. selected = 0
  1217. else
  1218. TriggerServerEvent('es_garages:selectVehicle', menu[currentMenu + 1].vehicles[selected + 1].model)
  1219. end
  1220. end
  1221.  
  1222. if IsControlJustReleased(1, 177) then
  1223. if currentMenu ~= "menu" then
  1224. currentMenu = "menu"
  1225. selected = 0
  1226. else
  1227. inGarage = false
  1228. FreezeEntityPosition(GetPlayerPed(-1), false)
  1229. end
  1230. end
  1231. end
  1232. end
  1233. end
  1234.  
  1235. Citizen.Wait(0)
  1236. end
  1237. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement