【刚发错地方了】 前辈进~关于遍历中的爬蜀山、走铁索等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 遍历思路有很多的,你可以在论坛上搜个其他方法试试 我知道了,在路径中加入busy,遍历的时候在busy的时候#wa或者#alarm等个几秒改成步行模式就可以了。 alias运行的过程当中,你未必能随时准确的修改变量n
有时候甚至会报非法内存访问
#tri {^??你小心翼翼往前挪动,遇到艰险难行处,只好放慢脚步。} {#add n -1}
我觉得问题的原因是,这条触发句在触动n-1之前,已经先令#wa结束,执行了下一步的递归bianli,所以即使后面补救性的n-1,第n步已经跨出了。
我没做实验,只是假想一个方法:你把这条触发修改一下“选项”里的设置,从“下一行”改为“提示行”,试试看,或许可以赶在#wa结束之前,提前执行n-1,从而达到目的。 求楼上的robot
lboxia@163.com
谢谢{:7_283:} 熊爷的机器好高级。。 我用的是721版本,这个设置在哪的,没有属性。
我还是决定在路径加busy来做了,递归里面判断busy就改成慢走过去,这样应该就保险了。 改用721自带path之后,发现list真心不好用。果断放弃。
页:
[1]