diff --git a/[esx_addons]/esx_basicneeds/config.lua b/[esx_addons]/esx_basicneeds/config.lua index ce211543..a0b9fb0e 100644 --- a/[esx_addons]/esx_basicneeds/config.lua +++ b/[esx_addons]/esx_basicneeds/config.lua @@ -1,3 +1,17 @@ Config = {} Config.Locale = 'en' Config.Visible = true + +Config.Food = { + ["bread"] = { + status = 200000, + remove = false + } +} + +Config.Drinks = { + ["water"] = { + status = 100000, + remove = true + } +} diff --git a/[esx_addons]/esx_basicneeds/locales/br.lua b/[esx_addons]/esx_basicneeds/locales/br.lua index e263e11a..2f023c30 100644 --- a/[esx_addons]/esx_basicneeds/locales/br.lua +++ b/[esx_addons]/esx_basicneeds/locales/br.lua @@ -1,4 +1,4 @@ Locales['br'] = { - ['used_bread'] = 'você comeu 1x pão', - ['used_water'] = 'você tomou 1x água', -} \ No newline at end of file + ['used_eat'] = 'você comeu 1x %s', + ['used_drink'] = 'você tomou 1x %s', +} diff --git a/[esx_addons]/esx_basicneeds/locales/en.lua b/[esx_addons]/esx_basicneeds/locales/en.lua index 3d03856d..a84b4c38 100644 --- a/[esx_addons]/esx_basicneeds/locales/en.lua +++ b/[esx_addons]/esx_basicneeds/locales/en.lua @@ -1,4 +1,4 @@ Locales['en'] = { - ['used_bread'] = 'you have used 1x bread', - ['used_water'] = 'you have used 1x water', -} \ No newline at end of file + ['used_eat'] = 'you have used 1x %s', + ['used_drink'] = 'you have used 1x %s', +} diff --git a/[esx_addons]/esx_basicneeds/server/main.lua b/[esx_addons]/esx_basicneeds/server/main.lua index b0de7997..5fed3e92 100644 --- a/[esx_addons]/esx_basicneeds/server/main.lua +++ b/[esx_addons]/esx_basicneeds/server/main.lua @@ -1,19 +1,29 @@ -ESX.RegisterUsableItem('bread', function(source) - local xPlayer = ESX.GetPlayerFromId(source) - xPlayer.removeInventoryItem('bread', 1) - - TriggerClientEvent('esx_status:add', source, 'hunger', 200000) - TriggerClientEvent('esx_basicneeds:onEat', source) - xPlayer.showNotification(_U('used_bread')) +CreateThread(function() + for k,v in pairs(Config.Food) do + ESX.RegisterUsableItem(k, function(source) + local xPlayer = ESX.GetPlayerFromId(source) + if v.remove then + xPlayer.removeInventoryItem(k,1) + end + TriggerClientEvent("esx_status:add",source,"hunger",v.status) + TriggerClientEvent('esx_basicneeds:onEat',source) + xPlayer.showNotification(_U('used_eat', ESX.GetItemLabel(k))) + end) + end end) -ESX.RegisterUsableItem('water', function(source) - local xPlayer = ESX.GetPlayerFromId(source) - xPlayer.removeInventoryItem('water', 1) - - TriggerClientEvent('esx_status:add', source, 'thirst', 200000) - TriggerClientEvent('esx_basicneeds:onDrink', source) - xPlayer.showNotification(_U('used_water')) +CreateThread(function() + for k,v in pairs(Config.Drinks) do + ESX.RegisterUsableItem(k, function(source) + local xPlayer = ESX.GetPlayerFromId(source) + if v.remove then + xPlayer.removeInventoryItem(k,1) + end + TriggerClientEvent("esx_status:add",source,"thirst",v.status) + TriggerClientEvent('esx_basicneeds:onDrink',source) + xPlayer.showNotification(_U('used_drink', ESX.GetItemLabel(k))) + end) + end end) ESX.RegisterCommand('heal', 'admin', function(xPlayer, args, showError) @@ -29,4 +39,4 @@ AddEventHandler('txAdmin:events:healedPlayer', function(eventData) end TriggerClientEvent('esx_basicneeds:healPlayer', eventData.id) -end) \ No newline at end of file +end)