Centro RPG Maker

Centro de Suporte => Suporte Geral => Suporte para RPG Maker MV, VX/VX Ace e XP => Tópico iniciado por: Yxin online 13/04/2023 às 13:21

Título: Eventos comuns ativando eventos individuais no Mapa
Enviado por: Yxin online 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) (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.
Título: Re:Eventos comuns ativando eventos individuais no Mapa
Enviado por: Matheus/Felps/Delayzado online 14/04/2023 às 03:43
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:)

Título: Re:Eventos comuns ativando eventos individuais no Mapa
Enviado por: Yxin online 03/05/2023 às 09:43
Rapaz, deu super certo! Adaptei aqui mas no geral segui o que você sugeriu e funcionou bem.
Muito obrigado meu camarada! :wow:
Título: Re:Eventos comuns ativando eventos individuais no Mapa
Enviado por: Matheus/Felps/Delayzado online 07/05/2023 às 14:27
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