[RGSS]New Game+
2 participantes
Página 1 de 1
[RGSS]New Game+
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)
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- 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:
(10/100)
Gamescore:
(0/0)
Re: [RGSS]New Game+
Opa, tava procurando este script há um tempo atrás (embora tenha desistido da idéia de projeto, é, desanimação é fróidi)
+1 Rep
+1 Rep
Dark Dudu- 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:
(61/100)
Gamescore:
(0/0)
Tópicos semelhantes
» [RGSS] Game Over Menu
» [RGSS] GTA Loading
» [RGSS] XAS Hero v3.3
» [RGSS] KGC DamageAlter
» [RGSS] KGC Module
» [RGSS] GTA Loading
» [RGSS] XAS Hero v3.3
» [RGSS] KGC DamageAlter
» [RGSS] KGC Module
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos