试试 #exec %item(@area,@step)
发现问题了。目前发现这个问题好象和 bianli 里面的内容有关系。
#if (@step<=@steps) { #wa 500
#if (@findnpc=0) { %item( @area, @step) #add step 1 bianli }
{xixi}}}
自己看了看,找到NPC 之后,虽然停止了以后步数的行走,但是, step的数值,却给加了一次。这样再用
%ismember( %item( @area, @step),获得就是下一步路径,在方向string里面的数值了。 暂时改动 trigger
#tri {^??你嘻嘻地笑了起来。} {#add step -1;goback}
成功返回起点。我去把bianli 里面的逻辑判断修改下, 看看会有什么变化。 试验之后发现,
#alias bianli {
#if (@step<=@steps)
{#wa 500
#if (@findnpc=1) {xixi}
{%item( @area, @step)
#add step 1
bianli }
}}
这样改过逻辑判断的顺序之后, 在执行了xixi 之后, step 又被执行了个 #add step 1.
trigger 保留成#tri {^??你嘻嘻地笑了起来。} {#add step -1;goback} 才能顺利原路返回。 这是怎么回事情? 是不是721的脾气呢? 我去找个 555 版来检查下。 这个逻辑执行的结果就是step+1
执行过程是:没有找到npc,则执行@step指定的步数,同时step+1,如果找到npc,执行xixi
当找到npc时,step已经被+1了,指定的值其实是找到npc后下一步的值 原帖由 alucar 于 2011-4-29 05:48 PM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
这个逻辑执行的结果就是step+1
执行过程是:没有找到npc,则执行@step指定的步数,同时step+1,如果找到npc,执行xixi
当找到npc时,step已经被+1了,指定的值其实是找到npc后下一步的值
怎样防止它逻辑上+1 呢?我的头有点晕,想不出来。
对于自身嵌套我实在不熟悉,是不是使用这个结构,必然会有step+1 呢?晚上我下个555版本测试一下。
[ 本帖最后由 hotel 于 2011-4-29 06:17 PM 编辑 ] 没必要防止阿,在xixi那里加个#add step -1就好了 原帖由 alucar 于 2011-4-29 06:56 PM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
没必要防止阿,在xixi那里加个#add step -1就好了
先休息一会,然后开始后面的试验。有点找到写小程序的感觉了。 或者step从0开始记,把%item( @area, @step)和#add step 1换个顺序
页:
1
[2]