Jump to content

Como Criar a Função "Pro Staff" Em Um Botão No Painel DX??


Recommended Posts

46 minutes ago, Prego22Zika said:

Fiz um painel youtube, e ta configurado, mas a única coisa que falta é a função de "proteção" que n sei fazer.

Estou querendo uma função que a pessoa clica no botão e a "proteção é ativada!!

Se alguem souber e porder me ajudar estarei agredecido!!

--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-
addEvent("ativado", true)
addEvent("desativado", true)
addEventHandler ("ativado", getRootElement(), 
function()
  addEventHandler ("onClientPlayerDamage", getRootElement(), cancelEventEvent)
end)
--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-
addEventHandler ("desativado", getRootElement(), 
function()
  removeEventHandler ("onClientPlayerDamage", getRootElement(), cancelEventEvent)
end)
--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-
function cancelEventEvent () cancelEvent() end 

Utiliza essa função no client,agora só pegar triggerClientEvent e puxar pro server.

  • Thanks 1
Link to comment
  • Other Languages Moderators

Da pra fazer tudo client-side. Basta você setar uma data no jogador quando ele clica no botão e depois tirar essa data quando ele clica novamente. Enquanto ele estiver com essa data ("protegido") ele estará protegido.

local x, y = guiGetScreenSize ()
buttonPro = guiCreateButton (x/2, y/2, 80, 25, "Proteção", false) -- Botão de exemplo.

addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro.
	if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então:
		setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido.
		outputChatBox ("Você está protegido.", 0, 255, 0)
	else -- Se o jogador está protegido, então:
		setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido.
		outputChatBox ("Você está desprotegido.", 255, 0, 0)
	end
end, false)

addEventHandler ("onClientPlayerDamage", getRootElement(), function () -- Protege o jogador contra danos se ele estiver com data "protegido".
	if getElementData (source, "protegido") then
		cancelEvent()
	end
end)

addEventHandler ("onClientPlayerStealthKill", localPlayer, function (targetPlayer) -- Protege o jogador contra a facada mortal se ele estiver com data "protegido".
	if getElementData (targetPlayer, "protegido") then
		cancelEvent()
	end
end)

 

Edited by Lord Henry
  • Thanks 1
Link to comment

o meu client esta assim e eu acho q ta td errado 

função Pro (_, estado) 
, se Painel == true, em seguida, 
se o estado == "para baixo", em seguida, 
se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, 
triggerServerEvent ( "pro", localPlayer) 
end 
end 
end 
end 
AddEventHandler ("onClientClick", root, Pro)

Edited by Prego22Zika
Link to comment
2 hours ago, Prego22Zika said:

o meu client esta assim e eu acho q ta td errado 

função Pro (_, estado) 
, se Painel == true, em seguida, 
se o estado == "para baixo", em seguida, 
se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, 
triggerServerEvent ( "pro", localPlayer) 
end 
end 
end 
end 
AddEventHandler ("onClientClick", root, Pro)

função Pro (_, estado) 
, se Painel == true, em seguida, 
se o estado == "para baixo", em seguida, 
se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, 
triggerServerEvent ( "pro", localPlayer) 
end 
end 
end 
end 
AddEventHandler ("onClientClick", root, Pro)

Use a função do fórum para postar códigos  em lua, assim fica muito feio e difícil de entender, mas enfim eu testei o exemplo do Lord e funcionou, você pode usar o que ele fez acima como base e adicionar no seu painel.

OBS: Não entendi por que seu código esta em português !

  • Thanks 1
Link to comment
4 hours ago, OverKILL said:

função Pro (_, estado) 
, se Painel == true, em seguida, 
se o estado == "para baixo", em seguida, 
se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, 
triggerServerEvent ( "pro", localPlayer) 
end 
end 
end 
end 
AddEventHandler ("onClientClick", root, Pro)

Use a função do fórum para postar códigos  em lua, assim fica muito feio e difícil de entender, mas enfim eu testei o exemplo do Lord e funcionou, você pode usar o que ele fez acima como base e adicionar no seu painel.

OBS: Não entendi por que seu código esta em português !

Eu só não entendi se essa função e o client ou arquivo server e onde eu coloco as coordenadas do botão

 

Obs: O meu ficou em português prq eu traduzir a página antes de enviar a resposta

Link to comment
13 hours ago, Prego22Zika said:

Eu só não entendi se essa função e o client ou arquivo server e onde eu coloco as coordenadas do botão

 

Obs: O meu ficou em português prq eu traduzir a página antes de enviar a resposta

Em relação ao botão você coloca as coordenadas do seu botão aqui:

buttonPro = guiCreateButton (x/2, y/2, 80, 25, "Proteção", false) -- Botão de exemplo.

Sobre essa sua dúvida: ' ou arquivo server '

R: Você não vai usar nada relacionado ao 'pro' no server-side, apenas no client-side usando setElementData

E essa função você remove do seu painel:

função Pro (_, estado) 
, se Painel == true, em seguida, 
se o estado == "para baixo", em seguida, 
se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, 
triggerServerEvent ( "pro", localPlayer) 
end 
end 
end 
end 
AddEventHandler ("onClientClick", root, Pro)

E coloca no client-side a função que o @Lord Henry citou acima !

 

OBS: Percebi que tem um  triggerServerEvent puxando do lado client para o lado server, você deve remover a função que esta no client/server e adicionar somente a função que o Lord citou , se eu estiver falando algo errado, me corrija por favor !

 

Edited by OverKILL
  • Thanks 1
Link to comment
  • Other Languages Moderators
21 hours ago, Prego22Zika said:

o meu client esta assim e eu acho q ta td errado 

função Pro (_, estado) 
, se Painel == true, em seguida, 
se o estado == "para baixo", em seguida, 
se isCursorOnElement (screenW * 0,5586, screenH * 0,5716, 200, 49), em seguida, 
triggerServerEvent ( "pro", localPlayer) 
end 
end 
end 
end 
AddEventHandler ("onClientClick", root, Pro)

Favor reenvie seu código sem traduzir a página. Estamos falando em Português com você, não precisa tentar nos traduzir.

E use a ferramenta de código do fórum para postar códigos.

bLankbMBQZKXC6j0YcADtg.png

Link to comment

Agora eu coloquei ingual o seu  e está aparecendo o botão la quando da start, e eu queria q o botão do painel ficasse dx tmb junto com o painel, vou mandar uma print do painel e vcs olha como ta para ficar mais fácil de vcs me ajudar.

 

ESSE E O PAINEL: http://prntscr.com/kk6qp0   

ESSE E ELE COM A FUNÇÃO DO LORD HENRY ATIVADA:  http://prntscr.com/kk6rc2 

ISSO E ELE FECHADO: http://prntscr.com/kk6rpq O BOTÃO NÃO SOME.

SE VCS NÃO ESTAVÃO ME ENTENDENDO AGORA ESPERO QUE FIQUEI MAIS FACIL.

local x, y = guiGetScreenSize ()

buttonPro = guiCreateButton (screenW * 0.5571, screenH * 0.6602, 200, 49, "Proteção", false) -- Botão de exemplo.

addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro.
	if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então:
		setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido.
		outputChatBox ("Você está protegido.", 0, 255, 0)
	else -- Se o jogador está protegido, então:
		setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido.
		outputChatBox ("Você está desprotegido.", 255, 0, 0)
	end
end, false)

addEventHandler ("onClientPlayerDamage", getRootElement(), function () -- Protege o jogador contra danos se ele estiver com data "protegido".
	if getElementData (source, "protegido") then
		cancelEvent()
	end
end)

addEventHandler ("onClientPlayerStealthKill", localPlayer, function (targetPlayer) -- Protege o jogador contra a facada mortal se ele estiver com data "protegido".
	if getElementData (targetPlayer, "protegido") then
		cancelEvent()
	end
end)

 

Link to comment
  • Other Languages Moderators

Recomendo que não faça painéis DX com objetivo interativo, pois eles são mais pesados e mais complexos de se fazer manutenção. Mas caso você não esteja preocupado com desempenho e queira apenas um painel bonito, siga em frente.

Delete toda essa parte:

local x, y = guiGetScreenSize ()

buttonPro = guiCreateButton (screenW * 0.5571, screenH * 0.6602, 200, 49, "Proteção", false) -- Botão de exemplo.

addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro.
	if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então:
		setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido.
		outputChatBox ("Você está protegido.", 0, 255, 0)
	else -- Se o jogador está protegido, então:
		setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido.
		outputChatBox ("Você está desprotegido.", 255, 0, 0)
	end
end, false)

E coloque isso:

function Pro (button, state, absoluteX, absoluteY)
	if Painel == true then
		if state == "down" then
			if absoluteX >= (screenW * 0.5586) and absoluteX <= ((screenW * 0.5586) + 200) and absoluteY >= (screenH * 0.5716) and absoluteY <= ((screenH * 0.5716) + 49) then
				if not getElementData (localPlayer, "protegido") then
					setElementData (localPlayer, "protegido", true)
					outputChatBox ("Você está protegido.", 0, 255, 0)
				else
					setElementData (localPlayer, "protegido", false)
					outputChatBox ("Você está desprotegido.", 255, 0, 0)
				end
			end
		end
	end
end
addEventHandler ("onClientClick", root, Pro)

 

Edited by Lord Henry
Link to comment
3 hours ago, Lord Henry said:

Recomendo que não faça painéis DX com objetivo interativo, pois eles são mais pesados e mais complexos de se fazer manutenção. Mas caso você não esteja preocupado com desempenho e queira apenas um painel bonito, siga em frente.

Delete toda essa parte:


local x, y = guiGetScreenSize ()

buttonPro = guiCreateButton (screenW * 0.5571, screenH * 0.6602, 200, 49, "Proteção", false) -- Botão de exemplo.

addEventHandler ("onClientGUIClick", buttonPro, function () -- Executa essa função ao clicar no buttonPro.
	if not getElementData (localPlayer, "protegido") then -- Se o jogador não está protegido, então:
		setElementData (localPlayer, "protegido", true) -- Torna o jogador protegido.
		outputChatBox ("Você está protegido.", 0, 255, 0)
	else -- Se o jogador está protegido, então:
		setElementData (localPlayer, "protegido", false) -- Torna o jogador desprotegido.
		outputChatBox ("Você está desprotegido.", 255, 0, 0)
	end
end, false)

E coloque isso:


function Pro (button, state, absoluteX, absoluteY)
	if Painel == true then
		if state == "down" then
			if absoluteX >= (screenW * 0.5586) and absoluteX <= ((screenW * 0.5586) + 200) and absoluteY >= (screenH * 0.5716) and absoluteY <= ((screenH * 0.5716) + 49) then
				if not getElementData (localPlayer, "protegido") then
					setElementData (localPlayer, "protegido", true)
					outputChatBox ("Você está protegido.", 0, 255, 0)
				else
					setElementData (localPlayer, "protegido", false)
					outputChatBox ("Você está desprotegido.", 255, 0, 0)
				end
			end
		end
	end
end
addEventHandler ("onClientClick", root, Pro)

Então a função do meu botão e essa!! 


dxDrawRectangle(screenW * 0.5571, screenH * 0.6602, 200, 49, tocolor(0, 0, 0, 90), false)

Eu vou colocar ele nisso aqui da sua função??


if absoluteX >= (screenW * 0.5586) and absoluteX <= ((screenW * 0.5586) + 200) and absoluteY >= (screenH * 0.5716) and absoluteY <= ((screenH * 0.5716) + 49) then

Então Vai ficar dessa forma??

if absoluteX >= (screenW * 0.5571) and absoluteX <= ((screenW * 0.5571) + 200) and absoluteY >= (screenH * 0.6602) and absoluteY <= ((screenH * 0.6602) + 49) then

 

Link to comment
  • Other Languages Moderators

Sim, vai ficar dessa forma.

3 hours ago, Prego22Zika said:

if absoluteX >= (screenW * 0.5571) and absoluteX <= ((screenW * 0.5571) + 200) and absoluteY >= (screenH * 0.6602) and absoluteY <= ((screenH * 0.6602) + 49) then

 

 

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