Jump to content

Ajuda em Dx


Recommended Posts

Posted

Estou com um problema que não consigo resolver, no client side, quando clico, o painel vai desaparecer ao clicar em trabalhar, so que no server side, quero que quando eu clico aparece uma mensagem, pode me ajudar?

(OBS: O Painel está funcionando tudo certinho, mesmo eu excluindo esses funcoes, ele ira continuar funcionando.)
CLIENT SIDE

function TrabTaxista (_,state)
if painel == true then
if ( state == "down" ) then
if ( isCursorOnElement(615, 224, 128, 32)) then
    removeEventHandler("onClientRender", root, Dx)
    showCursor(false)
end
end
end
end
addEventHandler ("onClientClick", root, TrabTaxista)
addEvent("TrabTaxi", true)
addEventHandler("TrabTaxi", root, TrabTaxista)

SERVER SIDE  --Acho que o erro está aqui (MINHA DÚVIDA: Mensagem não está aparecendo)

 

function TrabTaxista(source,player)
    triggerClientEvent(source, "TrabTaxi", source)
    outputChatBox("Agora é taxista",player,255,255,255,true)
end
addEventHandler ("onClientClick", player, TrabTaxista)

 

Posted

onClientClick é um evento do lado client apenas.

Obs: quando for postar seu código, utilize o botão <>, cole o código e selecione a linguagem. Leia este tópico por favor.

@ODutii

Please do not PM me with scripting related question nor support, use the forums instead.

  • Moderators
Posted

Você está usando o evento onClientClick em um script server-side. Mas esse evento só funciona em script client-side.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

Eu percebi isso, so que oque estou tentando achar, no server side:

function TrabTaxista(source)
    triggerClientEvent(source, "TrabTaxi", source)
    outputChatBox("Agora é taxista",source,255,255,255,true)
end
addEventHandler ("onClientClick", root, TrabTaxista)

esse ai encima é o server side, ali no event handler, oque é coloco?

Posted

SERVER-SIDE

function TrabTaxista(source, player)
	triggerClientEvent(source, "TrabTaxi", source)
	outputChatBox("Agora é taxista",player,255,255,255,true)
end
addEvent("TrabTaxi", true)
addEventHandler("TrabTaxi", root, TrabTaxista)

CLIENT SIDE

function TrabTaxista (_,state)
if painel == true then
if ( state == "down" ) then
if ( isCursorOnElement(615, 224, 128, 32)) then
    removeEventHandler("onClientRender", root, Dx)
    showCursor(false)
end
end
end
end
addEventHandler ("onClientClick", root, TrabTaxista)
addEvent("TrabTaxi", true)
addEventHandler("TrabTaxi", root, TrabTaxista)

no client Quando o jogador clicar no botão do meu painel, o painel vai fechar, e no server side, quando apertar no mesmo botao, para mandar uma mensagem para ele, estou tentando consertar isso e não está funcionado

Client side> Clicar botão taxi e fechar painel

Server side> clicar botão taxi e mandar msg

Posted

Olha só cara, nessa parte de clicar em botões, vamos usar somente client-side.

Você quer que execute as duas funcionalidades no mesmo botão?

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted

+ ou - isso, eu queria fazer funções sobre a Acl, e no client-side isso não funciona, ja tentei fazer muito, e pra min so funcionou no server-siude, então estou tentando fazer para que no client side ao clicar ele feche o botão e no server-side eu faça as funções

Posted

Pelo o que eu entendi, o que vc quer fazer é mais ou menos isso ae:

function executions(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement)
	if painel == true then
		if button == "left" and state == "down" then
			outputChatBox("Você agora trabalha de Taxi", 255, 255, 255)
			removeEventHandler("onClientRender", root, Dx)
			painel = false
			showCursor(false)
		end
	end
end
addEventHandler("onClientClick", root, executions)

 

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted
1 minute ago, #DeltaSCR said:

Pelo o que eu entendi, o que vc quer fazer é mais ou menos isso ae:


function executions(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement)
	if painel == true then
		if button == "left" and state == "down" then
			outputChatBox("Você agora trabalha de Taxi", 255, 255, 255)
			removeEventHandler("onClientRender", root, Dx)
			painel = false
			showCursor(false)
		end
	end
end
addEventHandler("onClientClick", root, executions)

 

Se eu usar o isObjectInAcl vai funcionar?

Posted
8 minutes ago, ODutii said:

Se eu usar o isObjectInAcl vai funcionar?

Não! Funções de ACL são somente server-side.

  • Thanks 1

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

  • Moderators
Posted (edited)

É mais fácil simplesmente abrir o painel pelo servidor com um triggerClientEvent. Só que antes desse trigger, fazer a verificação de ACL.

Dessa forma, quem não estiver na ACL não vai nem conseguir abrir o painel.

Edited by Lord Henry
  • Thanks 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted (edited)

Obrigado pela ajuda, a mensagem foi! Já foi um passo! Muito obrigado!

Agora é lutar pra conseguir add na acl kk 

Daí pra quando clicar, no server-side, qual é os scripts para add na acl...    ?

Edited by ODutii
a
  • Moderators
Posted (edited)

Esqueça a ideia de clicar no painel pelo server-side.

Como eu falei, faça a verificação de ACL antes de abrir o painel, ao invés de verificar ao clicar no botão.

Edited by Lord Henry

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

( SERVER SIDE )
 

function taxx(thePlayer)
    local accName = getAccountName ( getPlayerAccount (thePlayer) )
    if aclGroupAddObject (aclGetGroup("Taxista"), "user."..accName) then
        outputChatBox("Added",thePlayer,255,255,255,true)
end
end
addEvent("trabtax", true)
addEventHandler("trabtax", root, taxx)

( CLIENT SIDE )

function TrabTaxista (_,state)
if painel == true then
if ( state == "down" ) then
if ( isCursorOnElement(615, 224, 128, 32)) then
    removeEventHandler("onClientRender", root, Dx)
    showCursor(false)
    outputChatBox("Agora é taxista",255,255,255,true)
    painel = false
    triggerClientEvent ("trabtax", getLocalPlayer())
end
end
end
end
addEventHandler ("onClientClick", root, TrabTaxista)

Não está adicionando na Acl... qual o erro

Posted

Você esta usando triggerClientEvent no mesmo lado, nunca vai funcionar, fiz um upgrade no seu código:

Client

function TrabTaxista (_, state)
	if painel == true then
		if (state == "down") then
			if (isCursorOnElement (615, 224, 128, 32)) then
				removeEventHandler ("onClientRender", root, Dx)
				showCursor (false)
				painel = false
				triggerServerEvent ("trabtax", getLocalPlayer())
				-- outputChatBox ("Agora é taxista", 255, 255, 255)
				-- triggerClientEvent ("trabtax", getLocalPlayer()) -- Erro aqui, ''triggerClientEvent''.
			end
		end
	end
end
addEventHandler ("onClientClick", root, TrabTaxista)

Server

function taxx ()
	if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (client)), aclGetGroup("Taxista"))) then -- Se o jogador já estiver na acl, então:
		outputChatBox ("Erro! Você já está no trabalho de taxista!", client, 255, 30, 30)
	else -- Senão:
		aclGroupAddObject (aclGetGroup("Taxista"), "user."..getAccountName (getPlayerAccount (client))) -- Adiciona o jogador na acl.
		outputChatBox ("Parabéns! Agora você é um taxista!", client, 0, 255, 0)
	end
end
addEvent ("trabtax", true)
addEventHandler ("trabtax", root, taxx)

 

  • Thanks 1

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