Jump to content

[DUVIDA] Remover dxDraw


Recommended Posts

Quero remover o DxDraw quando o comando for executado novamente.

CLIENT-SIDE:

function f_tabPanel()
    local screenW, screenH = guiGetScreenSize()

    linha = dxDrawLine(screenW * 0.3160, screenH * 0.3444, screenW * 0.7694, screenH * 0.3444, tocolor(41, 49, 213, 255), 1, false)
end

function f_executeTab()
    addEventHandler("onClientRender", root, f_tabPanel)
end
addCommandHandler("rectangle", f_executeTab)

Estou estudando, por isso é só uma linha :v

 

Obs.: tentei fazer o método de verificação básico. Não funciona porque onClientRender é como um loop, ou seja, quando ele verifica se a variável é igual a false ou nil ele ativa a linha, mas logo destrói ela.

function f_tabPanel()
    local screenW, screenH = guiGetScreenSize()
	
  	if s_aberto ~= true then
   	  linha = dxDrawLine(screenW * 0.3160, screenH * 0.3444, screenW * 0.7694, screenH * 0.3444, tocolor(41, 49, 213, 255), 1, false)
          s_aberto = true
    else
      destroyElement(linha)
    end
end

function f_executeTab()
    addEventHandler("onClientRender", root, f_tabPanel)
end
addCommandHandler("rectangle", f_executeTab)

 

**Edit: Com GUI é tão simples, basta verificar guiGetVisible :(

** Edit: Como descobri o loop:

 

Edited by GM_Goulart
Link to comment
local screenW, screenH = guiGetScreenSize()
local render = false -- variável

function f_tabPanel()
  	dxDrawLine(screenW * 0.3160, screenH * 0.3444, screenW * 0.7694, screenH * 0.3444, tocolor(41, 49, 213, 255), 1, false)
end

function f_executeTab()
   	local addRemove = render and removeEventHandler("onClientRender", root, f_tabPanel) or addEventHandler("onClientRender", root, f_tabPanel) 
  	-- se a váriavel render for true vai remover o evento caso contrário irá adicionar
  	if addRemove then
		render = not render -- alterna a variável
   	end
end
addCommandHandler("rectangle", f_executeTab)

Tente isso, coloquei umas explicações para você, espero que entenda!

  • Thanks 1
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...