#============================================================================= # 本脚本来自www.66RPG.com,转载和使用请保留此信息 #============================================================================= # 如果你希望将读取进度改造为“先播放一段事件,再转向地图”,可以使用此 # 脚本。相当有创意(比如先出现一段CG提示“载入成功”- -) # 首先设置好下面的参数。 # 然后,在自动载入的地图上面放置一个自动播放的事件(比如显示图片,“载入完毕”) # 最后地图跳转到变量号的地图上即可。 RPG66_中转地图编号 = 1 RPG66_中转地图角色出现x位置 = 2 RPG66_中转地图角色出现y位置 = 3 RPG66_用来记录真正应该载入的地图编号的变量 = 48 RPG66_用来记录真正应该载入的地图X的变量 = 49 RPG66_用来记录真正应该载入的地图Y的变量 = 50 #——也就是说,默认情况下,载入进度会自动跳转到1号地图的(2,3)位置 #——播放自动事件完毕之后,只要用事件跳转到 # 地图ID:49号变量 # X :50号变量 # Y :51号变量 #——即可完成读取。 # 作者:carol3 #============================================================================= class Scene_Load < Scene_File #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- def initialize # 再生成临时对像 $game_temp = Game_Temp.new # 选择存档时间最新的文件 $game_temp.last_file_index = 0 latest_time = Time.at(0) for i in 0..3 filename = make_filename(i) if FileTest.exist?(filename) file = File.open(filename, "r") if file.mtime > latest_time latest_time = file.mtime $game_temp.last_file_index = i end file.close end end super("要载入哪个文件?") end #-------------------------------------------------------------------------- # ● 确定时的处理 #-------------------------------------------------------------------------- def on_decision(filename) # 文件不存在的情况下 unless FileTest.exist?(filename) # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 演奏读档 SE $game_system.se_play($data_system.load_se) # 写入存档数据 file = File.open(filename, "rb") read_save_data(file) file.close # 还原 BGM、BGS $game_map.setup(RPG66_中转地图编号) #此例中读取存档后进入75号地图 $game_player.center(RPG66_中转地图角色出现x位置, RPG66_中转地图角色出现y位置) #显示画面中心在11,11的坐标 $game_player.moveto(RPG66_中转地图角色出现x位置, RPG66_中转地图角色出现y位置) #主角出现在11,11的坐标 # 刷新地图 (执行并行事件) $game_map.update # 切换到地图画面 $scene = Scene_Map.new end #-------------------------------------------------------------------------- # ● 取消时的处理 #-------------------------------------------------------------------------- def on_cancel # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 切换到标题画面 $scene = Scene_Title.new end #-------------------------------------------------------------------------- # ● 读取存档数据 # file : 读取用文件对像 (已经打开) #-------------------------------------------------------------------------- def read_save_data(file) # 读取描绘存档文件用的角色数据 characters = Marshal.load(file) # 读取测量游戏时间用画面计数 Graphics.frame_count = Marshal.load(file) # 读取各种游戏对像 $game_system = Marshal.load(file) $game_switches = Marshal.load(file) $game_variables = Marshal.load(file) $game_self_switches = Marshal.load(file) $game_screen = Marshal.load(file) $game_actors = Marshal.load(file) $game_party = Marshal.load(file) $game_troop = Marshal.load(file) $game_map = Marshal.load(file) $game_player = Marshal.load(file) $game_variables[RPG66_用来记录真正应该载入的地图编号的变量]=$game_map.map_id $game_variables[RPG66_用来记录真正应该载入的地图X的变量] = $game_player.x $game_variables[RPG66_用来记录真正应该载入的地图Y的变量] = $game_player.y # 刷新同伴成员 $game_party.refresh end end |