MORRER FORA DA BATALHA QUANDO HP CHEGA EM 1

6 Respostas   894 Visualizações

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

WItcher

  • *
  • Posts: 66
  • Ouros: 15
Tópico criado em: 31/05/2019 às 14:58

Galera estou eu aqui de novo com mais uma duvida  :facepalm: estou criando meu projeto e nele tem um mapa que é de lava,e quando ele pisa em certos tiles ele leva dano(usei eventos para fazer) o problema é que  quando está em 1 hp ele não morre fica vivinho :'0': provavelmente usamos variável,mais não sei usar variáveis ainda muito bem,ajudem por favor! :wow: :ded:
DE SEU MELHOR E VEJA O RESULTADO!

Mestre R.

  • *
  • Posts: 112
  • Ouros: 83
Resposta 1: 31/05/2019 às 18:30

Acredito que se você quer que o personagem morra, então quer que seja Game Over ao morrer, então nesse caso tu teria que criar um evento como o seguinte:

Spoiler
[close]

O evento checa o HP dos 4 membros do grupo adicionando estado de nocaute quando os HPs dos membros forem chegando à 0. Se os 4 membros estiverem com estado de nocaute o jogo ativará o Game Over automaticamente.

• As Variáveis estão neste evento mas você pode declará-las em algum evento no inicio do jogo e deixar apenas as funções condicionais
   (em azul), porém o evento também funciona normalmente com elas aí. O nome e número das variáveis fica ao seu critério.

• Cada variável define o HP de 1 personagem específico, usei os do meu projeto como exemplo.

• As funções condicionais checam se o HP dos personagens são menores que 2 (1 ou 0) e aplica o nocaute caso cumprida a condição.

• Por ultimo e não menos importante, não se esqueça de deixar o evento em Processo Paralelo para funcionar de modo autônomo.
   E como esse é um evento de mapa você pode copiá-lo e adiciona-lo apenas nos mapas com dano de terreno.

Bom, espero ter ajudado, qualquer dúvida sinta-se à vontade pra perguntar. Um forte abraço!








:hmm:

WItcher

  • *
  • Posts: 66
  • Ouros: 15
Resposta 2: 31/05/2019 às 18:56 - Última modificação por gabrielsbardelotto em 31/05/2019 às 19:00

Muito obrigado Mestre! eu fiz agora e irei testar se funcionar eu volto  :link:

EDIT: FUNCIONOU MUITO BEM,NOVAMENTE OBRIGADO :urra:
DE SEU MELHOR E VEJA O RESULTADO!

Mestre R.

  • *
  • Posts: 112
  • Ouros: 83
Resposta 3: 31/05/2019 às 21:08

Muito obrigado Mestre! eu fiz agora e irei testar se funcionar eu volto  :link:

EDIT: FUNCIONOU MUITO BEM,NOVAMENTE OBRIGADO :urra:

Opa, fico feliz.

Precisar de ajuda só falar!
:hmm:

Jorge_Maker

  • Moderador
  • *
  • Posts: 634
  • Ouros: 997
  • Oink
  • Medalhas Participante do 'Amigo, Estou Aqui!' Vencedor do Evento A Visita do Sr.Harvey
Resposta 4: 01/06/2019 às 17:49

Perai, mas se eu entendi bem, só isso aqui já não funcionaria? XD

A ideia de criar um evento em processo paralelo funciona, mas torna-se redundante uma vez que o sistema do jogo já verifica isso sempre que há alguma alteração no hp de qualquer dos personagens da party.
Oxe

Mestre R.

  • *
  • Posts: 112
  • Ouros: 83
Resposta 5: 01/06/2019 às 19:33

Spoiler
[close]

Nesse caso ele teria que criar um evento em cada tile onde fosse aplicar o dano de terreno, sendo que isso ja pode ser configurado na aba de tiles do banco de dados, desse modo que você mostrou se aplicasse os 30 da dano permitindo o nocaute apenas uma vez no jogo e sem encher o mapa com eventos que aplicam dano ao passar por cima, mesmo assim o HP continuaria travando no 1.
A intenção dele era apenas usar os tilesets com configuração de dano e que desse game over caso o jogador perdesse todo o seu HP  :math:
:hmm:

Jorge_Maker

  • Moderador
  • *
  • Posts: 634
  • Ouros: 997
  • Oink
  • Medalhas Participante do 'Amigo, Estou Aqui!' Vencedor do Evento A Visita do Sr.Harvey
Resposta 6: 01/06/2019 às 23:09 - Última modificação por Jorge_Maker em 01/06/2019 às 23:12

No tópico ele disse que estava fazendo por eventos. Aliás, eu nem lembrava que tinha essa de tile que causa dano ao jogador. hauhe'
De todo modo, se estiver usando o VXAce, esse script aqui irá lhe servir. Todos os tiles que causam dano que também estiverem marcados com a determinada tag de terreno poderão adicionar o status de morte ao jogador. (ao invés de travar no 1)
A solução do Mestre funciona perfeitamente, não tenho dúvidas disso. Mas por motivos de performance e conveniência, um simples script como esse aqui é uma boa.

Código: [Selecionar]
#Colar acima de main
module Dmg_Floor_Correct
  #Tiles que causam ao dano no jogador só irão poder levá-lo a morte se estiverem
  #marcados com a tag de terreno determinada aqui. (1 por padrão)
  TERRAIN_TAG = 1
end

class Game_Actor < Game_Battler
  alias :max_floor_damage_correction__ :max_floor_damage
  def max_floor_damage
    if $game_player.terrain_tag == Dmg_Floor_Correct::TERRAIN_TAG
      return [hp, 0].max
    else
      return max_floor_damage_correction__
    end
  end
end
Oxe