Jump to content

Bug ao duplicar resource(painel DX)


Recommended Posts

Posted

Bom pessoal, fiz recentemente um painel de recrutamento, no qual o jogador pode criar um recrutamento em determinado local, dimensão, e teletransporte.

O sistema funcionou corretamente, porém, preciso duplicar esse recurso para que duas gangs possam usa-lo, e quando dupliquei os dois mods eles bugaram, como se eu estivesse usando dois painéis, por exemplo: quando crio um recrutamento através do painel do resource painelrecrutar_w ele cria o recrutamento nesse recurso e no outro(painelrecrutar), como criando dois teletransportes.
Já tive esse mesmo problema ao duplicar painéis, quando uso um parece que estou usando dois(o duplicado e original).

 

Alguém sabe como resolver esse problema?

Grato.

  • Moderators
Posted

Você provavelmente está usando os mesmos nomes de eventos e funções. Quando vc clica no botão de um painel, chama o mesmo evento nos dois painéis, duplicando tudo.

Troque todos os nomes dos eventos do segundo painel para diferenciá-lo do primeiro painel.

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
On 04/11/2017 at 23:02, Lord Henry said:

Você provavelmente está usando os mesmos nomes de eventos e funções. Quando vc clica no botão de um painel, chama o mesmo evento nos dois painéis, duplicando tudo.

Troque todos os nomes dos eventos do segundo painel para diferenciá-lo do primeiro painel.

Grato pela sua rápida resposta e desculpe pela resposta demorada da minha parte.


Consegui resolver meu problema, porém me surge outra dúvida: já vi outras pessoas duplicarem painéis sem sequer trocar eventos, apenas copiando, colando e mudando o nome do recurso. Seria possível eu fazer isso? 

  • Moderators
Posted (edited)
17 hours ago, Citryon25 said:

outra dúvida: já vi outras pessoas duplicarem painéis sem sequer trocar eventos, apenas copiando, colando e mudando o nome do recurso. Seria possível eu fazer isso? 

Não. Os eventos vão duplicar e não vai dar certo. Tem que sempre mudar os nomes.

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

Na verdade é possível sim, usando resourceRoot como fonte do evento, assim o evento só poderá ser chamado pela resource atual, e não entrará em conflito com outras que possuem eventos com o mesmo nome.

Além disso, é recomendado pelo MTA usar resourceRoot como fonte do evento, para melhor desempenho do cliente.

Obs: resourceRoot é uma variável pré definida pelo MTA, ela retorna o elemento raiz do resource que está sendo executado, seria o mesmo que usar a função getResourceRootElement()

jIcd9sc.png

Not worry about the future. Very soon it will come.

  • Moderators
Posted
2 hours ago, Banex said:

Na verdade é possível sim, usando resourceRoot como fonte do evento, assim o evento só poderá ser chamado pela resource atual, e não entrará em conflito com outras que possuem eventos com o mesmo nome.

Além disso, é recomendado pelo MTA usar resourceRoot como fonte do evento, para melhor desempenho do cliente.

Obs: resourceRoot é uma variável pré definida pelo MTA, ela retorna o elemento raiz do resource que está sendo executado, seria o mesmo que usar a função getResourceRootElement()

Interessante, mas se o cara usar addCommandHandler ou BindKey para as mesmas funções, irá duplicar sim pois os dois resources usam o mesmo comando para ativar seus eventos. A saída seria o cara criar alguma condição em cada resource, que no fim das contas acaba não sendo o Ctrl+C e Ctrl+V que ele quer fazer.

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
addEvent(getResourceName(getThisResource())..":eventName", true)
addEventHandler(getResourceName(getThisResource())..":eventName", getRootElement(), ...)

A saída que eu encontrei e que uso até hoje sem problema algum é este acima. Simplesmente fazer o evento com o nome do recurso.

Hello, world.


Tutorial sobre interação de BOTs do Discord com o seu servidor - Visitar (Brazilian Portuguese)
Tutorial sobre tabelas - Visitar (Brazilian Portuguese)
Tutorial sobre banco de dados - Visitar (Brazilian Portuguese)
Posted
On 04/11/2017 at 22:59, Citryon25 said:

O sistema funcionou corretamente, porém, preciso duplicar esse recurso para que duas gangs possam usa-lo, e quando dupliquei os dois mods eles bugaram, como se eu estivesse usando dois painéis, por exemplo

Acho que a melhor solução na verdade não é criar outro resource, você pode fazer funcionar com um só script pra mais de uma gang fazer o uso.

Quanto ao evento, você pode usar em vários scripts, mas precisa se certificar que nenhum evento irá afetar outro script desnecessariamente. Você pode usar localmente colocando resourceRoot como disse Banex ou com localPlayer.

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

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