Jump to content

Problemas com posição de Texto em Objetos


Recommended Posts

Estou com problemas nesse codigo, se nao me engano é pelo final do codigo dxDrawText

Eu estou precisando deixar o codigo centralizado no objeto, as vezes quando tempo ajustar ele consigo ter um resultado, porem quando vou me desaproximando do caixote o texto começa a subir pra cima ele nao fica parado fixado em cima da caixa e nao centraliza direito no meio do objeto, alguem poderia me ajudar sobre esses parametros, pra mim é tudo novo.

Imagem do resultado do codigo abaixo: https://prnt.sc/CWzL-wdO0sJ2

addEventHandler("onClientRender", root, function()
	for _, objeto in ipairs(getElementsByType("object")) do
		if (getElementData(objeto,"objeto.element")) then
		local ID = getElementData(objeto, "objeto.id")
		local PD = getElementData(objeto, "objeto.produtos")
		
		local localPos = {getElementPosition(localPlayer)}
		local objetoPos = {getElementPosition(objeto)}
		
		local worldPosition = {getScreenFromWorldPosition(objetoPos[1], objetoPos[2], objetoPos[3] + 0.50)}
		local distance = getDistanceBetweenPoints3D(localPos[1], localPos[2], localPos[3], objetoPos[1], objetoPos[2], objetoPos[3])
			if distance <= 15 then
				if worldPosition[1] and worldPosition[2] then
					dxDrawText("ID: "..ID.." | "..PD.."", worldPosition[1] - 40, worldPosition[2], 10, 20, tocolor(255, 255, 255, 255), 1.0 ,"default-bold")
				end
		    end
		end
	end
end)

 

Link to comment

Deu certo meu amigo, e como eu faço pro começo do texto fique centralizado

Por exemplo:

 

Esta dessa forma:

ID: 5 | PD: 1579874

 

Quero que fique dessa forma:

ID: 5 | PD: 1579874

dxDrawText("HP:"..HP.."", worldPosition[1], worldPosition[2], 10, 20, tocolor(255, 255, 255, 255), 1.0 ,"default-bold", "center", "center" , center)

Eu vi alguns parametros e tentei adicionar, ficou assim.... porem nao funciona o texto buga e fica na tela em um canto bem aleatorio, voce pode me ajudar a entender @Lord Henry

 

 

Exemplo de como quero deixar: https://prnt.sc/XBqz7sFvfcUF

 

Oque eu tentei fazer:

dxDrawText("HP:"..HP.." asdasdasdasdasds", worldPosition[1], worldPosition[2], 10, 20, tocolor(255, 255, 255, 255), 1.0 ,"default-bold", "left", "top" , center, true)

 

Link to comment
  • Other Languages Moderators

O seu 4º e 5º parâmetros não fazem sentido. (10, 20)

Também não faz sentido vc colocar "center" fora de aspas duplas. Este parâmetro é uma string, portanto precisa estar entre aspas, exatamente como mencionei na minha resposta anterior.

O primeiro "center" faz ele centralizar o texto na horizontal, o segundo "center" faz ele centralizar na vertical, mas não é necessário centralizar na vertical nesse caso, pois é só aumentar o diminuir aquele offset do + 0.50 para mudar a altura do texto. Então utilize apenas o primeiro "center" e delete o que tem depois.

 

  • Thanks 1
Link to comment
  • Other Languages Moderators
objeto = createObject (1337, 2502, -1667, 12.36) -- Cria um objeto qualquer na Grove Street.

addEventHandler("onClientRender", root, function()
    -- for _, objeto in ipairs(getElementsByType("object")) do -- DESATIVADOS APENAS PARA TESTES.
        -- if (getElementData(objeto,"objeto.element")) then
            -- local ID = getElementData(objeto, "objeto.id")
            -- local PD = getElementData(objeto, "objeto.produtos")
            local ID = 1337       -- APENAS PARA TESTES
            local PD = 1234567890 -- APENAS PARA TESTES
            
            local localPos = {getElementPosition(localPlayer)}
            local objetoPos = {getElementPosition(objeto)}
            
            local worldPosition = {getScreenFromWorldPosition(objetoPos[1], objetoPos[2], objetoPos[3] + 0.50)}
            local distance = getDistanceBetweenPoints3D(localPos[1], localPos[2], localPos[3], objetoPos[1], objetoPos[2], objetoPos[3])
            if distance <= 15 then
                if worldPosition[1] and worldPosition[2] then
                    dxDrawText("ID: "..ID.." | PD: "..PD, worldPosition[1], worldPosition[2], worldPosition[1], worldPosition[2], tocolor(255, 255, 255, 255), 1.0 , "default-bold", "center")
                end
            end
    --     end
    -- end -- DESATIVADOS APENAS PARA TESTES.
end)

image.png.335b50ef899ca59b356a9423654cde0d.png

  • Thanks 1
Link to comment

No caso esses parametros que seriam o 4º e 5º (10, 20): ultiliza em DxImagem e o center ultilizado fora de aspas é para outras funcoes eu estava dando uma estudada aqui mais nao me atentei completamente, show obrigado @Lord Henry aqui funcionou perfeitamente e consegui entender a logica dos parametros do dxDrawText, muito obrigado meu amigo

 

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...