背景:
阅读文章

无心跳处理办法

[日期:2007-05-06] 来源:  作者:佚名 [字体: ]

【 在 mudder (袖里乾坤) 的大作中提到: 】
问一个问题如果遇到no heart beat的时候
除了update之外有没有彻底解决的办法?

【 在 cloner (!!!!!!!) 的大作中提到: 】
set_heart_beat(1)

这是个efun.

所以要从外部打开一个ob的心跳,需要提供
一个接口.比如在NPC里这么写一段:

void turn_heart_beat(int flag)
{
     set_heart_beat(flag>0);
     return;
}
以后要改变心跳状态就ob->turn_heart_beat(flag)了.
~~~~~可是还是必须有wiz在线才能做到呀

【 在 cloner (!!!!!!!) 的大作中提到: 】

你可以做个守护程序啊,hehe
~~~~那得每隔一段时间搜索一次
      即浪费资源,又影响速度
      很划不来的说hoho~~

资源和速度的问题,看你怎么写代码了,
小心的话,不会有什么影响的。
npc的心跳不检查的话,光user_ob就少的
很了,一个children,再分几次进行处理,
玩家绝对感觉不到速度的变化。

如果你觉得守护程序call_out耗资源,
也可以用 room的reset()来执行这个,
这样只需要加入几行代码就可以了。


一般都是某些代码有问题导致失去心跳的,直接给他心跳,
如果造成其没有心跳的问题并没有解决,岂不是成了死循环?

children 是efun,在这里的使用方法,
是对 USER_OB 查找其复制出的所有物件,

因为一般的Mudlib中都有cron的,把这个代码加到cron中就可以了。
反正cron是要运行的,你加一点东西又不会占用更多的call_out资源。

至于NPC,就只好委屈一下了,如果你想累垮CPU,要检查也没关系的。
不过出现no_heart_beat的情况都有记录的,你把产生问题的原因从
程序上解决就可以,不用自动恢复其心跳。
尊重作者 转载请注明出处52mud.com

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容      
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论