저장

SG_Broken Save File Fix by sandgolem (SDK호환)

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
http://www.gamebaker.com/rmxp/script-xs/broken-savefile-fix.htm
손상된 세이브파일이나 호환성 없는 버전(게임버전)의 세이브파일을 불러왔을 때 게임이 다운되는 것을 방지하고 에러 메세지를 출력하는 스크립트입니다.


#==========================================================================
# ** 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 check for updates or find more script-xs, visit:
# http://www.gamebaker.com/rmxp/script-xs/
#
# To use this script-x, copy it and insert it in a new section above "Main",
# but under the default script-xs and the SDK (if using).
#
# Have problems? You can leave me a message at:
# http://www.gamebaker.com/users/sandgolem
#
#==========================================================================

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


손상된 파일을 불러왔을 때 나타나는 메세지는 다음 부분을 편집하면 됩니다:
SG_BrokenSave_Text = 'Corrupted file!'
SG_BrokenSave_LoadPop = 'Message'
SG_BrokenSave_SavePop = 'Message'
SG_BrokenSave_Load = 'Message'