文字MUD游戏论坛-天下泥潭群英会-水泊梁山

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/index.php)
-   『 巫师天下 』 (http://www.aolai.org/forums/forumdisplay.php?f=21)
-   -   无心跳处理办法 (http://www.aolai.org/forums/showthread.php?t=16115)

Odysseus 2011-12-03 23:19

无心跳处理办法
 
【 在 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~~

发信人: cloner (!!!!!!!), 信区: Mud_Builder
标 题: Re: 来来来,关税一篇
发信站: 一塌糊涂 BBS (Sun May 6 10:20:32 2001)

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

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

发信人: poet (消逝的回忆), 信区: Mud_Builder
标 题: Re: 来来来,关税一篇
发信站: 一塌糊涂 BBS (Sun May 6 16:24:36 2001)

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

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

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

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


所有时间均为格林尼治时间 +9, 现在的时间是 00:40.

Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1