Jump to content

Ajustar resolução


Recommended Posts

Posted
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?

  • Other Languages Moderators
Posted (edited)

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
Posted

dxDrawRectangle era pra ficar centralizado na parte inferior da tela, pra quem ta na resolução 1366x768 fica, mais quem te em resolução diferente não fica

  • Other Languages Moderators
Posted

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.

  • Other Languages Moderators
Posted

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?

  • Other Languages Moderators
Posted (edited)
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
  • 3 weeks later...
Posted
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.

  • Other Languages Moderators
Posted

O certo é "round" e não "Roud".

Sobre o tempo reiniciar, para manter o tempo de todo mundo igual, faça ele server-side.

Posted

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.

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