From a0b81a2e669bf8b8d65191326458b6c65fb26faf Mon Sep 17 00:00:00 2001 From: Nordi98 Date: Mon, 28 Jul 2025 23:39:25 +0200 Subject: [PATCH] ed --- .../modules/pfandsystem/client.lua | 14 +++++ .../modules/pfandsystem/server.lua | 63 ++++++++++++++----- 2 files changed, 61 insertions(+), 16 deletions(-) diff --git a/resources/[inventory]/pickle_consumables/modules/pfandsystem/client.lua b/resources/[inventory]/pickle_consumables/modules/pfandsystem/client.lua index 1d1b12c86..6e3054601 100644 --- a/resources/[inventory]/pickle_consumables/modules/pfandsystem/client.lua +++ b/resources/[inventory]/pickle_consumables/modules/pfandsystem/client.lua @@ -140,3 +140,17 @@ function redeemPfand(selectedItems) ShowNotification(_L('processing')) TriggerServerEvent('pickle_consumables:server:redeemPfand', selectedItems) end + +-- modules/pfandsystem/client.lua (zusätzlicher Code) + +-- Überwache Item-Nutzung +RegisterNetEvent('inventory:client:UseItem') +AddEventHandler('inventory:client:UseItem', function(item) + local itemName = type(item) == "table" and item.name or item + TriggerServerEvent('pickle_consumables:server:useItem', itemName) +end) + +-- Überwache Pickle Consumables Item-Nutzung +AddEventHandler('pickle_consumables:useItem', function(itemName, slot) + TriggerServerEvent('pickle_consumables:server:useItem', itemName) +end) diff --git a/resources/[inventory]/pickle_consumables/modules/pfandsystem/server.lua b/resources/[inventory]/pickle_consumables/modules/pfandsystem/server.lua index 0d2b9637e..459572264 100644 --- a/resources/[inventory]/pickle_consumables/modules/pfandsystem/server.lua +++ b/resources/[inventory]/pickle_consumables/modules/pfandsystem/server.lua @@ -1,4 +1,4 @@ --- modules/pfandsystem/server.lua (mit direkten tgiann-inventory Funktionen) +-- modules/pfandsystem/server.lua (vereinfacht mit QBCore) local QBCore = exports['qb-core']:GetCoreObject() @@ -16,9 +16,8 @@ RegisterNetEvent('pickle_consumables:server:redeemPfand', function(selectedItems -- Prüfe ob alle Items verfügbar sind for itemName, quantity in pairs(selectedItems) do if Config.PfandItems[itemName] then - -- Verwende tgiann-inventory Export - local item = exports['tgiann-inventory']:GetItem(src, itemName) - if not item or item.count < quantity then + local item = Player.Functions.GetItemByName(itemName) + if not item or item.amount < quantity then canRedeem = false TriggerClientEvent('QBCore:Notify', src, 'Du hast nicht genug ' .. (Config.PfandItems[itemName].label or itemName), "error") return @@ -30,9 +29,10 @@ RegisterNetEvent('pickle_consumables:server:redeemPfand', function(selectedItems -- Entferne Items und berechne Pfand for itemName, quantity in pairs(selectedItems) do if Config.PfandItems[itemName] then - -- Verwende tgiann-inventory Export - local removed = exports['tgiann-inventory']:RemoveItem(src, itemName, quantity) + local removed = Player.Functions.RemoveItem(itemName, quantity) if removed then + TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[itemName], "remove", quantity) + local pfandWert = Config.PfandItems[itemName].pfandwert * quantity totalPfand = totalPfand + pfandWert totalItems = totalItems + quantity @@ -59,18 +59,20 @@ end) -- Hole verfügbare Pfand Items des Spielers lib.callback.register('pickle_consumables:server:getPfandItems', function(source) local src = source + local Player = QBCore.Functions.GetPlayer(src) local pfandItems = {} + if not Player then return pfandItems end + for itemName, itemConfig in pairs(Config.PfandItems) do - -- Verwende tgiann-inventory Export - local item = exports['tgiann-inventory']:GetItem(src, itemName) + local item = Player.Functions.GetItemByName(itemName) - if item and item.count > 0 then + if item and item.amount > 0 then pfandItems[itemName] = { - count = item.count, + count = item.amount, label = itemConfig.label, pfandwert = itemConfig.pfandwert, - totalWert = itemConfig.pfandwert * item.count + totalWert = itemConfig.pfandwert * item.amount } end end @@ -78,17 +80,46 @@ lib.callback.register('pickle_consumables:server:getPfandItems', function(source return pfandItems end) --- Hook für Item-Nutzung -AddEventHandler('pickle_consumables:itemUsed', function(source, itemName, itemData, slot) +-- Füge einen direkten Event-Handler für die Item-Nutzung hinzu +RegisterNetEvent('pickle_consumables:server:useItem') +AddEventHandler('pickle_consumables:server:useItem', function(itemName) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + + if not Player then return end + -- Prüfe ob das Item ein Pfand-Item generiert local itemConfig = Config.Items[itemName] if itemConfig and itemConfig.pfandItem and Config.PfandItems[itemConfig.pfandItem] then - -- Gebe Pfand-Item mit tgiann-inventory - exports['tgiann-inventory']:AddItem(source, itemConfig.pfandItem, 1) + -- Warte kurz, damit das Item erst konsumiert wird + Wait(500) + + -- Gebe Pfand-Item + Player.Functions.AddItem(itemConfig.pfandItem, 1) + TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[itemConfig.pfandItem], "add", 1) if Config.PfandSystem.showNotification then local pfandLabel = Config.PfandItems[itemConfig.pfandItem].label - TriggerClientEvent('QBCore:Notify', source, string.format(_L('pfand_received'), pfandLabel), "success") + TriggerClientEvent('QBCore:Notify', src, string.format(_L('pfand_received'), pfandLabel), "success") end end end) + +-- Überwache alle möglichen Events für Item-Nutzung +RegisterNetEvent('QBCore:Server:UseItem') +AddEventHandler('QBCore:Server:UseItem', function(item) + local src = source + local itemName = type(item) == "table" and item.name or item + TriggerEvent('pickle_consumables:server:useItem', itemName) +end) + +RegisterNetEvent('inventory:server:UseItem') +AddEventHandler('inventory:server:UseItem', function(source, item) + local itemName = type(item) == "table" and item.name or item + TriggerEvent('pickle_consumables:server:useItem', itemName) +end) + +-- Hook für Pickle Consumables Item-Nutzung +AddEventHandler('pickle_consumables:itemUsed', function(source, itemName, itemData, slot) + TriggerEvent('pickle_consumables:server:useItem', itemName) +end)