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

Project1

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

[已经解决] 如何在对话中存档?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
跳转到指定楼层
1
发表于 2011-7-30 20:17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 SOU 于 2011-8-1 12:17 编辑

我在Window_Message中input_pause方法里增加了一个条件分歧
  if  Input.trigger?(Input::Y)
     $scene = Scene_Menu2.new
     end
Menu2一个小菜单,里面只有储存、读取和退出

于是,我做到了在对话中打开菜单……
但是,在对话时存档的话,Scene_File会在这一行报错
Marshal.dump($game_message,        file)

以下是错误内容
TypeError
no marshal_dump is defined for class proc

我并不太懂脚本,所有的内容都是照葫芦画瓢弄出来的,到这里只明白有一个变量不能被写入存档
所以向大家求助,究竟应该怎么修改,才能在对话中进行AVG式的存档读档?

m(_ _)m拜托了老师!.rar (242.55 KB, 下载次数: 128)
嗯,拜托大家了
————————————————————————————————————————
非常白菜君又资助了我,欠下了不少人情呢。请大家记住这个好人

点评

我要不先把半成品发上来?  发表于 2011-8-2 11:42
SOU
感激你发自真心  发表于 2011-8-1 14:03
我做什么事情都是出于自己的考量,有很强的目的性。LZ不必顾及人情之类的,完善你的作品就好。另外好人什么的,感觉怎么那样的意味深长啊,囧  发表于 2011-8-1 13:17

Lv1.梦旅人

战国美少年森兰丸

梦石
0
星屑
204
在线时间
852 小时
注册时间
2008-7-20
帖子
3705
2
发表于 2011-7-30 20:34:18 | 只看该作者
SOU酱,我只是过来提醒你,用Scene_Menu2这种名字不是很好的选择。以前我用Window_Gold2这种名字MS出错过......
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
3
 楼主| 发表于 2011-7-30 20:36:14 | 只看该作者
夕阳武士 发表于 2011-7-30 20:34
SOU酱,我只是过来提醒你,用Scene_Menu2这种名字不是很好的选择。以前我用Window_Gold2这种名字MS出错过.. ...

0 0 哎?是这样的吗?我是不太明白的……具体出错的原因是什么呢?

点评

例帖找不到了= =|||不过单独调用xxx2的时候不会有问题。  发表于 2011-7-30 21:16
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42864
在线时间
7625 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

4
发表于 2011-7-30 22:47:52 | 只看该作者
本帖最后由 fux2 于 2011-7-30 23:03 编辑
SOU 发表于 2011-7-30 20:36
0 0 哎?是这样的吗?我是不太明白的……具体出错的原因是什么呢?


既然是SOU酱那一定要帮忙了=v=
m(_ _)m拜托了老师!.rar (247.16 KB, 下载次数: 115)



Proc, Thread, IO (File, Socket ...), Continuation, Method 类都是无法被dump的,所以直接存档时无解的.
($game_message里的main_proc属性就是一个proc类)
唯一简单的方法是记录该对话之前的$game_message状态
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv3.寻梦者

可以吃的头衔

梦石
0
星屑
1000
在线时间
423 小时
注册时间
2010-10-17
帖子
602
5
发表于 2011-7-30 23:11:13 | 只看该作者
本帖最后由 fux4 于 2011-7-30 23:15 编辑

今日吾辈要睡了,而且一时也想不出定义Proc#dump的方法,先留码,给后人参考
  1. class Proc
  2.   attr_accessor :source
  3.   class << self
  4.     def _load(aString)
  5.       foo=eval(aString)
  6.       foo.source=aString
  7.       foo
  8.     end
  9.   end
  10.   def _dump(aDepth)
  11.     source or raise "抛出"
  12.   end
  13. end

  14. module Kernel
  15.   alias :old_proc :proc
  16.   def Kernel.proc(string=nil,&b)
  17.     if string and b then raise "bad argument, dude" end
  18.       if string then
  19.         Proc._load("proc{#{string}}")
  20.       else
  21.         old_proc(&b)
  22.       end
  23.     end
  24.   def proc(string=nil,&b)
  25.     Kernel.proc(string,&b)
  26.   end
  27. end
复制代码
另外预留一条别人的解决方法供参考
http://rpg.blue/thread-93745-1-1.html
……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
6
 楼主| 发表于 2011-7-31 16:53:22 | 只看该作者
本帖最后由 SOU 于 2011-7-31 17:24 编辑
fux2 发表于 2011-7-30 22:47
既然是SOU酱那一定要帮忙了=v=

←_←抱歉,这段话我不太能理解了
所以,怎么说呢,拜托你了
Proc, Thread, IO (File, Socket ...), Continuation, Method 类都是无法被dump的,所以直接存档时无解的.
($game_message里的main_proc属性就是一个proc类)
唯一简单的方法是记录该对话之前的$game_message状态

↑不能理解的是这里啊

点评

0v0这叫套近乎  发表于 2011-7-31 17:22
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42864
在线时间
7625 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

7
发表于 2011-7-31 17:38:31 | 只看该作者
本帖最后由 fux2 于 2011-7-31 17:40 编辑
SOU 发表于 2011-7-31 16:53
←_←抱歉,这段话我不太能理解了
所以,怎么说呢,拜托你了


就是说存档的时候是用dump的方法把各种变量都放到存档文件里的。
然而不是任何变量(类)都可以的,上面举例的类都不行.
于是保存$game_message的时候,因为$game_message.main_proc是一个Proc类,导致dump出错,故存档失败,正在与其他人探究解决方法.
67姐姐提出了用自己写的类代替proc的方法来解决,但是怎么取挡又成了问题.

点评

SOU
喔喔喔,这样就明白了  发表于 2011-8-1 10:31
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

8
发表于 2011-7-31 17:56:20 | 只看该作者
[即时存档的XP版本点我]
以前因为曾经往里面动手脚所以研究过很久,大概就是弄了一堆一堆的dump和_dump= =b
说实在的改过来恐怕报价不低 = =||
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42864
在线时间
7625 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

9
发表于 2011-7-31 20:55:03 | 只看该作者
IamI 发表于 2011-7-31 17:56
[即时存档的XP版本点我]
以前因为曾经往里面动手脚所以研究过很久,大概就是弄了一堆一堆的dump和_dump= =b ...

捂脸逃走{:nm_2:}
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv1.梦旅人

天空之神

梦石
0
星屑
161
在线时间
173 小时
注册时间
2009-5-3
帖子
612
10
发表于 2011-8-2 11:50:30 | 只看该作者
半成品发布…………
半成品……………….rar (245.06 KB, 下载次数: 58)

点评

SOU
←_←你看看4L的那个附件  发表于 2011-8-2 12:02
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 02:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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