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

Meu Evento Comum trava o personagem principal

Iniciado por Peique, 02/08/2019 às 22:46

02/08/2019 às 22:46 Última edição: 04/08/2019 às 01:23 por Victor Sena
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?

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.

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 =/

03/08/2019 às 10:14 #3 Última edição: 03/08/2019 às 10:53 por Peique
Citação de: Corvo online 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.

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

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

Citação de: Ludovic online 03/08/2019 às 11:13
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?

Citação de: Peique online 03/08/2019 às 12:11
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

Citação de: Ludovic online 03/08/2019 às 15:08
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á?

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

Citação de: Peique online 03/08/2019 às 19:11
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

Citação de: Corvo online 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.

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.

Citação de: Ludovic online 03/08/2019 às 19:29
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. =(

03/08/2019 às 20:50 #12 Última edição: 03/08/2019 às 20:54 por Ludovic
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

Citação de: Ludovic online 03/08/2019 às 20:50
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!