[VX ACE] Tirar personagem antes da batalha

2 Respostas   677 Visualizações

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

ScorpionMilo

  • *
  • Posts: 41
  • Ouros: 11
  • (Digitalizer)
Tópico criado em: 16/07/2015 às 09:12 - Última modificação por ScorpionMilo em 16/07/2015 às 20:26

Eu estou com um projeto de um jogo de Digimon, e queria um jeito do primeiro personagem não aparecer nas batalhas, pois não adianta tirar no menu Ferramentas>Banco de Dados>Tropas, pois o personagem só sai após o inimigo ser derrotado, não antes da batalha. Se alguém souber como, de preferência ou um script pronto ou como mexer no script do jogo para só batalharem os heróis da posição 2 à 5, pois uso um sistema de batalha frontal para 4 heróis.

Agradeço desde já.

Obs:. Se alguém souber como fazer por eventos mesmo já resolve.

Takkun

Resposta 1: 16/07/2015 às 12:32 - Última modificação por Takkun em 16/07/2015 às 12:37

Script convertido pelo Raizen a meu pedido: (Créditos ao Kyo Panda que fez a versão original para VX)

Código: [Selecionar]
#==============================================================================
# Game_Party
#------------------------------------------------------------------------------
# Classe que trata do Grupo. Inclui informações sobre dinheiro, itens, etc.
# Pode ser acessada utilizando $game_party.
#==============================================================================

class Game_Party < Game_Unit
  MAX_MEMBERS = 4 #Defina aqui a quantidade de heróis na Party.
  #--------------------------------------------------------------------------
  # Insere um personagem no grupo na ordem desejada
  #     actor_id : ID do personagem
  #--------------------------------------------------------------------------
  def insert_actor(actor_id, position = 0)
    if @actors.size < MAX_MEMBERS and not @actors.include?(actor_id)
      if position >= @actors.size
        @actors.push(actor_id)
      elsif position < 0
        @actors.insert(0, actor_id)
      else
        @actors.insert(position, actor_id)
      end
      $game_player.refresh
    end
  end
end

#==============================================================================
# Scene_Base
#------------------------------------------------------------------------------
# Classe superior à todas as classes Scene_.
#==============================================================================

class Scene_Base
  #--------------------------------------------------------------------------
  # Constantes
  #--------------------------------------------------------------------------
  TAMER_ID = 1                # ID do personagem que será retirado dos menus
  #--------------------------------------------------------------------------
  # Alias da inicialização do processo
  #--------------------------------------------------------------------------
  alias blockfp0001_start start
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    if !SceneManager.scene_is?(Scene_Title) && !SceneManager.scene_is?(Scene_Map) &&
      !SceneManager.scene_is?(Scene_File) && !SceneManager.scene_is?(Scene_End) &&
      !SceneManager.scene_is?(Scene_Shop) && !SceneManager.scene_is?(Scene_Name) &&
      !SceneManager.scene_is?(Scene_Debug) && !SceneManager.scene_is?(Scene_Gameover) &&
      !$game_party.nil?
      $game_party.remove_actor(@removed_actor = TAMER_ID)
    end
    blockfp0001_start
  end
  #--------------------------------------------------------------------------
  # Alias do fim do processo
  #--------------------------------------------------------------------------
  alias blockfp0001_terminate terminate
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    $game_party.insert_actor(@removed_actor) if !@removed_actor.nil?
    blockfp0001_terminate
  end
end

Abraços!-

ScorpionMilo

  • *
  • Posts: 41
  • Ouros: 11
  • (Digitalizer)
Resposta 2: 16/07/2015 às 20:25

Valeu mano, exatamente isso que precisava.