Project1

标题: Define a method of dump in Proc class(Ruby) [打印本页]

作者: fux2    时间: 2011-7-30 23:31
标题: Define a method of dump in Proc class(Ruby)
本帖最后由 忧雪の伤 于 2012-1-24 19:14 编辑

标题

Proc 类提供 dump 接口。



描述

具各位所知 Proc, Thread, IO (File, Socket ...), Continuation, Method 类都是无法被 dump 的。
但是如果想制作对话中存档就要用到它。($game_message.main_proc)




line display
作者: 一箭烂YiJL    时间: 2012-1-9 21:13
显然是不可能的 dump,重点是作用于该实例区域,实例释放,Proc 实例也随之消失。但是 dump 后就可以被 load,对于别的 Ruby 脚本根本不可能 load 进 $game_message.main_proc(/choice_proc),甚至那些没有 $game_message。

如果考虑 eval 的话,有两个问题:
1.实例的区域(作用域)
2.参数
eval 参数 2 binding 可以说是那个实例区域的"身份位置",但 binding 也不能 dump 。

fux2 想实时储存吧...
如果纯粹对于 $game_message 的两个 proc ,可以这样吧。
在每次 proc = Proc.new 的时候用:
$game_message.proc = "Proc.new{|xx|xx}"
call 的时候用:
$game_message.real_proc = eval($game_message.proc)
$game_message.real_proc.call(arg)
$game_message.real_proc = nil
不知道会否影响效率呢?

(其实我是刚刚被忧雪邀请进来的,似乎这里只活跃于 30~31/7)
作者: yangff    时间: 2012-1-17 21:40
hack解释器




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