赞 | 12 |
VIP | 107 |
好人卡 | 6 |
积分 | 4 |
经验 | 31122 |
最后登录 | 2024-6-29 |
在线时间 | 1606 小时 |
Lv2.观梦者 傻♂逼
- 梦石
- 0
- 星屑
- 374
- 在线时间
- 1606 小时
- 注册时间
- 2007-3-13
- 帖子
- 6562
 
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 yangff 于 2011-4-26 00:16 编辑
- module Game
- module Safe
- module_function
- def safe(level,join=false,mid=nil,eid=nil)
- result = nil
- #Game.temp.events[mid][eid]
-
- k = Thread.start {
- $SAFE = level
- result = yield
- Game.temp.events[mid][eid]=nil if mid!=nil and eid!=nil
- }
- if mid!=nil and eid!=nil
- Game.temp.events[mid]={} if Game.temp.events[mid].nil?
- Game.temp.events[mid][eid] = k
- end
- k.join if join
-
- #p "exit:"
- result
- end
- end
- end
- #alias new_eval eval
- #def eval(*args)
-
- # Game::Safe.safe(3) { new_eval(args)}
- #end
- #事件响应方法
- def startevent(mapid,eventid,join)
- Game::Safe.safe(3,join,mapid,eventid) { yield }
- end
- def continue_event(mapid)
- for i in Game.temp.events[mapid]
- i.run
- end
- end
- def change_map_of_ev(mapid)
- for i in Game.temp.events[mapid]
- i.stop
- end
- end
- module Events
- def self.run(event,mapid,eventid,join=true) #event=Proc.new {
- startevent(mapid,eventid,join) { event.call }
- end
- end
复制代码 这样写,如果在event里面写
Game.scene="Battle"
change_map_of_ev(Game.temp.map_id)
show_Message(...)
1、会不会刮起线程
2、战斗结束后恢复后执行continue_event(Game.temp.map_id)会不会继续执行show_Message(...)还是会傻乎乎的重头开始执行?
3、Game会受到污染吗?
0----------------------------------------------------------------------------------------------------0
Thread怎么Dump
如果不能Dump怎么在下次运行的时候恢复到上次运行时的位置?
0----------------------------------------------------------------------------------------------------0
还有同样的dump问题,Proc怎么dump |
|