2025-06-09 13:28:19 +02:00
|
|
|
QBCore = exports['qb-core']:GetCoreObject()
|
2025-06-09 15:23:24 +02:00
|
|
|
local test_vari = {}
|
|
|
|
|
|
|
|
RegisterServerEvent('mh_garage:setMods')
|
|
|
|
AddEventHandler('mh_garage:setMods', function(mods)
|
2025-06-09 17:31:06 +02:00
|
|
|
print(mods.plate)
|
2025-06-09 17:32:19 +02:00
|
|
|
if test_vari[mods.plate] == true then
|
2025-06-09 17:55:06 +02:00
|
|
|
print("Fahrzeug hat bereits ein Eintrag")
|
2025-06-09 15:23:24 +02:00
|
|
|
else
|
2025-06-09 17:31:06 +02:00
|
|
|
MySQL.query("SELECT mods FROM player_vehicles WHERE plate = ?", {mods.plate}, function(rs)
|
2025-06-09 17:59:45 +02:00
|
|
|
-- Prüfen ob rs überhaupt Daten enthält
|
|
|
|
if rs and rs[1] then
|
|
|
|
-- Wenn mods ein String ist, konvertieren wir es zu einem Table
|
|
|
|
local modsData = type(rs[1].mods) == "string" and json.decode(rs[1].mods) or rs[1].mods
|
|
|
|
|
|
|
|
if not modsData or next(modsData) == nil then
|
|
|
|
-- Hier sollten Sie wahrscheinlich auch die mods-Daten übergeben, nicht nur plate
|
|
|
|
MySQL.query("UPDATE player_vehicles SET mods = ? WHERE plate = ?", {json.encode(mods), mods.plate})
|
|
|
|
test_vari[mods.plate] = true
|
|
|
|
else
|
|
|
|
test_vari[mods.plate] = true
|
|
|
|
end
|
2025-06-09 17:38:26 +02:00
|
|
|
else
|
2025-06-09 17:59:45 +02:00
|
|
|
-- Keine Ergebnisse gefunden
|
|
|
|
print("Keine Daten für Kennzeichen " .. mods.plate .. " gefunden")
|
2025-06-09 17:38:26 +02:00
|
|
|
end
|
2025-06-09 15:23:24 +02:00
|
|
|
end)
|
|
|
|
end
|
|
|
|
end)
|
2025-06-09 13:28:19 +02:00
|
|
|
|
|
|
|
QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, veh, zone)
|
|
|
|
local Player = QBCore.Functions.GetPlayer(source)
|
|
|
|
|
|
|
|
if Player ~= nil then
|
|
|
|
if Player.Functions.GetMoney('bank', zone.price) then
|
|
|
|
MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? AND plate = ?", {Player.PlayerData.citizenid, veh.plate}, function(rs)
|
|
|
|
if rs[1] ~= nil then
|
|
|
|
MySQL.query("UPDATE player_vehicles SET garage = ? AND parking = ? WHERE plate = ?", {zone.name, true, veh.plate})
|
|
|
|
DelVehParking(veh.plate)
|
|
|
|
cb({
|
|
|
|
status = true,
|
|
|
|
text = "Fahrzeug erfolgreich eingeparkt!",
|
|
|
|
type = "success",
|
|
|
|
other = false,
|
|
|
|
police = false
|
|
|
|
})
|
|
|
|
else
|
|
|
|
MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? AND plate = ?", {Player.PlayerData.citizenid, veh.plate}, function(rs)
|
|
|
|
if rs[1] ~= nil then
|
|
|
|
MySQL.query("UPDATE player_vehicles SET garage = ? AND parking = ? WHERE plate = ?", {zone.name, true, veh.plate})
|
|
|
|
DelVehParking(veh.plate)
|
|
|
|
cb({
|
|
|
|
status = true,
|
|
|
|
text = "Fahrzeug erfolgreich eingeparkt!",
|
|
|
|
type = "success",
|
|
|
|
other = true,
|
|
|
|
police = false
|
|
|
|
})
|
|
|
|
else
|
|
|
|
cb({
|
|
|
|
status = false,
|
|
|
|
text = "Du besitzt kein Schlüssel für dieses Fahrzeug.",
|
|
|
|
type = "warning",
|
|
|
|
other = false,
|
|
|
|
police = true
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
|
|
|
|
function DelVehParking(plate)
|
|
|
|
MySQL.query("SELECT * FROM vehicle_parking WHERE plate = ?", {plate}, function(rs)
|
|
|
|
if rs[1] ~= nil then
|
|
|
|
MySQL.query("DELETE FROM vehicle_parking WHERE plate = ?", {plate})
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
|
|
QBCore.Functions.CreateCallback('mh_garage:CallVehicles', function(source, cb, zone)
|
|
|
|
local _source = source
|
|
|
|
local Player = QBCore.Functions.GetPlayer(_source)
|
|
|
|
local vehicles = {}
|
|
|
|
local vehicle_keys = {}
|
|
|
|
|
|
|
|
if Config.CallKeyVehicles then
|
|
|
|
MySQL.query("SELECT plate FROM vehicle_keys WHERE owner = ?", {Player.PlayerData.citizenid}, function(rs)
|
|
|
|
if rs[1] ~= nil then
|
|
|
|
for k, v in pairs(rs) do
|
2025-06-09 14:37:30 +02:00
|
|
|
table.insert(vehicle_keys, {plate = v.plate})
|
2025-06-09 13:28:19 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
|
|
|
|
Wait(100)
|
|
|
|
if vehicle_keys[1] ~= nil then
|
2025-06-09 14:27:00 +02:00
|
|
|
print(json.encode(vehicle_keys))
|
2025-06-09 13:28:19 +02:00
|
|
|
for k, v in pairs(vehicle_keys) do
|
2025-06-09 14:30:08 +02:00
|
|
|
MySQL.query("SELECT vehicle, plate, mods, name FROM player_vehicles WHERE plate = ?", {v.plate}, function(rs)
|
2025-06-09 13:28:19 +02:00
|
|
|
table.insert(vehicles, {
|
|
|
|
vehicle = rs[1].vehicle,
|
|
|
|
mods = rs[1].mods,
|
|
|
|
plate = rs[1].plate,
|
|
|
|
name = rs[1].name
|
|
|
|
})
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
MySQL.query("SELECT vehicle, plate, mods FROM player_vehicles WHERE citizenid = ? AND garage = ?", {Player.PlayerData.citizenid, zone}, function(rs)
|
|
|
|
if rs[1] ~= nil then
|
|
|
|
for k, v in pairs(rs) do
|
|
|
|
table.insert(vehicles, {
|
|
|
|
vehicle = v.vehicle,
|
|
|
|
mods = v.mods,
|
|
|
|
plate = v.plate,
|
|
|
|
name = v.name
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
|
|
|
|
Wait(100)
|
|
|
|
cb(vehicles)
|
|
|
|
end)
|
|
|
|
|
|
|
|
QBCore.Functions.CreateCallback('mh_garage:verwaltung', function(source, cb)
|
|
|
|
local Player = QBCore.Functions.GetPlayer(source)
|
|
|
|
local vehicles = {}
|
|
|
|
MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ?", {Player.PlayerData.citizenid}, function(rs)
|
|
|
|
if rs[1] ~= nil then
|
|
|
|
for k, v in pairs(rs) do
|
|
|
|
table.insert(vehicles, {
|
|
|
|
current_garage = v.garage,
|
|
|
|
current_in_garage = v.parking,
|
|
|
|
current_name = v.name,
|
|
|
|
current_plate = v.plate,
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
return vehicles
|
|
|
|
end)
|