Jump to content

Ajustar resolução


Recommended Posts

function HUD ()

  
        dxDrawLine(448 - 1, 743 - 1, 448 - 1, 764, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(850, 743 - 1, 448 - 1, 743 - 1, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(448 - 1, 764, 850, 764, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(850, 764, 850, 743 - 1, tocolor(0, 0, 0, 255), 1, false)
        dxDrawRectangle(448, 743, 402, 21, tocolor(46, 46, 46, 155), false)
        dxDrawText("", 623, 588, 623, 588, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end

addEventHandler("onClientRender", root, HUD)
addEventHandler("onClientResourceStart", resourceRoot,
    function()
	for id, hudComponents in ipairs(hudTable) do
		showPlayerHudComponent(hudComponents, false)
	end
    end
)

addEventHandler("onClientResourceStop", resourceRoot,
    function()
	for id, hudComponents in ipairs(hudTable) do
		showPlayerHudComponent(hudComponents, true)
	end
    end
)

Criei esse Dx pra mandar algumas informações na tela, fiz na resolução 1366x768. O pessoal com resolução diferente tá ficando torto teria como por pra ajustar em todas resoluções?

Link to comment
  • Other Languages Moderators

Cadê a hudTable?

Está ficando torto comparado ao quê? Posição do HUD original?

Além disso você não está trabalhando com a resolução do jogador. Isso significa que a posição dos dxDraw sempre vai ser diferente nas outras resoluções.

Edited by Lord Henry
Link to comment
  • Other Languages Moderators

Acabei de testar seu código na resolução 1366x768 e sem alterar nada. Ele já não está centralizado em X.

Seu texto também não está dentro do dxDrawRectangle.

Link to comment
  • Other Languages Moderators

Pra começar vc deveria usar guiGetScreenSize para obter a resolução do jogador. Depois sabendo disso, vc posiciona usando o tamanho da tela como base no cálculo.

E também não faz sentido esse tamanho que vc está usando no retângulo. Por quê o tamanho x = 402, y = 21?

Link to comment
  • Other Languages Moderators
local x, y = guiGetScreenSize () -- Obtém a resolução do jogador, no meu caso x = 1366 e y = 768

function HUD ()
	dxDrawLine (x/2 - 240, y - 25, x/2 - 240, y - 5, tocolor(0, 0, 0, 255)) -- Linha da esquerda
	dxDrawLine (x/2 - 240, y - 25, x/2 + 240, y - 25, tocolor(0, 0, 0, 255)) -- Linha superior
	dxDrawLine (x/2 - 240, y - 5, x/2 + 240, y - 5, tocolor(0, 0, 0, 255)) -- Linha inferior
	dxDrawLine (x/2 + 240, y - 25, x/2 + 240, y - 5, tocolor(0, 0, 0, 255)) -- Linha da direita
	dxDrawRectangle (x/2 - 240, y - 25, 480, 20, tocolor(46, 46, 46, 155)) -- Retângulo centralizado horizontalmente na tela.
	dxDrawText ("TESTANDO MENSAGEM COM LETRAS MAIÚSCULAS e também com letras minúsculas.", x/2 - 240, y - 25, x/2 + 240, y - 5, tocolor(255, 255, 255, 255), 1, "default", "center", "center", true) -- Texto centralizado no retângulo.
end
addEventHandler ("onClientRender", root, HUD)

 

Edited by Lord Henry
Link to comment
  • 3 weeks later...
local x, y = guiGetScreenSize () -- Obtém a resolução do jogador, no meu caso x = 1366 e y = 768

function HUD ()
	dxDrawLine (x/2 - 240, y - 25, x/2 - 240, y - 5, tocolor(0, 0, 0, 255)) -- Linha da esquerda
	dxDrawLine (x/2 - 240, y - 25, x/2 + 240, y - 25, tocolor(0, 0, 0, 255)) -- Linha superior
	dxDrawLine (x/2 - 240, y - 5, x/2 + 240, y - 5, tocolor(0, 0, 0, 255)) -- Linha inferior
	dxDrawLine (x/2 + 240, y - 25, x/2 + 240, y - 5, tocolor(0, 0, 0, 255)) -- Linha da direita
	dxDrawRectangle (x/2 - 240, y - 25, 480, 20, tocolor(46, 46, 46, 155)) -- Retângulo centralizado horizontalmente na tela.
	dxDrawText (' [INFO]: '..MensagensInfo[cont], x/2 - 240, y - 25, x/2 + 240, y - 5, tocolor(255, 255, 255, 255), 1, "default", "center", "center", true) -- Texto centralizado no retângulo.
end
addEventHandler ("onClientRender", root, HUD)


tMensagems = 1 
cont = 1
MensagensInfo = {
	"Falta 10 Minutos para acabar o Roud.",
	"Falta 9 Minutos para acabar o Roud.",
	"Falta 8 Minutos para acabar o Roud.",
	"Falta 7 Minutos para acabar o Roud.",
	"Falta 6 Minutos para acabar o Roud.",
	"Falta 5 Minutos para acabar o Roud.",
	"Falta 4 Minutos para acabar o Roud.",
	"Falta 3 Minutos para acabar o Roud.",
	"Falta 2 Minutos para acabar o Roud.",
	"Falta 1 Minutos para acabar o Roud.",
	"Roud Finalizado. X1 de Costas Será iniciado!",
}

setTimer(function ( )
	cont = cont +1
end, tMensagems * 60000 , 0)

Estou usando o script como você pode ver acima, pra informar quantos minutos faltar pra acabar, funciona tudo bem mais por exemplo se tiver em 9 minutos e o player relogar volta pra 10 Minutos somente pra ele, pra os outros continua apartir dos 9 minutos. 
Já alterei o onClientRender para onResourceStart , mais não aparece nada na tela quando faço isso.

Link to comment
  • Moderators

O timer do round deve ser no lado server, pois no cliente é como se você tivesse definindo vários timers individualmente (para cada jogador).

O que deve ser feito além disso, é fazer triggerServerEvent > triggerClientEvent ou onPlayerLogin > triggerClientEvent, passando o tempo restante, e chamar o evento no cliente.

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...