北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 7548|回复: 15

请教#alarm的一个疑问

[复制链接]
发表于 2009-8-17 09:35:42 | 显示全部楼层 |阅读模式
看到了精华教程里的一段,有点不明白

防止发呆的一般做法:

步骤一
: 一般一个机器人正常运转时,都会循环出现各种信息,可以将这些信息做成trigger,触发命令中加入#add idle 1
步骤二: #alias Testidle {#alarm +@time {#if (@idle>0) {#say 运行情况良好;#var idle 0} {#say 机器人已经中断;let it run}};testidle}
对@idle进行定时判断,如果@idle大于1,表示运行情况良好,变量归0;否则表示机器人中断,重新运转它

这里的步骤二是一个快速的连续循环呢,还是每次延迟@time的循环呢?

比如     #alias test {#alarm +10 {hi};test}   ;       test
是每10秒hi一下,还是连续不停的hi呢?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 09:48:26 | 显示全部楼层
#alias test {#alarm +10 {hi};test}   ;       test
这样是每10秒hi一下,这属于嵌套处理
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 09:54:14 | 显示全部楼层
谁能贴个help #alerm
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-17 10:01:19 | 显示全部楼层
那这个命令也是10秒钟循环一次了?

可是这行命令里面并没有延时的指令呀?  除去#alarm外,只有#alias test {test}; 是连续不停的循环吧?
难道#alarm命令也会使后面的"test"延迟10秒执行?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-17 10:08:46 | 显示全部楼层
我用的是zmud 4.62,好像4.62里面用不了alarm嵌套呀
我刚才用  #alias test {#alarm +10 {hi};#show 00000;test}   ;     test  来测试
输入以后,弹出个提示窗,好像是说“死循环”,然后屏幕上马上出现7行00000,10秒后出现hi的回馈,整个命令只循环了1次
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 10:11:02 | 显示全部楼层
#alias test {#alarm +10 {hi};test}   ;       test
汗,这个要死机的,test放到alarm的里面,应该是

#alias test {#alarm +10 {hi;test}}
不知道你最后面加个分号再加个test是什么意思?
哦,看明白了,分号和test是在命令行输入的吧,可以

[ 本帖最后由 sghjjj 于 2009-8-17 10:14 AM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 10:11:51 | 显示全部楼层
果然死循环死机了吧,不是462不能嵌套
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-17 10:14:01 | 显示全部楼层
果然,我修改了一下,加入#wa 指令,这个循环才能顺利执行.
如下
#alias test {#alarm +10 {hi};#wa 5000;test};test

这个命令5秒钟正常循环一次,{hi}一直处在等待触发的状态.
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 10:17:11 | 显示全部楼层
原帖由 tempxx 于 2009-8-17 10:14 AM 发表
果然,我修改了一下,加入#wa 指令,这个循环才能顺利执行.
如下
#alias test {#alarm +10 {hi};#wa 5000;test};test

这个命令5秒钟正常循环一次,{hi}一直处在等待触发的状态.

最好不要这样做,在555里这样做的话,#alarm +10还没有触发就被5秒后新的#alarm +10替代更新了,在zmud555里,hi命令永远都出不来,难道462可以?

一般做法是直接把test放到alarm里面,和hi放在一起,#wa也不需要
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-17 10:17:39 | 显示全部楼层
那么就是教程里有瑕疵了,你看#alias Testidle {#alarm +@time {#if (@idle>0) {#say 运行情况良好;#var idle 0} {#say 机器人已经中断;let it run}};testidle}
他最后的testidle是在#alarm  time {} 之外的


最后的test是表示执行这个#alias定义的内容呀,不然这个嵌套怎么执行的起来呢

[ 本帖最后由 tempxx 于 2009-8-17 10:19 AM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 01:12 PM , Processed in 0.016110 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表