From b5e2d36590c19aad53c1e3373db796d03ae49ad5 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 17:55:06 +0200 Subject: [PATCH 01/17] Update server.lua --- resources/[carscripts]/mh_garage/server/server.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index 98b3c5b46..599155b46 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -5,10 +5,10 @@ RegisterServerEvent('mh_garage:setMods') AddEventHandler('mh_garage:setMods', function(mods) print(mods.plate) if test_vari[mods.plate] == true then - Print("Fahrzeug hat bereits ein Eintrag") + print("Fahrzeug hat bereits ein Eintrag") else MySQL.query("SELECT mods FROM player_vehicles WHERE plate = ?", {mods.plate}, function(rs) - if rs[1].mods == nil then + if next(rs[1].mods) == nil then MySQL.query("UPDATE player_vehicles SET mods = ? WHERE plate = ?", {mods.plate}) test_vari[mods.plate] = true else From e80c3e0e756d8542534ec2dc284794b521345f71 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 17:59:45 +0200 Subject: [PATCH 02/17] Update server.lua --- .../[carscripts]/mh_garage/server/server.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index 599155b46..c78749a0f 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -8,11 +8,21 @@ AddEventHandler('mh_garage:setMods', function(mods) print("Fahrzeug hat bereits ein Eintrag") else MySQL.query("SELECT mods FROM player_vehicles WHERE plate = ?", {mods.plate}, function(rs) - if next(rs[1].mods) == nil then - MySQL.query("UPDATE player_vehicles SET mods = ? WHERE plate = ?", {mods.plate}) - test_vari[mods.plate] = true + -- 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 else - test_vari[mods.plate] = true + -- Keine Ergebnisse gefunden + print("Keine Daten für Kennzeichen " .. mods.plate .. " gefunden") end end) end From 5af07673d75d82d7567eac7278e77b15605443f4 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:06:21 +0200 Subject: [PATCH 03/17] MYSQL Abfrage Change --- .../[carscripts]/mh_garage/server/server.lua | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index c78749a0f..539f67ccf 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -3,9 +3,8 @@ local test_vari = {} RegisterServerEvent('mh_garage:setMods') AddEventHandler('mh_garage:setMods', function(mods) - print(mods.plate) if test_vari[mods.plate] == true then - print("Fahrzeug hat bereits ein Eintrag") + else MySQL.query("SELECT mods FROM player_vehicles WHERE plate = ?", {mods.plate}, function(rs) -- Prüfen ob rs überhaupt Daten enthält @@ -20,9 +19,6 @@ AddEventHandler('mh_garage:setMods', function(mods) else test_vari[mods.plate] = true end - else - -- Keine Ergebnisse gefunden - print("Keine Daten für Kennzeichen " .. mods.plate .. " gefunden") end end) end @@ -88,7 +84,7 @@ QBCore.Functions.CreateCallback('mh_garage:CallVehicles', function(source, cb, z if Config.CallKeyVehicles then MySQL.query("SELECT plate FROM vehicle_keys WHERE owner = ?", {Player.PlayerData.citizenid}, function(rs) - if rs[1] ~= nil then + if rs and rs[1] then for k, v in pairs(rs) do table.insert(vehicle_keys, {plate = v.plate}) end @@ -100,19 +96,21 @@ QBCore.Functions.CreateCallback('mh_garage:CallVehicles', function(source, cb, z print(json.encode(vehicle_keys)) for k, v in pairs(vehicle_keys) do MySQL.query("SELECT vehicle, plate, mods, name FROM player_vehicles WHERE plate = ?", {v.plate}, function(rs) - table.insert(vehicles, { - vehicle = rs[1].vehicle, - mods = rs[1].mods, - plate = rs[1].plate, - name = rs[1].name - }) + if rs and rs[1] then + table.insert(vehicles, { + vehicle = rs[1].vehicle, + mods = rs[1].mods, + plate = rs[1].plate, + name = rs[1].name + }) + end 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 + if rs and rs[1] then for k, v in pairs(rs) do table.insert(vehicles, { vehicle = v.vehicle, @@ -132,7 +130,7 @@ 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 + if rs and rs[1] then for k, v in pairs(rs) do table.insert(vehicles, { current_garage = v.garage, From 9c4920eaf5d06c088327b0d6aa4b3a681ef70f11 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:14:06 +0200 Subject: [PATCH 04/17] =?UTF-8?q?Zone=20Einstellung=20ge=C3=A4ndert,=20da?= =?UTF-8?q?=20ohne=20Funktion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/[carscripts]/mh_garage/client/main.lua | 13 +++++++------ .../[carscripts]/mh_garage/client/retrieve.lua | 4 ++-- resources/[carscripts]/mh_garage/client/stored.lua | 14 +++++++------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/resources/[carscripts]/mh_garage/client/main.lua b/resources/[carscripts]/mh_garage/client/main.lua index 06daa6bba..ada1d66a8 100644 --- a/resources/[carscripts]/mh_garage/client/main.lua +++ b/resources/[carscripts]/mh_garage/client/main.lua @@ -3,6 +3,7 @@ QBCore = exports['qb-core']:GetCoreObject() Player = nil local npcHandle = nil local isNPCSpawned = false +CurrentZone = nil Citizen.CreateThread(function() while Player == nil do @@ -79,10 +80,12 @@ CreateThread(function() local spawnDistance = v.NPC.distance if dist < spawnDistance and not isNPCSpawned then + CurrentZone = v SpawnGuardNPC(v.NPC) Wait(300) - AddTargetOptions(v) + AddTargetOptions() elseif dist > spawnDistance and isNPCSpawned then + CurrentZone = nil exports['qb-target']:RemoveTargetEntity(npcHandle) RemoveGuardNPC() end @@ -92,7 +95,7 @@ CreateThread(function() end end) -function AddTargetOptions(zone) +function AddTargetOptions()) local opt = { { @@ -100,14 +103,12 @@ function AddTargetOptions(zone) event = "mh_garage:storeVehicle", icon = "fas fa-parking", label = "Fahrzeug einparken", - args = zone }, { type = "client", event = "mh_garage:retrieveVehicle", icon = "fas fa-car", label = "Fahrzeug ausparken", - args = zone } } @@ -126,9 +127,9 @@ function AddTargetOptions(zone) }) end -function Notification(text, type, zone) +function Notification(text, type) lib.notify({ - title = "Garage - "..zone, + title = "Garage - "..CurrentZone.name, description = text, type = type, position = 'top', diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index 276140771..f9e3d7342 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -1,5 +1,5 @@ RegisterNetEvent('mh_garage:retrieveVehicle') -AddEventHandler('mh_garage:retrieveVehicle', function(zone) +AddEventHandler('mh_garage:retrieveVehicle', function() local ped = PlayerPedId() local coords = GetEntityCoords(ped) local random = SelectName() @@ -26,5 +26,5 @@ AddEventHandler('mh_garage:retrieveVehicle', function(zone) }) lib.showContext("retrieveVehicle") - end, zone.name) + end, CurrentZone.name) end) \ No newline at end of file diff --git a/resources/[carscripts]/mh_garage/client/stored.lua b/resources/[carscripts]/mh_garage/client/stored.lua index 5aaf6f973..20a4c50a4 100644 --- a/resources/[carscripts]/mh_garage/client/stored.lua +++ b/resources/[carscripts]/mh_garage/client/stored.lua @@ -1,5 +1,5 @@ RegisterNetEvent('mh_garage:storeVehicle') -AddEventHandler('mh_garage:storeVehicle', function(zone) +AddEventHandler('mh_garage:storeVehicle', function() local ped = PlayerPedId() local coords = GetEntityCoords(ped) local vehicles = GetGamePool('CVehicle') @@ -16,15 +16,15 @@ AddEventHandler('mh_garage:storeVehicle', function(zone) description = GetRandomCarDescription(), icon = "car", onSelect = function() - print(zone.price) - if zone.price ~= false then + print(CurrentZone.price) + if CurrentZone.price ~= false then lib.hideContext("StoredVehicles") lib.registerContext({ id = "thisVehicle", title = random.name, options = { - {title = "Kosten: "..zone.price}, + {title = "Kosten: "..CurrentZone.price}, {title = ""}, { title = "Akzeptieren", @@ -34,14 +34,14 @@ AddEventHandler('mh_garage:storeVehicle', function(zone) QBCore.Functions.TriggerCallback('mh_garage:storedVehicle', function(cb) if cb.status then DeleteVehicle(vehicles[i]) - Notification(cb.text, cb.type, zone.name) + Notification(cb.text, cb.type, CurrentZone.name) else if cb.police and Config.EnabledPolice then exports["roadphone"]:sendDispatch("Hier hat grade jemand versucht, ein Fahrzeug einzuparken.\nDas Zündschloss sah Beschädigt aus.\nKennzeichen: "..veh.plate, 'police', nil) end Notification(cb.text, cb.type) end - end, veh, zone) + end, veh, CurrentZone) end }, { @@ -57,7 +57,7 @@ AddEventHandler('mh_garage:storeVehicle', function(zone) lib.showContext("thisVehicle") else - StoredVehicle(vehicles[i], zone) + StoredVehicle(vehicles[i], CurrentZone) end end }) From 57477731ab1be108b363f080ca432822ca8866fb Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:14:54 +0200 Subject: [PATCH 05/17] Update main.lua --- resources/[carscripts]/mh_garage/client/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/client/main.lua b/resources/[carscripts]/mh_garage/client/main.lua index ada1d66a8..b33ca9848 100644 --- a/resources/[carscripts]/mh_garage/client/main.lua +++ b/resources/[carscripts]/mh_garage/client/main.lua @@ -95,7 +95,7 @@ CreateThread(function() end end) -function AddTargetOptions()) +function AddTargetOptions() local opt = { { From 36dd7753f7f5c53937df5bbce996df760ff96fe8 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:19:22 +0200 Subject: [PATCH 06/17] Update stored.lua --- resources/[carscripts]/mh_garage/client/stored.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/[carscripts]/mh_garage/client/stored.lua b/resources/[carscripts]/mh_garage/client/stored.lua index 20a4c50a4..6c27c421a 100644 --- a/resources/[carscripts]/mh_garage/client/stored.lua +++ b/resources/[carscripts]/mh_garage/client/stored.lua @@ -24,11 +24,12 @@ AddEventHandler('mh_garage:storeVehicle', function() id = "thisVehicle", title = random.name, options = { - {title = "Kosten: "..CurrentZone.price}, - {title = ""}, + {title = "Kosten: "..CurrentZone.price.."$"}, + {title = "", disabled = true}, { title = "Akzeptieren", description = "Geld wird vom Bankkonto abgebucht!", + icon = "check", onSelect = function() lib.hideContext("thisVehicle") QBCore.Functions.TriggerCallback('mh_garage:storedVehicle', function(cb) @@ -41,7 +42,7 @@ AddEventHandler('mh_garage:storeVehicle', function() end Notification(cb.text, cb.type) end - end, veh, CurrentZone) + end, mods, CurrentZone) end }, { From 23eeffc5e221a041785213adb18eb52d37d1063a Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:23:13 +0200 Subject: [PATCH 07/17] Update server.lua --- resources/[carscripts]/mh_garage/server/server.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index 539f67ccf..c8220326a 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -31,7 +31,7 @@ QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, 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}) + MySQL.query("UPDATE player_vehicles SET garage = ?, parking = ? WHERE plate = ?", {zone.name, true, veh.plate}) DelVehParking(veh.plate) cb({ status = true, @@ -43,7 +43,7 @@ QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, 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}) + MySQL.query("UPDATE player_vehicles SET garage = ?, parking = ? WHERE plate = ?", {zone.name, true, veh.plate}) DelVehParking(veh.plate) cb({ status = true, From ae81b1692e401d1b09e86207bab85741c73fd527 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:25:22 +0200 Subject: [PATCH 08/17] Update server.lua --- resources/[carscripts]/mh_garage/server/server.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index c8220326a..b13b2769d 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -44,6 +44,7 @@ QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, 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 = ?, parking = ? WHERE plate = ?", {zone.name, true, veh.plate}) + TriggerEvent('mh_Parking:removeVehicle', source, ve.plate) DelVehParking(veh.plate) cb({ status = true, From 07afb486b64dad6623e4566f624b4ee8feac91a6 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:26:52 +0200 Subject: [PATCH 09/17] Update server.lua --- resources/[carscripts]/mh_garage/server/server.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index b13b2769d..74d2dc2f6 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -44,7 +44,7 @@ QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, 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 = ?, parking = ? WHERE plate = ?", {zone.name, true, veh.plate}) - TriggerEvent('mh_Parking:removeVehicle', source, ve.plate) + TriggerEvent('mh_Parking:removeVehicle', source, veh.plate) DelVehParking(veh.plate) cb({ status = true, From 567976fde159dcc19923c00985727d95e2e6e7a3 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:33:22 +0200 Subject: [PATCH 10/17] [GARAGE] --- resources/[carscripts]/mh_Parking/server.lua | 1 + resources/[carscripts]/mh_garage/client/stored.lua | 3 ++- resources/[carscripts]/mh_garage/server/server.lua | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/[carscripts]/mh_Parking/server.lua b/resources/[carscripts]/mh_Parking/server.lua index afda3b062..4ae686fe0 100644 --- a/resources/[carscripts]/mh_Parking/server.lua +++ b/resources/[carscripts]/mh_Parking/server.lua @@ -741,6 +741,7 @@ end RegisterNetEvent('mh_Parking:removeVehicle') AddEventHandler('mh_Parking:removeVehicle', function(plate) + print("mh_parking: "..plate) vehicles[plate] = nil end) diff --git a/resources/[carscripts]/mh_garage/client/stored.lua b/resources/[carscripts]/mh_garage/client/stored.lua index 6c27c421a..63baddbf4 100644 --- a/resources/[carscripts]/mh_garage/client/stored.lua +++ b/resources/[carscripts]/mh_garage/client/stored.lua @@ -34,7 +34,8 @@ AddEventHandler('mh_garage:storeVehicle', function() lib.hideContext("thisVehicle") QBCore.Functions.TriggerCallback('mh_garage:storedVehicle', function(cb) if cb.status then - DeleteVehicle(vehicles[i]) + TriggerServerEvent('mh_Parking:deleteVehicle', veh.plate, NetworkGetNetworkIdFromEntity(vehicles[i])) + --DeleteVehicle(vehicles[i]) Notification(cb.text, cb.type, CurrentZone.name) else if cb.police and Config.EnabledPolice then diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index 74d2dc2f6..db234bcf9 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -44,8 +44,8 @@ QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, 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 = ?, parking = ? WHERE plate = ?", {zone.name, true, veh.plate}) - TriggerEvent('mh_Parking:removeVehicle', source, veh.plate) - DelVehParking(veh.plate) + --TriggerEvent('mh_Parking:removeVehicle', source, veh.plate) + --DelVehParking(veh.plate) cb({ status = true, text = "Fahrzeug erfolgreich eingeparkt!", From a883c25a0cc0f2cfb073bb47bfbbd143d7a4a706 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:34:36 +0200 Subject: [PATCH 11/17] Update stored.lua --- resources/[carscripts]/mh_garage/client/stored.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/client/stored.lua b/resources/[carscripts]/mh_garage/client/stored.lua index 63baddbf4..a21e0557e 100644 --- a/resources/[carscripts]/mh_garage/client/stored.lua +++ b/resources/[carscripts]/mh_garage/client/stored.lua @@ -34,7 +34,7 @@ AddEventHandler('mh_garage:storeVehicle', function() lib.hideContext("thisVehicle") QBCore.Functions.TriggerCallback('mh_garage:storedVehicle', function(cb) if cb.status then - TriggerServerEvent('mh_Parking:deleteVehicle', veh.plate, NetworkGetNetworkIdFromEntity(vehicles[i])) + TriggerServerEvent('mh_Parking:deleteVehicle', mods.plate, NetworkGetNetworkIdFromEntity(vehicles[i])) --DeleteVehicle(vehicles[i]) Notification(cb.text, cb.type, CurrentZone.name) else From 6afe0567f872d794ed7dcc21ac1118cce660ccee Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:41:12 +0200 Subject: [PATCH 12/17] Update retrieve.lua --- resources/[carscripts]/mh_garage/client/retrieve.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index f9e3d7342..e3485ca8c 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -11,7 +11,7 @@ AddEventHandler('mh_garage:retrieveVehicle', function() for i = 1, #cb, 1 do table.insert(opt, { title = cb[i].name, - description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..cb[i].mods.fuelLevel.."%", + description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..cb[i].mods.["fuelLevel"].."%", icon = "car", onSelect = function() SpawnThisVehicle(cb[i]) From c9bb198d1395bc9a9318eb1827bea7720cf74d0f Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:43:25 +0200 Subject: [PATCH 13/17] Update retrieve.lua --- resources/[carscripts]/mh_garage/client/retrieve.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index e3485ca8c..919290a75 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -11,7 +11,7 @@ AddEventHandler('mh_garage:retrieveVehicle', function() for i = 1, #cb, 1 do table.insert(opt, { title = cb[i].name, - description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..cb[i].mods.["fuelLevel"].."%", + description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..cb[i].mods["fuelLevel"].."%", icon = "car", onSelect = function() SpawnThisVehicle(cb[i]) From 59da814bca0f7fb12e82296c43221635b6154d66 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:48:19 +0200 Subject: [PATCH 14/17] Update retrieve.lua --- resources/[carscripts]/mh_garage/client/retrieve.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index 919290a75..6c26eab32 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -9,11 +9,13 @@ AddEventHandler('mh_garage:retrieveVehicle', function() QBCore.Functions.TriggerCallback('mh_garage:CallVehicles', function(cb) Debug(json.encode(cb)) for i = 1, #cb, 1 do + local mods = json.decode(cb[i].mods) table.insert(opt, { title = cb[i].name, - description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..cb[i].mods["fuelLevel"].."%", + description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..mods.fuelLevel.."%", icon = "car", onSelect = function() + cb[i].mods = mods SpawnThisVehicle(cb[i]) end }) @@ -27,4 +29,8 @@ AddEventHandler('mh_garage:retrieveVehicle', function() lib.showContext("retrieveVehicle") end, CurrentZone.name) -end) \ No newline at end of file +end) + +function SpawnThisVehicle(veh) + print("Spawn VEhicle") +end \ No newline at end of file From e89bac3c6de705095deef43a1919e8c17bbc7957 Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 18:49:12 +0200 Subject: [PATCH 15/17] Update retrieve.lua --- resources/[carscripts]/mh_garage/client/retrieve.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index 6c26eab32..5fb26ea5d 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -12,7 +12,7 @@ AddEventHandler('mh_garage:retrieveVehicle', function() local mods = json.decode(cb[i].mods) table.insert(opt, { title = cb[i].name, - description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..mods.fuelLevel.."%", + description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..math.random(mods.fuelLevel, 2).."%", icon = "car", onSelect = function() cb[i].mods = mods From 8042ad195dfe8308c8460355f7ac0bf4b9a2fa2d Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 19:05:18 +0200 Subject: [PATCH 16/17] [GARAGE] Ausparken --- .../mh_garage/client/retrieve.lua | 77 ++++++++++++++++++- .../[carscripts]/mh_garage/server/server.lua | 5 ++ 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index 5fb26ea5d..fff25a8a5 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -31,6 +31,79 @@ AddEventHandler('mh_garage:retrieveVehicle', function() end, CurrentZone.name) end) -function SpawnThisVehicle(veh) - print("Spawn VEhicle") +function SpawnThisVehicle(vehicle) + local spawnPoint = nil + + -- Freien Spawnpunkt suchen + for _, spot in pairs(CurrentZone.vehicle_spawn) do + if not IsAnyVehicleNearPoint(spot.x, spot.y, spot.z, 3.0) then + spawnPoint = spot + break + end + end + + if spawnPoint then + QBCore.Functions.SpawnVehicle(vehicle.vehicle, function(veh) + -- Fahrzeug ID für Server + local netId = NetworkGetNetworkIdFromEntity(veh) + + -- Grundeinstellungen + SetVehicleNumberPlateText(veh, vehicle.plate) + SetVehicleDoorsLocked(veh, 0) + SetEntityHeading(veh, spawnPoint.w) + + -- Motor aus + SetVehicleEngineOn(veh, false, true, true) + + -- Fahrzeug Eigenschaften + local mods = type(vehicle.mods) == 'string' and json.decode(vehicle.mods) or vehicle.mods + + -- Grundwerte setzen + SetVehicleFuelLevel(veh, mods.fuelLevel) + SetVehicleEngineHealth(veh, mods.engineHealth) + SetVehicleBodyHealth(veh, mods.bodyHealth) + SetVehicleDirtLevel(veh, mods.dirtLevel) + + -- Türen Status + if mods.doorStatus then + for doorIndex = 0, 5 do + if mods.doorStatus[tostring(doorIndex)] then + SetVehicleDoorBroken(veh, doorIndex, true) + end + end + end + + -- Fenster Status + if mods.windowStatus then + for windowIndex = 0, 7 do + if not mods.windowStatus[tostring(windowIndex)] then + SmashVehicleWindow(veh, windowIndex) + end + end + end + + -- Alle Mods anwenden + QBCore.Functions.SetVehicleProperties(veh, mods) + + -- Fahrzeug auf den Boden setzen + SetVehicleOnGroundProperly(veh) + + -- Server über gespawntes Fahrzeug informieren + TriggerServerEvent('mh_garage:spawnedVehicle', netId, vehicle.plate) + + -- Optional: Erfolgsmeldung + lib.notify({ + title = "Fahrzeug geparkt...", + description = "Dein Fahrzeug steht auf Parkplatz "..math.random(1, 15), + type = "success" + }) + end, vector3(spawnPoint.x, spawnPoint.y, spawnPoint.z), true) + else + QBCore.Functions.Notify('Alle Parkplätze sind belegt!', 'error') + lib.notify({ + title = "Fahrzeug nicht gefunden", + description = "Alle Parkplätze sind belegt!", + type = "success" + }) + end end \ No newline at end of file diff --git a/resources/[carscripts]/mh_garage/server/server.lua b/resources/[carscripts]/mh_garage/server/server.lua index db234bcf9..33110e5cc 100644 --- a/resources/[carscripts]/mh_garage/server/server.lua +++ b/resources/[carscripts]/mh_garage/server/server.lua @@ -143,4 +143,9 @@ QBCore.Functions.CreateCallback('mh_garage:verwaltung', function(source, cb) end end) return vehicles +end) + +RegisterServerEvent('mh_garage:spawnedVehicle') +AddEventHandler('mh_garage:spawnedVehicle', function(netID, plate) + MySQL.query("UPDATE player_vehicles SET parking = ? WHERE plate = ?", {0, plate}) end) \ No newline at end of file From dd0d60c6af4b0a0252bc7e4108e67f2998e417cc Mon Sep 17 00:00:00 2001 From: Miho931 <98314142+Miho931@users.noreply.github.com> Date: Mon, 9 Jun 2025 19:09:17 +0200 Subject: [PATCH 17/17] Update retrieve.lua --- resources/[carscripts]/mh_garage/client/retrieve.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/[carscripts]/mh_garage/client/retrieve.lua b/resources/[carscripts]/mh_garage/client/retrieve.lua index fff25a8a5..b654518f6 100644 --- a/resources/[carscripts]/mh_garage/client/retrieve.lua +++ b/resources/[carscripts]/mh_garage/client/retrieve.lua @@ -12,7 +12,7 @@ AddEventHandler('mh_garage:retrieveVehicle', function() local mods = json.decode(cb[i].mods) table.insert(opt, { title = cb[i].name, - description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..math.random(mods.fuelLevel, 2).."%", + description = "Kennzeichen: "..cb[i].plate.."\nTankinhalt: "..math.round(mods.fuelLevel, 2).."%", icon = "car", onSelect = function() cb[i].mods = mods