|
发表于 2009-6-19 04:16:21
|
显示全部楼层
我没有用path的一系列命令
主要是用一个变量保存所有的方向,其中包括坐船杀人等等
举个例子shenlongdao,又有坐船又有杀人
#var shenlong out|u|s|s|sw|sw|s|enter dong|n|sw|nw|enter boat|s|w|w|w|w|w|w|w|w|sd|sd|wd|s|sd|s|s|sd|wd|s|sd|sd|sd|ed|sd|s|s|s|out|e|ed|e|e|e|ed|n|s|wu|w|w|w|wu|w|s|n|enter|killdizi|n|n|w|sw|s|w|n|s|se|ne|n|w|killdizi|ne|e|e|s|n|n|s|e|w|w|n|nu|wu|nu|nu|nu|n|eu|nu|n|n|nu|nw|s|s|s|s|n|n|n|n|w|e|e|w|se|n|eu|nu|nu|w|e|e|e|e|e|e|e|e|e|e|e|e|se|nw|n|enter boat|ask chuan fu about 出海|se|ne|s|out|n|ne|ne|n|7|d|say 天堂有路你不走啊|enter shudong
这个变量就是神龙的遍历包括返回,每个命令之间用|间隔,遍历的时候从后面的命令开始,一直执行到第一个命令
对于这种类型的变量相关的命令有%item(...) %numitems(...) %additem(..) %ismember(...) #additem #delitem #delnitem,比如%item(@shenlong,%numitems(@shenlong))的值是"enter shudong",这些变量在zmud帮助文档里有
遍历的时候用alias,alias的名称是bianli,命令是下面这一堆
#if (@step>[%numitems(@quyu)-@n]) {#if (%ismember(@step,@wait)) {#wa 30000
%item(@quyu,@step)
#add step -1
bianli} {#if (%ismember(@step,@kill)) {#wa 1500
%item(@quyu,@step)
#add step -1} {#if (%mod(@step,10)=9) {#wa 1500
%item(@quyu,@step)
#add step -1
bianli} {%item(@quyu,@step)
#add step -1
bianli}}}}
这个alias是自我嵌套类型的alias,命令里面包含了它本身
再加上这个
#alias bianlishenlong {#var quyu @shenlong;#var step %numitems(@quyu);#var n @step;#var wait 11|127;#var kill 58|71}
wait变量里保存的是第11,127步坐船需要等待,kill变量里保存的是58步71步杀看门人
如果把n改成走到盗宝人需要执行命令的次数,用bianli就可以走到盗宝人那里停下来,上面的n是总步数,意思就是走到盗宝人需要执行全部的命令,
自然就是遍历整个神龙岛了
配合trigger 神龙弟子死了继续kill dizi,没有弟子可杀了就继续bianli 这样就可以了
用这2个命令从ct遍历神龙岛 {bianlishenlong;bianli}
这个是每走10步停留1.5秒的快速遍历,稍微修改下就可以做成每走1步停留1秒的慢速遍历
感觉这种方法很灵活,完全脱离了那些定义方向,zmud对于#path的支持也不是很好,很多麻烦的东西。
[ 本帖最后由 sghjjj 于 2009-6-19 04:25 AM 编辑 ] |
|