Meu Evento Comum trava o personagem principal

13 Respostas   1067 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Peique

  • *
  • Posts: 8
  • Ouros: 0
Tópico criado em: 02/08/2019 às 22:46 - Última modificação por Victor Sena em 04/08/2019 às 01:23

Estou tentando fazer um evento em que se você matar 5 inimigos, o NPC te dá um item. Estou fazendo por Evento Comum, mas a ativação do evento parece fazer o jogador travar. Podem me ajudar?

Corvo

Resposta 1: 03/08/2019 às 07:00

Provavelmente a execução do evento está como "Início automático". Troque para "Processo paralelo" e inclua o comando "Esperar" em alguma parte da verificação. Qualquer coisa poste uma imagem da configuração.

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 2: 03/08/2019 às 10:03

Mudar para Paralelo de fato funcionou. Mas acho que agora o jogo não está verificando quando os inimigos morrem, ou seja, quando o seu HP é igualado a 0 e não faz a contagem disso para concluir a quest. Não tenho certeza se é assim que posta imagem aqui no Fórum. Vou tentar.

É. Não estou sabendo postar imagens aqui =/

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 3: 03/08/2019 às 10:14 - Última modificação por Peique em 03/08/2019 às 10:53

Provavelmente a execução do evento está como "Início automático". Troque para "Processo paralelo" e inclua o comando "Esperar" em alguma parte da verificação. Qualquer coisa poste uma imagem da configuração.

Vou copiar o código do evento comum para cá. Ele está com o nome "Secundário", Início Paralelo e Switch 0002 Eliminar.

Controlar Variáveis: #0002 Monstros HP = HP de #1
Controlar Variáveis: #0003 Inimigos Derrotados = 0
Se Monstros HP = 0
    Controlar Variáveis: #0003 Inimigos Derrotados +=1
    Se Inimigos Derrotados = 5
       Controlar Switches : #0003 Recompensa = ON
    Fim
Fim

No evento que está no mapa está assim:

Página 1:
Se : Eliminar é OFF
     Mostrar Balão de Expressão : Este evento, Pergunta (Esperar)
     Texto:
            :Pode me ajudar matando 5 inimigos?
     Se : Inimigos Derrotados = 5
          Controlar Switches : #0002 Eliminar = On
     Fim
Fim


Página 2, Condição Switch 0002 Eliminar
Se : Recompensa é ON
     Mostrar Balão de Expressão : Este evento, Exclamação (Esperar)
     Texto:
             "Muito obrigada! Fique com este anel por isso."
     Mudar Armaduras : Anel +1
     Fim

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 4: 03/08/2019 às 11:13

Citar
Controlar Variáveis: #0002 Monstros HP = HP de #1
Controlar Variáveis: #0003 Inimigos Derrotados = 0
Se Monstros HP = 0
    Controlar Variáveis: #0003 Inimigos Derrotados +=1
    Se Inimigos Derrotados = 5
       Controlar Switches : #0003 Recompensa = ON
    Fim
Fim
Se o processo é paralelo, esse inimigos derrotados não será sempre mudado para zero?

Adicione um comando de esperar 1 frame aqui, talvez resolva. E também, se tiver mais de um inimigo na batalha coloque  "Se Inimigos Derrotados >= 5" (Maior ou igual a)
Citar
<<<esperar 1 frame>>>
Controlar Variáveis: #0002 Monstros HP = HP de #1
Controlar Variáveis: #0003 Inimigos Derrotados = 0
Se Monstros HP = 0
    Controlar Variáveis: #0003 Inimigos Derrotados +=1
    Se Inimigos Derrotados = 5
       Controlar Switches : #0003 Recompensa = ON
    Fim
Fim

Vc já conferiu na tela de variaveis do debug se está realmente funcionando?

Clique e conheça o meu canal - Canal RPG Maker Zone

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 5: 03/08/2019 às 12:11

Se o processo é paralelo, esse inimigos derrotados não será sempre mudado para zero?

Adicione um comando de esperar 1 frame aqui, talvez resolva. E também, se tiver mais de um inimigo na batalha coloque  "Se Inimigos Derrotados >= 5" (Maior ou igual a)
Vc já conferiu na tela de variaveis do debug se está realmente funcionando?

Tentei remover a primeira linha que declarava que os Inimigos Derrotados = 0 e não funcionou.

Adicionei o frame de espera e o Se Inimigos Derrotados >=5 e também não funcionou =(

Onde fica essa tela de variáveis do debug?

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 6: 03/08/2019 às 15:08

Tentei remover a primeira linha que declarava que os Inimigos Derrotados = 0 e não funcionou.

Adicionei o frame de espera e o Se Inimigos Derrotados >=5 e também não funcionou =(

Onde fica essa tela de variáveis do debug?

Quando vc estiver testando o jogo aperte F9 e confira se as variaveis estao recebendo os valores.

Clique e conheça o meu canal - Canal RPG Maker Zone

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 7: 03/08/2019 às 19:11

Quando vc estiver testando o jogo aperte F9 e confira se as variaveis estao recebendo os valores.

Consegui ver onde não está funcionando. Parece que a variável de Inimigos Derrotados começa como 0 e quando derroto o primeiro inimigo, ela muda para 1 mas depois quando mato outro, ela continua valendo 1 e não adiciona mais um valor para virar 2. Por que será?

Corvo

Resposta 8: 03/08/2019 às 19:26

Verifique o comando que muda esse valor. Ele pode estar definindo o valor como um, e não somando.

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 9: 03/08/2019 às 19:29

Consegui ver onde não está funcionando. Parece que a variável de Inimigos Derrotados começa como 0 e quando derroto o primeiro inimigo, ela muda para 1 mas depois quando mato outro, ela continua valendo 1 e não adiciona mais um valor para virar 2. Por que será?
Isso é porque está repetindo a parte que zera a variavel, vc tem que verificar isso, senão ela nunca vai sair do lugar
Clique e conheça o meu canal - Canal RPG Maker Zone

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 10: 03/08/2019 às 20:17

Verifique o comando que muda esse valor. Ele pode estar definindo o valor como um, e não somando.

Não. Ele estava somando mesmo. Tanto que fiz uma modificação que ele começou a somar incontrolavelmente, mesmo sem derrotar um inimigo. Como você faria essa contagem de inimigos derrotados? Se puder me dar uma sugestão... =( Não estou conseguindo achar a solução.

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 11: 03/08/2019 às 20:19

Isso é porque está repetindo a parte que zera a variavel, vc tem que verificar isso, senão ela nunca vai sair do lugar

Pode ser isso, mas se eu tiro o comando do Início Paralelo (que acredito eu ser o responsável pela repetição que zera a variável) e coloco em Automático, o personagem principal trava. =(

Como você faria essa contagem de inimigos? Se puder me dar uma sugestão. Eu já tentei mudar tudo e nada dá certo. =(

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 12: 03/08/2019 às 20:50 - Última modificação por Ludovic em 03/08/2019 às 20:54

Como eu não sei qual seu RPG Maker, fiz aqui um exemplo no MV
Se é por eventos então da no mesmo pra todos

Evento do NPC que pede pra derrotar 5 inimigos
Spoiler
[close]

Evento da tropa de um morcego/Página 1
Spoiler
[close]

Evento da tropa de um morcego/Página 2
Spoiler
[close]

Acontece que vc não pode colocar uma condição que ative quando o hp do inimigo chega a Zero, porque se chegar a zero, tudo é encerrado na batalha, inclusive o processamento de evento da tropa. Sempre iria ser zero.
Mas se adicionar o estado Imortal ao morcego no começo do evento, aí quando chegar a zero seu HP vc remove o estado imortal e adiciona o nocauteado, pronto, fim da batalha normalmente e contagem da variável funciona.

Obs: nessa terceira imagem ignora a mensagem "funciona", foi feita só pra ter resposta visual de que tava funcionando
Clique e conheça o meu canal - Canal RPG Maker Zone

Peique

  • *
  • Posts: 8
  • Ouros: 0
Resposta 13: 03/08/2019 às 23:54

Como eu não sei qual seu RPG Maker, fiz aqui um exemplo no MV
Se é por eventos então da no mesmo pra todos

Evento do NPC que pede pra derrotar 5 inimigos
Spoiler
[close]

Evento da tropa de um morcego/Página 1
Spoiler
[close]

Evento da tropa de um morcego/Página 2
Spoiler
[close]

Acontece que vc não pode colocar uma condição que ative quando o hp do inimigo chega a Zero, porque se chegar a zero, tudo é encerrado na batalha, inclusive o processamento de evento da tropa. Sempre iria ser zero.
Mas se adicionar o estado Imortal ao morcego no começo do evento, aí quando chegar a zero seu HP vc remove o estado imortal e adiciona o nocauteado, pronto, fim da batalha normalmente e contagem da variável funciona.

Obs: nessa terceira imagem ignora a mensagem "funciona", foi feita só pra ter resposta visual de que tava funcionando

Funcionou perfeitamente bem! Muito obrigado!