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

Eventos comuns ativando eventos individuais no Mapa

Iniciado por Yxin, 13/04/2023 às 13:21

Olá meus queridos, como estão?

Tenho uma dúvida que talvez pareça bastante básica mas que me faz bater a cabeça até agora  :aiaiai:. Tentarei ser o mais claro e possível (talvez eu falhe miseravelmente).

Estou criando usando o Plugin Tool Ring da Irina no MV http://www.yanfly.moe/wiki/Tool_Ring_System_(Irina). Ele adiciona um menu circularque permite alternar uma ferramenta ativa. As ferramentas são itens que, quando usados, ativam um evento comum para executar determinada tarefa no jogo. O video abaixo demonstra bem como funciona.


Bem, estou criando ferramentas para serem utilizadas nesse sistema e minha dúvida é: como fazer os eventos comuns no banco de dados ativarem eventos do mapa de forma individual? :o:

Por exemplo, quero criar um item "isqueiro" para acender eventos de "velas" no mapa.
Fiz o item "isqueiro" que executa um evento comum que acender as velas. Tentei fazer isso com switches, onde o evento comum ligaria uma switch global que ativa o evento da vela no mapa. Mas se eu tenho mais de uma vela, todas seriam ativadas de uma vez certo?

Então me pergunto como fazer o evento comum ligar cada vela individualmente.

Pensei em usar condições, algum script para verificar se há uma vela posicionada na frente do protagonista. Se houver a ação ocorre, se não uma mensagem genérica aparece dizendo que não há nada para acender.
Também pensei em usar variáveis para armazenar as posições X e Y do protagonista e uma condição para checar se elas estão próximas dos eventos no mapa, mas acho que isso precisaria ser feito para cada evento de vela em cada um os mapas e achei um tanto impraticável  :T.T:.

Caso ainda não tenha ficado claro, minha ideia é parecida com o que o sistema de ferramentas do Galv faz no vídeo abaixo (quando ele usa picareta para minerar um evento por exemplo).

P.S: Tive dificuldade de junta esse sistema com o da Irina. :lol:

Assim, gostaria de ouvir sugestões de vocês. De preferência que possam ser feitas por eventos comuns mesmos por conta do sistema da Irina.

Hmmmm... Tive uma idéia.
Leia até o final, é importante.

Cria um evento paralelo em um mapa com vela.
Nesse evento, põe para mudar uma variável chamada "id mapa atual" para 1 e coloca Apagar Evento.

Dentro do evento comum do isqueiro, usa 2 variáveis definidas para o Mapa X e o Mapa Y do jogador e uma condição para caso a variável "id mapa atual" tiver o valor 1.
Dentro da condição, você coloca 2 condições, uma dentro da outra.
Aqui é importante. Digamos que a vela que eu quero acender está na posição (3, 5), ou seja, linha 3 e coluna 5. Eu quero que o jogador use o isqueiro à direita dela, na posição (4, 5).
A primeira condição vai verificar se a variável "Mapa X" é igual ao número 4. A segunda verificará se a variável "Mapa Y" é igual à 5.
Você percebeu? Estou usando as coordenadas X e Y do jogador aqui, não do evento da vela. Tente não se confundir, certo?

Após isso, dentro dessas condições, tu coloca para mudar o switch local do evento da vela. Mas como faz isso?

Para ativar/desativar switches locais de eventos fora deles, tu vai na página 3 do menu de criação de eventos e usa essa script call:
$gameSelfSwitches.setValue([MAP_ID,EV_ID,'SWITCH'], valor);

Para funcionar, tu precisa substituir essas partes:
MAP_ID = número do mapa, na lista de mapas.
EV_ID = número do evento da vela (aparece no topo da janela do evento)
SWITCH = substitui pela letra do switch local (A, B, C, D...)
valor = substitui por true se for ON, ou false se for OFF.

É isso.
Quando você entra no mapa, a variável salva um número. Se o jogador usar o isqueiro no lugar certo, o switch local da vela é ativo.

MEGA IMPORTANTE:
• Cada mapa precisa de um daqueles eventos paralelos, e cada mapa precisa dar um número diferente à variável "id mapa atual".
• Nos mapas sem vela, coloque um número não utilizado, para evitar bugs.
• Você vai precisar de uma condição diferente no evento comum para cada número usado na variável "id mapa atual".
• Para cada vela, precisa criar aquelas 2 condições de Mapa X e Mapa Y e configurar a script call de acordo com a vela.
• Fique atento para não errar os números das variáveis e da script call, senão vai falhar ou acender a vela errada.

Isso não será trabalhoso, eu creio. Após configurar uma vela, fica mais fácil de fazer as outras. Você consegue!!  :ok:

Qualquer problema, comenta aí!
(Eu criei isso mentalmente e não testei, então prevejo erros. Bom, se falhar, o que vale é a tentativa, não é?  :top:)

Se forem me creditar em algum jogo, só Delayzado serve.

Rapaz, deu super certo! Adaptei aqui mas no geral segui o que você sugeriu e funcionou bem.
Muito obrigado meu camarada! :wow:

EITA POMBA, FUNCIONOU MESMO!?  :'0':

Ô Yxin, é nóis, mano!!  :heart:
Fico feliz que deu certo. Boa sorte com seu projeto e, quando terminar, posta uma versão aí pra gente jogar kk


Se forem me creditar em algum jogo, só Delayzado serve.