本帖最后由 MCCF 于 2020-3-12 10:09 编辑
如果LZ是自己在尝试的话……我觉得善用脚本编辑器的“全局搜索”吧,可以很方便地找到需要查看的方法。
存档的基本方法是DataManager.save_game(index),index是存档编号。
内部实现很简单,把当前$game_variables和$game_player这些游戏实例用Marshal.dump塞进存档。然后外面再包装一个异常处理,防止无法写入导致脚本崩溃。
读档是DataManager.load_game(index)。就是把当前的游戏实例设置成存档中所存储的。
以前写过一个自动存档脚本,这种脚本的套路是,点击后不进入Scene_Save,直接操作DataManager存档。读档也一样。
另外,如果要调整存档的内容的话,VA也提供了方法。比如:
class << DataManager #-------------------------------------------------------------------------- # ● 生成存档内容 #-------------------------------------------------------------------------- alias orig_make_save_contents make_save_contents def make_save_contents orig_make_save_contents contents[:something] = $game_something end #-------------------------------------------------------------------------- # ● 展开存档内容 #-------------------------------------------------------------------------- alias orig_extract_save_contents extract_save_contents def extract_save_contents(contents) orig_extract_save_contents(contents) $game_something = contents[:something] end end
class << DataManager
#--------------------------------------------------------------------------
# ● 生成存档内容
#--------------------------------------------------------------------------
alias orig_make_save_contents make_save_contents
def make_save_contents
orig_make_save_contents
contents[:something] = $game_something
end
#--------------------------------------------------------------------------
# ● 展开存档内容
#--------------------------------------------------------------------------
alias orig_extract_save_contents extract_save_contents
def extract_save_contents(contents)
orig_extract_save_contents(contents)
$game_something = contents[:something]
end
end
这两个方法用于生成和获取存档的具体内容(contents)。 |