Jump to content

Hud, Fome e Sede, Ajuda?


Recommended Posts

Olá novamente ? , provavelmente estou quebrando uma regra do fórum (que no caso seria criar + de 1 tópico sobre o mesmo assunto, mas o tópico anterior meu foi trancado) e peço desculpas, mas...

Bom tenho algumas duvidas

1 - como posso fazer um circulo marcar a vida como a foto deste link foto.png

2 - como posso fazer com que o player ao sentir fome ou sede perca vida aos poucos, e o mesmo circulo citado na duvida acima marque o quanto o player sente de fome e sede.

3 - ultima duvida é como salvar isso quando o player sair e um sistema de compra de lanches e bebidas para eles poderem compra

( OBS: Já tentei utilizar, alguns setElementData, getElementData, setElementHealth junto com um setTimer mas não ficou de uma forma legal ficou meio bugado, e o circulo desproporcional )       Agradeço a todos desde já ❤️

Link to comment
  • Moderators

1 - Com dxDrawImageSection - este tópico vai te ajudar com os cálculos necessários: https://forum.multitheftauto.com/topic/95911-bug-what-wrong-in-this-circle-hud

 

2 - Você pode definir um tempo com setTimer para ativar o inicio da perca de fome/sede sempre que o jogador comer ou beber algo. E fazer uma verificação, resetando quando necessário. Para a subtração do valores, você pode usar também setTimer e definir um tempo para abaixar esses valores.

  • Para abaixar a vida quando sentir fome: Fazendo os passos que eu disse acima, você poderá verificar a quantidade de sede/fome continuamente e ir setando a vida do jogador com get/setElementHealth.

Obs: minha primeira resposta também vale para a barra de fome e sede.

3 - 

Todos esforço em fazer é válido, então se você já tentou fazer mostre aqui o código.

  • Thanks 1
Link to comment
18 minutes ago, DNL291 said:

1 - Com dxDrawImageSection - este tópico vai te ajudar com os cálculos necessários: https://forum.multitheftauto.com/topic/95911-bug-what-wrong-in-this-circle-hud

 

2 - Você pode definir um tempo com setTimer para ativar o inicio da perca de fome/sede sempre que o jogador comer ou beber algo. E fazer uma verificação, resetando quando necessário. Para a subtração do valores, você pode usar também setTimer e definir um tempo para abaixar esses valores.

  • Para abaixar a vida quando sentir fome: Fazendo os passos que eu disse acima, você poderá verificar a quantidade de sede/fome continuamente e ir setando a vida do jogador com get/setElementHealth.

Obs: minha primeira resposta também vale para a barra de fome e sede.

3 - 

Todos esforço em fazer é válido, então se você já tentou fazer mostre aqui o código.

Então, eu até tenho uma parte do código porem eu exclui a parte da barra de vida/fome/colete/sede etc... pois oque eu estava pensando era usar uma imagem(circulo) e fazer um calculo para que inverte-se o eixo y que seria invés de ir de baixo para cima ir de cima para baixo, porem não ficava, muito legal pois distorcia toda a imagem... mas mesmo assim vou colocar a parte que eu refiz do script

local sWidth, sHeight = guiGetScreenSize()
local x, y = (sWidth/1366), (sHeight/768)

local font = dxCreateFont("font.ttf", 15)

setElementData(localPlayer, "hunger", 100)
setElementData(localPlayer, "thirst", 100)
setElementData(localPlayer, "sleep", 100)

function dxInterFace()
	local health = getElementHealth(localPlayer)
	local armor = getPedArmor(localPlayer)
	local hunger = getElementData(localPlayer, "hunger")
	local thirst = getElementData(localPlayer, "thirst")
	local sleep = getElementData(localPlayer, "sleep")
	
	
end
addEventHandler("onClientRender", root, dxInterFace)

setTimer(function()
	if setElementData(localPlayer, "hunger", getElementData(localPlayer, "hunger")-1) then
		setElementData(localPlayer, "hunger", 100)
		setElementHealth(localPlayer, 0)
end, 50, 0)

Como disse exclui a parte do dxDrawImage, pois não estava me agradando distorcendo a imagem.

Link to comment
5 minutes ago, Lord Henry said:

Regra número 2: Nunca delete seu código, deixe como comentário. Só delete se tiver certeza de que nunca vai usar nada daquilo ou então já sabe como fazer algo melhor.

A regra 1 era usar dxDrawImageSection mesmo ahuahauahauh.

SAHUSHUAHSUHA, deletei porque eu decoro todos os códigos minha cabeça parece código binário, as vezes esquecço mas como é coisa momentânea...

logo agradeço vocês ae só vou testar o código to dando uma estuda para decorar direitinho como funciona o código.

Edited by +DeepSea
Link to comment
local sWidth, sHeight = guiGetScreenSize()
local x, y = (sWidth/1366), (sHeight/768)
local font = dxCreateFont("font/font.ttf", 15)

function dxRenderHud()
	dxDrawImageSection(400, 200, 64, 64, 0, 0, 64, 64, "images/icone_colete")
	dxDrawImage(420, 220, 64, 64, 0, 0, 64, 64, "images/icone_colete")
end
addEventHandler("onClientRender", root, dxRenderHud)

--[[ function dxHud()
	local vida = getElementHealth(localPlayer)
	local colete = getPedArmor(localPlayer)
	
	dxDrawImage(x*575, y*650, x*265, y*20, "images/barra_colete.png", 0, 0, 0, tocolor(0, 0, 0, 150), false)
	dxDrawImage(x*575, y*650, x*265/100*colete, y*20, "images/barra_colete.png", 0, 0, 0, tocolor(65, 144, 239, 255), false)
	dxDrawImage(x*545, y*650, x*20, y*20, "images/icone_colete.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
	dxDrawText(math.floor(colete).." | 100", x*1220, y*1292, x*25, y*25, tocolor(255, 255, 255, 255), 0.7, font, "center", "center", false, false, false, true, false)
	
	dxDrawImage(x*575, y*680, x*265, y*20, "images/barra_vida.png", 0, 0, 0, tocolor(0, 0, 0, 150), false)
	dxDrawImage(x*575, y*680, x*265/100*vida, y*20, "images/barra_vida.png", 0, 0, 0, tocolor(95, 202, 64, 255), false)
	dxDrawImage(x*545, y*680, x*20, y*20, "images/icone_vida.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
	dxDrawText(math.floor(vida).." | 100", x*1220, y*1352, x*25, y*25, tocolor(255, 255, 255, 255), 0.7, font, "center", "center", false, false, false, true, false)
end
addEventHandler("onClientRender", root, dxHud) --]]

local components = { "weapon", "ammo", "health", "clock", "money", "breath", "armour", "wanted" }

addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()),
function ()
	for _, component in ipairs( components ) do
		setPlayerHudComponentVisible( component, false )
	end
end)

Manos podem me explicar como funciona o dxDrawImageSection? até agora não entendi como funciona segui o exemplo do link para aquele tópico e não aconteceu nada, já usei o debugscript 3 também e não acusa nada. e aprendi também que não se exclui código mesmo estando errado =D

Atualização : ele apareceu este erro, WARNING:Hud/client.lua:6: Error loading image @ 'dxDrawImageSection' [Expected material at argument 5 got number '0'] e este outro WARNING:Hud/client.lua:7: Bad argument @ 'dxDrawImage' [Expected material at argument 5 got number '0']

(OBS: Esse é só um rascunho que fiz para facilitar e também não quero expor o código pois e exclusivo, consegui fazer o timer da fome e sede, o save também esta funcionando, muito obrigado por ter me ajudado nesta parte)

Edited by +DeepSea
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...