2026-04-14 17:41:39 +02:00

178 lines
5.6 KiB
Lua

lastHunger = nil
lastThirst = nil
function SetStatus(type, value)
NuiMessage("SET_STATUS", {
type = type,
value = value,
})
end
lastHealth = nil
CreateThread(function()
LoadPlayerInformations()
while true do
local playerPed = PlayerPedId()
local health = GetEntityHealth(playerPed)
if lastHealth == nil or lastHealth ~= health then
local val = health - 100
SetStatus('health', val)
lastHealth = health
if lastHealth <= 0 then
TriggerEvent('codem-inventory:client:closeInventory')
if Config.DiePlayerRemoveHandsWeaponItem then
TriggerEvent('codem-inventory:client:removeWeaponPlayerHands')
end
end
end
Wait(1600)
end
end)
function LoadPlayerInformations()
while Core == nil and not PlayerLoaded do
Wait(0)
end
CreateThread(function()
local cash = 0
local bank = 0
if Config.Framework == 'esx' or Config.Framework == 'oldesx' then
while Core.GetPlayerData() == nil and Core.GetPlayerData().accounts == nil do
Wait(0)
end
Wait(1000)
local PlayerData = Core.GetPlayerData()
if next(PlayerData) == nil then
else
local esxCash = TriggerCallback("codem-inventory:GetESXCash")
local esxBank = TriggerCallback("codem-inventory:GetESXBank")
bank = esxBank
cash = esxCash
end
else
while Core.Functions.GetPlayerData() == nil do
Wait(0)
end
local PlayerData = Core.Functions.GetPlayerData()
if next(PlayerData) == nil then
else
cash = PlayerData["money"].cash or 0
bank = PlayerData["money"].bank or 0
end
end
SetStatus("cash", cash)
SetStatus("bank", bank)
end)
end
local lastArmor = nil
CreateThread(function()
while true do
local playerPed = PlayerPedId()
local armor = GetPedArmour(playerPed)
if not lastArmor or lastArmor ~= armor then
local val = armor
SetStatus('armor', val)
lastArmor = armor
end
Wait(1600)
end
end)
local lastStamina = nil
CreateThread(function()
while true do
local value = 100 - GetPlayerSprintStaminaRemaining(PlayerId())
if lastStamina == nil or lastStamina ~= value then
SetStatus('stamina', value)
lastStamina = value
end
Wait(1600)
end
end)
RegisterNetEvent("QBCore:Player:SetPlayerData")
AddEventHandler("QBCore:Player:SetPlayerData", function(data)
SetStatus("cash", data.money.cash)
SetStatus("bank", data.money.bank)
end)
RegisterNetEvent('esx:setAccountMoney')
AddEventHandler('esx:setAccountMoney', function(account)
if account.name == 'money' then
account.name = 'cash'
end
SetStatus(account.name, account.money)
end)
RegisterNetEvent("es:removedMoney")
AddEventHandler("es:removedMoney", function(a, b, m)
Wait(1500)
local PlayerData = Core.GetPlayerData()
for _, v in pairs(PlayerData.accounts) do
if v.name == 'bank' then
SetStatus("bank", v.money)
end
if v.name == 'money' then
SetStatus("cash", v.money)
end
end
end)
RegisterNetEvent("es:addedMoney")
AddEventHandler("es:addedMoney", function(a, b, m)
Wait(1500)
local PlayerData = Core.GetPlayerData()
for _, v in pairs(PlayerData.accounts) do
if v.name == 'bank' then
SetStatus("bank", v.money)
end
if v.name == 'money' then
SetStatus("cash", v.money)
end
end
end)
CreateThread(function()
while true do
while Core == nil and not PlayerLoaded do
Wait(0)
end
if Config.Framework == "esx" or Config.Framework == "oldesx" then
TriggerEvent('esx_status:getStatus', 'hunger', function(hunger)
TriggerEvent('esx_status:getStatus', 'thirst', function(thirst)
local hunger = hunger.getPercent()
local thirst = thirst.getPercent()
if lastHunger == nil or hunger ~= lastHunger then
SetStatus('hunger', hunger)
lastHunger = hunger
end
if lastThirst == nil or thirst ~= lastThirst then
SetStatus('thirst', thirst)
lastThirst = thirst
end
end)
end)
else
while Core.Functions.GetPlayerData() == nil and Core.Functions.GetPlayerData().metadata == nil do
Wait(0)
end
local PlayerData = Core.Functions.GetPlayerData()
if next(PlayerData) == nil then
else
local hunger = PlayerData.metadata["hunger"]
local thirst = PlayerData.metadata["thirst"]
if lastHunger == nil or hunger ~= lastHunger then
SetStatus('hunger', hunger)
lastHunger = hunger
end
if lastThirst == nil or thirst ~= lastThirst then
SetStatus('thirst', thirst)
lastThirst = thirst
end
end
end
Wait(6000)
end
end)