RPG Master Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[RGSS]New Game+

2 participantes

Ir para baixo

[RGSS]New Game+ Empty [RGSS]New Game+

Mensagem por R@ph@el Qua Dez 31, 2008 12:02 am

Pra quer já jogou Chrono Trigger e zerou sabe do que eu estou falando, para os outros:
Permite iniciar o jogo com todas as armas, itens e/ou armaduras de
um jogo anterior, estilo New game + do Chrono Trigger. Para utilizá-lo, ligue o switch SWITCH_SAVED_ID(Editável no script) e grave o jogo. Será criada uma nova opção de jogo onde você poderá pegar todas as armas e itens do jogo gravado e iniciar um novo jogo.
criado por: RenanHangai(membro do Antigo Fórum)
Código:

############################# New Game Plus ########################################
#===============================================================
# Permite iniciar o jogo com todas as armas, itens e/ou armaduras
# de um jogo anterior, estilo New game + do Chrono Trigger.
# Para utilizá-lo, ligue o switch SWITCH_SAVED_ID e grave o jogo.
# Será criada uma nova opção de jogo onde você poderá
#===============================================================
# Script Criado por RenanHangai
#===============================================================
$RTHScript ||= {}

# Habilite o script por aqui (true / false)
$RTHScript["New Game Plus"] = true

if $RTHScript["New Game Plus"]
module RTH
 
  module LOAD_PLUS
   
    # Switch que deverá ser ligado para indicar que o jogo foi
    # terminado
    SWITCH_SAVED_ID = 1
    # Nome da nova opção:
    OPTION_NAME = "Novo Jogo +"
    # Será utilizado os itens?
    LOAD_ITEMS = true
    # Será utilizado as armas?
    LOAD_ARMAS = true
    # Será utilizado as armaduras?
    LOAD_ARMADURAS = true
   
  end
 
end

class Scene_Title
 
  #--------------------------------------------------------------------------
  # - Processamento Principal
  #--------------------------------------------------------------------------
 
  def main
    # Se estiver em Teste de Batalha
    if $BTEST
      battle_test
      return
    end
    # Carregar o Banco de Dados
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes      = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items        = load_data("Data/Items.rxdata")
    $data_weapons      = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies      = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # Criar um Sistema
    $game_system = Game_System.new
    # Criar um gráfico de título
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # Criar uma janela de comandos
    s1 = "Novo Jogo"
    s2 = "Continuar"
    s3 = "Sair"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.back_opacity = 160
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288
    # O comando Continuar (s2) tem uma determinante
    # Aqui é checado se existe algum arquivo de save
    # Se estiver habilitado, tornar @continue_enabled verdadeiro; se estiver
    # desabilitado, tornar falso
    @continue_enabled = false
    @game_plus = false
    for i in 0..3
      if FileTest.exist?("Save#{i+1}.rxdata")
        @continue_enabled = true
        check_load("Save#{i+1}.rxdata")
      end
    end
    if @game_plus
      @command_window.dispose
      @command_window = nil
      # Criar uma janela de comandos
      s1 = "Novo Jogo"
      s2 = RTH::LOAD_PLUS::OPTION_NAME
      s3 = "Continuar"
      s4 = "Sair"
      @command_window = Window_Command.new(192, [s1, s2, s3, s4])
      @command_window.back_opacity = 160
      @command_window.x = 320 - @command_window.width / 2
      @command_window.y = 288
    end
    # Se Continuar estiver habilitado, mover o cursor para "Continuar"
    # Se estiver desabilitado, o texto será mostrado em cinza
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # Reproduzir BGM de Título
    $game_system.bgm_play($data_system.title_bgm)
    # Parar de reproduzir BGS e ME
    Audio.me_stop
    Audio.bgs_stop
    # Executar transição
    Graphics.transition
    # Loop principal
    loop do
      # Atualizar a tela de jogo
      Graphics.update
      # Atualizar a entrada de informações
      Input.update
      # Atualizar o frame
      update
      # Abortar o loop caso a tela tenha sido alterada
      if $scene != self
        break
      end
    end
    # Preparar para transição
    Graphics.freeze
    # Exibir a janela de comandos
    @command_window.dispose
    # Exibir o gráfico de Título
    @sprite.bitmap.dispose
    @sprite.dispose
  end
 
  alias rth_save_game_plus_update update
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
 
  def update
    unless @game_plus
      rth_save_game_plus_update
      return
    end
    # Atualizar a janela de comandos
    @command_window.update
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # ramificação pela posição do cursor
      case @command_window.index
      when 0  # Novo Jogo
        command_new_game
      when 1  # Load_Plus
        $scene = Scene_Load_Plus.new
      when 2  # Continuar
        command_continue
      when 3  # Sair
        command_shutdown
      end
    end
  end
 
  def check_load(filename)
    file = File.open(filename, "rb")
    for i in 1..3
      a = Marshal.load(file)
    end
    switches = Marshal.load(file)
    if switches[RTH::LOAD_PLUS::SWITCH_SAVED_ID]
      @game_plus = true
    end
    file.close
  end
 
end

class Scene_Load_Plus < Scene_File
 
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #--------------------------------------------------------------------------
 
  def initialize
    # Recriar objetos temporários
    $game_temp = Game_Temp.new
    # Timestamp (inserção de tempo)
    $game_temp.last_file_index = 0
    latest_time = Time.at(0)
    for i in 0..3
      filename = make_filename(i)
      if FileTest.exist?(filename)
        file = File.open(filename, "r")
        if file.mtime > latest_time
          latest_time = file.mtime
          $game_temp.last_file_index = i
        end
        file.close
      end
    end
    super("Qual jogo você deseja usar para iniciar?")
  end
 
  #--------------------------------------------------------------------------
  # - Cancelando o Processamento
  #--------------------------------------------------------------------------
 
  def on_cancel
    # Reproduzir SE de cancelamento
    $game_system.se_play($data_system.cancel_se)
    # Mudar para a tela de título
    $scene = Scene_Title.new
  end
 
  #--------------------------------------------------------------------------
  # - Processando a Decisão
  #--------------------------------------------------------------------------
 
  def on_decision(filename)
    # Se o arquivo não existir
    unless FileTest.exist?(filename)
      # Reproduzir SE de erro
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # Reproduzir SE de carregamento
    $game_system.se_play($data_system.load_se)
    # Ler dados do arquivo
    file = File.open(filename, "rb")
    read_save_data(file)
    file.close
    # Configurar Grupo Inicial
    $game_party.setup_starting_members
    # Configurar posição inicial no mapa
    $game_map.setup($data_system.start_map_id)
    # Aqui o Jogador é movido até a posição inical configurada
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    # Atualizar Jogador
    $game_player.refresh
    # Rodar, de acordo com o mapa, a BGM e a BGS
    $game_map.autoplay
    # Atualizar mapa (executar processos paralelos)
    $game_map.update
    # Mudar para a tela do mapa
    $scene = Scene_Map.new
  end
 
  #--------------------------------------------------------------------------
  # - Ler Dados do Arquivo
  #    file : arquivo que será lido (aberto)
  #--------------------------------------------------------------------------
 
  def read_save_data(file)
    # Ler dados dos Heróis para desenhar o arquivo de save
    characters = Marshal.load(file)
    for i in 0...6
      a = Marshal.load(file)
    end
    actors = Marshal.load(file)
    # Ler o contador de Frames para obter o tempo de jogo
    Graphics.frame_count = 0 # Marshal.load(file)
    # Ler cada tipo de objeto do jogo
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables    = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party        = Marshal.load(file)
    $game_troop        = Game_Troop.new
    $game_map          = Game_Map.new
    $game_player        = Game_Player.new
    for i in 0...5
      for actor in $game_party.actors
        next if actor.nil?
        actor.equip(i, 0)
      end
    end
    unless RTH::LOAD_PLUS::LOAD_ITEMS
      $game_party.delete_all_items
    end
    unless RTH::LOAD_PLUS::LOAD_ARMAS
      $game_party.delete_all_weapons
    end
    unless RTH::LOAD_PLUS::LOAD_ARMADURAS
      $game_party.delete_all_weapons
    end
  end
 
end

class Game_Party
 
  def delete_all_items
    @items = {}
  end
 
  def delete_all_armors
    @armors = {}
  end
 
  def delete_all_weapons
    @weapons = {}
  end

end
end
R@ph@el
R@ph@el


Masculino Número de Mensagens : 62
Idade : 33
Localização : Belo Horizonte
Data de inscrição : 11/12/2008

RMB Games
Nível de Reputação: 1
Reputação:
[RGSS]New Game+ Left_bar_bleue10/100[RGSS]New Game+ Empty_bar_bleue  (10/100)
Gamescore:
[RGSS]New Game+ Left_bar_bleue0/0[RGSS]New Game+ Empty_bar_bleue  (0/0)

Ir para o topo Ir para baixo

[RGSS]New Game+ Empty Re: [RGSS]New Game+

Mensagem por Dark Dudu Qua Dez 31, 2008 12:41 am

Opa, tava procurando este script há um tempo atrás (embora tenha desistido da idéia de projeto, é, desanimação é fróidi)

+1 Rep
Dark Dudu
Dark Dudu


Masculino Número de Mensagens : 385
Idade : 30
Localização : São Vicente - SP
Especialidade : Eventos
Data de inscrição : 01/12/2008

RMB Games
Nível de Reputação: 2
Reputação:
[RGSS]New Game+ Left_bar_bleue61/100[RGSS]New Game+ Empty_bar_bleue  (61/100)
Gamescore:
[RGSS]New Game+ Left_bar_bleue0/0[RGSS]New Game+ Empty_bar_bleue  (0/0)

https://rmbrasil.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos