Advertisement
Guest User

asdasdasd

a guest
Oct 15th, 2019
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.96 KB | None | 0 0
  1. Keys = {
  2. ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
  3. ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
  4. ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
  5. ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
  6. ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
  7. ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
  8. ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
  9. ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
  10. ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
  11. }
  12.  
  13. local ESX = nil
  14. local myMotel = false
  15. local curMotel = nil
  16. local curRoom = nil
  17. local curRoomOwner = false
  18. local inRoom = false
  19. local roomOwner = nil
  20. local playerIdent = nil
  21.  
  22. Citizen.CreateThread(function()
  23. while ESX == nil do
  24. TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
  25. Citizen.Wait(0)
  26. end
  27. while ESX.GetPlayerData().job == nil do
  28. Citizen.Wait(10)
  29. end
  30. ESX.PlayerData = ESX.GetPlayerData()
  31. createBlips()
  32. playerIdent = ESX.GetPlayerData().identifier
  33. end)
  34.  
  35.  
  36. function createBlips()
  37. for k,v in pairs(Config.Zones) do
  38. local blip = AddBlipForCoord(tonumber(v.Pos.x), tonumber(v.Pos.y), tonumber(v.Pos.z))
  39. SetBlipSprite(blip, v.Pos.sprite)
  40. SetBlipDisplay(blip, 4)
  41. SetBlipScale(blip, v.Pos.size)
  42. SetBlipColour(blip, v.Pos.color)
  43. SetBlipAsShortRange(blip, true)
  44. BeginTextCommandSetBlipName("STRING")
  45. AddTextComponentString(v.Name)
  46. EndTextCommandSetBlipName(blip)
  47. end
  48. end
  49.  
  50. function getMyMotel()
  51. ESX.TriggerServerCallback('lsrp-motels:checkOwnership', function(owned)
  52. myMotel = owned
  53. end)
  54. end
  55.  
  56. RegisterNetEvent('instance:onCreate')
  57. AddEventHandler('instance:onCreate', function(instance)
  58. if instance.type == 'motelroom' then
  59. roomOwner = ESX.GetPlayerData().identifier
  60. TriggerEvent('instance:enter', instance)
  61. end
  62. end)
  63.  
  64. RegisterNetEvent('lsrp-motels:cancelRental')
  65. AddEventHandler('lsrp-motels:cancelRental', function(room)
  66. local motelName = nil
  67. local motelRoom = nil
  68. for k,v in pairs(Config.Zones) do
  69. for kk,vm in pairs(v.Rooms) do
  70. if room == vm.instancename then
  71. motelName = v.Name
  72. motelRoom = vm.number
  73. end
  74. end
  75. end
  76. TriggerServerEvent("lsrp-motels:cancelRental", room)
  77. exports["t0sic_loadingbar"]:StartDelayedFunction("Cancelling Contract for room "..motelRoom, 2500, function()
  78. myMotel = false
  79. end)
  80.  
  81. end)
  82.  
  83. function PlayerDressings()
  84.  
  85. ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'room',
  86. {
  87. title = 'Player Clothing',
  88. align = 'top-left',
  89. elements = {
  90. {label = _U('player_clothes'), value = 'player_dressing'},
  91. {label = _U('remove_cloth'), value = 'remove_cloth'}
  92. }
  93. }, function(data, menu)
  94.  
  95. if data.current.value == 'player_dressing' then
  96. menu.close()
  97. ESX.TriggerServerCallback('lsrp-motels:getPlayerDressing', function(dressing)
  98. elements = {}
  99.  
  100. for i=1, #dressing, 1 do
  101. table.insert(elements, {
  102. label = dressing[i],
  103. value = i
  104. })
  105. end
  106.  
  107. ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'player_dressing',
  108. {
  109. title = _U('player_clothes'),
  110. align = 'top-left',
  111. elements = elements
  112. }, function(data2, menu2)
  113.  
  114. TriggerEvent('skinchanger:getSkin', function(skin)
  115. ESX.TriggerServerCallback('lsrp-motels:getPlayerOutfit', function(clothes)
  116. TriggerEvent('skinchanger:loadClothes', skin, clothes)
  117. TriggerEvent('esx_skin:setLastSkin', skin)
  118.  
  119. TriggerEvent('skinchanger:getSkin', function(skin)
  120. TriggerServerEvent('esx_skin:save', skin)
  121. end)
  122. end, data2.current.value)
  123. end)
  124.  
  125. end, function(data2, menu2)
  126. menu2.close()
  127. end)
  128. end)
  129.  
  130. elseif data.current.value == 'remove_cloth' then
  131. menu.close()
  132. ESX.TriggerServerCallback('lsrp-motels:getPlayerDressing', function(dressing)
  133. elements = {}
  134.  
  135. for i=1, #dressing, 1 do
  136. table.insert(elements, {
  137. label = dressing[i],
  138. value = i
  139. })
  140. end
  141.  
  142. ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'remove_cloth', {
  143. title = _U('remove_cloth'),
  144. align = 'top-left',
  145. elements = elements
  146. }, function(data2, menu2)
  147. menu2.close()
  148. TriggerServerEvent('lsrp-motels:removeOutfit', data2.current.value)
  149. ESX.ShowNotification(_U('removed_cloth'))
  150. end, function(data2, menu2)
  151. menu2.close()
  152. end)
  153. end)
  154.  
  155. end
  156.  
  157. end, function(data, menu)
  158. menu.close()
  159. end)
  160.  
  161.  
  162.  
  163.  
  164. end
  165.  
  166.  
  167.  
  168. Citizen.CreateThread(function()
  169. while true do
  170. Citizen.Wait(0)
  171. local playerPed = PlayerPedId()
  172. if not HasCollisionLoadedAroundEntity(playerPed) then
  173. FreezeEntityPosition(playerPed, true)
  174. else
  175. FreezeEntityPosition(playerPed, false)
  176. end
  177.  
  178. end
  179. end)
  180.  
  181. RegisterNetEvent('instance:onEnter')
  182. AddEventHandler('instance:onEnter', function(instance)
  183. if instance.type == 'motelroom' then
  184.  
  185. local property = instance.data.property
  186. local motel = instance.data.motel
  187. local isHost = GetPlayerFromServerId(instance.host) == PlayerId()
  188. Citizen.Wait(1000)
  189. SetNoiseoveride(true)
  190. local networkChannel = instance.data.vid
  191. print('Joining '..networkChannel)
  192. NetworkSetVoiceChannel(networkChannel)
  193. NetworkSetTalkerProximity(30.0)
  194. print('Joined '..networkChannel)
  195. end
  196. end)
  197.  
  198. AddEventHandler('instance:loaded', function()
  199. TriggerEvent('instance:registerType', 'motelroom', function(instance)
  200. EnterProperty(instance.data.property, instance.data.owner, instance.data.motel, instance.data.room)
  201. end, function(instance)
  202. SetNoiseoveride(false)
  203. Citizen.InvokeNative(0xE036A705F989E049)
  204. ExitProperty(instance.data.property, instance.data.motel, instance.data.room)
  205. end)
  206. end)
  207.  
  208. function EnterProperty(name, owner, motel, room)
  209. curMotel = motel
  210. curRoom = room
  211. inRoom = true
  212. local playerPed = PlayerPedId()
  213. Citizen.CreateThread(function()
  214. DoScreenFadeOut(800)
  215. while not IsScreenFadedOut() do
  216. Citizen.Wait(0)
  217. end
  218. for k,v in pairs(Config.Zones) do
  219. if curMotel == k then
  220. SetEntityCoords(playerPed, v.roomLoc.x, v.roomLoc.y, v.roomLoc.z)
  221. end
  222. end
  223. DoScreenFadeIn(800)
  224. end)
  225. end
  226.  
  227. RegisterNetEvent('lsrp-motels:enterRoom')
  228. AddEventHandler('lsrp-motels:enterRoom', function(room, motel)
  229. local roomID = nil
  230. local playerPed = PlayerPedId()
  231. local roomIdent = room
  232. local reqmotel = motel
  233. ESX.TriggerServerCallback('lsrp-motels:getMotelRoomID', function(roomno)
  234. roomID = roomno
  235. end, room)
  236. Citizen.Wait(500)
  237. if roomID ~= nil then
  238. local instanceid = 'motel'..roomID..''..roomIdent
  239. TriggerEvent('instance:create', 'motelroom', {property = instanceid, owner = ESX.GetPlayerData().identifier, motel = reqmotel, room = roomIdent, vid = roomID})
  240. end
  241. end)
  242.  
  243. RegisterNetEvent('lsrp-motels:exitRoom')
  244. AddEventHandler('lsrp-motels:exitRoom', function(motel, room)
  245. local roomID = room
  246. local playerPed = PlayerPedId()
  247. Citizen.Wait(500)
  248. roomOwner = nil
  249. TriggerEvent('instance:leave')
  250. end)
  251.  
  252. RegisterNetEvent('lsrp-motels:roomOptions')
  253. AddEventHandler('lsrp-motels:roomOptions', function(room, motel)
  254. local motelName = nil
  255. local motelRoom = nil
  256. for k,v in pairs(Config.Zones) do
  257. for kk,vm in pairs(v.Rooms) do
  258. if room == vm.instancename then
  259. motelName = v.Name
  260. motelRoom = vm.number
  261. end
  262. end
  263. end
  264. ESX.UI.Menu.Open(
  265. 'default', GetCurrentResourceName(), 'lsrp-motels',
  266. {
  267. title = motelName..' Room '..motelRoom,
  268. align = 'top-right',
  269. elements = {
  270. { label = 'Enter Room', value = 'enter' },
  271. { label = 'Cancel Rental', value = 'cancel' }
  272. }
  273. },
  274. function(data, entry)
  275. local value = data.current.value
  276.  
  277. if value == 'enter' then
  278. entry.close()
  279. TriggerEvent("lsrp-motels:enterRoom", room, motel)
  280.  
  281. elseif value == 'cancel' then
  282. entry.close()
  283. TriggerEvent("lsrp-motels:cancelRental", room)
  284. end
  285.  
  286. end,
  287. function(data, entry)
  288. entry.close()
  289. end)
  290. end)
  291.  
  292.  
  293. RegisterNetEvent('lsrp-motels:roomMenu')
  294. AddEventHandler('lsrp-motels:roomMenu', function(room, motel)
  295. local motelName = nil
  296. local motelRoom = nil
  297. local roomID = nil
  298. local owner = ESX.GetPlayerData().identifier
  299. for k,v in pairs(Config.Zones) do
  300. for kk,vm in pairs(v.Rooms) do
  301. if room == vm.instancename then
  302. motelName = v.Name
  303. motelRoom = vm.number
  304. end
  305. end
  306. end
  307.  
  308. options = {}
  309.  
  310. if Config.SwitchCharacterSup then
  311. -- table.insert(options, {label = 'Change Character', value = 'changechar'})
  312. end
  313. table.insert(options, {label = 'Leave Room', value = 'leaveroom'})
  314. if roomOwner == playerIdent then
  315. table.insert(options, {label = 'Open Room Inventory', value = 'inventory'})
  316. table.insert(options, {label = 'Invite Citizen', value = 'inviteplayer'})
  317. end
  318.  
  319.  
  320.  
  321. ESX.UI.Menu.Open(
  322. 'default', GetCurrentResourceName(), 'lsrp-motels',
  323. {
  324. title = motelName..' Room '..motelRoom,
  325. align = 'top-right',
  326. elements = options
  327. },
  328. function(data, menu)
  329. local value = data.current.value
  330. if value == 'changechar' then
  331. menu.close()
  332. exports["t0sic_loadingbar"]:StartDelayedFunction("Switching Character", 1500, function()
  333. TriggerServerEvent("kashactersS:SaveSwitchedPlayer")
  334. TriggerEvent('kashactersC:ReloadCharacters')
  335. end)
  336.  
  337. elseif value == 'leaveroom' then
  338. menu.close()
  339. TriggerEvent('lsrp-motels:exitRoom', curMotel, curRoom)
  340. elseif value == 'inventory' then
  341. menu.close()
  342.  
  343. owner = ESX.GetPlayerData().identifier
  344. if roomOwner == owner then
  345. exports["t0sic_loadingbar"]:StartDelayedFunction("Accessing Room Inventory", 1500, function()
  346. TriggerEvent('disc-inventoryhud:openInventory', {
  347. type = 'cupboard',
  348. owner = roomOwner .. ' '
  349. })
  350. end)
  351. else
  352. TriggerClientEvent('esx:showNotification', '~w~Accessible by Motel ~r~Owner~w~ only!')
  353. end
  354. elseif value == 'inviteplayer' then
  355. local myInstance = nil
  356. local roomIdent = room
  357. local reqmotel = motel
  358.  
  359. for k,v in pairs(Config.Zones) do
  360. for kk,vm in pairs(v.Rooms) do
  361. if room == vm.instancename then
  362. playersInArea = ESX.Game.GetPlayersInArea(vm.entry, 5.0)
  363. end
  364. end
  365. end
  366.  
  367. local elements = {}
  368. if playersInArea ~= nil then
  369. for i=1, #playersInArea, 1 do
  370. if playersInArea[i] ~= PlayerId() then
  371. table.insert(elements, {label = GetPlayerName(playersInArea[i]), value = playersInArea[i]})
  372. end
  373. end
  374. else
  375. table.insert(elements, {label = 'No Citizens Outside.'})
  376. end
  377.  
  378. ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'room_invite',
  379. {
  380. title = motelName..' Room '..motelRoom .. ' - ' .. _U('invite') ..' Citizen',
  381. align = 'top-right',
  382. elements = elements,
  383. }, function(data2, menu2)
  384. ESX.TriggerServerCallback('lsrp-motels:getMotelRoomID', function(roomno)
  385. print(room)
  386. roomID = roomno
  387. end, room)
  388. myInstance = 'motel'..roomID..''..roomIdent
  389. TriggerEvent('instance:invite', 'motelroom', GetPlayerServerId(data2.current.value), {property = myInstance, owner = ESX.GetPlayerData().identifier, motel = reqmotel, room = roomIdent, vid = roomID})
  390. ESX.ShowNotification(_U('you_invited', GetPlayerName(data2.current.value)))
  391. end, function(data2, menu2)
  392. menu2.close()
  393. end)
  394.  
  395.  
  396.  
  397. end
  398.  
  399. end,
  400. function(data, menu)
  401. menu.close()
  402. end)
  403.  
  404. end)
  405.  
  406. RegisterNetEvent('lsrp-motels:rentRoom')
  407. AddEventHandler('lsrp-motels:rentRoom', function(room)
  408. local motelName = nil
  409. local motelRoom = nil
  410. for k,v in pairs(Config.Zones) do
  411. for kk,vm in pairs(v.Rooms) do
  412. if room == vm.instancename then
  413. motelName = v.Name
  414. motelRoom = vm.number
  415. end
  416. end
  417. end
  418. TriggerServerEvent('lsrp-motels:rentRoom', room)
  419. exports["t0sic_loadingbar"]:StartDelayedFunction("Renting Room "..motelRoom, 1500, function()
  420.  
  421. end)
  422.  
  423. end)
  424.  
  425. function roomMarkers()
  426. local playerPed = PlayerPedId()
  427. local coords = GetEntityCoords(playerPed)
  428. -- Exit Marker
  429. for k,v in pairs(Config.Zones) do
  430. for km,vm in pairs(v.Rooms) do
  431. distance = GetDistanceBetweenCoords(coords, v.roomExit.x, v.roomExit.y, v.roomExit.z, true)
  432. if (distance < 1.0) then
  433. --[[ if curRoom ~= nil then
  434. DrawText3D(v.roomExit.x, v.roomExit.y, v.roomExit.z + 0.35, 'Press [~g~E~s~] to exit')
  435. if IsControlJustReleased(0, Keys['E']) then
  436. TriggerEvent('lsrp-motels:exitRoom', curMotel, curRoom)
  437. end
  438. end ]]
  439. end
  440. end
  441. end
  442.  
  443. -- Room Menu Marker
  444. for k,v in pairs(Config.Zones) do
  445. distance = GetDistanceBetweenCoords(coords, v.Menu.x, v.Menu.y, v.Menu.z, true)
  446. if distance < 1.0 then
  447. DrawText3D(v.Menu.x, v.Menu.y, v.Menu.z + 0.35, 'Press [~g~E~s~] to access menu.')
  448. if IsControlJustReleased(0, Keys['E']) then
  449. TriggerEvent('lsrp-motels:roomMenu', curRoom, curMotel)
  450. end
  451. end
  452. end
  453.  
  454. -- Clothing Menu
  455. for k,v in pairs(Config.Zones) do
  456. distance = GetDistanceBetweenCoords(coords, v.Inventory.x, v.Inventory.y, v.Inventory.z, true)
  457. if distance < 1.0 then
  458. if roomOwner == playerIdent then
  459. DrawText3D(v.Inventory.x, v.Inventory.y, v.Inventory.z + 0.35, 'Press [~g~E~s~] to change outfit.')
  460. if IsControlJustReleased(0, Keys['E']) then
  461. PlayerDressings()
  462. end
  463. end
  464. end
  465. end
  466.  
  467. -- Bed Stash Marker
  468. for k,v in pairs(Config.Zones) do
  469. distance = GetDistanceBetweenCoords(coords, v.BedStash.x, v.BedStash.y, v.BedStash.z, true)
  470. if distance < 1.0 then
  471. if roomOwner == playerIdent then
  472. DrawText3D(v.BedStash.x, v.BedStash.y, v.BedStash.z + 0.1, 'Press [~g~E~s~] to access stash.')
  473. if IsControlJustReleased(0, Keys['E']) then
  474. TriggerEvent('disc-inventoryhud:openInventory', {
  475. type = 'cupboard',
  476. owner = roomOwner .. ' '
  477. })
  478. end
  479. end
  480. end
  481. end
  482.  
  483. end
  484.  
  485.  
  486. function enteredMarker()
  487.  
  488. local playerPed = PlayerPedId()
  489. local coords = GetEntityCoords(playerPed)
  490.  
  491. if myMotel then
  492. for k,v in pairs(Config.Zones) do
  493. for km,vm in pairs(v.Rooms) do
  494. if vm.instancename == myMotel then
  495. distance = GetDistanceBetweenCoords(coords, vm.entry.x, vm.entry.y, vm.entry.z, true)
  496. if (distance < v.Boundries) then
  497. DrawMarker(20, vm.entry.x, vm.entry.y, vm.entry.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.RoomMarker.x, Config.RoomMarker.y, Config.RoomMarker.z, Config.RoomMarker.Owned.r, Config.RoomMarker.Owned.g, Config.RoomMarker.Owned.b, 100, false, true, 2, false, false, false, false)
  498. end
  499. if (distance < 1.0) then
  500. DrawText3D(vm.entry.x, vm.entry.y, vm.entry.z + 0.35, 'Press [~g~E~s~] for options.')
  501. if IsControlJustReleased(0, Keys['E']) then
  502. TriggerEvent("lsrp-motels:roomOptions", vm.instancename, k)
  503. end
  504. end
  505. end
  506. end
  507. end
  508. else
  509. for k,v in pairs(Config.Zones) do
  510. distance = GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true)
  511. if (distance < v.Boundries) then
  512. for km,vm in pairs(v.Rooms) do
  513. distance = GetDistanceBetweenCoords(coords, vm.entry.x, vm.entry.y, vm.entry.z, true)
  514. if (distance < 1.0) then
  515. DrawText3D(vm.entry.x, vm.entry.y, vm.entry.z + 0.35, 'Press [~g~E~s~] to rent Room ~b~'..vm.number..' ~w~for $~b~'..Config.PriceRental)
  516. if IsControlJustReleased(0, Keys['E']) then
  517. TriggerEvent('lsrp-motels:rentRoom', vm.instancename)
  518. end
  519. end
  520. end
  521. end
  522. end
  523. end
  524.  
  525. end
  526.  
  527.  
  528.  
  529. function ExitProperty(name, motel, room)
  530. local property = name
  531. local playerPed = PlayerPedId()
  532. inRoom = false
  533. Citizen.CreateThread(function()
  534. DoScreenFadeOut(800)
  535. while not IsScreenFadedOut() do
  536. Citizen.Wait(0)
  537. end
  538. for k,v in pairs(Config.Zones) do
  539. for km,vm in pairs(v.Rooms) do
  540. if room == vm.instancename then
  541. SetEntityCoords(playerPed, vm.entry.x, vm.entry.y, vm.entry.z)
  542. end
  543. end
  544. end
  545. DoScreenFadeIn(800)
  546. end)
  547. end
  548.  
  549. Citizen.CreateThread(function()
  550. Citizen.Wait(0)
  551. while true do
  552. Citizen.Wait(0)
  553. enteredMarker()
  554. end
  555. end)
  556.  
  557. Citizen.CreateThread(function()
  558. Citizen.Wait(0)
  559. while true do
  560. Citizen.Wait(0)
  561. local playerPed = PlayerPedId()
  562. local coords = GetEntityCoords(playerPed)
  563.  
  564. if inRoom then
  565. roomMarkers()
  566. end
  567.  
  568. if not inRoom then
  569. for k,v in pairs(Config.Zones) do
  570. distance = GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true)
  571. if (distance < v.Boundries) then
  572. getMyMotel()
  573. Citizen.Wait(3000)
  574. end
  575. end
  576. end
  577. end
  578. end)
  579.  
  580.  
  581. function OpenPropertyInventoryMenu(property, owner)
  582. ESX.TriggerServerCallback(
  583. "lsrp-motels:getPropertyInventory",
  584. function(inventory)
  585. TriggerEvent("esx_inventoryhud:openMotelsInventory", inventory)
  586. end, owner)
  587. end
  588.  
  589. function OpenPropertyInventoryMenuBed(property, owner)
  590. ESX.TriggerServerCallback(
  591. "lsrp-motels:getPropertyInventoryBed",
  592. function(inventory)
  593. TriggerEvent("esx_inventoryhud:openMotelsInventoryBed", inventory)
  594. end, owner)
  595. end
  596.  
  597. function OpenStash()
  598.  
  599. owner = ESX.GetPlayerData().identifier
  600. ESX.TriggerServerCallback('lsrp-motels:checkIsOwner', function(isOwner)
  601. if isOwner then
  602. exports["t0sic_loadingbar"]:StartDelayedFunction("Accessing Stash", 1500, function()
  603. TriggerEvent('disc-inventoryhud:openInventory', {
  604. type = 'cupboard',
  605. owner = roomOwner .. ' '
  606. })
  607. end)
  608. else
  609. TriggerEvent('esx:showNotification', '~w~Accessible by Motel ~r~Owner~w~ only!')
  610. end
  611. end, curRoom, owner)
  612. end
  613.  
  614. DrawText3D = function(x, y, z, text)
  615. local onScreen,_x,_y=World3dToScreen2d(x,y,z)
  616. local px,py,pz=table.unpack(GetGameplayCamCoords())
  617. SetTextScale(0.35,0.35)
  618. SetTextFont(4)
  619. SetTextProportional(1)
  620. SetTextColour(255, 255, 255, 215)
  621. SetTextEntry("STRING")
  622. SetTextCentre(1)
  623. AddTextComponentString(text)
  624. DrawText(_x,_y)
  625. local factor = (string.len(text)) / 370
  626. --DrawRect(_x,_y+0.0125, 0.015+ factor, 0.03, 41, 11, 41, 68)
  627. DrawRect(_x,_y+0.0125, 0.015+ factor, 0.03, 41, 11, 41, 100)
  628. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement