Project1

标题: 怎样用事件脚本控制存取档 [打印本页]

作者: 黑舞嗜    时间: 2012-1-13 19:31
标题: 怎样用事件脚本控制存取档


具体说就是在事件里写一段脚本,效果是直接存档到X位置,同时存档名可以用那段脚本自定义,读档的时候同样利用脚本读取第X个档案dsu_plus_rewardpost_czw
作者: feizhaodan    时间: 2012-1-13 20:03
本帖最后由 feizhaodan 于 2012-1-13 20:29 编辑

将Scene_File的do_save的q前三行挪过去,并且将write_save_data的内容也替换到刚才的第二行那里。


或者复制以下:
  1.     file = File.open("存档名字", "wb")
  2.         characters = []
  3.     for actor in $game_party.members
  4.       characters.push([actor.character_name, actor.character_index])
  5.     end
  6.     $game_system.save_count += 1
  7.     $game_system.version_id = $data_system.version_id
  8.     @last_bgm = RPG::BGM::last
  9.     @last_bgs = RPG::BGS::last
  10.     Marshal.dump(characters,           file)
  11.     Marshal.dump(Graphics.frame_count, file)
  12.     Marshal.dump(@last_bgm,            file)
  13.     Marshal.dump(@last_bgs,            file)
  14.     Marshal.dump($game_system,         file)
  15.     Marshal.dump($game_message,        file)
  16.     Marshal.dump($game_switches,       file)
  17.     Marshal.dump($game_variables,      file)
  18.     Marshal.dump($game_self_switches,  file)
  19.     Marshal.dump($game_actors,         file)
  20.     Marshal.dump($game_party,          file)
  21.     Marshal.dump($game_troop,          file)
  22.     Marshal.dump($game_map,            file)
  23.     Marshal.dump($game_player,         file)

  24.     file.close
复制代码
读档请自行查找Scene_File仿照上面的。


读挡:
  1. file = File.open("存档名称", "rb")
  2.     characters           = Marshal.load(file)
  3.     Graphics.frame_count = Marshal.load(file)
  4.     @last_bgm            = Marshal.load(file)
  5.     @last_bgs            = Marshal.load(file)
  6.     $game_system         = Marshal.load(file)
  7.     $game_message        = Marshal.load(file)
  8.     $game_switches       = Marshal.load(file)
  9.     $game_variables      = Marshal.load(file)
  10.     $game_self_switches  = Marshal.load(file)
  11.     $game_actors         = Marshal.load(file)
  12.     $game_party          = Marshal.load(file)
  13.     $game_troop          = Marshal.load(file)
  14.     $game_map            = Marshal.load(file)
  15.     $game_player         = Marshal.load(file)
  16.     if $game_system.version_id != $data_system.version_id
  17.       $game_map.setup($game_map.map_id)
  18.       $game_player.center($game_player.x, $game_player.y)
  19.     end
  20.     file.close
  21.     $scene = Scene_Map.new
  22.     RPG::BGM.fade(1500)
  23.     Graphics.fadeout(60)
  24.     Graphics.wait(40)
  25.     @last_bgm.play
  26.     @last_bgs.play
复制代码

作者: 黑舞嗜    时间: 2012-1-13 20:28
feizhaodan 发表于 2012-1-13 20:03
将Scene_File的do_save的q前三行挪过去,并且将write_save_data的内容也替换到刚才的第二行那里。


或 ...
  1.   def read_save_data(file)
  2.     characters           = Marshal.load(file)
  3.     Graphics.frame_count = Marshal.load(file)
  4.     @last_bgm            = Marshal.load(file)
  5.     @last_bgs            = Marshal.load(file)
  6.     $game_system         = Marshal.load(file)
  7.     $game_message        = Marshal.load(file)
  8.     $game_switches       = Marshal.load(file)
  9.     $game_variables      = Marshal.load(file)
  10.     $game_self_switches  = Marshal.load(file)
  11.     $game_actors         = Marshal.load(file)
  12.     $game_party          = Marshal.load(file)
  13.     $game_troop          = Marshal.load(file)
  14.     $game_map            = Marshal.load(file)
  15.     $game_player         = Marshal.load(file)
  16.     if $game_system.version_id != $data_system.version_id
  17.       $game_map.setup($game_map.map_id)
  18.       $game_player.center($game_player.x, $game_player.y)
  19.     end
复制代码
读档是这个吗?要怎么控制读取哪个档呢?
作者: feizhaodan    时间: 2012-1-13 21:05
在Game_Interpreter最后一个end上头插入:
  1. def do_load(file_name)
  2. file = File.open(file_name, "rb")
  3.     characters           = Marshal.load(file)
  4.     Graphics.frame_count = Marshal.load(file)
  5.     @last_bgm            = Marshal.load(file)
  6.     @last_bgs            = Marshal.load(file)
  7.     $game_system         = Marshal.load(file)
  8.     $game_message        = Marshal.load(file)
  9.     $game_switches       = Marshal.load(file)
  10.     $game_variables      = Marshal.load(file)
  11.     $game_self_switches  = Marshal.load(file)
  12.     $game_actors         = Marshal.load(file)
  13.     $game_party          = Marshal.load(file)
  14.     $game_troop          = Marshal.load(file)
  15.     $game_map            = Marshal.load(file)
  16.     $game_player         = Marshal.load(file)
  17.     if $game_system.version_id != $data_system.version_id
  18.       $game_map.setup($game_map.map_id)
  19.       $game_player.center($game_player.x, $game_player.y)
  20.     end
  21.     file.close
  22.     $scene = Scene_Map.new
  23.     RPG::BGM.fade(1500)
  24.     Graphics.fadeout(60)
  25.     Graphics.wait(40)
  26.     @last_bgm.play
  27.     @last_bgs.play
  28.   end
  29.   def do_save(file_name)
  30.   file = File.open(file_name, "wb")
  31.         characters = []
  32.     for actor in $game_party.members
  33.       characters.push([actor.character_name, actor.character_index])
  34.     end
  35.     $game_system.save_count += 1
  36.     $game_system.version_id = $data_system.version_id
  37.     @last_bgm = RPG::BGM::last
  38.     @last_bgs = RPG::BGS::last
  39.     Marshal.dump(characters,           file)
  40.     Marshal.dump(Graphics.frame_count, file)
  41.     Marshal.dump(@last_bgm,            file)
  42.     Marshal.dump(@last_bgs,            file)
  43.     Marshal.dump($game_system,         file)
  44.     Marshal.dump($game_message,        file)
  45.     Marshal.dump($game_switches,       file)
  46.     Marshal.dump($game_variables,      file)
  47.     Marshal.dump($game_self_switches,  file)
  48.     Marshal.dump($game_actors,         file)
  49.     Marshal.dump($game_party,          file)
  50.     Marshal.dump($game_troop,          file)
  51.     Marshal.dump($game_map,            file)
  52.     Marshal.dump($game_player,         file)

  53.     file.close
  54.   end
复制代码
之后在事件脚本内用:
  1. do_save(file_name)
  2. do_load(file_name)
复制代码
分别表示存档(上面的),读档(下面的)
在file_name处输入存档名称,要用""包着。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1