151 lines
		
	
	
		
			No EOL
		
	
	
		
			6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			No EOL
		
	
	
		
			6 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
 | 
						|
        
 | 
						|
    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: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 and rs[1] then
 | 
						|
                for k, v in pairs(rs) do
 | 
						|
                    table.insert(vehicle_keys, {plate = v.plate})
 | 
						|
                end
 | 
						|
            end
 | 
						|
        end)
 | 
						|
 | 
						|
        Wait(100)
 | 
						|
        if vehicle_keys[1] ~= nil then
 | 
						|
            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)
 | 
						|
                    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 and rs[1] 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 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) |