Compare commits

..

2 Commits

Author SHA1 Message Date
Jim Shield
69d0f07bb6 Potential fix for playerInfo is nil 2025-09-20 17:56:47 +01:00
Jim Shield
b975f318a0 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
2025-09-19 23:06:11 +01:00

View File

@@ -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,
},
}
@@ -372,19 +384,21 @@ local hasGroupFunc = {
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local jobinfo = playerInfo.job or playerInfo.PlayerData.job
if jobinfo.name == group then
if jobinfo and jobinfo.name == group then
hasJobFlag = true
duty = jobinfo.onduty
if grade and not (grade <= jobinfo.grade.level) then
hasJobFlag = false
end
return hasJobFlag, duty
end
local ganginfo = playerInfo.gang or playerInfo.PlayerData.gang
if ganginfo.name == group then
if ganginfo and ganginfo.name == group then
hasJobFlag = true
if grade and not (grade <= ganginfo.grade.level) then
hasJobFlag = false
end
return hasJobFlag, duty
end
return hasJobFlag, duty
end,
@@ -396,7 +410,7 @@ local hasGroupFunc = {
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local jobinfo = playerInfo.job or playerInfo.PlayerData.job
if jobinfo.name == group then
if jobinfo and jobinfo.name == group then
hasJobFlag = true
duty = jobinfo.onduty
if grade and not (grade <= jobinfo.grade.level) then
@@ -404,7 +418,7 @@ local hasGroupFunc = {
end
end
local ganginfo = playerInfo.gang or playerInfo.PlayerData.gang
if ganginfo.name == group then
if ganginfo and ganginfo.name == group then
hasJobFlag = true
if grade and not (grade <= ganginfo.grade.level) then
hasJobFlag = false
@@ -434,26 +448,6 @@ local hasGroupFunc = {
end,
},
{ framework = OXCoreExport,
hasGroup =
function(group, grade, src)
local hasJobFlag, duty = false, true
if src then
local chunk = assert(load(LoadResourceFile('ox_core', ('imports/%s.lua'):format('server')), ('@@ox_core/%s'):format(file)))
chunk()
local player = Ox.GetPlayer(src)
for k, v in pairs(player.getGroups()) do
if k == group then hasJobFlag = true end
end
end
local info = OxPlayer.getGroups()
for k, v in pairs(info) do
if k == group then hasJobFlag = true break end
end
return hasJobFlag, duty
end,
},
{ framework = ESXExport,
hasGroup =
function(group, grade, src)
@@ -479,7 +473,7 @@ local hasGroupFunc = {
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local jobinfo = playerInfo.job or playerInfo.PlayerData.job
if jobinfo.name == group then
if jobinfo and jobinfo.name == group then
hasJobFlag = true
duty = jobinfo.onduty
if grade and not (grade <= jobinfo.grade.level) then
@@ -487,7 +481,7 @@ local hasGroupFunc = {
end
end
local ganginfo = playerInfo.gang or playerInfo.PlayerData.gang
if ganginfo.name == group then
if ganginfo and ganginfo.name == group then
hasJobFlag = true
if grade and not (grade <= ganginfo.grade.level) then
hasJobFlag = false