onClientRender
Disparado uma vez por quadro, no meio do trio de desenho.
A raiz (root).
Este evento não tem parâmetros.
Cancelável
Seção intitulada “Cancelável”Não.
Este é o gancho em que quase todo o desenho na tela se apoia. Como o desenho vale por um quadro só, uma HUD é literalmente “redesenhar a mesma coisa 60 vezes por segundo”. O que sai da conta é tudo que não muda a cada quadro: o tamanho da tela, as cores, as posições fixas. Calcule isso uma vez, fora do manipulador.
local telaW, telaH = getScreenSize()
local barraL, barraA = 240, 18local barraX, barraY = 20, telaH - 60
local fundo = tocolor(0, 0, 0, 170)local vida = tocolor(210, 60, 60, 255)local texto = tocolor(255, 255, 255, 255)
addEventHandler("onClientRender", root, function() local pontos = getElementHealth(localPlayer) or 0 local fracao = math.max(0, math.min(1, pontos / 100))
dxDrawRectangle(barraX - 2, barraY - 2, barraL + 4, barraA + 4, fundo) dxDrawRectangle(barraX, barraY, barraL * fracao, barraA, vida) dxDrawText(math.floor(pontos) .. " HP", barraX, barraY, barraX + barraL, barraY + barraA, texto, 1, "default-bold", "center", "center")end)Quando a HUD deixa de ser necessária, tire o manipulador — enquanto ele estiver preso, roda em todo quadro:
Exemplo
Seção intitulada “Exemplo”local function desenharHud() dxDrawRectangle(10, 10, 120, 20, tocolor(0, 0, 0, 150))end
addEventHandler("onClientRender", root, desenharHud)
-- some com a HUD depois de 10 segundossetTimer(function() removeEventHandler("onClientRender", root, desenharHud)end, 10000, 1)Veja também
Seção intitulada “Veja também”onClientPedsProcessed— Disparado uma vez por quadro, depois que todos os personagens do mundo foram atualizados e antes de qualquer coisa ser desenhada.onClientPreRender— Disparado uma vez por quadro, logo antes do onClientRender.onClientHUDRender— Disparado uma vez por quadro, depois do onClientRender.