159 lines
		
	
	
		
			No EOL
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			No EOL
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| QBCore = exports['qb-core']:GetCoreObject()
 | |
| local test_vari = {}
 | |
| 
 | |
| RegisterServerEvent('mh_garage:setMods')
 | |
| AddEventHandler('mh_garage:setMods', function(mods)
 | |
|     if test_vari[mods.plate] == true then
 | |
|         return
 | |
|     else
 | |
|         MySQL.query("SELECT mods FROM player_vehicles WHERE plate = ?", {mods.plate}, function(rs)
 | |
|             -- 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
 | |
|             end
 | |
|         end)
 | |
|     end
 | |
| end)
 | |
| 
 | |
| 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 = ?, mods = ? WHERE plate = ?", {zone.name, json.encode(veh), 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 = ?, mods = ? WHERE plate = ?", {zone.name, json.encode(veh), veh.plate})
 | |
|                             --TriggerEvent('mh_Parking:removeVehicle', source, 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:retrieveOwnerVehicle', function(source, cb, zone)
 | |
|     local _source = source
 | |
|     local Player = QBCore.Functions.GetPlayer(_source)
 | |
|     local pedid = Player.PlayerData.citizenid
 | |
|     local veh = {}
 | |
|     
 | |
|     MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? and garage = ?", {pedid, zone}, function(rs)
 | |
|         if rs ~= nil and rs[1] ~= nil then
 | |
|             for k, v in pairs (rs) do
 | |
|                 table.insert(veh, {
 | |
|                     vehicle = v.vehicle,
 | |
|                     mods = v.mods, 
 | |
|                     plate = v.plate,
 | |
|                     name = v.name
 | |
|                 })
 | |
|             end
 | |
|             Wait(100)
 | |
|             cb(veh)
 | |
|         else
 | |
|             cb(false)
 | |
|         end
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| QBCore.Functions.CreateCallback('mh_garage:retrieveKeyVehicle', function(source, cb, zone)
 | |
|     local _source = source
 | |
|     local Player = QBCore.Functions.GetPlayer(_source)
 | |
|     local pedid = Player.PlayerData.citizenid
 | |
|     local veh = {}
 | |
|     
 | |
|     MySQL.query("SELECT pv.* FROM player_vehicles pv JOIN vehicle_keys vk ON pv.plate = vk.plate WHERE vk.owner = ? AND vk.count > 0 AND pv.garage = ?", {pedid, zone}, function(vehicles)
 | |
|     if vehicles and #vehicles > 0 then
 | |
|         for _, vehicle in pairs(vehicles) do
 | |
|             table.insert(veh, {
 | |
|                 vehicle = vehicle.vehicle,
 | |
|                 mods = vehicle.mods, 
 | |
|                 plate = vehicle.plate,
 | |
|                 name = vehicle.name
 | |
|             })
 | |
|         end
 | |
|         Wait(100)
 | |
|         cb(veh)
 | |
|     else
 | |
|         cb(false)
 | |
|     end
 | |
| end)
 | |
| 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 and rs[1] 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)
 | |
| 
 | |
| RegisterServerEvent('mh_garage:spawnedVehicle')
 | |
| AddEventHandler('mh_garage:spawnedVehicle', function(netID, plate)
 | |
|     MySQL.query("UPDATE player_vehicles SET garage = ? WHERE plate = ?", {"OUT", plate})
 | |
| end)
 | |
| 
 | |
| QBCore.Functions.CreateCallback('mh_garage:CheckownerVehicles', function(source, cb, plate)
 | |
|     MySQL.query("SELECT * FROM player_vehicles WHERE plate = ?", {plate}, function(rs)
 | |
|         if rs ~= nil and rs[1] ~= nil then
 | |
|             cb(true)
 | |
|         else
 | |
|             cb(false)
 | |
|         end
 | |
|     end)
 | |
| end) | 
