Nakka Lindo Posted March 11, 2023 Share Posted March 11, 2023 function drawHPBar( x, y, v, d) if(v < 0.0) then v = 0.0 elseif(v > 100.0) then v = 100.0 end dxDrawRectangle(screenW * 0.4870, screenH * 0.4005, screenW * 0.0260, screenH * 0.0046, tocolor(0, 0, 0, 250), false) dxDrawRectangle(screenW * 0.4870, screenH * 0.4005, screenW * 0.0260, screenH * 0.0046, tocolor(255, 255, 255, 255), false) --[[VIDA]] end function drawArmourBar( x, y, v, d) if(v < 0.0) then v = 0.0 elseif(v > 100.0) then v = 100.0 end dxDrawRectangle(screenW * 0.4870, screenH * 0.4074, screenW * 0.0260, screenH * 0.0046, tocolor(0, 0, 0, 250), false) dxDrawRectangle(screenW * 0.4870, screenH * 0.4074, screenW * 0.0260, screenH * 0.0046, tocolor(100, 224, 0, 250), false) --[[COLETE]] end Link to comment
Doongogar Posted March 11, 2023 Share Posted March 11, 2023 então não é bem assim que funciona você tem que fazer assim: local vida = math.floor(getElementHealth(localPlayer)) local coltete = math.floor(getPedArmor(localPlayer)) dxDrawRectangle(x*1, y*1, x*1/100*vida, y*1, tocolor(r, g, b, a), false) -- vai diminur na horizontal dxDrawRectangle(x*1, y*1, x*1, y*1/100*colte, tocolor(r, g, b, a), false) -- vai diminuir na vertical o X diminui a barra no sentido do horizonte ja o Y diminui a barra no sentido vertical bom se não me engano é assim, pode ta errado também, isso só os mais inteligentes diram... Link to comment
Erknneto Posted March 11, 2023 Share Posted March 11, 2023 Amigo, você vai precisar usar a vida e o colete para calcular o tamanho das barras do HUD, é uma matemática simples. Como você quer um fundo, vamos usar uma largura de valor 200. A largura desse fundo não pode mudar quando o jogador sofrer dano, então temos que fazer um cálculo onde o resultado é sempre 200. Na barra que mostra a vida ou o colete, a largura deve mudar ao sofrer dano, então vamos apenas trocar o 100, que é o valor chave do cálculo, pelo valor da vida/colete do jogador. local vida = getElementHealth(localPlayer) -- Valor da vida do jogador local colete = getPedArmor(localPlayer) -- Valor do colete do jogador dxDrawRectangle(screenW*0.4870, screenH*0.4005, screenW*200/100*100, screenH*0.0046, tocolor(0, 0, 0, 250), false) -- Calculo o fundo da vida, valor máximo é 100. dxDrawRectangle(screenW*0.4870, screenH*0.4005, screenW*200/100*vida, screenH*0.0046, tocolor(255, 255, 255, 255), false) -- Calculo a barra de vida, substituindo o máximo pelo valor da vida do jogador. dxDrawRectangle(screenW*0.4870, screenH*0.4074, screenW*200/100*100, screenH*0.0046, tocolor(0, 0, 0, 250), false) -- Calculo o fundo do colete, valor máximo é 100. dxDrawRectangle(screenW*0.4870, screenH*0.4074, screenW*200/100*colete, screenH*0.0046, tocolor(255, 255, 255, 255), false) -- Calculo a barra de colete, substituindo o máximo pelo valor do colete do jogador. Link to comment
Nakka Lindo Posted March 11, 2023 Author Share Posted March 11, 2023 On 11/03/2023 at 19:31, Erknneto said: Amigo, você vai precisar usar a vida e o colete para calcular o tamanho das barras do HUD, é uma matemática simples. Como você quer um fundo, vamos usar uma largura de valor 200. A largura desse fundo não pode mudar quando o jogador sofrer dano, então temos que fazer um cálculo onde o resultado é sempre 200. Na barra que mostra a vida ou o colete, a largura deve mudar ao sofrer dano, então vamos apenas trocar o 100, que é o valor chave do cálculo, pelo valor da vida/colete do jogador. local vida = getElementHealth(localPlayer) -- Valor da vida do jogador local colete = getPedArmor(localPlayer) -- Valor do colete do jogador dxDrawRectangle(screenW*0.4870, screenH*0.4005, screenW*200/100*100, screenH*0.0046, tocolor(0, 0, 0, 250), false) -- Calculo o fundo da vida, valor máximo é 100. dxDrawRectangle(screenW*0.4870, screenH*0.4005, screenW*200/100*vida, screenH*0.0046, tocolor(255, 255, 255, 255), false) -- Calculo a barra de vida, substituindo o máximo pelo valor da vida do jogador. dxDrawRectangle(screenW*0.4870, screenH*0.4074, screenW*200/100*100, screenH*0.0046, tocolor(0, 0, 0, 250), false) -- Calculo o fundo do colete, valor máximo é 100. dxDrawRectangle(screenW*0.4870, screenH*0.4074, screenW*200/100*colete, screenH*0.0046, tocolor(255, 255, 255, 255), false) -- Calculo a barra de colete, substituindo o máximo pelo valor do colete do jogador. Expand Muito obrigado vou testar On 11/03/2023 at 18:28, SciptNovato said: então não é bem assim que funciona você tem que fazer assim: local vida = math.floor(getElementHealth(localPlayer)) local coltete = math.floor(getPedArmor(localPlayer)) dxDrawRectangle(x*1, y*1, x*1/100*vida, y*1, tocolor(r, g, b, a), false) -- vai diminur na horizontal dxDrawRectangle(x*1, y*1, x*1, y*1/100*colte, tocolor(r, g, b, a), false) -- vai diminuir na vertical o X diminui a barra no sentido do horizonte ja o Y diminui a barra no sentido vertical bom se não me engano é assim, pode ta errado também, isso só os mais inteligentes diram... Expand Obrigado vou testar Link to comment
Nakka Lindo Posted March 11, 2023 Author Share Posted March 11, 2023 On 11/03/2023 at 19:31, Erknneto said: Amigo, você vai precisar usar a vida e o colete para calcular o tamanho das barras do HUD, é uma matemática simples. Como você quer um fundo, vamos usar uma largura de valor 200. A largura desse fundo não pode mudar quando o jogador sofrer dano, então temos que fazer um calculado onde o resultado é sempre 200. Na barra que mostra a vida ou o colete, a largura deve mudar ao sofrer dano, então vamos apenas trocar o 100, que é o valor chave do cálculo, pelo valor da vida/coleta do jogador. Expand function onClientRender1() local screenW, screenH = guiGetScreenSize() --[[Ful screen]] local vida = getElementHealth(localPlayer) -- Valor da vida do jogador local colete = getPedArmor(localPlayer) -- Valor do colete do jogador dxDrawRectangle(screenW * 0.4870, screenH * 0.4005, screenW * 0.0260, screenH * 0.0046, tocolor(0, 0, 0, 250), false)--VIDA dxDrawLine((screenW * 0.4870) - 1, (screenH * 0.4005) - 1, (screenW * 0.4870) - 1, screenH * 0.4051, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5130, (screenH * 0.4005) - 1, (screenW * 0.4870) - 1, (screenH * 0.4005) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawLine((screenW * 0.4870) - 1, screenH * 0.4051, screenW * 0.5130, screenH * 0.4051, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5130, screenH * 0.4051, screenW * 0.5130, (screenH * 0.4005) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawRectangle(screenW * 0.4870, screenH * 0.4005, screenW * 0.0260 * colete/100, screenH * 0.0046, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4870, screenH * 0.4074, screenW * 0.0260, screenH * 0.0046, tocolor(0, 0, 0, 250), false)--COLETE dxDrawLine((screenW * 0.4870) - 1, (screenH * 0.4074) - 1, (screenW * 0.4870) - 1, screenH * 0.4120, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5130, (screenH * 0.4074) - 1, (screenW * 0.4870) - 1, (screenH * 0.4074) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawLine((screenW * 0.4870) - 1, screenH * 0.4120, screenW * 0.5130, screenH * 0.4120, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5130, screenH * 0.4120, screenW * 0.5130, (screenH * 0.4074) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawRectangle(screenW * 0.4870, screenH * 0.4074, screenW * 0.0260 * vida/100, screenH * 0.0046, tocolor(100, 224, 0, 250), false) end Teria como deixar minha vida/colete mostrando só para os outros players? Link to comment
Doongogar Posted March 12, 2023 Share Posted March 12, 2023 tenta usar essa verificação local localPlayer = getLocalPlayer() -- obtem o jogador local if localPlayer ~= source then -- verificar se o jogador local é diferente do jogador que está executando o script Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now