From b975f318a00fa0210ea2e7957e6d9cfb4976b04f Mon Sep 17 00:00:00 2001 From: Jim Shield Date: Fri, 19 Sep 2025 23:06:11 +0100 Subject: [PATCH] Fix hunger and thirst events Missed out the math part when adding hunger and thirst to a player when eating items when I reworked the functions should fix for all frameworks --- shared/playerfunctions.lua | 40 +++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/shared/playerfunctions.lua b/shared/playerfunctions.lua index be88940..0be6355 100644 --- a/shared/playerfunctions.lua +++ b/shared/playerfunctions.lua @@ -16,14 +16,18 @@ local hungerThirstFunc = { setThirst = function(src, thirst) local Player = Core.Functions.GetPlayer(src) - Player.Functions.SetMetaData('thirst', thirst) - TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata.hunger, thirst) + local newThirst = Player.PlayerData.metadata.thirst + thirst + newThirst = (newThirst >= 100.0 and 100.0) or (newThirst <= 0 and 0) or newThirst + Player.Functions.SetMetaData('thirst', newThirst) + TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata.hunger, newThirst) end, setHunger = function(src, hunger) local Player = Core.Functions.GetPlayer(src) - Player.Functions.SetMetaData('hunger', hunger) - TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.thirst) + local newHunger = Player.PlayerData.metadata.hunger + hunger + newHunger = (newHunger >= 100.0 and 100.0) or (newHunger <= 0 and 0) or newHunger + Player.Functions.SetMetaData('hunger', newHunger) + TriggerClientEvent("hud:client:UpdateNeeds", src, newHunger, Player.PlayerData.metadata.thirst) end, }, @@ -31,14 +35,18 @@ local hungerThirstFunc = { setThirst = function(src, thirst) local Player = Core.Functions.GetPlayer(src) - Player.Functions.SetMetaData('thirst', thirst) - TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata.hunger, thirst) + local newThirst = Player.PlayerData.metadata.thirst + thirst + newThirst = (newThirst >= 100.0 and 100.0) or (newThirst <= 0 and 0) or newThirst + Player.Functions.SetMetaData('thirst', newThirst) + TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata.hunger, newThirst) end, setHunger = function(src, hunger) local Player = Core.Functions.GetPlayer(src) - Player.Functions.SetMetaData('hunger', hunger) - TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.thirst) + local newHunger = Player.PlayerData.metadata.hunger + hunger + newHunger = (newHunger >= 100.0 and 100.0) or (newHunger <= 0 and 0) or newHunger + Player.Functions.SetMetaData('hunger', newHunger) + TriggerClientEvent("hud:client:UpdateNeeds", src, newHunger, Player.PlayerData.metadata.thirst) end, }, @@ -46,25 +54,29 @@ local hungerThirstFunc = { setThirst = function(src, thirst) local Player = Core.Functions.GetPlayer(src) - Player.Functions.SetMetaData('thirst', thirst) - TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata.hunger, thirst) + local newThirst = Player.PlayerData.metadata.thirst + thirst + newThirst = (newThirst >= 100.0 and 100.0) or (newThirst <= 0 and 0) or newThirst + Player.Functions.SetMetaData('thirst', newThirst) + TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata.hunger, newThirst) end, setHunger = function(src, hunger) local Player = Core.Functions.GetPlayer(src) - Player.Functions.SetMetaData('hunger', hunger) - TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.thirst) + local newHunger = Player.PlayerData.metadata.hunger + hunger + newHunger = (newHunger >= 100.0 and 100.0) or (newHunger <= 0 and 0) or newHunger + Player.Functions.SetMetaData('hunger', newHunger) + TriggerClientEvent("hud:client:UpdateNeeds", src, newHunger, Player.PlayerData.metadata.thirst) end, }, { framework = ESXExport, setThirst = function(src, thirst) - TriggerClientEvent('esx_status:add', src, 'thirst', thirst) + TriggerClientEvent('esx_status:add', src, 'thirst', tonumber(thirst) * 10000) end, setHunger = function(src, hunger) - TriggerClientEvent('esx_status:add', src, 'hunger', hunger) + TriggerClientEvent('esx_status:add', src, 'hunger', tonumber(hunger) * 10000) end, }, }