Jump to content

Verificação


Recommended Posts

function onPlayerBuy(type)
	if type == "drink" then
		local money = getPlayerMoney(client)
		if money >= 200 then
			local atualDrink = getElementData(client, "thirsty")
			if atualDrink and atualDrink < 100 then
				takePlayerMoney(client, 200)
				setElementData(client, "thirsty", atualDrink + 5)
				outputChatBox("Drink comprado com sucesso", client, 0, 255, 0)
				if atualDrink > 100 then -- Essa verificação não é executada
					setElementData(client, "thirsty", 100)
					print("ok drink")
				end
			else
				outputChatBox("Você não está com sede", client, 0, 255, 0)
				playSoundFrontEnd(client, 6)
			end
		else
			outputChatBox("Você não possui dinheiro suficiente", client, 255, 0, 0)
			playSoundFrontEnd(client, 6)
		end
	elseif type == "food" then
		local money = getPlayerMoney(client)
		if money >= 400 then
			local atualFood = getElementData(client, "food")
			if atualFood and atualFood < 100 then
				takePlayerMoney(client, 400)
				setElementData(client, "food", atualFood + 5)
				outputChatBox("Comida comprada com sucesso", client, 0, 255, 0)
				if atualFood > 100 then -- Essa verificação não é executada
					setElementData(client, "food", 100)
					print("ok food")
				end
			else
				outputChatBox("Você não está com fome", client, 0, 255, 0)
				playSoundFrontEnd(client, 6)
			end
		else
			outputChatBox("Você não possui dinheiro suficiente", client, 255, 0, 0)
			playSoundFrontEnd(client, 6)
		end
	end
end
addEvent("onPlayerBuy", true)
addEventHandler("onPlayerBuy", resourceRoot, onPlayerBuy)

Estava tentando ver uma forma de não deixar o valor da data passar de 100, primeira coisa que veio na cabeça foi essa verificação porém ela não é executada, creio que há também algum cálculo para o valor não passar de 100

Link to comment
local valor = 100
if valor < 1000 then
  	print( "'valor' + 900: "..tostring((valor + 900)) ) -- saída: 1000
  	if valor >= 1000 then
		print( "maior ou igual a 1000" )
	end
end

Basicamente você está cometendo esse erro, a variável continua retornando o mesmo valor que na primeira checagem, porque ela não foi alterada.

Correção:

if atualDrink and atualDrink < 100 then
	local drink_new = (atualDrink + 5) > 100 and 100 or (atualDrink + 5)
	takePlayerMoney(client, 200)
	setElementData(client, "thirsty", drink_new)
	outputChatBox("Drink comprado com sucesso", client, 0, 255, 0)
else
	outputChatBox("Você não está com sede", client, 0, 255, 0)
	playSoundFrontEnd(client, 6)
end

Ou use math.min:

local drink_new = math.min( atualDrink + 5, 100 )

 

Edited by DNL291
  • Thanks 1
Link to comment
2 hours ago, DNL291 said:

local valor = 100
if valor < 1000 then
  	print( "'valor' + 900: "..tostring((valor + 900)) ) -- saída: 1000
  	if valor >= 1000 then
		print( "maior ou igual a 1000" )
	end
end

Basicamente você está cometendo esse erro, a variável continua retornando o mesmo valor que na primeira checagem, porque ela não foi alterada.

Correção:


if atualDrink and atualDrink < 100 then
	local drink_new = (atualDrink + 5) > 100 and 100 or (atualDrink + 5)
	takePlayerMoney(client, 200)
	setElementData(client, "thirsty", drink_new)
	outputChatBox("Drink comprado com sucesso", client, 0, 255, 0)
else
	outputChatBox("Você não está com sede", client, 0, 255, 0)
	playSoundFrontEnd(client, 6)
end

Ou use math.min:


local drink_new = math.min( atualDrink + 5, 100 )

 

Verdade @DNL291, não tinha percebido isso, muito obrigado.

  • Like 1
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...