2025-06-18 02:30:02 +02:00
|
|
|
local QBCore = exports['qb-core']:GetCoreObject()
|
|
|
|
|
2025-06-18 06:13:19 +02:00
|
|
|
-- Debug-Funktion
|
2025-06-18 02:30:02 +02:00
|
|
|
local function Debug(msg)
|
2025-06-18 05:39:08 +02:00
|
|
|
print("^2[Grill Debug] ^7" .. msg)
|
2025-06-18 02:30:02 +02:00
|
|
|
end
|
|
|
|
|
2025-07-11 12:54:10 +02:00
|
|
|
-- Function to check if player has an item
|
|
|
|
local function HasItem(source, itemName, amount)
|
2025-07-13 23:19:20 +02:00
|
|
|
local itemCount = exports["tgiann-inventory"]:GetItemCount(source, itemName)
|
|
|
|
return itemCount >= amount
|
2025-07-11 12:54:10 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Event for client to check if player has an item
|
|
|
|
RegisterNetEvent('nordi_bbq:checkItem', function(itemName, amount, callbackEvent)
|
|
|
|
local src = source
|
|
|
|
local hasItem = HasItem(src, itemName, amount)
|
|
|
|
TriggerClientEvent(callbackEvent, src, hasItem)
|
|
|
|
end)
|
|
|
|
|
2025-06-18 06:13:19 +02:00
|
|
|
-- Event zum Geben des gegrillten Essens
|
|
|
|
RegisterNetEvent('nordi_bbq:server:GiveGrilledFood', function(itemName, requirements)
|
2025-06-18 02:30:02 +02:00
|
|
|
local src = source
|
|
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
2025-06-18 06:13:19 +02:00
|
|
|
|
2025-06-18 05:39:08 +02:00
|
|
|
if not Player then
|
2025-06-18 06:13:19 +02:00
|
|
|
Debug("Spieler nicht gefunden")
|
2025-06-18 05:39:08 +02:00
|
|
|
return
|
|
|
|
end
|
2025-06-18 06:13:19 +02:00
|
|
|
|
|
|
|
-- Überprüfe, ob das Item in den erlaubten Rezepten ist
|
|
|
|
local validRecipe = false
|
|
|
|
for _, recipe in pairs(Config.GrillRecipes) do
|
|
|
|
if recipe.item == itemName then
|
|
|
|
validRecipe = true
|
2025-06-18 05:39:08 +02:00
|
|
|
break
|
|
|
|
end
|
|
|
|
end
|
2025-06-18 06:13:19 +02:00
|
|
|
|
|
|
|
if not validRecipe then
|
|
|
|
Debug("Ungültiges Rezept: " .. itemName)
|
|
|
|
TriggerClientEvent('QBCore:Notify', src, "Fehler beim Grillen!", "error")
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Überprüfe Zutaten
|
|
|
|
local hasAllItems = true
|
|
|
|
for _, requirement in pairs(requirements) do
|
2025-07-11 12:54:10 +02:00
|
|
|
if not HasItem(src, requirement.item, requirement.amount) then
|
2025-06-18 06:13:19 +02:00
|
|
|
hasAllItems = false
|
|
|
|
break
|
2025-06-18 02:30:02 +02:00
|
|
|
end
|
2025-06-18 06:13:19 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
if hasAllItems then
|
|
|
|
-- Entferne Zutaten
|
|
|
|
for _, requirement in pairs(requirements) do
|
2025-07-11 12:54:10 +02:00
|
|
|
exports["tgiann-inventory"]:RemoveItem(src, requirement.item, requirement.amount)
|
2025-06-18 06:13:19 +02:00
|
|
|
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[requirement.item], "remove")
|
2025-06-18 02:30:02 +02:00
|
|
|
end
|
2025-06-18 06:13:19 +02:00
|
|
|
|
|
|
|
-- Gib das fertige Essen
|
2025-07-11 12:54:10 +02:00
|
|
|
exports["tgiann-inventory"]:AddItem(src, itemName, 1)
|
2025-06-18 06:13:19 +02:00
|
|
|
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[itemName], "add")
|
|
|
|
|
|
|
|
local itemLabel = QBCore.Shared.Items[itemName] and QBCore.Shared.Items[itemName].label or itemName
|
|
|
|
TriggerClientEvent('QBCore:Notify', src, "Du hast " .. itemLabel .. " gegrillt!", "success")
|
2025-06-18 05:39:08 +02:00
|
|
|
else
|
2025-06-18 06:13:19 +02:00
|
|
|
TriggerClientEvent('QBCore:Notify', src, "Du hast nicht alle benötigten Zutaten!", "error")
|
2025-06-18 02:30:02 +02:00
|
|
|
end
|
|
|
|
end)
|