Jump to content

Ajuda com sistema de fome/sede


Recommended Posts

Galera não sei o que há de errado, tipo, quando você enche por completo a barra de Fome, mesmo a sede estando vazia, ele retorna a mensagem de que não precisa comer/beber nada, e as vezes quando se enche a barra de sede primeiro, ele seta a de fome pra 100%... to perdido aqui, alguém pode me ajudar ? o sistema está integrado a um inventário, voce seleciona a comida, e vai clicando pra comer/beber.

Parte do client aonde esta o sistema de comer/beber
 

local s = {guiGetScreenSize()}
local box = {36,36}
local panel = {s[1]/2 -box[1]/2,s[2]/1.25 - box[2]/1.25}
local barItem = 0
local barNum = 0
local barShow = false
local barSize = 98
local barHealth = 0
local newAmount = 0
local hasznalhat = false

function me(me)
	triggerServerEvent("chat.me", localPlayer, localPlayer, me)
end

function itemBar(num,itemID,health)
	barShow = true
	barItem = itemID
	barNum = num
	barHealth = health
	newAmount = (barHealth/10) /2
	triggerServerEvent("attachItemPlayer",localPlayer,localPlayer,items[itemID].object)
end

addEventHandler("onClientRender",getRootElement(),function()
	if barShow == true then
		dxDrawRectangle(panel[1],panel[2],36+6,36+6,tocolor(0,0,0,140))
		dxDrawImage(panel[1] + 3,panel[2] + 3,36,36,getItemImg(barItem))
		
		dxCreateBorder(panel[1]-32,panel[2]+60,100,6,tocolor(0,0,0,180))
		dxDrawRectangle(panel[1]-32,panel[2]+60,100,6,tocolor(0,0,0,90))
		dxDrawRectangle(panel[1]-30,panel[2]+62,barSize,5,tocolor(208,101,29,250))
	end
end)

function hungBarClick(button, state)
	cancelEvent()
	if barShow == true then
		if button == "right" and state == "down" then
			if isInSlot(panel[1],panel[2],36,36) then
				if isTimer(hungTimer) then return end
				hungTimer = setTimer(function() end, 4000, 1)
				if getElementData(localPlayer, "hunger") == 100 then 
					exports.vz_info:showBox("Você não precisa comer/beber", "error")
					return false
				elseif getElementData(localPlayer, "sede") + newAmount > 100 then
					setElementData(localPlayer, "sede", 100)
					return true
				end 
				
				barSize = barSize-14
				if barNum == 1 then
					setElementData(localPlayer,"hunger",getElementData(localPlayer,"hunger")+newAmount)
					triggerServerEvent("itemAnims",localPlayer,localPlayer,1)
				elseif barNum == 2 then
					setElementData(localPlayer,"sede",getElementData(localPlayer,"sede")+(newAmount/2))
					triggerServerEvent("itemAnims",localPlayer,localPlayer,2)
				end
				if barSize <= 1 then
					triggerServerEvent("detachItemPlayer",localPlayer,localPlayer)
					barShow = false
					barSize = 98
				end
			end
		elseif button == "left" and state == "down" then
			if isInSlot(panel[1],panel[2],36,36) then
				barShow = false
				barSize = 98
				triggerServerEvent("detachItemPlayer",localPlayer,localPlayer)
			end
		end
	end
end
addEventHandler("onClientClick", root, hungBarClick)

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...