Jump to content

Me ajudem nesse problema


Recommended Posts

Então eu quero colocar para abrir o painel quando passa em cima do marker 

markerarmas = createMarker(1824.381, -1984.783, 21.181, "cylinder", 1.5, 13, 130, 232, 500)

function Pdx(player)
        dxDrawRectangle(322, 205, 181, 192, tocolor(0, 0, 0, 150), false)
        dxDrawRectangle(498, 201, 0, 14, tocolor(255, 255, 255, 255), false)
        dxDrawRectangle(321, 205, 182, 15, tocolor(92, 92, 92, 150), false)
        dxDrawText("Armamentos", 375, 205, 513, 209, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
        dxDrawRectangle(342, 242, 146, 16, tocolor(92, 92, 92, 150), false)
        dxDrawText("Pegar Armas", 384, 242, 482, 251, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end
addEventHandler("onMarkerHit", markerarmas, Pdx)

Só que não tá funcionando

Link to comment

Obvio que não vai funcionar assim, como você pretende renderizar um DX direto no onMarkerHit sem chamar o evento onClientRender?

E me responde outra pergunta, você pretende usar uma função server-side no client como? '-'

Faça assim:

local markerArmas = createMarker(1824.381, -1984.783, 21.181, "cylinder", 1.5, 13, 130, 232, 500)
local abrirPainel = false

function mainPanel ()
	dxDrawRectangle (322, 205, 181, 192, tocolor(0, 0, 0, 150), false)
	dxDrawRectangle (498, 201, 0, 14, tocolor(255, 255, 255, 255), false)
	dxDrawRectangle (321, 205, 182, 15, tocolor(92, 92, 92, 150), false)
	dxDrawText ("Armamentos", 375, 205, 513, 209, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
	dxDrawRectangle (342, 242, 146, 16, tocolor(92, 92, 92, 150), false)
	dxDrawText ("Pegar Armas", 384, 242, 482, 251, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end

function onRequestDX ()
	AbrirPainel ()
end
addEventHandler ("onClientMarkerHit", markerArmas, onRequestDX)

function AbrirPainel () 
	if abrirPainel then -- Se o painel estiver aberto, então:
		removeEventHandler ("onClientRender", root, mainPanel) -- Para de renderizar o painel.
		showCursor (false) -- Desabilita o cursor
	else -- Senão:
		addEventHandler ("onClientRender", root, mainPanel) -- Começa renderizar o painel.
		showCursor (true) -- Habilita o cursor.
	end
	abrirPainel = not abrirPainel
end

Aconselho fazer um botão pra fechar o painel, dai você só chama a função abrirPainel () que ele ira fechar quando o botão for pressionado.

Edited by Jonas^
Link to comment
4 hours ago, Jonas^ said:

Obvio que não vai funcionar assim, como você pretende renderizar um DX direto no onMarkerHit sem chamar o evento onClientRender?

E me responde outra pergunta, você pretende usar uma função server-side no client como? '-'

Faça assim:


local markerArmas = createMarker(1824.381, -1984.783, 21.181, "cylinder", 1.5, 13, 130, 232, 500)
local abrirPainel = false

function mainPanel ()
	dxDrawRectangle (322, 205, 181, 192, tocolor(0, 0, 0, 150), false)
	dxDrawRectangle (498, 201, 0, 14, tocolor(255, 255, 255, 255), false)
	dxDrawRectangle (321, 205, 182, 15, tocolor(92, 92, 92, 150), false)
	dxDrawText ("Armamentos", 375, 205, 513, 209, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
	dxDrawRectangle (342, 242, 146, 16, tocolor(92, 92, 92, 150), false)
	dxDrawText ("Pegar Armas", 384, 242, 482, 251, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end

function onRequestDX ()
	AbrirPainel ()
end
addEventHandler ("onClientMarkerHit", markerArmas, onRequestDX)

function AbrirPainel () 
	if abrirPainel then -- Se o painel estiver aberto, então:
		removeEventHandler ("onClientRender", root, mainPanel) -- Para de renderizar o painel.
		showCursor (false) -- Desabilita o cursor
	else -- Senão:
		addEventHandler ("onClientRender", root, mainPanel) -- Começa renderizar o painel.
		showCursor (true) -- Habilita o cursor.
	end
	abrirPainel = not abrirPainel
end

Aconselho fazer um botão pra fechar o painel, dai você só chama a função abrirPainel () que ele ira fechar quando o botão for pressionado.

Cara, o painel não está abrindo quando passa no marker. Me ajuda a colocar só para um grupo na ACL conseguir abrir o painel ?

Edited by Luccas
Link to comment
  • Other Languages Moderators

Explicar essa diferença entre server-side e client-side daria um ótimo tutorial.

A propósito, testei o código e funcionou aqui também. Tenha certeza de ter copiado o código sem nenhum símbolo invisível, que impede o funcionamento do script.

Para fazer o esquema de ACL Groups, que só funciona server-side, você vai precisar mudar toda a lógica do seu painel. A ativação dele passará a ser no server, com um triggerClientEvent para iniciar/parar a renderização do painel.

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