O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Controlar uma série de interações por um único evento.

Iniciado por Systemloto, 29/07/2021 às 17:45

29/07/2021 às 17:45 Última edição: 30/07/2021 às 10:47 por Systemloto
Estou quebrando a cabeça para tentar fazer um único evento que vá controlar as interações com os objetos do mapa.

Basicamente, eu estou tentando através das coordenadas criar interações nas estantes, no qual você deve procurar um objeto ao jogador interagir com alguma das caixas.


Existe uma maneira de fazer isso ou uma outra alternativa que não deixe o mapa cheio de eventos?

Qual o problema do mapa estar cheio de eventos? Eles foram feitos pra isso mesmo.  :sera:


Citação de: Gabriel online 29/07/2021 às 17:46
Qual o problema do mapa estar cheio de eventos? Eles foram feitos pra isso mesmo.  :sera:
Meu medo, é que como é uma área que vai estar sempre variando e sendo adicionado coisas nas prateleiras, chegue uma hora em que o evento solo não der conta, eu precise criar várias e várias variáveis/switches e fique um pouco bagunçado. Ainda sou iniciante e realmente não tenho certeza se isso se torna um problema.

Não iria ficar ainda mais bagunçado se tudo isso estivesse em um único evento?  :sera:


30/07/2021 às 00:11 #4 Última edição: 30/07/2021 às 01:48 por Jorge_Maker
Não sei exatamente o que você está fazendo, mas uma coisa que, possivelmente, pode facilitar teu trabalho, é um sistema simples de hierarquização.
Pelo que entendi, é possível interagir com todas as prateleiras, mas apenas uma possui o objeto chave. Isso quer dizer que a maioria das prateleiras vai executar o mesmo código. Para evitar redundâncias, copiando e colando os mesmos comandos de código em vários eventos diferentes, você pode criar um evento "pai" ao qual vai fornecer as informações necessárias para seus "filhos". Sendo assim, sempre que precisar fazer modificações no código, bastará modificar a estrutura do evento patriarca.
Na prática:
Spoiler


Primeira página do evento pai.


Segunda página do evento pai.


Exemplo de como um evento herda a primeira página do evento pai.
Código:
const eventId = 1;
const pageId = 0;
const event = $dataMap.events[eventId];
if (event) {
    const eventId = this.isOnCurrentMap() ? this._eventId : 0;
    this.setupChild(event.pages[pageId].list, eventId);
}



Exemplo de como um evento herda a segunda página do evento pai.
Código:
const eventId = 1;
const pageId = 1;
const event = $dataMap.events[eventId];
if (event) {
    const eventId = this.isOnCurrentMap() ? this._eventId : 0;
    this.setupChild(event.pages[pageId].list, eventId);
}



Dentro da área rosa, o evento pai;
Dentro da área vermelha, os eventos filhos genéricos, que herdam a primeira página do pai;
Dentro da área amarela, que também está dentro da vermelha, o evento chave que herda a segunda página do pai
[close]
Oxe

Era exatamente isso Jorge, obrigado!

Obrigado ao Gabriel também pelas reflexões!  :ok: