diff --git a/__resource.lua b/__resource.lua new file mode 100644 index 00000000..823b0fae --- /dev/null +++ b/__resource.lua @@ -0,0 +1,15 @@ +resource_manifest_version '05cfa83c-a124-4cfa-a768-c24a5811d8f9' + +version '1.0.2' + +client_scripts { + 'config.lua', + 'lists/seat.lua', + 'client.lua' +} + +server_scripts { + 'config.lua', + 'lists/seat.lua', + 'server.lua' +} \ No newline at end of file diff --git a/client.lua b/client.lua new file mode 100644 index 00000000..555c65a2 --- /dev/null +++ b/client.lua @@ -0,0 +1,163 @@ +local Keys = { + ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57, + ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177, + ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18, + ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182, + ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81, + ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70, + ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178, + ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173, + ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118 +} + +ESX = nil + +local sitting = false +local lastPos = nil +local currentSitObj = nil +local currentScenario = nil + +local debugProps = {} + +Citizen.CreateThread(function() + while ESX == nil do + TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + Citizen.Wait(0) + end +end) + +function DrawText3D(x,y,z, text, r,v,b) + local onScreen,_x,_y = World3dToScreen2d(x,y,z) + local px,py,pz = table.unpack(GetGameplayCamCoords()) + local dist = GetDistanceBetweenCoords(px,py,pz, x,y,z, 1) + + local scale = (1/dist)*2 + local fov = (1/GetGameplayCamFov())*100 + local scale = scale*fov + + if onScreen then + SetTextScale(0.0*scale, 1.1*scale) + SetTextFont(0) + SetTextProportional(1) + SetTextColour(r, v, b, 255) + SetTextDropshadow(0, 0, 0, 0, 255) + SetTextEdge(2, 0, 0, 0, 150) + SetTextDropShadow() + SetTextOutline() + SetTextEntry("STRING") + SetTextCentre(1) + AddTextComponentString(text) + DrawText(_x,_y) + end +end + +Citizen.CreateThread(function() + while true do + Wait(0) + + if #debugProps > 0 then + for i=1, #debugProps, 1 do + local coords = GetEntityCoords(debugProps[i]) + local hash = GetEntityModel(debugProps[i]) + local id = coords.x .. coords.y .. coords.z + local model = "unknown" + + for i=1, #Config.Interactables, 1 do + local seat = Config.Interactables[i] + if hash == GetHashKey(seat) then + model = seat + break + end + end + + local txt = "ID: " .. id .. "\nHASH: " .. hash .. '\nMODEL: ' .. + DrawText3D(coords.x, coords.y, coords.z + 2.0, txt, 0, 255, 255) + end + end + + local playerPed = GetPlayerPed(-1) + + if sitting and not IsPedUsingScenario(playerPed, currentScenario) then + wakeup() + end + + if (GetLastInputMethod(2) and IsControlJustPressed(1, 38) and IsControlPressed(1, 21)) and not IsPedInAnyVehicle(playerPed, true) then + + if sitting then + wakeup() + else + + local object, distance = ESX.Game.GetClosestObject(Config.Interactables) + + if Config.debug then + table.insert(debugProps, object) + end + + if distance < 1.5 then + + local hash = GetEntityModel(object) + local data = nil + local modelName = nil + local found = false + + for k,v in pairs(Config.Sitable) do + if GetHashKey(k) == hash then + data = v + modelName = k + found = true + break + end + end + + if found == true then + sit(object, modelName, data) + end + + end + + end + + end + + end +end) + +function wakeup() + ClearPedTasks(playerPed) + sitting = false + SetEntityCoords(playerPed, lastPos) + FreezeEntityPosition(playerPed, false) + FreezeEntityPosition(currentSitObj, false) + TriggerServerEvent('esx_interact:leavePlace', currentSitObj) + currentSitObj = nil + currentScenario = nil +end + +function sit(object, modelName, data) + + local pos = GetEntityCoords(object) + local id = pos.x .. pos.y .. pos.z + + ESX.TriggerServerCallback('esx_interact:getPlace', function(occupied) + + if occupied then + ESX.ShowNotification("Cette place est prise...") + else + local playerPed = GetPlayerPed(-1) + lastPos = GetEntityCoords(playerPed) + currentSitObj = id + + TriggerServerEvent('esx_interact:takePlace', id) + FreezeEntityPosition(object, true) + + currentScenario = data.scenario + + TaskStartScenarioAtPosition(playerPed, currentScenario, pos.x, pos.y, pos.z - data.verticalOffset, GetEntityHeading(object)+180.0, 0, true, true) + + sitting = true + + end + + end) + +end \ No newline at end of file diff --git a/config.lua b/config.lua new file mode 100644 index 00000000..916c810d --- /dev/null +++ b/config.lua @@ -0,0 +1,117 @@ +Config = {} + +Config.MaxDistance = 1.5 + +Config.debug = false + +Config.Interactables = { + "prop_bench_01a", + "prop_bench_01b", + "prop_bench_01c", + "prop_bench_02", + "prop_bench_03", + "prop_bench_04", + "prop_bench_05", + "prop_bench_06", + "prop_bench_05", + "prop_bench_08", + "prop_bench_09", + "prop_bench_10", + "prop_bench_11", + "prop_fib_3b_bench", + "prop_ld_bench01", + "prop_wait_bench_01", + "hei_prop_heist_off_chair", + "hei_prop_hei_skid_chair", + "prop_chair_01a", + "prop_chair_01b", + "prop_chair_02", + "prop_chair_03", + "prop_chair_04a", + "prop_chair_04b", + "prop_chair_05", + "prop_chair_06", + "prop_chair_05", + "prop_chair_08", + "prop_chair_09", + "prop_chair_10", + "prop_chateau_chair_01", + "prop_clown_chair", + "prop_cs_office_chair", + "prop_direct_chair_01", + "prop_direct_chair_02", + "prop_gc_chair02", + "prop_off_chair_01", + "prop_off_chair_03", + "prop_off_chair_04", + "prop_off_chair_04b", + "prop_off_chair_04_s", + "prop_off_chair_05", + "prop_old_deck_chair", + "prop_old_wood_chair", + "prop_rock_chair_01", + "prop_skid_chair_01", + "prop_skid_chair_02", + "prop_skid_chair_03", + "prop_sol_chair", + "prop_wheelchair_01", + "prop_wheelchair_01_s", + "p_armchair_01_s", + "p_clb_officechair_s", + "p_dinechair_01_s", + "p_ilev_p_easychair_s", + "p_soloffchair_s", + "p_yacht_chair_01_s", + "v_club_officechair", + "v_corp_bk_chair3", + "v_corp_cd_chair", + "v_corp_offchair", + "v_ilev_chair02_ped", + "v_ilev_hd_chair", + "v_ilev_p_easychair", + "v_ret_gc_chair03", + "prop_ld_farm_chair01", + "prop_table_04_chr", + "prop_table_05_chr", + "prop_table_06_chr", + "v_ilev_leath_chr", + "prop_table_01_chr_a", + "prop_table_01_chr_b", + "prop_table_02_chr", + "prop_table_03b_chr", + "prop_table_03_chr", + "prop_torture_ch_01", + "v_ilev_fh_dineeamesa", + "v_ilev_fh_kitchenstool", + "v_ilev_tort_stool", + "v_ilev_fh_kitchenstool", + "v_ilev_fh_kitchenstool", + "v_ilev_fh_kitchenstool", + "v_ilev_fh_kitchenstool", + "hei_prop_yah_seat_01", + "hei_prop_yah_seat_02", + "hei_prop_yah_seat_03", + "prop_waiting_seat_01", + "prop_yacht_seat_01", + "prop_yacht_seat_02", + "prop_yacht_seat_03", + "prop_hobo_seat_01", + "prop_rub_couch01", + "miss_rub_couch_01", + "prop_ld_farm_couch01", + "prop_ld_farm_couch02", + "prop_rub_couch02", + "prop_rub_couch03", + "prop_rub_couch04", + "p_lev_sofa_s", + "p_res_sofa_l_s", + "p_v_med_p_sofa_s", + "p_yacht_sofa_01_s", + "v_ilev_m_sofa", + "v_res_tre_sofa_s", + "v_tre_sofa_mess_a_s", + "v_tre_sofa_mess_b_s", + "v_tre_sofa_mess_c_s", + "prop_roller_car_01", + "prop_roller_car_02", +} \ No newline at end of file diff --git a/lists/seat.lua b/lists/seat.lua new file mode 100644 index 00000000..137fabc4 --- /dev/null +++ b/lists/seat.lua @@ -0,0 +1,127 @@ +Config.Sitable = { + --Only verticalOffset works right now! + --all scenarios: pastebin.com/6mrYTdQv + + -- BENCH + prop_bench_01a = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_01b = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_01c = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_04 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_06 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_08 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_09 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_10 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_11 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_fib_3b_bench = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_ld_bench01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_wait_bench_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- CHAIR + hei_prop_heist_off_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + hei_prop_hei_skid_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_01a = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_01b = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_04a = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_04b = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_06 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_08 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_09 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_10 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chateau_chair_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_clown_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_cs_office_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_direct_chair_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_direct_chair_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_gc_chair02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_off_chair_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_off_chair_03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_off_chair_04 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_off_chair_04b = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_off_chair_04_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_off_chair_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_old_deck_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_old_wood_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_rock_chair_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_skid_chair_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_skid_chair_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_skid_chair_03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_sol_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_wheelchair_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_wheelchair_01_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_armchair_01_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_clb_officechair_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_dinechair_01_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_ilev_p_easychair_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_soloffchair_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_yacht_chair_01_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_club_officechair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_corp_bk_chair3 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_corp_cd_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_corp_offchair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_chair02_ped = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_hd_chair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_p_easychair = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ret_gc_chair03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_ld_farm_chair01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_04_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_05_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_06_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_leath_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_01_chr_a = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_01_chr_b = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_02_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_03b_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_table_03_chr = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_torture_ch_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_fh_dineeamesa = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + + v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_tort_stool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- SEAT + hei_prop_yah_seat_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + hei_prop_yah_seat_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + hei_prop_yah_seat_03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_waiting_seat_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_yacht_seat_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_yacht_seat_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_yacht_seat_03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_hobo_seat_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.65, forwardOffset = 0.0, leftOffset = 0.0}, + + -- COUCH + prop_rub_couch01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + miss_rub_couch_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_ld_farm_couch01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_ld_farm_couch02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_rub_couch02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_rub_couch03 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_rub_couch04 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- SOFA + p_lev_sofa_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_res_sofa_l_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_v_med_p_sofa_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + p_yacht_sofa_01_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_ilev_m_sofa = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_res_tre_sofa_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_tre_sofa_mess_a_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_tre_sofa_mess_b_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + v_tre_sofa_mess_c_s = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- MISC + prop_roller_car_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_roller_car_02 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0} +} \ No newline at end of file diff --git a/server.lua b/server.lua new file mode 100644 index 00000000..f78ea11a --- /dev/null +++ b/server.lua @@ -0,0 +1,37 @@ +ESX = nil + +local SeatsTaken = {} + +TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + +-- SEATS +RegisterServerEvent('esx_interact:takePlace') +AddEventHandler('esx_interact:takePlace', function(object) + table.insert(SeatsTaken, object) +end) + +RegisterServerEvent('esx_interact:leavePlace') +AddEventHandler('esx_interact:leavePlace', function(object) + + local _SeatsTaken = {} + + for i=1, #SeatsTaken, 1 do + if object ~= SeatsTaken[i] then + table.insert(_SeatsTaken, SeatsTaken[i]) + end + end + + SeatsTaken = _SeatsTaken + +end) + +ESX.RegisterServerCallback('esx_interact:getPlace', function(source, cb, id) + local found = false + + for i=1, #SeatsTaken, 1 do + if SeatsTaken[i] == id then + found = true + end + end + cb(found) +end) \ No newline at end of file