SG Broken Save File Fix

6 de janeiro de 2012

SG Broken Save File Fix é um script para o RPG Maker XP que detecta se os savegames de jogos feitos (ou sendo feitos) nesta ferramenta, estão corrompidos, na hora de salvar ou de carregar. É mais um script do sandgolem.

É especialmente útil para o jogador. No decorrer do jogo, pode ocorrer alguma coisa que corrompa o arquivo (HD fica sem espaço, o jogo “crasha” por alguma razão, pico de luz, etc), assim o jogo avisa para salvar por cima ou arrumar outro save.

Apesar de ter FIX no nome, não acho que este script corrija um savegame corrompido. Para utilizá-lo, basta adicionar o código abaixo em cima do script Main, do RMXP.

#==========================================================================
# ** SG Broken Save File Fix
#==========================================================================
# sandgolem
# Version 1
# 26.06.06
#==========================================================================

SG_BrokenSave_Text = 'Corrupted file!'
SG_BrokenSave_LoadPop = 'One of your save files seems to be corrupted!'
SG_BrokenSave_SavePop = 'One of your previous save files seems to be corrupted! Please save over it.'
SG_BrokenSave_Load = 'This save file seems to be either corrupted or was used with an incompatible previous version of the game. If you ran out of harddrive space or crashed in the middle of saving, that could have caused it. Cannot be loaded.'

#==========================================================================
#
# To use this script, copy it and insert it in a new section above "Main",
# but under the default scripts and the SDK (if using).
#
#==========================================================================

begin
  SDK.log('SG Broken Save File Fix', 'sandgolem', 1, '26.06.06')
  if SDK.state('SG Broken Save File Fix') != true
    @sg_brokensave_disabled = true
  end
  rescue
end

if !@sg_brokensave_disabled
#--------------------------------------------------------------------------

class Window_SaveFile < Window_Base
  alias sandgolem_brokensavefix_winsavefile_init initialize
  def initialize(file_index, filename)
    begin
      sandgolem_brokensavefix_winsavefile_init(file_index,filename)
    rescue
      @name_width = 16
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(0,self.height / 2 - 32,self.width,32,SG_BrokenSave_Text,1)
      if !$scene.sg_saves_broken
        if $scene.is_a?(Scene_Save)
          p SG_BrokenSave_SavePop
        else
          p SG_BrokenSave_LoadPop
        end
        $scene.sg_saves_broken = true
      end
    end
  end
end

class Scene_Save < Scene_File
  attr_accessor :sg_saves_broken
end

class Scene_Load < Scene_File
  attr_accessor :sg_saves_broken

  alias sandgolem_brokensavefix_load_ondecision on_decision
  def on_decision(filename)
    begin
      sandgolem_brokensavefix_load_ondecision(filename)
    rescue
      p SG_BrokenSave_Load
      $scene = Scene_Title.new
    end
  end
end

#--------------------------------------------------------------------------
end

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. Clique aqui e saiba como. Obrigado!

Deixe um comentário

Inscreva-se na nossa newsletter!