设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1805|回复: 3
打印 上一主题 下一主题

[已经解决] 读档时选项会被跳过.....

[复制链接]

Lv3.寻梦者

梦石
1
星屑
985
在线时间
231 小时
注册时间
2006-2-3
帖子
82
跳转到指定楼层
1
发表于 2019-11-22 04:12:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 zsefvv 于 2019-11-22 04:23 编辑

我这边是用事件脚本即时读档存档......
我在选项出现的位置存档,而读档后选项会被自动跳过......
(不知道什么原因,贴一下脚本准没错)
没有使用其他存档脚本了,存档只用了下面这个脚本。
RUBY 代码复制
  1. class Interpreter
  2. def tosave   #存档事件脚本
  3.     file = File.open("Save/save.rxdata", "wb")
  4.         # 生成描绘存档文件用的角色图形
  5.         characters = []
  6.     for i in 0...$game_party.actors.size
  7.       actor = $game_party.actors[i]
  8.       characters.push([actor.character_name, actor.character_hue])
  9.     end
  10.         # 写入描绘存档文件用的角色数据
  11.         Marshal.dump(characters, file)
  12.         # 写入测量游戏时间用画面计数
  13.         Marshal.dump(Graphics.frame_count, file)
  14.         # 保存魔法编号
  15.         # (将编辑器保存的值以随机值替换)
  16.         $game_system.magic_number = $data_system.magic_number
  17.         # 写入各种游戏对像
  18.         Marshal.dump($game_system, file)
  19.         Marshal.dump($game_switches, file)
  20.         Marshal.dump($game_variables, file)
  21.         Marshal.dump($game_self_switches, file)
  22.         Marshal.dump($game_screen, file)
  23.         Marshal.dump($game_actors, file)
  24.         Marshal.dump($game_party, file)
  25.         Marshal.dump($game_troop, file)
  26.         Marshal.dump($game_map, file)
  27.         Marshal.dump($game_player, file)
  28.         file.close  
  29.       end
  30.  
  31. def toload    #读档事件脚本
  32.         file = File.open("Save/save.rxdata", "rb")
  33.         # 读取描绘存档文件用的角色数据
  34.         characters = Marshal.load(file)
  35.         # 读取测量游戏时间用画面计数
  36.         Graphics.frame_count = Marshal.load(file)
  37.         # 读取各种游戏对像
  38.         $game_system        = Marshal.load(file)
  39.         $game_switches      = Marshal.load(file)
  40.         $game_variables     = Marshal.load(file)
  41.         $game_self_switches = Marshal.load(file)
  42.         $game_screen        = Marshal.load(file)
  43.         $game_actors        = Marshal.load(file)
  44.         $game_party         = Marshal.load(file)
  45.         $game_troop         = Marshal.load(file)
  46.         $game_map           = Marshal.load(file)
  47.         $game_player        = Marshal.load(file)
  48.         # 魔法编号与保存时有差异的情况下
  49.         # (加入编辑器的编辑过的数据)
  50.         if $game_system.magic_number != $data_system.magic_number
  51.           # 重新装载地图
  52.           $game_map.setup($game_map.map_id)
  53.           $game_player.center($game_player.x, $game_player.y)
  54.         end
  55.         # 刷新同伴成员
  56.         $game_party.refresh
  57.         file.close
  58.         # 还原 BGM、BGS
  59.         $game_system.bgm_play($game_system.playing_bgm)
  60.         $game_system.bgs_play($game_system.playing_bgs)
  61.         # 刷新地图 (执行并行事件)
  62.         $game_map.update
  63.         # 切换到地图画面
  64.         $scene = Scene_Map.new
  65.   end
  66. end

还有一个问题,而且这个问题的产生原因可能也和前面那个问题是一样。
我这边还用了一个记录对话文本的脚本,我是设置按右键呼出记录.......
但是每次呼出后,也都会跳过当前对话。


最后还有一点小担心,我游戏中的文本是以外部文件的形式进行加载。
如果因为玩家读档存档的原因产生同个文件反复加载,会出现什么隐性问题吗?

Lv3.寻梦者

梦石
1
星屑
985
在线时间
231 小时
注册时间
2006-2-3
帖子
82
2
 楼主| 发表于 2019-11-22 07:37:56 | 只看该作者
好吧,比想象中的更严重,读档时会跳过存档位置的下一个执行的任何内容.......

例如上图,我在事件过程中,房间的初始化与摸头模式之间进行了快速存档。
下次读档时,则摸头模式不执行。(因为被跳过了)
原理未知,只会跳过当前执行内容项+1的执行内容。
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34735
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2019-11-22 10:57:54 | 只看该作者
这怕是最尴尬的情况了,你可以开个新的空白工程试试这一段脚本
它并没有帮你 事件执行index+1 ,所以在空白工程里,你在哪里保存了,读取时就在它下一条开始执行了

如果实在找不到原因,你就手动在存档前(tosave方法的第一行)加个 @index -= 1,然后在存档后(tosave方法的最后一个end的前面)加个 @index += 1 吧……

点评

已解决~谢啦  发表于 2019-11-22 20:46

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 08:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表