diff --git a/resources/[inventory]/pl_printer/client/main.lua b/resources/[inventory]/pl_printer/client/main.lua index c0556c064..d770667c0 100644 --- a/resources/[inventory]/pl_printer/client/main.lua +++ b/resources/[inventory]/pl_printer/client/main.lua @@ -1,8 +1,11 @@ + local spawnedObjects = {} + local imageDisplayed = false RegisterNetEvent('pl_printer:notification') AddEventHandler('pl_printer:notification', function(message, type) + if Config.Notify == 'ox' then TriggerEvent('ox_lib:notify', {description = message, type = type or "success"}) elseif Config.Notify == 'esx' then @@ -28,69 +31,40 @@ function enableControls() FreezeEntityPosition(PlayerPedId(), false) end --- Event für QB-Core Inventar RegisterNetEvent("pl_printer:showImageQB") AddEventHandler("pl_printer:showImageQB", function(imageName) - print("[DEBUG] Received showImageQB event with imageName: " .. tostring(imageName)) - TriggerServerEvent('pl_printer:fetchImageLink', imageName) + TriggerServerEvent('pl_printer:fetchImageLink',imageName) end) --- Hauptevent zum Anzeigen des Bildes RegisterNetEvent("pl_printer:showImage") -AddEventHandler("pl_printer:showImage", function(imageUrl) - print("[DEBUG] Received showImage event with URL: " .. tostring(imageUrl)) - +AddEventHandler("pl_printer:showImage", function(imageName) if not imageDisplayed then imageDisplayed = true SetNuiFocus(true, true) - - -- Extrahiere den Dateinamen aus der URL für die Dokument-ID - local documentId = imageUrl:match(".*/(.*)$") or "unknown" - SendNUIMessage({ action = "show", - imageUrl = imageUrl, - documentId = documentId -- Füge die Dokument-ID hinzu + imageUrl = imageName }) - disableControls() - else - print("[DEBUG] Image already displayed, ignoring request") end end) --- NUI-Callback zum Schließen des Bildes RegisterNUICallback('hideFrame', function(data, cb) - print("[DEBUG] Hiding image frame") imageDisplayed = false SetNuiFocus(false, false) enableControls() - - -- Füge einen Callback hinzu, wenn er benötigt wird - if cb then cb('ok') end end) --- Sicherheits-Callback für den Fall, dass die Seite neu geladen wird -RegisterNUICallback('pageLoaded', function(data, cb) - print("[DEBUG] NUI page loaded") - -- Stelle sicher, dass der Focus zurückgesetzt wird, falls die Seite neu geladen wurde - if not imageDisplayed then - SetNuiFocus(false, false) - end - if cb then cb('ok') end -end) - --- Event zum Öffnen des Druckermenüs RegisterNetEvent("pl_printer:openprinter") AddEventHandler("pl_printer:openprinter", function() + local input = lib.inputDialog('Print Menu', { {type = 'input', label = Locale("image_link"), description = Locale("image_url"), required = true}, - {type = 'number', label = Locale("copies"), description = Locale("image_url"), required = true, placeholder='1', icon = 'hashtag'}, + {type = 'number', label = Locale("copies"), description = Locale("image_url"),required = true,placeholder='1', icon = 'hashtag'}, + }) - if input then if input[1] and input[2] then - print("[DEBUG] Sending image data to server: " .. input[1] .. ", copies: " .. input[2]) TriggerServerEvent('pl_printer:insertImageData', input[1], input[2]) else _debug('[DEBUG] '..'Invalid Input'..'') @@ -98,7 +72,6 @@ AddEventHandler("pl_printer:openprinter", function() end end) --- Target-System-Konfiguration for _, model in ipairs(Config.PrinterModel) do if GetResourceState('qb-target') == 'started' then exports['qb-target']:AddTargetModel(model, { @@ -113,7 +86,7 @@ for _, model in ipairs(Config.PrinterModel) do }, distance = 2 }) - elseif GetResourceState('qtarget') == 'started' or GetResourceState('ox_target') == 'started' then + elseif GetResourceState('qtarget') == 'started' or GetResourceState('ox_target') == 'started'then exports.ox_target:addModel(model, { { name = 'printer_interaction', @@ -128,7 +101,7 @@ for _, model in ipairs(Config.PrinterModel) do end end --- Funktion zum Spawnen von Objekten + local function spawnObject(object, coords, heading) lib.requestModel(object) @@ -136,7 +109,6 @@ local function spawnObject(object, coords, heading) _debug('[DEBUG] '..object..' failed to load.'..'') return end - local entity = CreateObject(object, coords.x, coords.y, coords.z, true, true, true) if DoesEntityExist(entity) then @@ -148,7 +120,7 @@ local function spawnObject(object, coords, heading) end end --- Funktion zum Löschen von gespawnten Objekten + local function deleteSpawnedObjects() for _, obj in ipairs(spawnedObjects) do if DoesEntityExist(obj) then @@ -158,7 +130,7 @@ local function deleteSpawnedObjects() spawnedObjects = {} end --- Resource-Start-Event + AddEventHandler('onResourceStart', function(resourceName) if GetCurrentResourceName() ~= resourceName then return end for _, location in ipairs(Config.Locations) do @@ -166,13 +138,12 @@ AddEventHandler('onResourceStart', function(resourceName) end end) --- Resource-Stop-Event + AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() ~= resourceName then return end deleteSpawnedObjects() end) --- Funktion für Spieler-Login function onPlayerLoaded() Wait(3000) for _, location in ipairs(Config.Locations) do @@ -180,52 +151,8 @@ function onPlayerLoaded() end end --- Debug-Hilfsfunktion function _debug(...) if Config.Debug then print(...) end -end - --- Notfall-Thread zum Zurücksetzen des NUI-Focus, falls etwas schief geht -Citizen.CreateThread(function() - while true do - Citizen.Wait(1000) - if imageDisplayed then - -- Prüfe, ob ESC gedrückt wurde (Fallback für den Fall, dass der NUI-Callback nicht funktioniert) - if IsControlJustReleased(0, 177) then -- ESC-Taste - print("[DEBUG] ESC key detected in thread, resetting focus") - imageDisplayed = false - SetNuiFocus(false, false) - enableControls() - SendNUIMessage({ - action = "hide" - }) - end - else - Citizen.Wait(1000) -- Längere Wartezeit, wenn kein Bild angezeigt wird - end - end -end) - --- Füge diesen Code hinzu, um das HTML zu aktualisieren, wenn die Ressource neu gestartet wird -AddEventHandler('onResourceStart', function(resourceName) - if GetCurrentResourceName() == resourceName then - -- Stelle sicher, dass der NUI-Focus zurückgesetzt wird - SetNuiFocus(false, false) - imageDisplayed = false - enableControls() - end -end) - --- Füge diesen Code hinzu, um den NUI-Focus zurückzusetzen, wenn der Spieler stirbt -AddEventHandler('playerSpawned', function() - if imageDisplayed then - imageDisplayed = false - SetNuiFocus(false, false) - enableControls() - SendNUIMessage({ - action = "hide" - }) - end -end) +end \ No newline at end of file diff --git a/resources/[inventory]/pl_printer/config.lua b/resources/[inventory]/pl_printer/config.lua index 0a05a09ad..c91fbfaff 100644 --- a/resources/[inventory]/pl_printer/config.lua +++ b/resources/[inventory]/pl_printer/config.lua @@ -2,20 +2,20 @@ Config = {} -Config.Locale = 'de' -- 'en', 'fr', 'de', 'es', 'it', 'pt', 'tr' -- Language +Config.Locale = 'en' -- 'en', 'fr', 'de', 'es', 'it', 'pt', 'tr' -- Language -Config.Debug = true +Config.Debug = false -Config.Notify = 'okok' --ox, esx, okok,qb,wasabi,custom +Config.Notify = 'ox' --ox, esx, okok,qb,wasabi,custom Config.CheckItem = false --If you want player to have item before opening -Config.PrinterModel = {`prop_printer_02`,`prop_printer_01`,`v_res_printer`} +Config.PrinterModel = {`prop_printer_02`,`prop_printer_01`} -Config.ItemName = 'printerdocument' +Config.ItemName = 'paper' Config.Print = { - Price = 0, --Price + Price = 50, --Price Account = 'bank' --This is the account your money will be deducted } diff --git a/resources/[inventory]/pl_printer/locales/de.json b/resources/[inventory]/pl_printer/locales/de.json index da5316076..71144671e 100644 --- a/resources/[inventory]/pl_printer/locales/de.json +++ b/resources/[inventory]/pl_printer/locales/de.json @@ -3,7 +3,7 @@ "copies": "Kopien", "image_url": "Bild-URL eingeben", "enter_copies": "Anzahl der Kopien eingeben", - "prints": "Drucken", + "prints": "Drucke", "Money_Removed": "Geld vom Bankkonto entfernt: $", "not_enough": "Nicht genug Geld" } \ No newline at end of file diff --git a/resources/[inventory]/pl_printer/server/main.lua b/resources/[inventory]/pl_printer/server/main.lua index 38a4067b3..06ba45d71 100644 --- a/resources/[inventory]/pl_printer/server/main.lua +++ b/resources/[inventory]/pl_printer/server/main.lua @@ -1,79 +1,98 @@ - - -
- - - -