Sign in to follow this  
iPollo

[Dúvida] Funções Draw

Recommended Posts

Estudando, descobri que funções que desenham como dxDrawText aparece uma vez no frame e some, por isso deve ser colocada abaixo do onClientRender, que é acionado a cada frame novo, porém, como faço para habilitar e desabilitar em algum momento específico?

Por exemplo: tenho um sistema de item, quando o jogador chega perto, desenha um texto na tela, quando se afasta, some, como devo fazer, para que funcione desta forma, pois diretamente abaixo do onClientRender ele iria aparecer o tempo todo.

Share this post


Link to post
Posted (edited)

Das das uma, ou você remove/adiciona o onClientRender quando quiser, ou pode usar variáveis, como no exemplo abaixo; onde a variável será trocada a cada 1 segundo e meio

local mostrandoOutroRetangulo = true

addEventHandler('onClientRender', root, function()
    dxDrawRectangle(...)

    if mostrandoOutroRetangulo then
        dxDrawRectangle(...)
    end
end)

setTimer(function()
    mostrandoOutroRetangulo = not mostrandoOutroRetangulo --(recebe o valor contrario do atual, ou seja, se estiver true vira false e vice-versa)
end, 1500, 0)

no seu caso quando quiser que tal coisa não apareça você pode remover a variável com e quando quiser que volte a aparecer basta voltar a variavel pra true

Edited by iDannz [Breno]
  • Thanks 1

Share this post


Link to post

Mais fácil simplesmente colocar uma condição no onClientRender que verifica a distância entre o player e o item. Se a distância entre eles for menor ou igual a tanto, desenha o texto na tela.

GetDistanceBetweenPoints3D

function renderText ()
    local px, py, pz = getElementPosition (localPlayer)
    local ix, iy, iz = getElementPosition (item) -- Supondo que item exista.
    if (getDistanceBetweenPoints3D (px, py, pz, ix, iy, iz) <= 10) then -- Se a distância entre o player e o item for menor ou igual a 10, então:
        dxDrawText ("Texto", 0, 0) -- Apenas teste.
    end
end
addEventHandler ("onClientRender", root, renderText)

 

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.