From 4e486c8a09407f5bb1a05806f65f53b5be18de1e Mon Sep 17 00:00:00 2001 From: renaiku Date: Sat, 9 Sep 2017 19:18:32 +0200 Subject: [PATCH] Adding files --- README.md | 18 ++++++- __resource.lua | 11 +++++ client.lua | 114 +++++++++++++++++++++++++++++++++++++++++++ config.lua | 130 +++++++++++++++++++++++++++++++++++++++++++++++++ server.lua | 24 +++++++++ 5 files changed, 296 insertions(+), 1 deletion(-) create mode 100644 __resource.lua create mode 100644 client.lua create mode 100644 config.lua create mode 100644 server.lua diff --git a/README.md b/README.md index 92b525af..744ef045 100644 --- a/README.md +++ b/README.md @@ -1 +1,17 @@ -# fxserver-esx_sit \ No newline at end of file +# fxserver-esx_sit + +This script allow you to sit almost everywhere. +If the player has many props around him, the game camera might become crazy. + +[INSTALLATION] + +CD in your resources/[esx] folder +Clone the repository +git clone https://github.com/FXServer-ESX/fxserver-esx_sit esx_sit + +Add this in your server.cfg : + +start esx_sit + +[CREDITS] +Original code by CmJustice https://github.com/CmJustice \ No newline at end of file diff --git a/__resource.lua b/__resource.lua new file mode 100644 index 00000000..7debe0a2 --- /dev/null +++ b/__resource.lua @@ -0,0 +1,11 @@ +dependency 'essentialmode' + +client_scripts { + 'config.lua', + 'client.lua', + +} + +server_scripts { + 'server.lua', +} diff --git a/client.lua b/client.lua new file mode 100644 index 00000000..b2842a6d --- /dev/null +++ b/client.lua @@ -0,0 +1,114 @@ +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 ped = GetPlayerPed(-1) +local sitting = false +local lastPos = nil +local currentSitObj = nil + +Citizen.CreateThread(function() + while ESX == nil do + TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + Citizen.Wait(0) + end +end) + + +function headsUp(text) + SetTextComponentFormat('STRING') + AddTextComponentString(text) + DisplayHelpTextFromStringLabel(0, 0, 1, -1) +end + + +Citizen.CreateThread(function() + local objects = {} + for k,v in pairs(Config.Sitable) do + table.insert(objects, v.prop) + end + while true do + Wait(0) + --local object, distance = ESX.Game.GetClosestObject(objects) + local list = {} + for k,v in pairs(objects) do + local obj = GetClosestObjectOfType(GetEntityCoords(ped).x, GetEntityCoords(ped).y, GetEntityCoords(ped).z, 3.0, GetHashKey(v), false, true ,true) + local dist = GetDistanceBetweenCoords(GetEntityCoords(ped), GetEntityCoords(obj), true) + table.insert(list, {object = obj, distance = dist}) + end + + local closest = list[1] + for k,v in pairs(list) do + if v.distance < closest.distance then + closest = v + end + end + + local distance = closest.distance + local object = closest.object + + if distance < Config.MaxDistance and sitting == false and DoesEntityExist(object) then + headsUp('You are near an object you can sit on! Press ~INPUT_CONTEXT~ to sit!') + DrawMarker(0, GetEntityCoords(object).x, GetEntityCoords(object).y, GetEntityCoords(object).z+1.5, 0.0, 0.0, 0.0, 0, 0.0, 0.0, 0.5, 0.5, 0.5, 0, 255, 0, 100, false, true, 2, false, false, false, false) + if IsControlJustPressed(0, Keys['E']) then + sit(object) + end + end + if sitting then + headsUp('Press ~INPUT_VEH_DUCK~ get up.') + if IsControlJustPressed(0, Keys['X']) then + ClearPedTasks(ped) + sitting = false + SetEntityCoords(ped, lastPos) + FreezeEntityPosition(ped, false) + FreezeEntityPosition(currentSitObj, false) + TriggerServerEvent('sit:unoccupyObj', currentSitObj) + currentSitObj = nil + end + end + end +end) + + + +function sit(object) + local isOccupied = nil + ESX.TriggerServerCallback('sit:getOccupied', function(occupied) + isOccupied = false + for k,v in pairs(occupied) do + if v == object then + isOccupied = true + end + end + end) + while isOccupied == nil do + Wait(0) + end + if isOccupied == false then + lastPos = GetEntityCoords(ped) + currentSitObj = object + TriggerServerEvent('sit:occupyObj', object) + FreezeEntityPosition(object, true) + local objinfo = {} + for k,v in pairs(Config.Sitable) do + if tostring(GetHashKey(v.prop)) == tostring(GetEntityModel(object)) then + objinfo = v + end + end + local objloc = GetEntityCoords(object) + SetEntityCoords(ped, objloc.x, objloc.y, objloc.z+objinfo.verticalOffset) + SetEntityHeading(ped, GetEntityHeading(object)+180.0) + FreezeEntityPosition(ped, true) + sitting = true + TaskStartScenarioInPlace(ped, objinfo.scenario, 0, true) + end +end \ No newline at end of file diff --git a/config.lua b/config.lua new file mode 100644 index 00000000..43e3883c --- /dev/null +++ b/config.lua @@ -0,0 +1,130 @@ +Config = {} +Config.MaxDistance = 1.5 + +Config.Sitable = { + --Only verticalOffset works right now! + --all scenarios: pastebin.com/6mrYTdQv + + -- BENCH + {prop = 'prop_bench_01a', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_01b', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_01c', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_04', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_05', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_06', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_05', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_08', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_09', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_10', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_bench_11', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_fib_3b_bench', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_ld_bench01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_wait_bench_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- CHAIR + {prop = 'hei_prop_heist_off_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'hei_prop_hei_skid_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_01a', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_01b', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_04a', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_04b', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_05', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_06', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_05', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_08', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_09', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chair_10', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_chateau_chair_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_clown_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_cs_office_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_direct_chair_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_direct_chair_02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_gc_chair02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_off_chair_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_off_chair_03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_off_chair_04', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_off_chair_04b', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_off_chair_04_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_off_chair_05', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_old_deck_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_old_wood_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_rock_chair_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_skid_chair_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_skid_chair_02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_skid_chair_03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_sol_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_wheelchair_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_wheelchair_01_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_armchair_01_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_clb_officechair_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_dinechair_01_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_ilev_p_easychair_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_soloffchair_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_yacht_chair_01_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_club_officechair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_corp_bk_chair3', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_corp_cd_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_corp_offchair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_chair02_ped', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_hd_chair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_p_easychair', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ret_gc_chair03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_ld_farm_chair01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_04_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_05_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_06_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_leath_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_01_chr_a', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_01_chr_b', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_02_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_03b_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_table_03_chr', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_torture_ch_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_fh_dineeamesa', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + + {prop = 'v_ilev_fh_kitchenstool', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_tort_stool', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_fh_kitchenstool', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_fh_kitchenstool', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_fh_kitchenstool', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_fh_kitchenstool', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- SEAT + {prop = 'hei_prop_yah_seat_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'hei_prop_yah_seat_02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'hei_prop_yah_seat_03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_waiting_seat_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_yacht_seat_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_yacht_seat_02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_yacht_seat_03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_hobo_seat_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.65, forwardOffset = 0.0, leftOffset = 0.0}, + + -- COUCH + {prop = 'prop_rub_couch01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'miss_rub_couch_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_ld_farm_couch01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_ld_farm_couch02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_rub_couch02', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_rub_couch03', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'prop_rub_couch04', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- SOFA + {prop = 'p_lev_sofa_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_res_sofa_l_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_v_med_p_sofa_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'p_yacht_sofa_01_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_ilev_m_sofa', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_res_tre_sofa_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_tre_sofa_mess_a_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_tre_sofa_mess_b_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = 'v_tre_sofa_mess_c_s', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + + -- MISC + {prop = 'prop_roller_car_01', scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + {prop = '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..64489e3d --- /dev/null +++ b/server.lua @@ -0,0 +1,24 @@ +ESX = nil +local occupied = {} + +TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + + +RegisterServerEvent('sit:occupyObj') +AddEventHandler('sit:occupyObj', function(object) + table.insert(occupied, object) +end) + +RegisterServerEvent('sit:unoccupyObj') +AddEventHandler('sit:unoccupyObj', function(object) + for k,v in pairs(occupied) do + if v == object then + table.remove(occupied, k) + end + end + end) + + +ESX.RegisterServerCallback('sit:getOccupied', function(source, cb) + cb(occupied) +end) \ No newline at end of file