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 1 hour ago, 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. Muito obrigado vou testar 2 hours ago, 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... Obrigado vou testar Link to comment
Nakka Lindo Posted March 11, 2023 Author Share Posted March 11, 2023 2 hours ago, 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. 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