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

MORRER FORA DA BATALHA QUANDO HP CHEGA EM 1

Iniciado por WItcher, 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!

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
Controlar Variáveis:#0017 Personagem 1 = HP de Silver
Controlar Variáveis:#0018 Personagem 2 = HP de Nara
Controlar Variáveis:#0019 Personagem 3 = HP de Royham
Controlar Variáveis:#0020 Personagem 4 = HP de Auroa
Se:Personagem 1 < 2
  ◆Alterar Estado:Silver, + Nocaute
  ◆
Fim
Se:Personagem 2 < 2
  ◆Alterar Estado:Nara, + Nocaute
  ◆
Fim
Se:Personagem 3 < 2
  ◆Alterar Estado:Royham, + Nocaute
  ◆
:Fim
Se:Personagem 4 < 2
  ◆Alterar Estado:Auroa, + Nocaute
  ◆
Fim
[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:

31/05/2019 às 18:56 #2 Última edição: 31/05/2019 às 19:00 por gabrielsbardelotto
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!

Citação de: gabrielsbardelotto online 31/05/2019 às 18:56
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:

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

Citação de: Jorge_Maker online 01/06/2019 às 17:49
Spoiler
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.
[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:

01/06/2019 às 23:09 #6 Última edição: 01/06/2019 às 23:12 por Jorge_Maker
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.

#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