diff --git a/resources/[jobs]/[civ]/mh_jobgarage/client/client.lua b/resources/[jobs]/[civ]/mh_jobgarage/client/client.lua index 7d9a56c28..75633a92f 100644 --- a/resources/[jobs]/[civ]/mh_jobgarage/client/client.lua +++ b/resources/[jobs]/[civ]/mh_jobgarage/client/client.lua @@ -1,148 +1,148 @@ -QBCore = exports['qb-core']:GetCoreObject() -isInZone = false -Zone = nil - --- SetPosition -Citizen.CreateThread(function() - while true do - local sleep = 1000 - local ped = PlayerPedId() - local coords = GetEntityCoords(ped) - local isInMarker = false - local Player = QBCore.Functions.GetPlayerData() - - - if Player and Player.job then - for k, v in pairs(Config.Zonen) do - local dist = #(coords - v.Schluesselkasten) - if dist < Config.DrawDistance and Player.job.name == v.Job then - sleep = 0 - DrawMarker(v.Marker.type, v.Schluesselkasten.x, v.Schluesselkasten.y, v.Schluesselkasten.z + 0.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, v.Marker.x, v.Marker.y, v.Marker.z, v.Marker.r, v.Marker.g, v.Marker.b, v.Marker.a, false, false, 2, v.Marker.rotate, nil, nil, false) - - if dist < 2.0 then - if not isInZone then - Zone = v - isInZone = true - TextUI(true, "[E] - Schlüsselkasten öffnen.") - end - if IsControlJustReleased(0, 38) then - QBCore.Functions.TriggerCallback('mh_jobgarage:CallVehiclesInfo', function(cb) - OpenMenu(cb) - end, Player.job.name) - end - else - if isInZone then - Zone = nil - isInZone = false - TextUI(false) - end - end - end - - end - end - Citizen.Wait(sleep) - end -end) - -function OpenMenu(vehicles) - local opt = {} - local Player = QBCore.Functions.GetPlayerData() - - if Player.job.grade.level == Zone.Chiefrang then - table.insert(opt, { - title = "Fahrzeug Einstellungen", - description = "Fahrzeuge verwalten", - icon = "gears", - onSelect = function() - lib.hideContext("OpenMenu") - - OpenChiefMenu(vehicles) - end - }) - table.insert(opt, { - title = "", - disabled = true - }) - end - - table.insert(opt, { - title = "Alle Schlüssel zurück geben!", - description = "Gibt alle vorhandenen Schlüssel zurück!", - icon = "keys", - onSelect = function() - TriggerServerEvent('mh_jobgarage:GiveAllKeysBack', vehicles) - end - }) - table.insert(opt, { - title = "", - disabled = true - }) - - if vehicles then - for k, v in pairs(vehicles) do - table.insert(opt, { - title = v.name, - description = v.key_value.."x Schlüssel vorhanden.", - icon = "car", - onSelect = function() - OpenKeyMenu(v) - end - }) - end - end - - lib.registerContext({ - id = 'OpenMenu', - title = "Schlüsselkasten", - options = opt - }) - - lib.showContext('OpenMenu') -end - -function OpenKeyMenu(veh) - local dis = false - local closedVeh = "Nein" - local meta = {{label = "Noch "..veh.key_value.." Schlüssel vorhanden!"}} - if veh.closed == "true" then - dis = true - closedVeh = "Dieses Fahrzeug ist gesperrt!!!" - meta = {{label = "Keine Schlüssel mehr im Kasten!"}} - end - lib.registerContext({ - id = 'OpenKeyMenu', - title = "Schlüsselkasten", - description = "Fahrzeug:"..veh.name.."\nKennzeichen:"..veh.plate.."\nSchlüsselanzahl:"..veh.key_value.."\nGesperrt:"..closedVeh, - icon = "plus", - options = { - { - title = "Schlüssel nehmen", - description = "Gibt dir ein Schlüssel für den "..veh.name, - disabled = dis, - icon = "plus", - onSelect = function() - print("Trigger ADDVEHICLE KEY") - TriggerServerEvent('mh_jobgarage:AddVehicleKey', veh) - end, - metadata = meta - }, - { - title = "", - disabled = true - }, - { - title = "Schlüssel geben", - description = "Nimmt dir ein Schlüssel für den "..veh.name.." ab.", - icon = "minus", - onSelect = function() - print("Trigger DELVEHICLE KEY") - TriggerServerEvent('mh_jobgarage:DelVehicleKey', veh) - end - } - } - }) - - lib.showContext('OpenKeyMenu') -end - +QBCore = exports['qb-core']:GetCoreObject() +isInZone = false +Zone = nil + +-- SetPosition +Citizen.CreateThread(function() + while true do + local sleep = 1000 + local ped = PlayerPedId() + local coords = GetEntityCoords(ped) + local isInMarker = false + local Player = QBCore.Functions.GetPlayerData() + + + if Player and Player.job then + for k, v in pairs(Config.Zonen) do + local dist = #(coords - v.Schluesselkasten) + if dist < Config.DrawDistance and Player.job.name == v.Job then + sleep = 0 + DrawMarker(v.Marker.type, v.Schluesselkasten.x, v.Schluesselkasten.y, v.Schluesselkasten.z + 0.7, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, v.Marker.x, v.Marker.y, v.Marker.z, v.Marker.r, v.Marker.g, v.Marker.b, v.Marker.a, false, false, 2, v.Marker.rotate, nil, nil, false) + + if dist < 2.0 then + if not isInZone then + Zone = v + isInZone = true + TextUI(true, "[E] - Schlüsselkasten öffnen.") + end + if IsControlJustReleased(0, 38) then + QBCore.Functions.TriggerCallback('mh_jobgarage:CallVehiclesInfo', function(cb) + OpenMenu(cb) + end, Player.job.name) + end + else + if isInZone then + Zone = nil + isInZone = false + TextUI(false) + end + end + end + + end + end + Citizen.Wait(sleep) + end +end) + +function OpenMenu(vehicles) + local opt = {} + local Player = QBCore.Functions.GetPlayerData() + + if Player.job.grade.level >= Zone.Chiefrang then + table.insert(opt, { + title = "Fahrzeug Einstellungen", + description = "Fahrzeuge verwalten", + icon = "gears", + onSelect = function() + lib.hideContext("OpenMenu") + + OpenChiefMenu(vehicles) + end + }) + table.insert(opt, { + title = "", + disabled = true + }) + end + + table.insert(opt, { + title = "Alle Schlüssel zurück geben!", + description = "Gibt alle vorhandenen Schlüssel zurück!", + icon = "keys", + onSelect = function() + TriggerServerEvent('mh_jobgarage:GiveAllKeysBack', vehicles) + end + }) + table.insert(opt, { + title = "", + disabled = true + }) + + if vehicles then + for k, v in pairs(vehicles) do + table.insert(opt, { + title = v.name, + description = v.key_value.."x Schlüssel vorhanden.", + icon = "car", + onSelect = function() + OpenKeyMenu(v) + end + }) + end + end + + lib.registerContext({ + id = 'OpenMenu', + title = "Schlüsselkasten", + options = opt + }) + + lib.showContext('OpenMenu') +end + +function OpenKeyMenu(veh) + local dis = false + local closedVeh = "Nein" + local meta = {{label = "Noch "..veh.key_value.." Schlüssel vorhanden!"}} + if veh.closed == "true" then + dis = true + closedVeh = "Dieses Fahrzeug ist gesperrt!!!" + meta = {{label = "Keine Schlüssel mehr im Kasten!"}} + end + lib.registerContext({ + id = 'OpenKeyMenu', + title = "Schlüsselkasten", + description = "Fahrzeug:"..veh.name.."\nKennzeichen:"..veh.plate.."\nSchlüsselanzahl:"..veh.key_value.."\nGesperrt:"..closedVeh, + icon = "plus", + options = { + { + title = "Schlüssel nehmen", + description = "Gibt dir ein Schlüssel für den "..veh.name, + disabled = dis, + icon = "plus", + onSelect = function() + print("Trigger ADDVEHICLE KEY") + TriggerServerEvent('mh_jobgarage:AddVehicleKey', veh) + end, + metadata = meta + }, + { + title = "", + disabled = true + }, + { + title = "Schlüssel geben", + description = "Nimmt dir ein Schlüssel für den "..veh.name.." ab.", + icon = "minus", + onSelect = function() + print("Trigger DELVEHICLE KEY") + TriggerServerEvent('mh_jobgarage:DelVehicleKey', veh) + end + } + } + }) + + lib.showContext('OpenKeyMenu') +end + diff --git a/resources/[jobs]/[civ]/mh_jobgarage/server/s_function.lua b/resources/[jobs]/[civ]/mh_jobgarage/server/s_function.lua index 47d256f57..8cd366b6d 100644 --- a/resources/[jobs]/[civ]/mh_jobgarage/server/s_function.lua +++ b/resources/[jobs]/[civ]/mh_jobgarage/server/s_function.lua @@ -1,19 +1,19 @@ -function CheckVehicleOwner(id, plate) - MySQL.query.await("SELECT * FROM player_vehicles WHERE citizenid = ? and plate = ?", {id, plate}, function(rs) - if rs ~= nil then - return true - else - return false - end - end) -end - -function CheckEintrag_v_key(id, plate) - MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {id, plate}, function(rs) - if rs ~= nil then - return true - else - return false - end - end) +function CheckVehicleOwner(id, plate) + MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? and plate = ?", {id, plate}, function(rs) + if rs ~= nil then + return true + else + return false + end + end) +end + +function CheckEintrag_v_key(id, plate) + MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {id, plate}, function(rs) + if rs ~= nil then + return true + else + return false + end + end) end \ No newline at end of file diff --git a/resources/[jobs]/[civ]/mh_jobgarage/server/server.lua b/resources/[jobs]/[civ]/mh_jobgarage/server/server.lua index d832d5d35..21585a3a1 100644 --- a/resources/[jobs]/[civ]/mh_jobgarage/server/server.lua +++ b/resources/[jobs]/[civ]/mh_jobgarage/server/server.lua @@ -1,234 +1,234 @@ -QBCore = exports['qb-core']:GetCoreObject() - -QBCore.Functions.CreateCallback('mh_jobgarage:CallVehiclesInfo', function(source, cb, job) - local result = {} - MySQL.query("SELECT * FROM mh_jobgarage WHERE job = ?", {job}, function(rs) - if rs[1] ~= nil then - for k, v in pairs(rs) do - table.insert(result, {plate = v.plate, key_value = v.value, name = v.name, closed = v.closed}) - end - else - result = false - end - cb(result) - end) -end) - --- mh_jobgarage:AddVehicleToJob VARIABLEN: - -QBCore.Functions.CreateCallback('mh_jobgarage:AddVehicleToJob', function(source, cb, plate, stats) - local Player = QBCore.Functions.GetPlayer(source) - local pedid = Player.PlayerData.citizenid - local pedjob = Player.PlayerData.job.name - - local isOwner = MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? and plate = ?", {pedid, plate}) - local haveKeys = MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, plate}) - - if isOwner and haveKeys then - if haveKeys[1].count == stats[2] then - MySQL.query("DELETE FROM vehicle_keys SET owner = ? AND plate = ?", {pedid, plate}) - elseif haveKeys[1].count > stats[2] then - MySQL.query("UPDATE vehicle_keys SET count = count - ? WHERE owner = ? and plate = ?", {stats[2], pedid, plate}) - end - - MySQL.query("INSERT INTO mh_jobgarage(job, rang, value, plate, name, closed) VALUES (?, ?, ?, ?, ?, ?)", {pedjob, stats[3], stats[2], plate, stats[1], "false"}, function(rs) - if rs then - MySQL.query("UPDATE player_vehicles SET citizenid = ? WHERE owner = ? and plate = ?", {"11111111111", pedid, plate}) - cb({ - status = true, - text = "Fahrzeug wurde Hinzugefügt!", - type ="success" - }) - end - end) - else - if not isOwner then - cb({ - status = false, - text = "Du bist nicht der Besitzer vom Fahrzeug!", - type ="warning" - }) - elseif not haveKeys then - cb({ - status = false, - key = true, - text = "Du hast keinen Ersatzschlüssel, Stelle erst welche her. \nMakierung wurde dir gesetzt!", - type = "inform" - }) - end - end -end) - - -RegisterServerEvent('mh_jobgarage:DeleteFromList') -AddEventHandler('mh_jobgarage:DeleteFromList', function(plate) - local _source = source - local Player = QBCore.Functions.GetPlayer(_source) - local pedid = Player.PlayerData.citizenid - local veh_opt = MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {plate}) - - MySQL.query("SELECT * FROM vehicle_keys WHERE plate = ? and owner = ?", {plate, pedid}, function(rs) - if rs[1] ~= nil then - MySQL.query("UPDATE vehicle_keys SET count = count + ? WHERE plate = ? and owner = ?", {rs[1].count, plate, pedid},function(rowsChange) - if rowsChange then - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Du hast "..rs[1].count.."x Schlüssel bekommen.", "success") - end - end) - else - MySQL.query("INSERT INTO vehicle_keys(owner, plate, count) VALUES (?, ?, ?)", {pedid, plate, rs[1].count}, function(rowsChange) - if rowsChange then - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Du hast "..rs[1].count.."x Schlüssel bekommen.", "success") - end - end) - end - end) - - MySQL.query("UPDATE player_vehicles SET citizenid = ? WHERE plate = ?", {pedid, plate}) - - MySQL.query("DELETE FROM mh_jobgarage WHERE plate = ?", {plate}) -end) - -QBCore.Functions.CreateCallback('mh_jobgarage:lockVehicle', function(source, cb, plate) - MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {plate}, function(rs) - if rs[1] ~= nil then - if rs[1].closed == "true" then - MySQL.query("UPDATE mh_jobgarage SET closed = ? WHERE plate = ?", {'false', plate}) - cb(true) - elseif rs[1].closed == "false" then - MySQL.query("UPDATE mh_jobgarage SET closed = ? WHERE plate = ?", {'true', plate}) - cb(true) - end - end - end) - Wait(300) - cb(false) -end) - -RegisterServerEvent('mh_jobgarage:RemoveKeys') -AddEventHandler('mh_jobgarage:RemoveKeys', function(plate, value) - local _source = source - local Player = QBCore.Functions.GetPlayer(source) - local pedid = Player.PlayerData.citizenid - MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {plate}, function(rs) - if rs ~= nil then - MySQL.query("UPDATE mh_jobgarage SET value = value - ? WHERE plate = ?", {value, plate}, function(rs) - if rs ~= nil then - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", value.."x Schlüssel für das Fahrzeug mit dem Kennzeichen: "..plate.." Entfernt.", "success") - local havekey = CheckEintrag_v_key(pedid, plate) - if havekey then - MySQL.query("UPDATE vehicle_keys SET count = count + ? WHERE owner = ? and plate = ?", {value, pedid, plate}) - else - MySQL.query("INSERT INTO vehicle_keys(owner, plate, count) VALUES (?, ?, ?)", {pedid, plate, value}) - end - else - TriggerClientEvent('mh_jobgarage:notify', _source, "Fehler! Fahrzeug nicht mehr da!", "error") - end - end) - end - end) -end) - -RegisterServerEvent('mh_jobgarage:AddKeys') -AddEventHandler('mh_jobgarage:AddKeys', function(plate, value) - local _source = source - local Player = QBCore.Functions.GetPlayer(source) - local pedid = Player.PlayerData.citizenid - MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, plate}, function(rs) - if rs then - if rs[1].count > value then - MySQL.query("UPDATE vehicle_keys SET count = count - ? WHERE owner = ? and plate = ?", {value, pedid, plate}) - MySQL.query("UPDATE mh_jobgarage SET value = value + ? WHERE plate = ?", {value, plate}) - TriggerClientEvent('mh_jobgarage:notify', _source, "Du hast "..value.."x Schlüssel Hinzugefügt!", "success") - elseif rs[1].count == value then - MySQL.query("DELETE FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, plate}) - MySQL.query("UPDATE mh_jobgarage SET value = value + ? WHERE plate = ?", {value, plate}) - TriggerClientEvent('mh_jobgarage:notify', _source, "Du hast "..value.."x Schlüssel Hinzugefügt!", "success") - else - TriggerClientEvent('mh_jobgarage:notify', _source, "Du hast versucht mehr Schlüssel reinzupacken als du hast!", "error") - end - else - TriggerClientEvent('mh_jobgarage:notify', _source, "Du Besitzt kein Ersatzschlüssel, fertige erst welche an!", "inform") - end - end) -end) - -RegisterServerEvent('mh_jobgarage:ChangeName') -AddEventHandler('mh_jobgarage:ChangeName', function(plate, name) - local _source = source - MySQL.query("UPDATE mh_jobgarage SET name = ? WHERE plate = ?", {name, plate}, function(rs) - if rs then - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Anzeigename geändert auf '"..name.."'.", "success") - else - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Wurde das Fahrzeug grade Entfernt? bitte Prüfen und erneut versuchen...", "success") - end - end) -end) - -RegisterServerEvent('mh_jobgarage:AddVehicleKey') -AddEventHandler('mh_jobgarage:AddVehicleKey', function(veh) - local _source = source - local Player = QBCore.Functions.GetPlayer(_source) - local pedid = Player.PlayerData.citizenid - - MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {veh.plate}, function(rs) - if rs then - if rs[1].value < 1 then - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Keine Schlüssel mehr vorhanden!", "inform") - else - MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, veh.plate}, function(rs) - print(json.encode(rs)) - if rs[1] ~= nil then - MySQL.query("UPDATE vehicle_keys SET count = count + 1 WHERE owner = ? and plate = ?", {pedid, veh.plate}) - else - MySQL.query("INSERT INTO vehicle_keys(owner, plate, count) VALUES (?, ?, ?)", {pedid, veh.plate, 1}) - end - MySQL.query("UPDATE mh_jobgarage SET value = value - 1 WHERE plate = ?", {veh.plate}) - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Du hast dir ein Schlüssel für den "..veh.name.." genommen!", "success") - end) - end - end - end) -end) - -RegisterServerEvent('mh_jobgarage:DelVehicleKey') -AddEventHandler('mh_jobgarage:DelVehicleKey', function(veh) - local _source = source - local Player = QBCore.Functions.GetPlayer(source) - local pedid = Player.PlayerData.citizenid - print("DEL 1") - MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, veh.plate}, function(rs) - if rs then - print("DEL 2") - if rs[1].count > 1 then - print("DEL 3") - MySQL.query("UPDATE vehicle_keys SET count = count - 1 WHERE owner = ? AND plate = ?", {pedid, veh.plate}) - else - print("DEL 4") - MySQL.query("DELETE FROM vehicle_keys WHERE owner = ? AND plate = ?", {pedid, veh.plate}) - end - print("DEL 5") - MySQL.query("UPDATE mh_jobgarage SET value = value + 1 WHERE plate = ?", {veh.plate}) - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Du hast ein Schlüssel zurückgegeben.", "success") - else - print("DEL 6") - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Du hast kein Schlüssel für deses Fahrzeug!", "inform") - end - end) -end) - -RegisterServerEvent('mh_jobgarage:GiveAllKeysBack') -AddEventHandler('mh_jobgarage:GiveAllKeysBack', function(veh) - local _source = source - local Player = QBCore.Functions.GetPlayer(_source) - local pedid = Player.PlayerData.citizenid - - for k, v in pairs(veh) do - MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, v.plate}, function(rs) - if rs then - MySQL.query("UPDATE mh_jobgarage SET value = value + ? WHERE plate = ?", {rs[1].count, v.plate}) - MySQL.query("DELETE FROM vehicle_keys WHERE owner = ? AND plate = ?", {pedid, v.plate}) - end - end) - end - TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Du hast sämtliche Schlüssel zurückgegeben", "inform") +QBCore = exports['qb-core']:GetCoreObject() + +QBCore.Functions.CreateCallback('mh_jobgarage:CallVehiclesInfo', function(source, cb, job) + local result = {} + MySQL.query("SELECT * FROM mh_jobgarage WHERE job = ?", {job}, function(rs) + if rs[1] ~= nil then + for k, v in pairs(rs) do + table.insert(result, {plate = v.plate, key_value = v.value, name = v.name, closed = v.closed}) + end + else + result = false + end + cb(result) + end) +end) + +-- mh_jobgarage:AddVehicleToJob VARIABLEN: + +QBCore.Functions.CreateCallback('mh_jobgarage:AddVehicleToJob', function(source, cb, plate, stats) + local Player = QBCore.Functions.GetPlayer(source) + local pedid = Player.PlayerData.citizenid + local pedjob = Player.PlayerData.job.name + + local isOwner = CheckVehicleOwner(pedid, plate)--MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? and plate = ?", {pedid, plate}) + local haveKeys = MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, plate}) + + if isOwner and haveKeys then + if haveKeys[1].count == stats[2] then + MySQL.query("DELETE FROM vehicle_keys SET owner = ? AND plate = ?", {pedid, plate}) + elseif haveKeys[1].count > stats[2] then + MySQL.query("UPDATE vehicle_keys SET count = count - ? WHERE owner = ? and plate = ?", {stats[2], pedid, plate}) + end + + MySQL.query("INSERT INTO mh_jobgarage(job, rang, value, plate, name, closed) VALUES (?, ?, ?, ?, ?, ?)", {pedjob, stats[3], stats[2], plate, stats[1], "false"}, function(rs) + if rs then + MySQL.query("UPDATE player_vehicles SET citizenid = ? WHERE owner = ? and plate = ?", {"11111111111", pedid, plate}) + cb({ + status = true, + text = "Fahrzeug wurde Hinzugefügt!", + type ="success" + }) + end + end) + else + if not isOwner then + cb({ + status = false, + text = "Du bist nicht der Besitzer vom Fahrzeug!", + type ="warning" + }) + elseif not haveKeys then + cb({ + status = false, + key = true, + text = "Du hast keinen Ersatzschlüssel, Stelle erst welche her. \nMakierung wurde dir gesetzt!", + type = "inform" + }) + end + end +end) + + +RegisterServerEvent('mh_jobgarage:DeleteFromList') +AddEventHandler('mh_jobgarage:DeleteFromList', function(plate) + local _source = source + local Player = QBCore.Functions.GetPlayer(_source) + local pedid = Player.PlayerData.citizenid + local veh_opt = MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {plate}) + + MySQL.query("SELECT * FROM vehicle_keys WHERE plate = ? and owner = ?", {plate, pedid}, function(rs) + if rs[1] ~= nil then + MySQL.query("UPDATE vehicle_keys SET count = count + ? WHERE plate = ? and owner = ?", {rs[1].count, plate, pedid},function(rowsChange) + if rowsChange then + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Du hast "..rs[1].count.."x Schlüssel bekommen.", "success") + end + end) + else + MySQL.query("INSERT INTO vehicle_keys(owner, plate, count) VALUES (?, ?, ?)", {pedid, plate, rs[1].count}, function(rowsChange) + if rowsChange then + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Du hast "..rs[1].count.."x Schlüssel bekommen.", "success") + end + end) + end + end) + + MySQL.query("UPDATE player_vehicles SET citizenid = ? WHERE plate = ?", {pedid, plate}) + + MySQL.query("DELETE FROM mh_jobgarage WHERE plate = ?", {plate}) +end) + +QBCore.Functions.CreateCallback('mh_jobgarage:lockVehicle', function(source, cb, plate) + MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {plate}, function(rs) + if rs[1] ~= nil then + if rs[1].closed == "true" then + MySQL.query("UPDATE mh_jobgarage SET closed = ? WHERE plate = ?", {'false', plate}) + cb(true) + elseif rs[1].closed == "false" then + MySQL.query("UPDATE mh_jobgarage SET closed = ? WHERE plate = ?", {'true', plate}) + cb(true) + end + end + end) + Wait(300) + cb(false) +end) + +RegisterServerEvent('mh_jobgarage:RemoveKeys') +AddEventHandler('mh_jobgarage:RemoveKeys', function(plate, value) + local _source = source + local Player = QBCore.Functions.GetPlayer(source) + local pedid = Player.PlayerData.citizenid + MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {plate}, function(rs) + if rs ~= nil then + MySQL.query("UPDATE mh_jobgarage SET value = value - ? WHERE plate = ?", {value, plate}, function(rs) + if rs ~= nil then + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", value.."x Schlüssel für das Fahrzeug mit dem Kennzeichen: "..plate.." Entfernt.", "success") + local havekey = CheckEintrag_v_key(pedid, plate) + if havekey then + MySQL.query("UPDATE vehicle_keys SET count = count + ? WHERE owner = ? and plate = ?", {value, pedid, plate}) + else + MySQL.query("INSERT INTO vehicle_keys(owner, plate, count) VALUES (?, ?, ?)", {pedid, plate, value}) + end + else + TriggerClientEvent('mh_jobgarage:notify', _source, "Fehler! Fahrzeug nicht mehr da!", "error") + end + end) + end + end) +end) + +RegisterServerEvent('mh_jobgarage:AddKeys') +AddEventHandler('mh_jobgarage:AddKeys', function(plate, value) + local _source = source + local Player = QBCore.Functions.GetPlayer(source) + local pedid = Player.PlayerData.citizenid + MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, plate}, function(rs) + if rs then + if rs[1].count > value then + MySQL.query("UPDATE vehicle_keys SET count = count - ? WHERE owner = ? and plate = ?", {value, pedid, plate}) + MySQL.query("UPDATE mh_jobgarage SET value = value + ? WHERE plate = ?", {value, plate}) + TriggerClientEvent('mh_jobgarage:notify', _source, "Du hast "..value.."x Schlüssel Hinzugefügt!", "success") + elseif rs[1].count == value then + MySQL.query("DELETE FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, plate}) + MySQL.query("UPDATE mh_jobgarage SET value = value + ? WHERE plate = ?", {value, plate}) + TriggerClientEvent('mh_jobgarage:notify', _source, "Du hast "..value.."x Schlüssel Hinzugefügt!", "success") + else + TriggerClientEvent('mh_jobgarage:notify', _source, "Du hast versucht mehr Schlüssel reinzupacken als du hast!", "error") + end + else + TriggerClientEvent('mh_jobgarage:notify', _source, "Du Besitzt kein Ersatzschlüssel, fertige erst welche an!", "inform") + end + end) +end) + +RegisterServerEvent('mh_jobgarage:ChangeName') +AddEventHandler('mh_jobgarage:ChangeName', function(plate, name) + local _source = source + MySQL.query("UPDATE mh_jobgarage SET name = ? WHERE plate = ?", {name, plate}, function(rs) + if rs then + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Anzeigename geändert auf '"..name.."'.", "success") + else + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Wurde das Fahrzeug grade Entfernt? bitte Prüfen und erneut versuchen...", "success") + end + end) +end) + +RegisterServerEvent('mh_jobgarage:AddVehicleKey') +AddEventHandler('mh_jobgarage:AddVehicleKey', function(veh) + local _source = source + local Player = QBCore.Functions.GetPlayer(_source) + local pedid = Player.PlayerData.citizenid + + MySQL.query("SELECT * FROM mh_jobgarage WHERE plate = ?", {veh.plate}, function(rs) + if rs then + if rs[1].value < 1 then + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Keine Schlüssel mehr vorhanden!", "inform") + else + MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, veh.plate}, function(rs) + print(json.encode(rs)) + if rs[1] ~= nil then + MySQL.query("UPDATE vehicle_keys SET count = count + 1 WHERE owner = ? and plate = ?", {pedid, veh.plate}) + else + MySQL.query("INSERT INTO vehicle_keys(owner, plate, count) VALUES (?, ?, ?)", {pedid, veh.plate, 1}) + end + MySQL.query("UPDATE mh_jobgarage SET value = value - 1 WHERE plate = ?", {veh.plate}) + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Du hast dir ein Schlüssel für den "..veh.name.." genommen!", "success") + end) + end + end + end) +end) + +RegisterServerEvent('mh_jobgarage:DelVehicleKey') +AddEventHandler('mh_jobgarage:DelVehicleKey', function(veh) + local _source = source + local Player = QBCore.Functions.GetPlayer(source) + local pedid = Player.PlayerData.citizenid + print("DEL 1") + MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, veh.plate}, function(rs) + if rs then + print("DEL 2") + if rs[1].count > 1 then + print("DEL 3") + MySQL.query("UPDATE vehicle_keys SET count = count - 1 WHERE owner = ? AND plate = ?", {pedid, veh.plate}) + else + print("DEL 4") + MySQL.query("DELETE FROM vehicle_keys WHERE owner = ? AND plate = ?", {pedid, veh.plate}) + end + print("DEL 5") + MySQL.query("UPDATE mh_jobgarage SET value = value + 1 WHERE plate = ?", {veh.plate}) + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Du hast ein Schlüssel zurückgegeben.", "success") + else + print("DEL 6") + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten - "..veh.name, "Du hast kein Schlüssel für deses Fahrzeug!", "inform") + end + end) +end) + +RegisterServerEvent('mh_jobgarage:GiveAllKeysBack') +AddEventHandler('mh_jobgarage:GiveAllKeysBack', function(veh) + local _source = source + local Player = QBCore.Functions.GetPlayer(_source) + local pedid = Player.PlayerData.citizenid + + for k, v in pairs(veh) do + MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? and plate = ?", {pedid, v.plate}, function(rs) + if rs then + MySQL.query("UPDATE mh_jobgarage SET value = value + ? WHERE plate = ?", {rs[1].count, v.plate}) + MySQL.query("DELETE FROM vehicle_keys WHERE owner = ? AND plate = ?", {pedid, v.plate}) + end + end) + end + TriggerClientEvent('mh_jobgarage:notify', _source, "Schlüsselkasten", "Du hast sämtliche Schlüssel zurückgegeben", "inform") end) \ No newline at end of file