1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-07-26 03:03:43 +02:00
parent 30e27196b4
commit 37e4db1130
2 changed files with 104 additions and 0 deletions

View file

@ -129,8 +129,12 @@ function spawnRentalVehicle(model, spawnPoint, plate)
TriggerEvent("vehiclekeys:client:SetOwner", plate)
SetModelAsNoLongerNeeded(model)
-- Registriere das Fahrzeug im Parking-System
TriggerEvent('vehiclerental:client:vehicleRented', vehicle, plate)
end
-- Fahrzeug zurückgeben (KORRIGIERT - ohne im Auto zu sitzen)
RegisterNetEvent('vehiclerental:client:returnVehicle', function(data)
-- Hole alle aktiven Mietverhältnisse des Spielers
@ -255,3 +259,23 @@ AddEventHandler('onResourceStop', function(resourceName)
end
end
end)
-- Integration mit mh_Parking
RegisterNetEvent('vehiclerental:client:vehicleRented')
AddEventHandler('vehiclerental:client:vehicleRented', function(vehicle, plate)
-- Warte kurz, bis das Fahrzeug vollständig gespawnt ist
Citizen.Wait(1000)
-- Aktualisiere das Fahrzeug im Parking-System
if DoesEntityExist(vehicle) then
TriggerEvent("mh_Parking:updateVehicle", vehicle)
print("Mietfahrzeug im Parking-System registriert: " .. plate)
end
end)
-- Wenn ein Mietfahrzeug zurückgegeben wird
RegisterNetEvent('vehiclerental:client:vehicleReturned')
AddEventHandler('vehiclerental:client:vehicleReturned', function(plate)
-- Entferne das Fahrzeug aus dem Parking-System
TriggerServerEvent("mh_Parking:deleteVehicle", plate, true)
print("Mietfahrzeug aus dem Parking-System entfernt: " .. plate)
end)

View file

@ -216,3 +216,83 @@ QBCore.Functions.CreateCallback('vehiclerental:server:getPlayerRentals', functio
cb(result)
end)
end)
-- Funktion zum Entfernen von Mietfahrzeugen aus dem Parking-System
function RemoveRentalFromParking(plate)
-- Entferne das Fahrzeug aus dem mh_Parking System
TriggerEvent("mh_Parking:removeVehicle", plate)
-- Lösche es auch aus der Datenbank des Parking-Systems
MySQL.Async.execute("DELETE FROM vehicle_parking WHERE plate = @plate", {
["@plate"] = plate
})
end
-- Wenn ein Fahrzeug zurückgegeben wird, entferne es aus dem Parking-System
RegisterNetEvent('vehiclerental:server:vehicleReturned')
AddEventHandler('vehiclerental:server:vehicleReturned', function(plate)
RemoveRentalFromParking(plate)
end)
-- Modifiziere die bestehende returnVehicle Callback-Funktion
local originalReturnCallback = QBCore.Functions.CreateCallback('vehiclerental:server:returnVehicle')
QBCore.Functions.CreateCallback('vehiclerental:server:returnVehicle', function(source, cb, plate)
-- Wenn das Fahrzeug erfolgreich zurückgegeben wurde
MySQL.Async.fetchAll('SELECT * FROM vehicle_rentals WHERE vehicle_plate = ? AND returned = FALSE', {
plate
}, function(result)
if result[1] then
-- Führe die normale Rückgabe durch
local Player = QBCore.Functions.GetPlayer(source)
local rental = result[1]
local currentTime = os.time()
local penalty = 0
-- Strafe berechnen wenn verspätet
if currentTime > rental.end_time then
local hoursLate = math.ceil((currentTime - rental.end_time) / 3600)
penalty = hoursLate * Config.PenaltyPerHour
end
-- Strafe abziehen falls vorhanden
if penalty > 0 then
local penaltyPaid = false
if Config.UseOkokBanking then
local bankMoney = exports['okokBanking']:GetAccount(Player.PlayerData.citizenid)
if bankMoney and bankMoney >= penalty then
exports['okokBanking']:RemoveMoney(Player.PlayerData.citizenid, penalty)
penaltyPaid = true
end
else
if Player.Functions.RemoveMoney('cash', penalty) then
penaltyPaid = true
end
end
if penaltyPaid then
TriggerClientEvent('QBCore:Notify', source, 'Verspätungsstrafe von $' .. penalty .. ' wurde abgezogen!', 'error')
else
TriggerClientEvent('QBCore:Notify', source, 'Nicht genug Geld für Verspätungsstrafe!', 'error')
return cb(false)
end
end
-- Mietverhältnis als zurückgegeben markieren
MySQL.Async.execute('UPDATE vehicle_rentals SET returned = TRUE, penalty_paid = ? WHERE id = ?', {
penalty > 0,
rental.id
})
-- Entferne das Fahrzeug aus dem Parking-System
RemoveRentalFromParking(plate)
-- Benachrichtige alle Clients
TriggerClientEvent('vehiclerental:client:vehicleReturned', -1, plate)
TriggerClientEvent('QBCore:Notify', source, 'Fahrzeug erfolgreich zurückgegeben!', 'success')
cb(true)
else
TriggerClientEvent('QBCore:Notify', source, 'Kein aktives Mietverhältnis für dieses Fahrzeug gefunden!', 'error')
cb(false)
end
end)
end)