cloudsee 发表于 2013-7-19 09:46:35

【刚发错地方了】 前辈进~关于遍历中的爬蜀山、走铁索等busy事件的处理

我遍历是参照论坛某位前辈写的,比如最简单的
#alias bianli {
#if @onoff=0 {                  //onoff代表找到npc停止
#if @n<=%numitems( @area_list) {//area存放整个区域的路径
    %item(@area_list, @n)            //开始从list选出方向,行走
    #wa
    #add n 1
    bianli
    }
} {#say 找到npc,遍历暂停}
}
这样的话一般上没什么问题,但遇到蜀山这种busy,就出问题了
加了
#tri {^??你小心翼翼往前挪动,遇到艰险难行处,只好放慢脚步。} {#add n -1}
还是没有用,到蜀道上乱跑,busy的时候,n还是在往前+,比如列表是nw|ne|nw,第一个nw的时候已经busy了,这个时候应该会触发n-1,但第二个ne指令还是出来了,系统就显示此方向没有出口。
这怎么解决? 昨晚尝试了很久一直卡在这上,chat问也没人知道,想死的心都有了!!!

北大侠客行MUD,中国最好的MUD

hijacker 发表于 2013-7-19 10:40:48

遍历思路有很多的,你可以在论坛上搜个其他方法试试

cloudsee 发表于 2013-7-19 10:57:13

我知道了,在路径中加入busy,遍历的时候在busy的时候#wa或者#alarm等个几秒改成步行模式就可以了。

bluse 发表于 2013-7-19 11:27:28

alias运行的过程当中,你未必能随时准确的修改变量n
有时候甚至会报非法内存访问

bluse 发表于 2013-7-19 11:36:20




#tri {^??你小心翼翼往前挪动,遇到艰险难行处,只好放慢脚步。} {#add n -1}

我觉得问题的原因是,这条触发句在触动n-1之前,已经先令#wa结束,执行了下一步的递归bianli,所以即使后面补救性的n-1,第n步已经跨出了。
我没做实验,只是假想一个方法:你把这条触发修改一下“选项”里的设置,从“下一行”改为“提示行”,试试看,或许可以赶在#wa结束之前,提前执行n-1,从而达到目的。

rubble 发表于 2013-7-19 12:17:49

求楼上的robot
lboxia@163.com
谢谢{:7_283:}

wutiande 发表于 2013-7-19 12:51:37

熊爷的机器好高级。。

cloudsee 发表于 2013-7-19 14:50:12

我用的是721版本,这个设置在哪的,没有属性。
我还是决定在路径加busy来做了,递归里面判断busy就改成慢走过去,这样应该就保险了。

cloudsee 发表于 2013-7-26 01:10:20

改用721自带path之后,发现list真心不好用。果断放弃。
页: [1]
查看完整版本: 【刚发错地方了】 前辈进~关于遍历中的爬蜀山、走铁索等busy事件的处理