Jump to content

[Duvida] getElementHealth trailer


Recommended Posts

Olá Boa Tarde, estou tentando fazer uma verificação sobre a vida no Trailer(Carga) que ser for <=350 vai está mandando uma outputChatBox para o jogador agora ser for > que 350 vai continua com a Rota.

Quando eu deixo o Trailer com 350 de vida e passo pelo Marker da esse erro no if not getElementHealth( Carga_Disel ) <= 350 then  (attempt to compare boolean with number)
server-side

						if not getElementHealth( Carga_Disel ) <= 350 then
							setElementData(source, "DiselPosicoes", getElementData(source, "DiselPosicoes") + 1)
							local x, y, z = unpack(DiselLocais[getElementData(source, "DiselPosicoes")])
							setElementPosition(source, x, y, z -1)
							outputChatBox ("Descarregando", getVehicleOccupant(truck), 255, 255, 255, true )
							setElementFrozen(getVehicleOccupant(truck), true)
							toggleAllControls(getVehicleOccupant(truck), false)
							setTimer(function()
								setElementFrozen(getVehicleOccupant(truck), false)
								toggleAllControls(getVehicleOccupant(truck), true)
								outputChatBox ("Pode seguir a Rota!!", getVehicleOccupant(truck), 255, 255, 255, true )
							end, 3000, 1)
						else
							outputChatBox ("Sua Carga está Danificada!!", getVehicleOccupant(truck), 255, 255, 255, true )
						end

 

Edited by +[T]rakin
Link to comment
  • Other Languages Moderators

A variável Carga_Diesel está com erro.

Mas sim, é possível checar a vida de uma carga anexada ao caminhão.

Mande a parte do código onde vc declara a variável Carga_Diesel.

Edited by Lord Henry
  • Like 1
Link to comment
  • Other Languages Moderators

Hum... Parece ser um elemento mesmo. Não era pra gerar erro.

Troque a linha do print por esses:

print ("É elemento: "..tostring(isElement (Carga_Disel)))
print ("Tipo de elemento: "..tostring(getElementType (Carga_Disel)))
print ("Vida do elemento: "..tostring(getElementHealth (Carga_Disel)))

 

Edited by Lord Henry
Link to comment
  • Other Languages Moderators

Isso não faz sentido! Aquele terceiro print faz exatamente a mesma coisa que no seu script, ele pega a vida da carga e mostra no debug. Não tem como dar erro na sua comparação por valor booleano.


Edit: NOOSSAAA! Descobri!

No seu script vc fez assim:

if not getElementHealth( Carga_Disel ) <= 350 then -- Se (não número) é menor ou igual a 350, então:
-- QUE É O MESMO QUE: Se (false) é menor ou igual a 350, então: ERRO

-- Mas vc quis dizer:

if not (getElementHealth (Carga_Disel) <= 350) then -- Se (vida da carga NÃO É menor ou igual a 350), então:

-- Que seguindo uma lógica mais otimizada de acordo com as boas práticas de programação, pode ser escrita como:

if (getElementHealth (Carga_Disel) > 350) then -- Se (vida da carga é maior que 350), então:

Faça assim:

if getElementHealth (Carga_Disel) > 350 then

 

Edited by Lord Henry
Expliquei tudo.
  • Thanks 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...