diff --git a/resources/[carscripts]/nordi_seats/client/main.lua b/resources/[carscripts]/nordi_seats/client/main.lua index fe8370987..ea288cd2f 100644 --- a/resources/[carscripts]/nordi_seats/client/main.lua +++ b/resources/[carscripts]/nordi_seats/client/main.lua @@ -14,12 +14,12 @@ local seatNames = { [1] = "Hinten Links", [2] = "Hinten Rechts", [3] = "Hinten Mitte", - [4] = "Deck 1", - [5] = "Deck 2", - [6] = "Deck 3", - [7] = "Deck 4", - [8] = "Deck 5", - [9] = "Deck 6" + [4] = "Extra 1", + [5] = "Extra 2", + [6] = "Extra 3", + [7] = "Extra 4", + [8] = "Extra 5", + [9] = "Extra 6" } -- Funktion um aktuellen Sitz zu bekommen @@ -50,9 +50,9 @@ local function isBoat(vehicle) return boatClasses[vehicleClass] or false end --- Lade verankerte Boote vom Server (korrigierte Version) +-- Lade verankerte Boote vom Server local function loadAnchoredBoats() - QBCore.Functions.TriggerCallback('nord_carmenu:server:getAnchoredBoats', function(serverAnchors) + QBCore.Functions.TriggerCallback('nordi_carmenu:server:getAnchoredBoats', function(serverAnchors) if serverAnchors then for plate, anchorData in pairs(serverAnchors) do -- Finde Fahrzeug mit dieser Kennzeichen @@ -88,7 +88,23 @@ local function loadAnchoredBoats() end) end --- Anker setzen/entfernen (korrigierte Version) +-- Speichere Anker auf Server +local function saveAnchorToServer(vehicle, anchorData) + local vehicleProps = QBCore.Functions.GetVehicleProperties(vehicle) + if vehicleProps.plate then + TriggerServerEvent('nordi_carmenu:server:saveAnchor', vehicleProps.plate, anchorData) + end +end + +-- Entferne Anker vom Server +local function removeAnchorFromServer(vehicle) + local vehicleProps = QBCore.Functions.GetVehicleProperties(vehicle) + if vehicleProps.plate then + TriggerServerEvent('nordi_carmenu:server:removeAnchor', vehicleProps.plate) + end +end + +-- Anker setzen/entfernen local function toggleAnchor(vehicle) if not isBoat(vehicle) then QBCore.Functions.Notify('Nur Boote können verankert werden!', 'error') @@ -139,7 +155,13 @@ local function toggleAnchor(vehicle) end end --- Überwache gespawnte Fahrzeuge für Anker-Wiederherstellung (korrigierte Version) +-- Prüfe ob Boot verankert ist +local function isBoatAnchored(vehicle) + local vehicleNetId = NetworkGetNetworkIdFromEntity(vehicle) + return anchoredBoats[vehicleNetId] ~= nil +end + +-- Überwache gespawnte Fahrzeuge für Anker-Wiederherstellung CreateThread(function() local checkedVehicles = {} @@ -154,7 +176,7 @@ CreateThread(function() -- Prüfe ob dieses Boot einen gespeicherten Anker hat local vehicleProps = QBCore.Functions.GetVehicleProperties(vehicle) if vehicleProps.plate then - QBCore.Functions.TriggerCallback('nord_carmenu:server:getAnchorByPlate', function(anchorData) + QBCore.Functions.TriggerCallback('nordi_carmenu:server:getAnchorByPlate', function(anchorData) if anchorData then -- Finde die Wasseroberfläche unter dem Boot local waterHeight = GetWaterHeightNoWaves(anchorData.coords.x, anchorData.coords.y, anchorData.coords.z) @@ -192,7 +214,6 @@ CreateThread(function() end end) - -- Funktion um verfügbare Sitze zu bekommen local function getAvailableSeats(vehicle) local seats = {} @@ -374,7 +395,7 @@ local function switchSeat(vehicle, newSeatIndex) end end --- Tür-Kontrollfunktion (korrigierte Version) +-- Tür-Kontrollfunktion local function controlDoor(vehicle, doorIndex) if GetVehicleDoorAngleRatio(vehicle, doorIndex) > 0.0 then SetVehicleDoorShut(vehicle, doorIndex, false) @@ -388,7 +409,7 @@ local function controlDoor(vehicle, doorIndex) showDoorControlMenu(vehicle) end --- Fenster-Kontrollfunktion (korrigierte Version) +-- Fenster-Kontrollfunktion local function controlWindow(vehicle, windowIndex) if IsVehicleWindowIntact(vehicle, windowIndex) then RollDownWindow(vehicle, windowIndex) @@ -415,7 +436,7 @@ local function controlExtra(vehicle, extraId) end end --- Türen-Kontrollmenü (korrigierte Version) +-- Türen-Kontrollmenü function showDoorControlMenu(vehicle) local options = { { @@ -503,7 +524,7 @@ function showDoorControlMenu(vehicle) lib.showContext('vehicle_door_menu') end --- Fenster-Kontrollmenü (korrigierte Version) +-- Fenster-Kontrollmenü function showWindowControlMenu(vehicle) local options = { { @@ -801,8 +822,6 @@ function showSeatMenu(vehicle) description = exitDesc, icon = 'fas fa-door-open', onSelect = function() - TaskLeaveVehicle(playerPed, vehicle, 0) - local exitMsg = isVehicleBoat and 'Du gehst von Bord...' TaskLeaveVehicle(playerPed, vehicle, 0) local exitMsg = isVehicleBoat and 'Du gehst von Bord...' or 'Du steigst aus dem Fahrzeug aus...' QBCore.Functions.Notify(exitMsg, 'primary') @@ -917,8 +936,15 @@ function showVehicleInfo(vehicle) lib.showContext('vehicle_info_menu') end --- QB-Target Setup +-- QB-Target Setup (korrigierte Version) CreateThread(function() + -- Entferne zuerst alle vorhandenen Target-Optionen für Fahrzeuge, die wir gesetzt haben + exports['qb-target']:RemoveGlobalVehicle({ + 'vehicle:openSeatMenu', + 'vehicle:openControlMenu' + }) + + -- Registriere nur einen neuen Target-Punkt exports['qb-target']:AddGlobalVehicle({ options = { { @@ -942,6 +968,16 @@ RegisterNetEvent('vehicle:openControlMenu', function(data) end end) +-- Entferne den alten Event Handler, falls er noch existiert +RegisterNetEvent('vehicle:openSeatMenu', function(data) + local vehicle = data.entity + if DoesEntityExist(vehicle) and IsEntityAVehicle(vehicle) then + showVehicleControlMenu(vehicle) -- Leite zum neuen Hauptmenü weiter + else + QBCore.Functions.Notify('Kein gültiges Fahrzeug gefunden!', 'error') + end +end) + -- Lade Anker beim Start CreateThread(function() Wait(2000) -- Warte bis QBCore geladen ist @@ -1003,3 +1039,4 @@ end, false) -- Keybinds registrieren RegisterKeyMapping('carmenu', 'Fahrzeug Menü öffnen', 'keyboard', 'F1') RegisterKeyMapping('anchor', 'Anker werfen/lichten', 'keyboard', 'H') + diff --git a/resources/[housing]/brutal_housing/config.lua b/resources/[housing]/brutal_housing/config.lua index 2c45ae123..5fb611433 100644 --- a/resources/[housing]/brutal_housing/config.lua +++ b/resources/[housing]/brutal_housing/config.lua @@ -41,8 +41,10 @@ Config = { owned = true, myHouse = {label = "Mein Haus", size = 0.7, sprite = 40, color = 53}, myGarage = {label = "Meine Garage", size = 0.7, sprite = 357, color = 53}, - hasKeyHouse = {label = "Schlüssel für Haus", size = 0.7, sprite = 40, color = 53}, - hasKeyGarage = {label = "Schlüssel für Garage", size = 0.7, sprite = 40, color = 53}, + hasKeyHouse = {label = "Haus", size = 0.7, sprite = 40, color = 53}, + hasKeyGarage = {label = "Haus", size = 0.7, sprite = 40, color = 53}, + ownedHouse = {label = "Haus", size = 0.7, sprite = 40, color = 1}, + ownedGarage = {label = "Garage", size = 0.7, sprite = 357, color = 1}, police = true, burglarAlarm = {label = "Einbruch Alarm", size = 1.0, sprite = 161, color = 1}, },