Project1
标题:
存档问题
[打印本页]
作者:
naterni
时间:
2008-7-29 05:58
标题:
存档问题
这几天乱搞我的范例,不知道搞到哪了,存档的时候存档文件生成在Saves文件夹里,但是读取的时候他却在主目录下找,各位大大帮帮忙啊.谢谢~~~~~~~
工程
http://www.91ccmy.cn/双戒.rar
作者:
火鸡三毛老大
时间:
2008-7-29 06:02
把工程贴上来……
应该是读档路径设置错误……
作者:
越前リョーマ
时间:
2008-7-29 06:08
要把读档路径也改了啊……
作者:
naterni
时间:
2008-7-29 06:13
存档路径找不到啊,论坛不允许传附件,我放我服务器上了,地址顶楼有,各位大大帮忙讲解下改哪.
作者:
火鸡三毛老大
时间:
2008-7-29 06:28
#==============================================================================
# ■ Scene_File
#------------------------------------------------------------------------------
# 处理文件的类。
#==============================================================================
class Scene_File < Scene_Base
#--------------------------------------------------------------------------
# ● 初始化对象
# saving : 存档标志 (false 为载入画面)
# from_title : 调用标题画面的 "继续" 标志
# from_event : 事件的 "调用存档画面" 的调用标志
#--------------------------------------------------------------------------
def initialize(saving, from_title, from_event)
@saving = saving
@from_title = from_title
@from_event = from_event
end
#--------------------------------------------------------------------------
# ● 开始处理
#--------------------------------------------------------------------------
def start
super
@help_window = Window_Help.new
unless $game_temp.sub_menu_bitmap.width == 1
@help_window.opacity = 0
create_sub_menu_background
else
create_title_graphic
end
create_command_window
if @saving
@index = $game_temp.last_file_index
@help_window.set_text(Vocab::SaveMessage)
else
@index = self.latest_file_index
@help_window.set_text(Vocab::LoadMessage)
end
@refresh_index = @command_window.index = @index
@item_max = MAX_SAVE_ID
create_savefile_window
@savefile_window.openness = 0
end
#--------------------------------------------------------------------------
# ● 结束处理
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@help_window.dispose
dispose_item_windows
end
#--------------------------------------------------------------------------
# ● 还原至原先的画面
#--------------------------------------------------------------------------
def return_scene
if @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new(4)
end
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
update_menu_background
@help_window.update
update_savefile_windows
update_savefile_selection
end
#--------------------------------------------------------------------------
# ● 开始后处理
#--------------------------------------------------------------------------
def post_start
super
open_savefile_window
end
#--------------------------------------------------------------------------
# ● 结束前处理
#--------------------------------------------------------------------------
def pre_terminate
super
close_savefile_window
end
#--------------------------------------------------------------------------
# ● 生成标题画面背景
#--------------------------------------------------------------------------
def create_title_graphic
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = Cache.system("Title")
end
#--------------------------------------------------------------------------
# ● 生成存档文件列表窗口
#--------------------------------------------------------------------------
def create_command_window
file_names = []
for i in 0...MAX_SAVE_ID
id = sprintf("%02d", i+1)
file_names.push(Vocab::File + "Saves/Save" + id)
end
@command_window = Window_Command.new(112, file_names)
@command_window.height = 298
@command_window.x = 64
@command_window.y = 59
@command_window.openness = 0
end
#--------------------------------------------------------------------------
# ● 生成存档文件窗口
#--------------------------------------------------------------------------
def create_savefile_window
@savefile_window = Window_SaveFile.new(@command_window.index, make_filename(@command_window.index))
end
#--------------------------------------------------------------------------
# ● 释放存档文件
#--------------------------------------------------------------------------
def dispose_item_windows
@command_window.dispose
@savefile_window.dispose
end
#--------------------------------------------------------------------------
# ● 打开指令窗口
#--------------------------------------------------------------------------
def open_savefile_window
@command_window.open
@savefile_window.open
begin
@command_window.update
@savefile_window.update
Graphics.update
end until @savefile_window.openness == 255
end
#--------------------------------------------------------------------------
# ● 关闭指令窗口
#--------------------------------------------------------------------------
def close_savefile_window
@command_window.close
@savefile_window.close
begin
@command_window.update
@savefile_window.update
Graphics.update
end until @savefile_window.openness == 0
end
#--------------------------------------------------------------------------
# ● 更新存档文件窗口
#--------------------------------------------------------------------------
def update_savefile_windows
@command_window.update
@savefile_window.update
end
#--------------------------------------------------------------------------
# ● 更新存档文件选择
#--------------------------------------------------------------------------
def update_savefile_selection
if Input.trigger?(Input::C)
determine_savefile
end
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
end
if @refresh_index != @command_window.index
@refresh_index = @command_window.index
@savefile_window.dispose
create_savefile_window
end
end
#--------------------------------------------------------------------------
# ● 确定存档文件
#--------------------------------------------------------------------------
def determine_savefile
if @saving
Sound.play_save
do_save
else
if @savefile_window.file_exist
Sound.play_load
do_load
else
Sound.play_buzzer
return
end
end
$game_temp.last_file_index = @index
end
#--------------------------------------------------------------------------
# ● 生成文件名
# file_index : 存档文件索引 (0~3)
#--------------------------------------------------------------------------
def make_filename(file_index)
return "Saves/Save#{file_index + 1}.rvdata"
end
#--------------------------------------------------------------------------
# ● 按时间戳选择最新的文件
#--------------------------------------------------------------------------
def latest_file_index
index = 0
latest_time = Time.at(0) # 时间戳
for i in 0...MAX_SAVE_ID
file_name = make_filename(i)
if FileTest.exist?(SAVE_DIR + file_name)
file = File.open(SAVE_DIR + file_name, "r")
if file.mtime > latest_time
latest_time = file.mtime
index = i
end
end
end
return index
end
#--------------------------------------------------------------------------
# ● 执行存档
#--------------------------------------------------------------------------
def do_save
file_name = make_filename(@command_window.index)
$game_temp.save_bitmap.make_png(file_name.split(/\./)[0], SAVE_DIR)
file = File.open(SAVE_DIR + file_name, "wb")
write_save_data(file)
file.close
return_scene
end
#--------------------------------------------------------------------------
# ● 执行载入
#--------------------------------------------------------------------------
def do_load
file_name = make_filename(@command_window.index)
file = File.open(SAVE_DIR + file_name, "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
end
复制代码
替换◎ Scene_File试试……
作者:
kissye
时间:
2008-7-29 06:28
提示:
作者被禁止或删除 内容自动屏蔽
作者:
naterni
时间:
2008-7-29 06:35
#--------------------------------------------------------------------------
# ● 确定存档文件
#--------------------------------------------------------------------------
def determine_savefile
if @saving
Sound.play_save
do_save
else
if @savefile_window.file_exist
Sound.play_load
do_load
else
Sound.play_buzzer
return
end
end
$game_temp.last_file_index = @index
end
#--------------------------------------------------------------------------
# ● 生成文件名
# file_index : 存档文件索引 (0~3)
#--------------------------------------------------------------------------
def make_filename(file_index)
return "Save#{file_index + 1}.rvdata"
end
#--------------------------------------------------------------------------
# ● 按时间戳选择最新的文件
#--------------------------------------------------------------------------
def latest_file_index
index = 0
latest_time = Time.at(0) # 时间戳
for i in 0...MAX_SAVE_ID
file_name = make_filename(i)
if FileTest.exist?(SAVE_DIR + file_name)
file = File.open(SAVE_DIR + file_name, "r")
if file.mtime > latest_time
latest_time = file.mtime
index = i
end
end
end
return index
end
#--------------------------------------------------------------------------
# ● 执行存档
#--------------------------------------------------------------------------
def do_save
file_name = make_filename(@command_window.index)
$game_temp.save_bitmap.make_png(file_name.split(/\./)[0], SAVE_DIR)
file = File.open(SAVE_DIR + file_name, "wb")
write_save_data(file)
file.close
return_scene
end
#--------------------------------------------------------------------------
# ● 执行载入
#--------------------------------------------------------------------------
def do_load
file_name = make_filename(@command_window.index)
file = File.open(SAVE_DIR + file_name, "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
end
我的Scene_File是这样的.用了精灵的那个脚本之后存档直接出问题.大家帮忙看看.改下读档路径,改到Saves文件夹下就成.谢之~~~~~
作者:
kissye
时间:
2008-7-29 06:47
提示:
作者被禁止或删除 内容自动屏蔽
作者:
naterni
时间:
2008-7-29 06:50
确定,因为我把存档文件复制到主目录下就一切正常.
作者:
kissye
时间:
2008-7-29 06:52
提示:
作者被禁止或删除 内容自动屏蔽
作者:
naterni
时间:
2008-7-29 06:57
感谢KISS和大家,已经解决了.
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1