forked from Simnation/Main
ed
This commit is contained in:
parent
8a47b4502d
commit
52924f74cd
2 changed files with 35 additions and 31 deletions
|
@ -50,9 +50,9 @@ local function isBoat(vehicle)
|
|||
return boatClasses[vehicleClass] or false
|
||||
end
|
||||
|
||||
-- Lade verankerte Boote vom Server
|
||||
-- Lade verankerte Boote vom Server (korrigierte Version)
|
||||
local function loadAnchoredBoats()
|
||||
QBCore.Functions.TriggerCallback('nordi_carmenu:server:getAnchoredBoats', function(serverAnchors)
|
||||
QBCore.Functions.TriggerCallback('nord_carmenu:server:getAnchoredBoats', function(serverAnchors)
|
||||
if serverAnchors then
|
||||
for plate, anchorData in pairs(serverAnchors) do
|
||||
-- Finde Fahrzeug mit dieser Kennzeichen
|
||||
|
@ -62,7 +62,15 @@ local function loadAnchoredBoats()
|
|||
local vehicleProps = QBCore.Functions.GetVehicleProperties(vehicle)
|
||||
if vehicleProps.plate == plate and isBoat(vehicle) then
|
||||
-- Setze Boot an gespeicherte Position
|
||||
SetEntityCoords(vehicle, anchorData.coords.x, anchorData.coords.y, anchorData.coords.z)
|
||||
-- Korrigiere die Z-Koordinate (Höhe) für Wasseroberfläche
|
||||
local waterHeight = GetWaterHeightNoWaves(anchorData.coords.x, anchorData.coords.y, anchorData.coords.z)
|
||||
|
||||
-- Wenn kein Wasser gefunden wurde, nutze eine leichte Korrektur der gespeicherten Höhe
|
||||
if waterHeight == 0 then
|
||||
waterHeight = anchorData.coords.z - 0.5 -- Leichte Korrektur nach unten
|
||||
end
|
||||
|
||||
SetEntityCoords(vehicle, anchorData.coords.x, anchorData.coords.y, waterHeight)
|
||||
SetEntityHeading(vehicle, anchorData.heading)
|
||||
FreezeEntityPosition(vehicle, true)
|
||||
SetEntityInvincible(vehicle, true)
|
||||
|
@ -80,23 +88,7 @@ local function loadAnchoredBoats()
|
|||
end)
|
||||
end
|
||||
|
||||
-- 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
|
||||
-- Anker setzen/entfernen (korrigierte Version)
|
||||
local function toggleAnchor(vehicle)
|
||||
if not isBoat(vehicle) then
|
||||
QBCore.Functions.Notify('Nur Boote können verankert werden!', 'error')
|
||||
|
@ -120,6 +112,15 @@ local function toggleAnchor(vehicle)
|
|||
local coords = GetEntityCoords(vehicle)
|
||||
local heading = GetEntityHeading(vehicle)
|
||||
|
||||
-- Finde die Wasseroberfläche unter dem Boot
|
||||
local waterHeight = GetWaterHeightNoWaves(coords.x, coords.y, coords.z)
|
||||
|
||||
-- Wenn Wasser gefunden wurde, setze das Boot auf die Wasseroberfläche
|
||||
if waterHeight ~= 0 then
|
||||
SetEntityCoords(vehicle, coords.x, coords.y, waterHeight)
|
||||
coords = GetEntityCoords(vehicle) -- Aktualisiere Koordinaten nach Positionsänderung
|
||||
end
|
||||
|
||||
FreezeEntityPosition(vehicle, true)
|
||||
SetEntityInvincible(vehicle, true)
|
||||
|
||||
|
@ -138,13 +139,7 @@ local function toggleAnchor(vehicle)
|
|||
end
|
||||
end
|
||||
|
||||
-- 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
|
||||
-- Überwache gespawnte Fahrzeuge für Anker-Wiederherstellung (korrigierte Version)
|
||||
CreateThread(function()
|
||||
local checkedVehicles = {}
|
||||
|
||||
|
@ -159,10 +154,18 @@ CreateThread(function()
|
|||
-- Prüfe ob dieses Boot einen gespeicherten Anker hat
|
||||
local vehicleProps = QBCore.Functions.GetVehicleProperties(vehicle)
|
||||
if vehicleProps.plate then
|
||||
QBCore.Functions.TriggerCallback('nordi_carmenu:server:getAnchorByPlate', function(anchorData)
|
||||
QBCore.Functions.TriggerCallback('nord_carmenu:server:getAnchorByPlate', function(anchorData)
|
||||
if anchorData then
|
||||
-- Setze Boot an gespeicherte Position
|
||||
SetEntityCoords(vehicle, anchorData.coords.x, anchorData.coords.y, anchorData.coords.z)
|
||||
-- Finde die Wasseroberfläche unter dem Boot
|
||||
local waterHeight = GetWaterHeightNoWaves(anchorData.coords.x, anchorData.coords.y, anchorData.coords.z)
|
||||
|
||||
-- Wenn kein Wasser gefunden wurde, nutze eine leichte Korrektur der gespeicherten Höhe
|
||||
if waterHeight == 0 then
|
||||
waterHeight = anchorData.coords.z - 0.5 -- Leichte Korrektur nach unten
|
||||
end
|
||||
|
||||
-- Setze Boot an gespeicherte Position mit korrigierter Höhe
|
||||
SetEntityCoords(vehicle, anchorData.coords.x, anchorData.coords.y, waterHeight)
|
||||
SetEntityHeading(vehicle, anchorData.heading)
|
||||
FreezeEntityPosition(vehicle, true)
|
||||
SetEntityInvincible(vehicle, true)
|
||||
|
@ -189,6 +192,7 @@ CreateThread(function()
|
|||
end
|
||||
end)
|
||||
|
||||
|
||||
-- Funktion um verfügbare Sitze zu bekommen
|
||||
local function getAvailableSeats(vehicle)
|
||||
local seats = {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue