forked from Simnation/Main
ed
This commit is contained in:
parent
eab6dc1464
commit
16b0058156
2 changed files with 60 additions and 21 deletions
|
@ -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')
|
||||
|
||||
|
|
|
@ -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},
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue