问一个mud编程问题,请各位帮忙看看
jkit 2004-02-20 05:21:56 游戏中有两个房间,a和b,如果设置a的出口("east", b)的话,就能从房间a向east方向走到房间b去。
问题:现在需要有个特殊处理,就是在a和b之间增加临时房间,比如c.
那么就可以设置a的出口("east", c),然后设置c的出口("east", b)这样就完成了增加临时房间的功能。限制:一个玩家只能做一个临时房间,也就是说,玩家进入c房间后可以选择拆除c,这样才能再次创建这样的临时房间。
但是有一个bug。
由于系统为了减少服务器负荷,如果一个可刷新房间连续一段时间没有玩家的话,该房间就会被自动被垃圾回收,当下次有玩家进入的时候再重新new出来(读文件)。因为是特殊处理,房间c的属性是不可刷新的,所以会一直存在。但是a和b不是固定的,也就是说可以在任意房间做这个特殊处理。如果房间a是可刷新的话,过一段时间a就会被回收,当玩家再次进入的时候,房间a重新new出来,这时候就回到了初始状态了出口("east",b)。这样就没办法进入临时房间c了。因此也就没办法拆除c了,也不能再次创建这样的临时房间了。
请教各位大虾有什么好的改进主意?
注意:
必须要这个增加临时房间的功能。
关于系统自动刷新的问题是底层程序,也不能改。
一个玩家同时只能有一个临时房间的限制也是必须的。
房间是否可以刷新是继承来的,一旦继承了可刷新房间,就不能再改成不可刷新。
请大家不吝赐教!