赞 | 340 |
VIP | 10 |
好人卡 | 8 |
积分 | 255 |
经验 | 235776 |
最后登录 | 2024-3-13 |
在线时间 | 2335 小时 |
Lv5.捕梦者 (版主) 遠航の猫咪
- 梦石
- 3
- 星屑
- 22457
- 在线时间
- 2335 小时
- 注册时间
- 2005-10-15
- 帖子
- 1160
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
考虑到66的建议,我就把压轴的部分发这了。毕竟,如果运行时的设定不能保存的话,作用是比较有限的……
数据库的读取是用load_data从系统文件夹中读取,可能一般会想到用其反方法save_data写回去,但是如果你的修改突破了数据库999上限,或者一些值突破了系统界限,这些写回来的数据,RMXP是不认的,换句话说,这个数据库就不能再RMXP里进行编辑了。。。会提示加载不成功之类的话,严重的话导致整个工程打不开。
而且,这样的保存是釜底抽薪式的保存,如果你的修改是在剧情中进行的那种修改,下次用new game进入游戏,原来的数据也被改了。
一般来说,数据库的运行时修改随存档文件保存比较好,这样剧情中的更改不会影响新建游戏。
以下是相关的保存用代码:
class Scene_Save
alias sailcat_write_save_data write_save_data
def write_save_data(file)
sailcat_write_save_data(file)
# 写入数据库
Marshal.dump($data_actors, file)
Marshal.dump($data_classes, file)
Marshal.dump($data_skills, file)
Marshal.dump($data_items, file)
Marshal.dump($data_weapons, file)
Marshal.dump($data_armors, file)
Marshal.dump($data_enemies, file)
Marshal.dump($data_troops, file)
Marshal.dump($data_states, file)
Marshal.dump($data_animations, file)
Marshal.dump($data_tilesets, file)
Marshal.dump($data_common_events, file)
Marshal.dump($data_system, file)
end
end
class Scene_Load
alias sailcat_read_save_data read_save_data
def read_save_data(file)
sailcat_read_save_data(file)
$data_actors = Marshal.load(file)
$data_classes = Marshal.load(file)
$data_skills = Marshal.load(file)
$data_items = Marshal.load(file)
$data_weapons = Marshal.load(file)
$data_armors = Marshal.load(file)
$data_enemies = Marshal.load(file)
$data_troops = Marshal.load(file)
$data_states = Marshal.load(file)
$data_animations = Marshal.load(file)
$data_tilesets = Marshal.load(file)
$data_common_events = Marshal.load(file)
$data_system = Marshal.load(file)
end
end
这个脚本使用时可以灵活处理,你改了哪些对象,就保存哪些,没改的,就不存,删掉其中的对应行,但是一定要注意,save和load里面的存取对象列表,必须完全相同,不但完全相同,连顺序也要一一对应才可以。
[本贴由 柳柳 于 2005-10-31 7:25:27 最后编辑] |
|