diff --git a/client/main.lua b/client/main.lua index f1bd5b0..ef5e701 100644 --- a/client/main.lua +++ b/client/main.lua @@ -26,24 +26,24 @@ local function OpenEntranceMenu() local headerMenu = {} if IsOwned then - headerMenu[#headerMenu+1] = { + headerMenu[#headerMenu + 1] = { header = Lang:t('text.enter'), params = { event = 'apartments:client:EnterApartment', args = {} } } - elseif not IsOwned then - headerMenu[#headerMenu+1] = { + elseif not IsOwned then + headerMenu[#headerMenu + 1] = { header = Lang:t('text.move_here'), params = { event = 'apartments:client:UpdateApartment', args = {} } } - end + end - headerMenu[#headerMenu+1] = { + headerMenu[#headerMenu + 1] = { header = Lang:t('text.ring_doorbell'), params = { event = 'apartments:client:DoorbellMenu', @@ -51,11 +51,11 @@ local function OpenEntranceMenu() } } - headerMenu[#headerMenu+1] = { + headerMenu[#headerMenu + 1] = { header = Lang:t('text.close_menu'), - txt = "", + txt = '', params = { - event = "qb-menu:client:closeMenu" + event = 'qb-menu:client:closeMenu' } } @@ -65,7 +65,7 @@ end local function OpenExitMenu() local headerMenu = {} - headerMenu[#headerMenu+1] = { + headerMenu[#headerMenu + 1] = { header = Lang:t('text.open_door'), params = { event = 'apartments:client:OpenDoor', @@ -73,7 +73,7 @@ local function OpenExitMenu() } } - headerMenu[#headerMenu+1] = { + headerMenu[#headerMenu + 1] = { header = Lang:t('text.leave'), params = { event = 'apartments:client:LeaveApartment', @@ -81,11 +81,11 @@ local function OpenExitMenu() } } - headerMenu[#headerMenu+1] = { + headerMenu[#headerMenu + 1] = { header = Lang:t('text.close_menu'), - txt = "", + txt = '', params = { - event = "qb-menu:client:closeMenu" + event = 'qb-menu:client:closeMenu' } } @@ -139,26 +139,26 @@ local function RegisterApartmentEntranceTarget(apartmentID, apartmentData) if apartmentID == ClosestHouse and IsOwned then options = { { - type = "client", - event = "apartments:client:EnterApartment", - icon = "fas fa-door-open", - label = Lang:t("text.enter"), + type = 'client', + event = 'apartments:client:EnterApartment', + icon = 'fas fa-door-open', + label = Lang:t('text.enter'), }, } else options = { { - type = "client", - event = "apartments:client:UpdateApartment", - icon = "fas fa-hotel", + type = 'client', + event = 'apartments:client:UpdateApartment', + icon = 'fas fa-hotel', label = Lang:t('text.move_here'), } } end - options[#options+1] = { - type = "client", - event = "apartments:client:DoorbellMenu", - icon = "fas fa-concierge-bell", + options[#options + 1] = { + type = 'client', + event = 'apartments:client:DoorbellMenu', + icon = 'fas fa-concierge-bell', label = Lang:t('text.ring_doorbell'), } @@ -199,29 +199,28 @@ local function RegisterInApartmentZone(targetKey, coords, heading, text) debugPoly = false }) - zone:onPlayerInOut(function (isPointInside) + zone:onPlayerInOut(function(isPointInside) if isPointInside and text then exports['qb-core']:DrawText(text, 'left') else exports['qb-core']:HideText() end - if targetKey == "entrancePos" then + if targetKey == 'entrancePos' then IsInsideExitZone = isPointInside end - if targetKey == "stashPos" then + if targetKey == 'stashPos' then IsInsideStashZone = isPointInside end - if targetKey == "outfitsPos" then + if targetKey == 'outfitsPos' then IsInsideOutfitsZone = isPointInside end - if targetKey == "logoutPos" then + if targetKey == 'logoutPos' then IsInsideLogoutZone = isPointInside end - end) InApartmentTargets[targetKey] = InApartmentTargets[targetKey] or {} @@ -286,46 +285,46 @@ local function SetInApartmentTargets() if UseTarget then RegisterInApartmentTarget('entrancePos', entrancePos, 0, { { - type = "client", - event = "apartments:client:OpenDoor", - icon = "fas fa-door-open", + type = 'client', + event = 'apartments:client:OpenDoor', + icon = 'fas fa-door-open', label = Lang:t('text.open_door'), }, { - type = "client", - event = "apartments:client:LeaveApartment", - icon = "fas fa-door-open", + type = 'client', + event = 'apartments:client:LeaveApartment', + icon = 'fas fa-door-open', label = Lang:t('text.leave'), }, }) RegisterInApartmentTarget('stashPos', stashPos, 0, { { - type = "client", - event = "apartments:client:OpenStash", - icon = "fas fa-box-open", + type = 'client', + event = 'apartments:client:OpenStash', + icon = 'fas fa-box-open', label = Lang:t('text.open_stash'), }, }) RegisterInApartmentTarget('outfitsPos', outfitsPos, 0, { { - type = "client", - event = "apartments:client:ChangeOutfit", - icon = "fas fa-tshirt", + type = 'client', + event = 'apartments:client:ChangeOutfit', + icon = 'fas fa-tshirt', label = Lang:t('text.change_outfit'), }, }) RegisterInApartmentTarget('logoutPos', logoutPos, 0, { { - type = "client", - event = "apartments:client:Logout", - icon = "fas fa-sign-out-alt", + type = 'client', + event = 'apartments:client:Logout', + icon = 'fas fa-sign-out-alt', label = Lang:t('text.logout'), }, }) else - RegisterInApartmentZone('stashPos', stashPos, 0, "[E] " .. Lang:t('text.open_stash')) - RegisterInApartmentZone('outfitsPos', outfitsPos, 0, "[E] " .. Lang:t('text.change_outfit')) - RegisterInApartmentZone('logoutPos', logoutPos, 0, "[E] " .. Lang:t('text.logout')) + RegisterInApartmentZone('stashPos', stashPos, 0, '[E] ' .. Lang:t('text.open_stash')) + RegisterInApartmentZone('outfitsPos', outfitsPos, 0, '[E] ' .. Lang:t('text.change_outfit')) + RegisterInApartmentZone('logoutPos', logoutPos, 0, '[E] ' .. Lang:t('text.logout')) RegisterInApartmentZone('entrancePos', entrancePos, 0, Lang:t('text.options')) end end @@ -377,14 +376,14 @@ local function loadAnimDict(dict) end local function openHouseAnim() - loadAnimDict("anim@heists@keycard@") - TaskPlayAnim( PlayerPedId(), "anim@heists@keycard@", "exit", 5.0, 1.0, -1, 16, 0, 0, 0, 0 ) + loadAnimDict('anim@heists@keycard@') + TaskPlayAnim(PlayerPedId(), 'anim@heists@keycard@', 'exit', 5.0, 1.0, -1, 16, 0, 0, 0, 0) Wait(400) ClearPedTasks(PlayerPedId()) end local function EnterApartment(house, apartmentId, new) - TriggerServerEvent("InteractSound_SV:PlayOnSource", "houses_door_open", 0.1) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'houses_door_open', 0.1) openHouseAnim() Wait(250) QBCore.Functions.TriggerCallback('apartments:GetApartmentOffset', function(offset) @@ -394,8 +393,8 @@ local function EnterApartment(house, apartmentId, new) newoffset = 210 end CurrentOffset = newoffset - TriggerServerEvent("apartments:server:AddObject", apartmentId, house, CurrentOffset) - local coords = { x = Apartments.Locations[house].coords.enter.x, y = Apartments.Locations[house].coords.enter.y, z = Apartments.Locations[house].coords.enter.z - CurrentOffset} + TriggerServerEvent('apartments:server:AddObject', apartmentId, house, CurrentOffset) + local coords = { x = Apartments.Locations[house].coords.enter.x, y = Apartments.Locations[house].coords.enter.y, z = Apartments.Locations[house].coords.enter.z - CurrentOffset } local data = exports['qb-interior']:CreateApartmentFurnished(coords) Wait(100) HouseObj = data[1] @@ -408,18 +407,17 @@ local function EnterApartment(house, apartmentId, new) TriggerEvent('qb-weathersync:client:DisableSync') Wait(100) TriggerServerEvent('qb-apartments:server:SetInsideMeta', house, apartmentId, true, false) - TriggerServerEvent("InteractSound_SV:PlayOnSource", "houses_door_close", 0.1) - TriggerServerEvent("apartments:server:setCurrentApartment", CurrentApartment) - + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'houses_door_close', 0.1) + TriggerServerEvent('apartments:server:setCurrentApartment', CurrentApartment) end, house) else if offset > 230 then offset = 210 end CurrentOffset = offset - TriggerServerEvent("InteractSound_SV:PlayOnSource", "houses_door_open", 0.1) - TriggerServerEvent("apartments:server:AddObject", apartmentId, house, CurrentOffset) - local coords = { x = Apartments.Locations[ClosestHouse].coords.enter.x, y = Apartments.Locations[ClosestHouse].coords.enter.y, z = Apartments.Locations[ClosestHouse].coords.enter.z - CurrentOffset} + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'houses_door_open', 0.1) + TriggerServerEvent('apartments:server:AddObject', apartmentId, house, CurrentOffset) + local coords = { x = Apartments.Locations[ClosestHouse].coords.enter.x, y = Apartments.Locations[ClosestHouse].coords.enter.y, z = Apartments.Locations[ClosestHouse].coords.enter.z - CurrentOffset } local data = exports['qb-interior']:CreateApartmentFurnished(coords) Wait(100) HouseObj = data[1] @@ -430,8 +428,8 @@ local function EnterApartment(house, apartmentId, new) TriggerEvent('qb-weathersync:client:DisableSync') Wait(100) TriggerServerEvent('qb-apartments:server:SetInsideMeta', house, apartmentId, true, true) - TriggerServerEvent("InteractSound_SV:PlayOnSource", "houses_door_close", 0.1) - TriggerServerEvent("apartments:server:setCurrentApartment", CurrentApartment) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'houses_door_close', 0.1) + TriggerServerEvent('apartments:server:setCurrentApartment', CurrentApartment) end if new ~= nil then @@ -447,24 +445,24 @@ local function EnterApartment(house, apartmentId, new) end local function LeaveApartment(house) - TriggerServerEvent("InteractSound_SV:PlayOnSource", "houses_door_open", 0.1) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'houses_door_open', 0.1) openHouseAnim() - TriggerServerEvent("qb-apartments:returnBucket") + TriggerServerEvent('qb-apartments:returnBucket') DoScreenFadeOut(500) while not IsScreenFadedOut() do Wait(10) end exports['qb-interior']:DespawnInterior(HouseObj, function() TriggerEvent('qb-weathersync:client:EnableSync') - SetEntityCoords(PlayerPedId(), Apartments.Locations[house].coords.enter.x, Apartments.Locations[house].coords.enter.y,Apartments.Locations[house].coords.enter.z) + SetEntityCoords(PlayerPedId(), Apartments.Locations[house].coords.enter.x, Apartments.Locations[house].coords.enter.y, Apartments.Locations[house].coords.enter.z) SetEntityHeading(PlayerPedId(), Apartments.Locations[house].coords.enter.w) Wait(1000) - TriggerServerEvent("apartments:server:RemoveObject", CurrentApartment, house) + TriggerServerEvent('apartments:server:RemoveObject', CurrentApartment, house) TriggerServerEvent('qb-apartments:server:SetInsideMeta', CurrentApartment, false) CurrentApartment = nil InApartment = false CurrentOffset = 0 DoScreenFadeIn(1000) - TriggerServerEvent("InteractSound_SV:PlayOnSource", "houses_door_close", 0.1) - TriggerServerEvent("apartments:server:setCurrentApartment", nil) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'houses_door_close', 0.1) + TriggerServerEvent('apartments:server:setCurrentApartment', nil) DeleteInApartmentTargets() DeleteApartmentsEntranceTargets() @@ -494,7 +492,7 @@ end function MenuOwners() QBCore.Functions.TriggerCallback('apartments:GetAvailableApartments', function(apartments) if next(apartments) == nil then - QBCore.Functions.Notify(Lang:t('error.nobody_home'), "error", 3500) + QBCore.Functions.Notify(Lang:t('error.nobody_home'), 'error', 3500) CloseMenuFull() else local apartmentMenu = { @@ -505,11 +503,11 @@ function MenuOwners() } for k, v in pairs(apartments) do - apartmentMenu[#apartmentMenu+1] = { + apartmentMenu[#apartmentMenu + 1] = { header = v, - txt = "", + txt = '', params = { - event = "apartments:client:RingMenu", + event = 'apartments:client:RingMenu', args = { apartmentId = k } @@ -518,11 +516,11 @@ function MenuOwners() } end - apartmentMenu[#apartmentMenu+1] = { + apartmentMenu[#apartmentMenu + 1] = { header = Lang:t('text.close_menu'), - txt = "", + txt = '', params = { - event = "qb-menu:client:closeMenu" + event = 'qb-menu:client:closeMenu' } } @@ -535,7 +533,6 @@ function CloseMenuFull() exports['qb-menu']:closeMenu() end - -- Event Handlers AddEventHandler('onResourceStop', function(resource) @@ -548,7 +545,7 @@ AddEventHandler('onResourceStop', function(resource) while not IsScreenFadedOut() do Wait(10) end - SetEntityCoords(PlayerPedId(), Apartments.Locations[ClosestHouse].coords.enter.x, Apartments.Locations[ClosestHouse].coords.enter.y,Apartments.Locations[ClosestHouse].coords.enter.z) + SetEntityCoords(PlayerPedId(), Apartments.Locations[ClosestHouse].coords.enter.x, Apartments.Locations[ClosestHouse].coords.enter.y, Apartments.Locations[ClosestHouse].coords.enter.z) SetEntityHeading(PlayerPedId(), Apartments.Locations[ClosestHouse].coords.enter.w) Wait(1000) InApartment = false @@ -578,7 +575,7 @@ RegisterNetEvent('apartments:client:setupSpawnUI', function(cData) if result then TriggerEvent('qb-spawn:client:setupSpawns', cData, false, nil) TriggerEvent('qb-spawn:client:openUI', true) - TriggerEvent("apartments:client:SetHomeBlip", result.type) + TriggerEvent('apartments:client:SetHomeBlip', result.type) else if Apartments.Starting then TriggerEvent('qb-spawn:client:setupSpawns', cData, true, Apartments.Locations) @@ -594,7 +591,7 @@ end) RegisterNetEvent('apartments:client:SpawnInApartment', function(apartmentId, apartment) local pos = GetEntityCoords(PlayerPedId()) if RangDoorbell ~= nil then - local doorbelldist = #(pos - vector3(Apartments.Locations[RangDoorbell].coords.enter.x, Apartments.Locations[RangDoorbell].coords.enter.y,Apartments.Locations[RangDoorbell].coords.enter.z)) + local doorbelldist = #(pos - vector3(Apartments.Locations[RangDoorbell].coords.enter.x, Apartments.Locations[RangDoorbell].coords.enter.y, Apartments.Locations[RangDoorbell].coords.enter.z)) if doorbelldist > 5 then QBCore.Functions.Notify(Lang:t('error.to_far_from_door')) return @@ -619,16 +616,17 @@ RegisterNetEvent('apartments:client:SetHomeBlip', function(home) Apartments.Locations[name].blip = AddBlipForCoord(Apartments.Locations[name].coords.enter.x, Apartments.Locations[name].coords.enter.y, Apartments.Locations[name].coords.enter.z) if (name == home) then SetBlipSprite(Apartments.Locations[name].blip, 475) + SetBlipCategory(Apartments.Locations[name].blip, 11) else SetBlipSprite(Apartments.Locations[name].blip, 476) + SetBlipCategory(Apartments.Locations[name].blip, 10) end SetBlipDisplay(Apartments.Locations[name].blip, 4) SetBlipScale(Apartments.Locations[name].blip, 0.65) SetBlipAsShortRange(Apartments.Locations[name].blip, true) SetBlipColour(Apartments.Locations[name].blip, 3) - - BeginTextCommandSetBlipName("STRING") - AddTextComponentSubstringPlayerName(Apartments.Locations[name].label) + AddTextEntry(Apartments.Locations[name].label, Apartments.Locations[name].label) + BeginTextCommandSetBlipName(Apartments.Locations[name].label) EndTextCommandSetBlipName(Apartments.Locations[name].blip) end end) @@ -636,13 +634,13 @@ end) RegisterNetEvent('apartments:client:RingMenu', function(data) RangDoorbell = ClosestHouse - TriggerServerEvent("InteractSound_SV:PlayOnSource", "doorbell", 0.1) - TriggerServerEvent("apartments:server:RingDoor", data.apartmentId, ClosestHouse) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'doorbell', 0.1) + TriggerServerEvent('apartments:server:RingDoor', data.apartmentId, ClosestHouse) end) RegisterNetEvent('apartments:client:RingDoor', function(player, _) CurrentDoorBell = player - TriggerServerEvent("InteractSound_SV:PlayOnSource", "doorbell", 0.1) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'doorbell', 0.1) QBCore.Functions.Notify(Lang:t('info.at_the_door')) end) @@ -661,7 +659,7 @@ end) RegisterNetEvent('apartments:client:UpdateApartment', function() local apartmentType = ClosestHouse local apartmentLabel = Apartments.Locations[ClosestHouse].label - TriggerServerEvent("apartments:server:UpdateApartment", apartmentType, apartmentLabel) + TriggerServerEvent('apartments:server:UpdateApartment', apartmentType, apartmentLabel) IsOwned = true DeleteApartmentsEntranceTargets() @@ -673,7 +671,7 @@ RegisterNetEvent('apartments:client:OpenDoor', function() QBCore.Functions.Notify(Lang:t('error.nobody_at_door')) return end - TriggerServerEvent("apartments:server:OpenDoor", CurrentDoorBell, CurrentApartment, ClosestHouse) + TriggerServerEvent('apartments:server:OpenDoor', CurrentDoorBell, CurrentApartment, ClosestHouse) CurrentDoorBell = 0 end) @@ -683,14 +681,14 @@ end) RegisterNetEvent('apartments:client:OpenStash', function() if CurrentApartment ~= nil then - TriggerServerEvent("inventory:server:OpenInventory", "stash", CurrentApartment) - TriggerServerEvent("InteractSound_SV:PlayOnSource", "StashOpen", 0.4) - TriggerEvent("inventory:client:SetCurrentStash", CurrentApartment) + TriggerServerEvent('inventory:server:OpenInventory', 'stash', CurrentApartment) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'StashOpen', 0.4) + TriggerEvent('inventory:client:SetCurrentStash', CurrentApartment) end end) RegisterNetEvent('apartments:client:ChangeOutfit', function() - TriggerServerEvent("InteractSound_SV:PlayOnSource", "Clothes1", 0.4) + TriggerServerEvent('InteractSound_SV:PlayOnSource', 'Clothes1', 0.4) TriggerEvent('qb-clothing:client:openOutfitMenu') end) @@ -722,7 +720,7 @@ if UseTarget then end end) else - CreateThread(function () + CreateThread(function() local sleep = 5000 while not LocalPlayer.state.isLoggedIn do -- do nothing @@ -780,4 +778,4 @@ else Wait(sleep) end end) -end \ No newline at end of file +end