北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
12
返回列表 发新帖
楼主: tempxx

请教#alarm的一个疑问

[复制链接]
发表于 2009-8-17 10:23:11 | 显示全部楼层
恩,真的写错了, ,我去改下
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 10:30:08 | 显示全部楼层
原帖由 tempxx 于 2009-8-17 10:17 发表
那么就是教程里有瑕疵了,你看#alias Testidle {#alarm +@time {#if (@idle>0) {#say 运行情况良好;#var idle 0} {#say 机器人已经中断;let it run}};testidle}
他最后的testidle是在#alarm  time {} 之外的


最 ...

貌似是版本问题
这种判定,zmud可能有两种解释
1、#alarm运行,@time后执行指令,加入这个状态后就认为#alarm执行完毕,马上执行testidle,这样就像糖果刚才回复的,会死循环,因为testidle没有延迟,不停重复
2、#alarm运行,@time后执行指令,直到@time之后zmud才认为#alarm执行完毕,然后执行testidle,这样判定的话这个写法就是可行的

安全起见,testidle还是写在{}内吧

我知道的是,在462里,#wa 5000;command;testidle肯定是5s后执行,不过这是废话
但是如果再命令栏里输入path,path中有延时,比如去华山村的是
xiaocun=do 5 n;nw;#wa 1000;do 4 n
而你如果输入xiaocun;hi,回车,其实zmud的执行时do 5 n;nw;hi;#wa 1000;do 4 n
意思是在zmud462的命令行判定中,xiaocun开始进入执行状态后,zmud462就认为xiaocun执行结束,马上执行了hi,后果就是hi被插到了path里,我做慕容时经常beijingb;s;s;w;l,如果用命令栏,s;s;w;l就会插到beijingb里导致行走错误
但是,令人无语的是,如果path;command这种格式放到触发指令里,却是可行的,一直到path整个执行完才会执行command,无语

所以,找这个判定推测,如果是在{}外的话,462会导致死循环,因为testidle是用别名执行而不是用触发器执行,别名执行相当于就是在输入栏里直接输入回车,那么后果就是结果1

不知道推断正确否,没真的试过这个alarm嵌套
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-17 13:28:12 | 显示全部楼层
搞那么复杂干啥呀,在timer里设一个就好了!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-20 22:19:43 | 显示全部楼层
我也不明白为什么搞这么复杂,在一个长时间运行的机器人中,反复创建临时tr,会增加很大的系统开销,常规性自身调用,也会增加不稳定因素,甚至造成内存混乱。其目的无非是尽量降低发呆的时间。其实发呆本身就是非常规现象,那么遇到了多等几秒也无所谓。
简单的一行 #alarm -10 {hi} 创建一个永久运行的定时器。比ts的好处是程序集成度高,不争抢那唯一的ts。
如果非要自动控制,那么在开始的时候创建,任务结束了#untrigger删除就是了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-20 22:39:50 | 显示全部楼层
可以用time功能防止退出嘛


比如#time 60 5 kiss littlexi

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-20 23:31:19 | 显示全部楼层
诚三你说的#untr -10的特点只有721才有,如果用的是721,绝对是用#untr -10,一个永久性的定时器肯定比反复的嵌套创建要好

另外timer只有1个,如果在某个更重要更需要稳定的地方已经用了timer,那么防发呆就只能用#alarm了。timer比#alarm简单稳定。

我一直还是主张能简单尽量不要复杂的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-29 06:42 PM , Processed in 0.011573 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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