ed
This commit is contained in:
parent
cd17b66985
commit
2ecbbdc6c4
3 changed files with 69 additions and 71 deletions
|
@ -158,7 +158,7 @@ function spawnRentalVehicle(model, spawnPoint, plate)
|
|||
local rot = GetEntityRotation(vehicle)
|
||||
TriggerServerEvent('vehiclerental:server:updatePosition', plate, pos, rot)
|
||||
|
||||
print("Neues Mietfahrzeug erstellt: " .. plate)
|
||||
print("[VehicleRental] Neues Mietfahrzeug erstellt: " .. plate)
|
||||
end
|
||||
|
||||
-- Fahrzeug zurückgeben
|
||||
|
@ -195,6 +195,32 @@ RegisterNetEvent('vehiclerental:client:returnVehicle', function(data)
|
|||
end)
|
||||
end)
|
||||
|
||||
-- Fahrzeug löschen (wie DV-Befehl)
|
||||
function DeleteRentalVehicle(vehicle)
|
||||
if DoesEntityExist(vehicle) then
|
||||
-- Standard FiveM-Methode zum Löschen von Fahrzeugen (wie DV-Befehl)
|
||||
SetEntityAsMissionEntity(vehicle, true, true)
|
||||
DeleteEntity(vehicle)
|
||||
|
||||
if DoesEntityExist(vehicle) then
|
||||
-- Zweiter Versuch mit DeleteVehicle
|
||||
DeleteVehicle(vehicle)
|
||||
end
|
||||
|
||||
-- Prüfe, ob das Fahrzeug wirklich gelöscht wurde
|
||||
if not DoesEntityExist(vehicle) then
|
||||
return true
|
||||
else
|
||||
-- Letzter Versuch mit NetworkFadeOutEntity
|
||||
NetworkFadeOutEntity(vehicle, true, true)
|
||||
Wait(500)
|
||||
DeleteEntity(vehicle)
|
||||
return not DoesEntityExist(vehicle)
|
||||
end
|
||||
end
|
||||
return true -- Fahrzeug existiert nicht, also gilt es als gelöscht
|
||||
end
|
||||
|
||||
-- Spezifisches Fahrzeug zurückgeben
|
||||
function returnSpecificVehicle(plate, locationId)
|
||||
-- Finde die Location-Daten
|
||||
|
@ -249,23 +275,15 @@ function returnSpecificVehicle(plate, locationId)
|
|||
-- Fahrzeug zurückgeben
|
||||
QBCore.Functions.TriggerCallback('vehiclerental:server:returnVehicle', function(success)
|
||||
if success then
|
||||
-- Make sure the vehicle is properly deleted
|
||||
if DoesEntityExist(vehicle) then
|
||||
-- First try native deletion
|
||||
SetEntityAsMissionEntity(vehicle, true, true)
|
||||
DeleteEntity(vehicle)
|
||||
DeleteVehicle(vehicle)
|
||||
|
||||
-- If AdvancedParking is available, also use its deletion method
|
||||
if GetResourceState('AdvancedParking') == 'started' then
|
||||
exports["AdvancedParking"]:DeleteVehicle(vehicle, false)
|
||||
print("[VehicleRental] Using AdvancedParking to delete vehicle with plate: " .. plate)
|
||||
end
|
||||
-- Fahrzeug mit DV-ähnlicher Methode löschen
|
||||
if DeleteRentalVehicle(vehicle) then
|
||||
QBCore.Functions.Notify('Fahrzeug erfolgreich zurückgegeben!', 'success')
|
||||
else
|
||||
QBCore.Functions.Notify('Fahrzeug zurückgegeben, aber konnte nicht vollständig gelöscht werden.', 'warning')
|
||||
end
|
||||
|
||||
-- Remove from local tracking
|
||||
-- Aus lokaler Tracking-Liste entfernen
|
||||
activeRentalVehicles[plate] = nil
|
||||
QBCore.Functions.Notify('Fahrzeug erfolgreich zurückgegeben!', 'success')
|
||||
end
|
||||
end, plate)
|
||||
end
|
||||
|
@ -276,7 +294,7 @@ AddEventHandler('vehiclerental:client:loadRentals', function(rentals)
|
|||
-- Lösche alle vorhandenen Mietfahrzeuge
|
||||
for plate, vehicle in pairs(activeRentalVehicles) do
|
||||
if DoesEntityExist(vehicle) then
|
||||
DeleteVehicle(vehicle)
|
||||
DeleteRentalVehicle(vehicle)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -323,7 +341,7 @@ AddEventHandler('vehiclerental:client:loadRentals', function(rentals)
|
|||
-- Speichere das Fahrzeug lokal
|
||||
activeRentalVehicles[plate] = vehicle
|
||||
|
||||
print("Mietfahrzeug geladen: " .. plate)
|
||||
print("[VehicleRental] Mietfahrzeug geladen: " .. plate)
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
@ -336,31 +354,16 @@ AddEventHandler('vehiclerental:client:vehicleReturned', function(plate)
|
|||
-- Lösche das Fahrzeug, wenn es existiert
|
||||
if activeRentalVehicles[plate] then
|
||||
local vehicle = activeRentalVehicles[plate]
|
||||
|
||||
if DoesEntityExist(vehicle) then
|
||||
-- Versuche verschiedene Methoden zum Löschen
|
||||
SetEntityAsMissionEntity(vehicle, true, true)
|
||||
DeleteVehicle(vehicle)
|
||||
|
||||
-- Wenn AdvancedParking verfügbar ist, nutze auch dessen Löschmethode
|
||||
if GetResourceState('AdvancedParking') == 'started' then
|
||||
exports["AdvancedParking"]:DeleteVehicle(vehicle, false)
|
||||
end
|
||||
|
||||
print("[VehicleRental] Mietfahrzeug gelöscht: " .. plate)
|
||||
else
|
||||
print("[VehicleRental] Mietfahrzeug nicht gefunden für Löschung: " .. plate)
|
||||
end
|
||||
|
||||
DeleteRentalVehicle(vehicle)
|
||||
activeRentalVehicles[plate] = nil
|
||||
print("[VehicleRental] Mietfahrzeug gelöscht: " .. plate)
|
||||
end
|
||||
|
||||
-- Suche nach dem Fahrzeug in der Welt anhand des Kennzeichens
|
||||
for veh in EnumerateVehicles() do
|
||||
local vehPlate = GetVehicleNumberPlateText(veh)
|
||||
if string.gsub(vehPlate, "%s+", "") == string.gsub(plate, "%s+", "") then
|
||||
SetEntityAsMissionEntity(veh, true, true)
|
||||
DeleteVehicle(veh)
|
||||
DeleteRentalVehicle(veh)
|
||||
print("[VehicleRental] Zusätzliches Mietfahrzeug mit Kennzeichen gelöscht: " .. plate)
|
||||
break
|
||||
end
|
||||
|
@ -442,12 +445,7 @@ Citizen.CreateThread(function()
|
|||
-- Wenn es nicht gemietet ist, aber ein RENT-Kennzeichen hat, lösche es
|
||||
if not isRented and #(playerPos - vehPos) > 100.0 then
|
||||
print("[VehicleRental] Lösche Ghost-Mietfahrzeug: " .. vehPlate)
|
||||
SetEntityAsMissionEntity(veh, true, true)
|
||||
DeleteVehicle(veh)
|
||||
|
||||
if GetResourceState('AdvancedParking') == 'started' then
|
||||
exports["AdvancedParking"]:DeleteVehicle(veh, false)
|
||||
end
|
||||
DeleteRentalVehicle(veh)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -493,7 +491,7 @@ AddEventHandler('onResourceStop', function(resourceName)
|
|||
|
||||
for plate, vehicle in pairs(activeRentalVehicles) do
|
||||
if DoesEntityExist(vehicle) then
|
||||
DeleteVehicle(vehicle)
|
||||
DeleteRentalVehicle(vehicle)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue