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

返回   文字MUD游戏论坛-天下泥潭群英会-水泊梁山 > 西游之旅 > 『 巫师天下 』

『 巫师天下 』 学习如何挂MUD,如何制作MUD。讨论如何管理好一个MUD,做好一个巫师。

发表新主题 回复
 
LinkBack 主题工具 主题评分 显示模式
旧 2011-12-03   #1
高级会员
级别:6 | 在线时长:109小时 | 升级还需:31小时级别:6 | 在线时长:109小时 | 升级还需:31小时级别:6 | 在线时长:109小时 | 升级还需:31小时
 
Odysseus 的头像
 
注册: 08年04月11日
来自: 盘丝洞
帖子: 311
声望力: 20
声望: 50 Odysseus 初领妙道
现金:29两梁山币
资产:1245两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
呼叫执行时间过长

作者:hxsd  发表时间:2001年7月4日 07:11
-------------------------------------------------------------------------------
log如下:
object /adm/daemons/convertd: eval_cost too big 1000000

执行时段错误:*Too long evaluation. Execution aborted.

程式:adm/daemons/convertd.c 第 171 行
呼叫来自:feature/command.c 的 command_hook() 第 66 行,物件: clone/user/user#35470 ("香蕉(banana)")
呼叫来自:cmds/skill/exert.c 的 main() 第 30 行,物件: cmds/skill/exert ("0(0)")
呼叫来自:adm/single/simul_efun.c 的 notify_fail() 第 126 行,物件: adm/single/simul_efun ("0(0)")
呼叫来自:adm/daemons/convertd.c 的 output() 第 171 行,物件: adm/daemons/convertd ("0(0)")
object /adm/daemons/securd: eval_cost too big 1000000

还有大量的类似的log
此类问题,只有在晚上玩家挂,大量机器人时才可能出现,白天没机器人时根本不
会出现。。。。


作者:llm  发表时间:2001年7月4日 08:51
-------------------------------------------------------------------------------
Too long evaluation. Execution aborted这类的错误有两个解决办法,
一是如果你的主机性能及网络带宽足够好的话。在MUDOS里的opation文件里,
将各种限制数值调大。调多大我也没经验,可以一步一步放大看看。然后重
新编译再执行。
二如果你的主机不行的话,那么只好限制玩家的一次性指令输入数量。具体
可以在/feature/command.c里面做。

作者:darks  发表时间:2001年7月4日 11:11
-------------------------------------------------------------------------------
*Too long evaluation. Execution aborted.
这个问题一般出现在函数或者呼叫执行时间过长,这里就要注意算法,尽量保证不要再一次调用或者呼叫中使用太
多的循环,可以考虑分步执行的方式来避免。
比如先用一个函数 来执行一部分功能 然后结束这次呼叫
然后再调用一个呼叫 继续执行。 有点类似INPUT_TO的做法 不过具体做起来 可不要使用
input_to :)
有时候 交给物件自己呼叫也是一个可行的办法。这个时候,初始的呼叫可以停止。而让物
件自身继续这个过程。

作者:hxsd  发表时间:2001年7月4日 11:37
-------------------------------------------------------------------------------
上面的原因我也知道。。
hammer2 darks..
但这样的程序太多了,我不可能一个一个的改吧....
我想找个办法,在底层上做点限制或别的什么,就能解决这个问题....
有没有高招啊...
希望darks,高人出点高招吧....
如果要一个一个改的话,希望darks,来帮我一起改几天吧,我估计有
一半的cmds,和几百个room要重做....
有没有办法在底层上做一点if,或别的什么解决以上二个问题啊....

作者:jackyboy  发表时间:2001年7月4日 21:20
-------------------------------------------------------------------------------
从你描述的情况看,应该是玩家的机器人大量挂机导致系统变慢,处理命令效率降低后无法在规定时间内完成呼叫
而产生的。darks,llm这点说的很清楚了。

所以可以用几个办法使这种错误不再出现:
1、增加一次呼叫的超时控制,可以去修改mudos的配置文件config,在文件里寻找这样的字样:maximum evaluation
cost : 1000000
然后把具体的数值修改一下就行,当然,直接修改MUDOS也是方法之一,而且肯定奏效。
2、第一个方法只是一种迫不得已的办法,最根本的原因是要降低系统负荷。挂机是最应该被限制的行为了。那是一
种自私的,毫不顾忌抢掠的手段。:)所以至少应该在/feature/alias.c里对输入命令速度进行控制。比如用计时
和计数方式来限制一秒内可以执行命令次数,超过的一律抛掉。这样就应该能减少大部分的错误了吧。系统负担也
应该边小了一些。

--以上转载自www.niub.net之mud制作论坛
Odysseus 当前离线  
回复时引用此帖

发表新主题 回复

添加到书签


发帖规则
不可以发表主师
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



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


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

站长 fengyue

Content Relevant URLs by vBSEO 3.6.1