1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-08-06 14:18:00 +02:00
parent efe4028319
commit f720b42a00
3 changed files with 258 additions and 3 deletions

View file

@ -436,4 +436,68 @@ AddEventHandler('VKC:delvehkey', function(plate, owner)
else
MySQL.query("DELETE FROM vehicle_keys WHERE plate = ?", {plate})
end
end)
end)
-- Fahrzeugbesitz an einen anderen Spieler übertragen
CB:Register("VKC:transferVehicleOwnership", function(source, plate, targetPlayerId)
local src = source
if (plate == nil or targetPlayerId == nil) then
print("^1[ERROR] \"plate\" or \"targetPlayerId\" was nil while transferring vehicle ownership for id " .. tostring(src))
return false
end
local Player = QBCore.Functions.GetPlayer(src)
local TargetPlayer = QBCore.Functions.GetPlayer(targetPlayerId)
if (not Player or not TargetPlayer) then
print("^1[ERROR] Player or target player not found while transferring vehicle ownership")
return false
end
local trimmedPlate = plate:gsub("^%s*(.-)%s*$", "%1"):upper()
-- Überprüfen, ob der Spieler das Fahrzeug besitzt
local isOwner = IsVehicleOwner(src, trimmedPlate)
if not isOwner then
return false
end
-- Fahrzeugmodell für die Benachrichtigung abrufen
local vehicleModel = nil
local results = MySQL.Sync.fetchAll("SELECT vehicle FROM player_vehicles WHERE plate = @plate AND citizenid = @owner", {
["@plate"] = trimmedPlate,
["@owner"] = Player.PlayerData.citizenid
})
if #results > 0 then
vehicleModel = results[1].vehicle
end
-- Besitz in der Datenbank übertragen
local success = MySQL.Sync.execute("UPDATE player_vehicles SET citizenid = @newOwner WHERE plate = @plate AND citizenid = @oldOwner", {
["@newOwner"] = TargetPlayer.PlayerData.citizenid,
["@plate"] = trimmedPlate,
["@oldOwner"] = Player.PlayerData.citizenid
})
if success > 0 then
-- Alle Schlüssel auf den neuen Besitzer übertragen
MySQL.Sync.execute("DELETE FROM vehicle_keys WHERE plate = @plate", {
["@plate"] = trimmedPlate
})
-- Einen Schlüssel dem neuen Besitzer geben
MySQL.Sync.execute("INSERT INTO vehicle_keys (owner, plate, count) VALUES (@owner, @plate, 1)", {
["@owner"] = TargetPlayer.PlayerData.citizenid,
["@plate"] = trimmedPlate
})
-- Den Zielspieler benachrichtigen
TriggerClientEvent("VKC:vehicleTransferNotif", targetPlayerId, trimmedPlate, vehicleModel)
return true
end
return false
end)