- JhonnNovo Membro
- Mensagens : 114
Reputação : 48
[RMVX] TDS Continue
Qua Jul 14, 2010 5:40 pm
TDS Continue v1.0
por SephirothTDS
por SephirothTDS
Introdução
Uma pequena modificação do sistema de Game Over, que permite que o jogador recomece o jogo do último ponto de save onde o jogo foi salvo.
Como usar
Abra o Editor de scripts, crie um novo script na seção de scripts Adicionais e cole o código abaixo.
Script
- Código:
#==============================================================================
# TDS Continue
# Versão: 1.0
#------------------------------------------------------------------------------
# Permite que o jogador continue o jogo depois do Gameover no último ponto
# de save onde o jogo foi salvo.
#==============================================================================
#==============================================================================
# Game_Temp
#------------------------------------------------------------------------------
# Esta classe controla dados que não são salvos pelo jogo, os dados temporários
# Pode ser acessada utilizando $game_temp.
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# Variáveis públicas
#--------------------------------------------------------------------------
attr_accessor :playing_filename # Arquivo de jogo
#--------------------------------------------------------------------------
# Inicialização de objeto
#--------------------------------------------------------------------------
alias tds_continue_gameover_game_temp_initialize initialize
def initialize
@playing_filename = nil
tds_continue_gameover_game_temp_initialize
end
end
#==============================================================================
# Scene_Gameover
#------------------------------------------------------------------------------
# Classe de operações na tela de Game Over.
#==============================================================================
class Scene_Gameover < Scene_Base
#--------------------------------------------------------------------------
# Inicialização do processo
#--------------------------------------------------------------------------
def start
super
# Caso a variável de jogo não esteja nula (nil)
if $game_temp.playing_filename != nil
# Crie o arquivo de continuação
@file = "Save#{$game_temp.playing_filename + 1}.rvdata"
end
RPG::BGM.stop
RPG::BGS.stop
$data_system.gameover_me.play
Graphics.transition(120)
create_command_window
Graphics.freeze
create_gameover_graphic
end
#--------------------------------------------------------------------------
# Janela de comandos
#--------------------------------------------------------------------------
def create_command_window
# Verifica se existem arquivos
@continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
# Cria a janela de comandos
@command_window = Window_Command.new(172, ['Continuar', 'Tela Título',
'Carregar','Sair'])
@command_window.x = (544 - @command_window.width) / 2
@command_window.y = 264
if $game_temp.playing_filename != nil
if FileTest.exist?(@file) == false
@command_window.draw_item(0, false)
end
else
@command_window.draw_item(0, false)
end
if @continue_enabled == false
@command_window.draw_item(2, false)
end
@command_window.openness = 0
@command_window.open
end
def post_start
super
open_command_window
end
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
def terminate
super
close_command_window
$scene = nil if $BTEST
end
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
def update
super
@command_window.update
if Input.trigger?(Input::C) and @command_window.openness == 255
case @command_window.index
when 0
return Sound.play_buzzer if $game_temp.playing_filename == nil
Sound.play_decision
terminate
Graphics.fadeout(50)
dispose_gameover_graphic if @command_window.openness == 0
do_load
when 1
Sound.play_decision
terminate
Graphics.fadeout(50)
dispose_gameover_graphic if @command_window.openness == 0
$scene = Scene_Title.new
when 2
if @continue_enabled
Sound.play_decision
terminate
Graphics.fadeout(50)
dispose_gameover_graphic if @command_window.openness == 0
$scene = Scene_File.new(false, true, false)
else
Sound.play_buzzer
end
when 3
Sound.play_decision
terminate
Graphics.fadeout(50)
dispose_gameover_graphic if @command_window.openness == 0
$scene = nil if @command_window.openness == 0
end
end
end
def do_load
file = File.open("Save#{$game_temp.playing_filename + 1}.rvdata", "rb")
read_save_data(file)
file.close
$scene = Scene_Map.new
RPG::BGM.fade(1500)
Graphics.fadeout(60)
Graphics.wait(40)
@last_bgm.play
@last_bgs.play
end
def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
$game_system = Marshal.load(file)
$game_message = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
if $game_system.version_id != $data_system.version_id
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
end
def perform_transition
Graphics.transition(180)
end
def create_gameover_graphic
@sprite = Sprite.new
@sprite.bitmap = Cache.system("GameOver")
end
def dispose_gameover_graphic
@sprite.bitmap.dispose
@sprite.dispose
end
end
#==============================================================================
# Scene_File
#------------------------------------------------------------------------------
# Classe de operações na tela de arquivos salvos.
#==============================================================================
class Scene_File < Scene_Base
#--------------------------------------------------------------------------
# Salva o jogo
#--------------------------------------------------------------------------
alias tds_continue_scene_file_do_save do_save
def do_save
$game_temp.playing_filename = @index
tds_continue_scene_file_do_save
end
#--------------------------------------------------------------------------
# Carrega o jogo
#--------------------------------------------------------------------------
alias tds_continue_scene_file_do_load do_load
def do_load
$game_temp.playing_filename = @index
tds_continue_scene_file_do_load
end
end
Créditos e Agradecimentos
- Criado por SephirothTDS
- Backup da antiga RMB restaurado por Jhonn
Permissões neste sub-fórum
Não podes responder a tópicos
|
|