Project1

标题: 退出轩辕剑商店菜单之后,不能存档No Marshal dump [打印本页]

作者: 紫英晓狼1130    时间: 2020-3-23 00:08
标题: 退出轩辕剑商店菜单之后,不能存档No Marshal dump
本帖最后由 紫英晓狼1130 于 2020-3-23 08:24 编辑

轩辕剑美化商店 本来就有的问题
按照预设的操作退出商店后,游戏可以正常运行,但存档就会报错,头一次见到这样的问题
存档出来的save文件只有1kb,说明存档过程有了问题
查了一下F1,关于marshal的问题说明:有不能写入文件的数据写入时就会有typeerror
工程在此贴5楼,这个问题不是移植后的问题,而是原有的bug:https://rpg.blue/thread-141979-1-1.html



解决方法如下:
原因:在事件中调用的变量方式不对,导致存档时无法写入该值
方法:调用全局变量
RUBY 代码复制
  1. $shopcommand=Window_Command4.new(......)
  2. $shopcommand.update
  3. $shopcommand.dispose

ACF9ECEC-589E-4E67-B31A-A72656FECF13.png (15.15 KB, 下载次数: 4)

ACF9ECEC-589E-4E67-B31A-A72656FECF13.png

56D47043-BA43-43D8-BC92-F8EEA0EEE95D.jpeg (60.82 KB, 下载次数: 4)

56D47043-BA43-43D8-BC92-F8EEA0EEE95D.jpeg

作者: guoxiaomi    时间: 2020-3-23 02:19
本帖最后由 guoxiaomi 于 2020-4-15 01:30 编辑

嗯,因为存档的时候会储存 $game_system/Game_System 对象,其实例变量@map_interpreter(也就是当前地图上正在执行的事件)当然也会被存下来。你在当前的事件解释器里构建的 @shopcommand 对象也会一同存下来。于是导致了对应的bug。

解决方案:使用全局变量
  1. $shopcommand = Window_Commanda.new(...)
复制代码


在事件脚本里插入主流程其实非常的不合理,你可以参考SailCat的MiniScene: https://rpg.blue/thread-404988-1-1.html




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