🤔 Para Refletir :
"Zzz... Zzzz... Opa! A cutscene já acabou?"
- Delayzado

RPG Maker MZ Sistema de Energia - RPG Maker MZ

Guilix Masculino

Novato
Membro
Membro
Juntou-se
12 de Julho de 2023
Postagens
4
Bravecoins
17
Olá, pessoal.
Acabei de conhecer a comunidade, e espero que vocês possam me ajudar. Estou criando um jogo para um projeto do mestrado e fui pipocando entre várias engines até chegar no RPG Maker. Ainda estou bem no começo, mas uma das mecânicas centrais do meu jogo é justamente o Sistema de Energia.
Não é nada muito complexo, mas basicamente eu queria que através das ações do personagem ele perdesse ou recebesse energia.
O primeiro controle que eu queria ter é em relação aos passos do personagem. Sempre que ele andar, a cada x passos, ele perde uma unidade de energia. Se eu conseguir fazer isso, acho que consigo me virar com o resto. Alguém pode me ajudar?
 
Salve @Guilix

Fiz um fluxograma bem simples para ilustrar uma visão do funcionamento desse sistema.

4SVKheX.png
Quando for aplicar isso no RPG Maker, você deverá fazer o seguinte:
  • Reservar variáveis para as propriedades da energia:
    • V01: Variável do valor atual da energia do jogador - no fluxograma é energia;
  • Reservar variáveis para a definição de passos dados pelo jogador:
    • V02: Variável da quantidade de passos atual - no fluxograma é qtdePassosAtual;
    • V03: Variável da quantidade de passos auxiliar - no fluxograma é qtdePassosAux;
    • V04: Variável auxiliar da subtração das duas variáveis citadas anteriormente - no fluxograma é subtracaoAux.
  • Reservar um evento comum que fará a verificação dos passos do jogador utilizando as variáveis citadas anteriormente.
    • S01: Switch de ativação da verificação dos passos.
Como é uma verificação constante, recomenda-se usar um evento comum com ativação do tipo Processo Paralelo onde S01 é o Switch que deve estar LIGADO para que essa verificação ocorra.

Não sei qual RPG Maker que você está utilizando, mas na versão MV e MZ, na definição de uma variável, você pode definir o número de passos indo em Controle de Variáveis -> Dados do Jogo -> Outros -> Passos. Olha que maravilha!

Essa definição você pode atribuir à variável V02 e você pode definir neste evento comum para obter a todo momento a quantidade de passos atualizado assim como você vai definir as variáveis citadas anteriormente depois desta.

Espero que isso te ajude no ponto de partida do seu sistema de energia. Qualquer dúvida ou se precisar de mais informações, só mandar.

~ Até mais! 🦁
 
@DanTheLion. Seu fluxograma e sua explicação estão excelentes. Mas mesmo assim eu não consegui fazer exatamente.

Consegui criar as variáveis. Consegui associar a qtdePassosAtual ao número de passos dados.
Mas não consegui:
- Fazer a subtraçãoAux receber qtdePassosAtual - qtdePassosAux

Acho que por conta disso, não tô conseguindo fazer a variável energia cair apenas quando o player anda.
No fim, a energia tá caindo até zerar, mesmo que o player pare.
Muito obrigado pela ajuda.
 
Mas não consegui:
- Fazer a subtraçãoAux receber qtdePassosAtual - qtdePassosAux
Para resolver isso, primeiro defina na variável subtracaoAux o valor de qtdePassosAtual e depois subtraia o valor atual de subtracaoAux pelo valor de qtdePassosAux.

Resumindo, é isso aqui:

FiSwfca.png
 
Visualizar anexo 6140

Ficou assim agora. Acho que está dando certo. Obrigado pela ajuda.
Show de bola está no caminho certo.

Só recomendo você separar as primeiras definições de variáveis em outro lugar, sendo elas as primeiras a serem executadas apenas uma vez e, em seguida, o resto do código a cada momento, porque se você executar esse conjunto de comandos como está a todo momento, todas essas variáveis serão redefinidas, fazendo com que a energia não seja atualizada, mantendo seu valor 100 a todo momento e nunca diminuindo seu valor esperando que algum momento ele chegue a zero.

E uma sugestão na hora do nocaute do Bob: ao invés de tentar zerar o PV dele, você pode simplesmente aplicar o estado de nocaute a ele, pois se ele há um único personagem no grupo e todos do grupo estão com o estado nocaute, o sistema vai entender isso e vai exibir a tela de Game Over depois.
 
Voltar
Topo Inferior