From bb8090d08cd68267986ff8fadf5e3f21693d9dd1 Mon Sep 17 00:00:00 2001 From: Miho Date: Mon, 23 Jun 2025 20:14:50 +0200 Subject: [PATCH] resources/[jobs]/[civ]/mh_jobgarage/client/chiefsettings.lua aktualisiert --- .../mh_jobgarage/client/chiefsettings.lua | 403 +++++++++--------- 1 file changed, 202 insertions(+), 201 deletions(-) diff --git a/resources/[jobs]/[civ]/mh_jobgarage/client/chiefsettings.lua b/resources/[jobs]/[civ]/mh_jobgarage/client/chiefsettings.lua index 107827e09..95099c8da 100644 --- a/resources/[jobs]/[civ]/mh_jobgarage/client/chiefsettings.lua +++ b/resources/[jobs]/[civ]/mh_jobgarage/client/chiefsettings.lua @@ -1,202 +1,203 @@ -function OpenChiefMenu(vehicles) - local opt = {} - - table.insert(opt, - { - title = "Fahrzeug Hinzufügen", - description = "Neues Fahrzeug Hinzufügen.", - icon = "plus", - onSelect = function() - lib.hideContext("ChiefSettingsMenu") - OpenChiefAddVehicleMenu() - end - } - ) - - if vehicles then - for k, v in pairs(vehicles) do - table.insert(opt, { - title = v.name, - description = "Dieses Fahrzeug bearbeiten...", - icon = "car", - onSelect = function() - lib.hideContext("ChiefSettingsMenu") - OpenChiefEditVehicleMenu(v) - end - }) - end - end - - lib.registerContext({ - id = "ChiefSettingsMenu", - title = "Schlüsselkasten", - options = opt - }) - - lib.showContext("ChiefSettingsMenu") -end - -function OpenChiefAddVehicleMenu() - local coords = GetEntityCoords(PlayerPedId()) - local Player = QBCore.Functions.GetPlayerData() - local vehicles = GetGamePool('CVehicle') - local opt = {} - - for i = 1, #vehicles, 1 do - local vehicleCoords = GetEntityCoords(vehicles[i]) - local distance = #(vehicleCoords - coords) - - if distance < 20.0 then - local mods = QBCore.Functions.GetVehicleProperties(vehicles[i]) - print(json.encode(mods)) - table.insert(opt, { - title = "Kennzeichen: "..mods.plate, - description = "Dieses Fahrzeug Hinzufügen?", - icon = "car", - onSelect = function() - local value = lib.inputDialog("Schlüsselkasten", { - {type = "input", label = "Anzeigename", description = "Anzeigename wie die anderen den sehen!"}, - {type = "number", label = "Schlüsselanzahl", description = "Anzahl der Ersatzschlüssel."}, - {type = "number", label = "Rang", description = "Ab welchen Rang darf man das Fahrzeug Fahren?"} - }) - - QBCore.Functions.TriggerCallback('mh_jobgarage:AddVehicleToJob', function(cb) - if cb.status then - Notification("Schlüsselkasten", cb.text, cb.type) - lib.hideContext('ChiefAddVehicleMenu') - QBCore.Functions.TriggerCallback('mh_jobgarage:CallVehiclesInfo', function(cb) - OpenMenu(cb) - end, Player.job.name) - else - Notification("Schlüsselkasten", cb.text, cb.type) - if cb.key then - SetNewWaypoint(Config.KeyMaker.x, Config.KeyMaker.y) - end - end - end, mods.plate, value) - end - }) - - lib.registerContext({ - id = "ChiefAddVehicleMenu", - title = "Schlüsselkasten", - description = "Füge ein Fahrzeug hinzu.", - options = opt - }) - - lib.showContext("ChiefAddVehicleMenu") - end - end -end - -function OpenChiefEditVehicleMenu(veh) - local veh = veh - local opt = { - { - title = "Anzeigename", - description = "Zum Bearbeiten Drücken", - icon = "hand", - onSelect = function() - local input = lib.inputDialog("Schlüsselkasten - Anzeigename Bearbeiten",{ - {type = "input", label = "Neuer Anzeigename:", description = "Setz einen neuen Namen für das Fahrzeug."} - }) - - if input[1] == veh.name then - Notification("Schlüsselkasten", "Anzeigename nicht geändert, Name gleich geblieben", "error") - else - TriggerServerEvent('mh_jobgarage:ChangeName', veh.plate, input[1]) - end - end, - metadata = { - {label = "Aktueller Name", value = veh.name} - } - }, - { - title = "--------------- Schlüssel Menu ---------------" - }, - { - title = "Schlüssel Hinzufügen", - description = "Fügt ein weiteren Ersatzschlüssel hinzu.", - icon = "plus", - onSelect = function() - local input = lib.inputDialog("Schlüsselkasten - Schlüssel Hinzufügen", { - {type = "number", label = "Anzahl der Fahrzeugschlüssel", description = "Wie viele Schlüssel willst du Hinzufügen?"} - }) - TriggerServerEvent('mh_jobgarage:AddKeys', veh.plate, input[1]) - end, - metadata = { - {label = "Aktuelle Schlüssel im Kasten", value = veh.key_value} - } - }, - { - title = "Schlüssel Entfernen", - description = "Entfernt die zu angegebenen Schlüssel!", - icon = "minus", - onSelect = function() - local input = lib.inputDialog("Schlüsselkasten - Schlüssel entfernen", { - {type = "number", label = "Anzahl der Fahrzeugschlüssel", description = "Wie viele Schlüssel willst du Entfernen?", min = 1, max = veh.key_value} - }) - - if input[1] > veh.key_value then - Notification("Schlüsselkasten", "So viele Schlüssel sind da nicht drin! Max: "..veh.key_value, "inform") - else - TriggerServerEvent('mh_jobgarage:RemoveKeys', veh.plate, input[1]) - end - end, - metadata = { - {label = "Aktuelle Schlüssel im Kasten", value = veh.key_value} - } - }, - { - title = "--------------- Fahrzeug Menu ---------------" - }, - { - title = "Fahrzeug Sperren", - description = "Das Fahrzeug wird angezeigt, aber es werden keine Schlüssel raus gegeben.", - icon = "lock", - onSelect = function() - QBCore.Functions.TriggerCallback('mh_jobgarage:lockVehicle', function(cb) - if cb then - if veh.closed == "true" then - Notification("Schlüsselkasten", "Fahrzeug wurde entsperrt!", "success") - veh.closed = "false" - elseif veh.closed == "false" then - Notification("Schlüsselkasten", "Fahrzeug wurde gesperrt!", "success") - veh.closed = "true" - end - lib.hideContext("ChiefEditVehicleMenu") - Wait(300) - OpenChiefEditVehicleMenu(veh) - else - Notification("Schlüsselkasten", "Fehler beim Bearbeiten!", "warning") - end - end, veh.plate) - end - }, - { - title = "Fahrzeug löschen...", - description = "Gibt dir das Fahrzeug als Inhaber...", - icon = "remove", - onSelect = function() - TriggerServerEvent('mh_jobgarage:DeleteFromList', veh.plate) - end - }, - --[[ { - title = "--------------- Log Menu ---------------" - }, - { - title = "Logs einsehen!", - description = "Zeigt dir alle Änderungen an", - icon = "book", - disabled = true - } ]] - } - - lib.registerContext({ - id = "ChiefEditVehicleMenu", - title = "Schlüsselkasten", - options = opt - }) - - lib.showContext("ChiefEditVehicleMenu") +function OpenChiefMenu(vehicles) + local opt = {} + + table.insert(opt, + { + title = "Fahrzeug Hinzufügen", + description = "Neues Fahrzeug Hinzufügen.", + icon = "plus", + onSelect = function() + lib.hideContext("ChiefSettingsMenu") + OpenChiefAddVehicleMenu() + end + } + ) + + if vehicles then + for k, v in pairs(vehicles) do + table.insert(opt, { + title = v.name, + description = "Dieses Fahrzeug bearbeiten...", + icon = "car", + onSelect = function() + lib.hideContext("ChiefSettingsMenu") + OpenChiefEditVehicleMenu(v) + end + }) + end + end + + lib.registerContext({ + id = "ChiefSettingsMenu", + title = "Schlüsselkasten", + options = opt + }) + + lib.showContext("ChiefSettingsMenu") +end + +function OpenChiefAddVehicleMenu() + local Player = QBCore.Functions.GetPlayerData() + local opt = {} + + QBCore.Functions.TriggerCallback('mh_jobgarage:CallOwnerVehicles', function(vehicles) + if vehicles ~= false then + local opt = {} + + for i = 1, #vehicles, 1 do + local isSpawned, mods = IsVehicleSpawned(plate) + + table.insert(opt, { + title = "Kennzeichen: "..mods.plate, + description = "Deine Ersatzschlüssel: "..vehicles[i].keys, + icon = 'car', + onSelect = function() + local value = lib.inputDialog("Schlüsselkasten", { + {type = "input", label = "Anzeigename", description = "Anzeigename wie die anderen den sehen!"}, + {type = "number", label = "Schlüsselanzahl", description = "Anzahl der Ersatzschlüssel.", min = 1, max = vehicles[i].keys}, + {type = "number", label = "Rang", description = "Ab welchen Rang darf man das Fahrzeug Fahren?"} + }) + + QBCore.Functions.TriggerCallback('mh_jobgarage:AddVehicleToJob', function(cb) + if cb.status then + Notification("Schlüsselkasten", cb.text, cb.type) + lib.hideContext('ChiefAddVehicleMenu') + QBCore.Functions.TriggerCallback('mh_jobgarage:CallVehiclesInfo', function(cb) + OpenMenu(cb) + end, Player.job.name) + else + Notification("Schlüsselkasten", cb.text, cb.type) + if cb.key then + SetNewWaypoint(Config.KeyMaker.x, Config.KeyMaker.y) + end + end + end, mods.plate, value) + end + }) + + lib.registerContext({ + id = "ChiefAddVehicleMenu", + title = "Schlüsselkasten", + description = "Füge ein Fahrzeug hinzu.", + options = opt + }) + + lib.showContext("ChiefAddVehicleMenu") + end + else + Notification("Schlüsselkasten", "Keine Fahrzeuge von dir Gefunden!", "error") + end + end) +end + +function OpenChiefEditVehicleMenu(veh) + local veh = veh + local opt = { + { + title = "Anzeigename", + description = "Zum Bearbeiten Drücken", + icon = "hand", + onSelect = function() + local input = lib.inputDialog("Schlüsselkasten - Anzeigename Bearbeiten",{ + {type = "input", label = "Neuer Anzeigename:", description = "Setz einen neuen Namen für das Fahrzeug."} + }) + + if input[1] == veh.name then + Notification("Schlüsselkasten", "Anzeigename nicht geändert, Name gleich geblieben", "error") + else + TriggerServerEvent('mh_jobgarage:ChangeName', veh.plate, input[1]) + end + end, + metadata = { + {label = "Aktueller Name", value = veh.name} + } + }, + { + title = "--------------- Schlüssel Menu ---------------" + }, + { + title = "Schlüssel Hinzufügen", + description = "Fügt ein weiteren Ersatzschlüssel hinzu.", + icon = "plus", + onSelect = function() + local input = lib.inputDialog("Schlüsselkasten - Schlüssel Hinzufügen", { + {type = "number", label = "Anzahl der Fahrzeugschlüssel", description = "Wie viele Schlüssel willst du Hinzufügen?"} + }) + TriggerServerEvent('mh_jobgarage:AddKeys', veh.plate, input[1]) + end, + metadata = { + {label = "Aktuelle Schlüssel im Kasten", value = veh.key_value} + } + }, + { + title = "Schlüssel Entfernen", + description = "Entfernt die zu angegebenen Schlüssel!", + icon = "minus", + onSelect = function() + local input = lib.inputDialog("Schlüsselkasten - Schlüssel entfernen", { + {type = "number", label = "Anzahl der Fahrzeugschlüssel", description = "Wie viele Schlüssel willst du Entfernen?", min = 1, max = veh.key_value} + }) + + if input[1] > veh.key_value then + Notification("Schlüsselkasten", "So viele Schlüssel sind da nicht drin! Max: "..veh.key_value, "inform") + else + TriggerServerEvent('mh_jobgarage:RemoveKeys', veh.plate, input[1]) + end + end, + metadata = { + {label = "Aktuelle Schlüssel im Kasten", value = veh.key_value} + } + }, + { + title = "--------------- Fahrzeug Menu ---------------" + }, + { + title = "Fahrzeug Sperren", + description = "Das Fahrzeug wird angezeigt, aber es werden keine Schlüssel raus gegeben.", + icon = "lock", + onSelect = function() + QBCore.Functions.TriggerCallback('mh_jobgarage:lockVehicle', function(cb) + if cb then + if veh.closed == "true" then + Notification("Schlüsselkasten", "Fahrzeug wurde entsperrt!", "success") + veh.closed = "false" + elseif veh.closed == "false" then + Notification("Schlüsselkasten", "Fahrzeug wurde gesperrt!", "success") + veh.closed = "true" + end + lib.hideContext("ChiefEditVehicleMenu") + Wait(300) + OpenChiefEditVehicleMenu(veh) + else + Notification("Schlüsselkasten", "Fehler beim Bearbeiten!", "warning") + end + end, veh.plate) + end + }, + { + title = "Fahrzeug löschen...", + description = "Gibt dir das Fahrzeug als Inhaber...", + icon = "remove", + onSelect = function() + TriggerServerEvent('mh_jobgarage:DeleteFromList', veh.plate) + end + }, + --[[ { + title = "--------------- Log Menu ---------------" + }, + { + title = "Logs einsehen!", + description = "Zeigt dir alle Änderungen an", + icon = "book", + disabled = true + } ]] + } + + lib.registerContext({ + id = "ChiefEditVehicleMenu", + title = "Schlüsselkasten", + options = opt + }) + + lib.showContext("ChiefEditVehicleMenu") end \ No newline at end of file