MOG Resume V1.1
Publicado em 24 de julho de 2015.MOG Resume é um script desenvolvido pelo Moghunter para ser usado no RPG Maker XP, que implementa um sistema que permite salvar e carregar o jogo apenas um vez por partida. Ou seja, o script salva o progresso e automaticamente sai do jogo. Assim que você iniciar outra partida, ele automaticamente carregará o jogo salvo, e por fim, apagará o arquivo carregado.
É um esquema semelhante aos jogos táticos como Ogre Battle e Final Fantasy Tactics Advanced.
Utilização
Aperte a tecla ALT para chamar o menu de Quick Save (Configurável). É também possível desativar o Quick Save pela Switch ID 10 (Configurável).
Para instalar o MOG Resume V1.1 no seu projeto, basta inserir o código abaixo acima do “Main”:
#_______________________________________________________________________________
# MOG Resume V1.1
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Permite salvar e carregar o jogo apenas um vez por partida.
# Ou seja, o script salva o progresso e automaticamente sai do
# jogo e assim que você reiniciar o jogo ele automaticamente
# carregará o jogo e apagará o save carregado.
# Sistema semelhante ao jogos Taticos como Ogre Battle e
# Final Fantasy Tactics Advanced.
#_______________________________________________________________________________
module MOG
#Botão que ativa a janela de Quick Save.
QUICK_BUTTON = Input::ALT
#ID da switch que desativa o Quick Save.
QUIK_DISABLE = 10
end
#===============================================================================
# Scene_Title
#===============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# main
#--------------------------------------------------------------------------
alias mog41_main main
def main
if FileTest.exist?("ResumeSave.rxdata")
$scene = Auto_Load.new
end
mog41_main
end
end
#===============================================================================
# Scene_Quick
#===============================================================================
class Scene_Quick
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# main
#--------------------------------------------------------------------------
def main
s1 = "Resume"
s2 = "Cancel"
@command_window = Window_Command.new(160, [s1, s2])
@command_window.index = @menu_index
@command_window.x = 640
@command_window.y = 180
@command_window.contents_opacity = 0
@command_window.opacity = 0
@spriteset = Spriteset_Map.new
if $game_switches[MOG::QUIK_DISABLE] == true
@command_window.disable_item(0)
end
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
for i in 0..15
@command_window.x -= 30
@command_window.contents_opacity -= 15
@command_window.opacity -= 15
Graphics.update
end
Graphics.freeze
@command_window.dispose
@spriteset.dispose
end
#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
if @command_window.x > 240
@command_window.x -= 25
@command_window.contents_opacity += 15
@command_window.opacity += 15
elsif @command_window.x <= 240
@command_window.x = 240
@command_window.contents_opacity = 255
@command_window.opacity = 255
end
@command_window.update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
if $game_switches[MOG::QUIK_DISABLE] == true
$game_system.se_play($data_system.cancel_se)
else
$game_system.se_play($data_system.decision_se)
$scene = Auto_Save.new
end
when 1
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
end
end
end
#===============================================================================
# Scene_Map
#===============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
alias mog41_update update
def update
if Input.trigger?(MOG::QUICK_BUTTON)
$game_system.se_play($data_system.decision_se)
$scene = Scene_Quick.new
end
mog41_update
end
end
#===============================================================================
# Auto_Save
#===============================================================================
class Auto_Save
#--------------------------------------------------------------------------
# main
#--------------------------------------------------------------------------
def main
asv(make_filename)
return
end
#--------------------------------------------------------------------------
# make_filename
#--------------------------------------------------------------------------
def make_filename
return "ResumeSave.rxdata"
end
#--------------------------------------------------------------------------
# avs
#--------------------------------------------------------------------------
def asv(filename)
$game_system.se_play($data_system.save_se)
file = File.open(filename, "wb")
write_save_data(file)
file.close
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
end
#--------------------------------------------------------------------------
# write_save_data
#--------------------------------------------------------------------------
def write_save_data(file)
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$game_system.save_count += 1
$game_system.magic_number = $data_system.magic_number
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
end
end
#===============================================================================
# Auto_Load
#===============================================================================
class Auto_Load
#--------------------------------------------------------------------------
# main
#--------------------------------------------------------------------------
def main
$game_temp = Game_Temp.new
Graphics.transition
ald(make_filename)
return
end
#--------------------------------------------------------------------------
# make_filename
#--------------------------------------------------------------------------
def make_filename
return "ResumeSave.rxdata"
end
#--------------------------------------------------------------------------
# ald
#--------------------------------------------------------------------------
def ald(filename)
if FileTest.exist?(filename)
$game_system.se_play($data_system.load_se)
file = File.open(filename, "rb")
read_save_data(file)
file.close
File.delete(filename)
$game_system.bgm_play($game_system.playing_bgm)
$game_system.bgs_play($game_system.playing_bgs)
$game_map.update
$scene = Scene_Map.new
else
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
end
end
#--------------------------------------------------------------------------
# read_save_data
#--------------------------------------------------------------------------
def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = 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 $mogscript["menu_sakura"] == true
$game_system.load_count += 1
end
if $game_system.magic_number != $data_system.magic_number
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
$game_party.refresh
end
end
$mog_rgss_Resume = trueInformações adicionais
- Categoria: Programação XP
- Tags: Final Fantasy, RPG Maker XP, RPG tático
- Adicionado por: LichKing
- Acessos: 42
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!
