whuan 发表于 2008-1-18 10:34:08

可以这么实现
定义一个task_obj的变量,一个zxp的变量
trigger:
+ (*)在一个有着*的出口的地方。 -> task_obj=%1;say @task_obj;#if (@task_obj==@zxp) {nod} {shake};kick
var:
@zxp                岳不群的紫霞袍

这样就可以,不知道为什么

xql 发表于 2008-1-18 17:52:06

又出现了个新问题...
>(*)在一个有着*的出口的地方
有>号的时候连">"也抓进来了...有没有什么命令可以忽略">"

ltblue 发表于 2008-1-18 22:46:59

考虑这样,写两个触发,设置个变量
一个带>,一个不带。
如果带>的触发了,就变量设置成某某,然后不带>的看一下,如果变量变了,说明带>的触发了,就按带>的来,否则说明没触发,就按不带>的来。

xql 发表于 2008-1-19 01:45:24

资质愚钝,没看明白

ltblue 发表于 2008-1-19 06:17:29

在你每次由bot输入locate 某某的时候,都带一句,比如a=0
然后设置一个触发
>(*)在一个有着*的出口的地方。 -> a=1;task_obj=%1;say @task_obj;#if (@task_obj==@zxp) {nod} {shake};kick
比whuan的多个a=1,说明他触发了
再设置个触发
(*)在一个有着*的出口的地方。 -> #wa 100;#if (@a=0) {task_obj=%1;say @task_obj;#if (@task_obj==@zxp) {nod} {shake};kick} {a=0}
如果上一个触发了,说明有>,那后一个就不执行,把a归零,等下一次就好了,否则说明上一个没触发,那这个就触发他,加个延时死为了保证他判断的时候上一个已经判断完了。
我没做过几次task,不熟悉,只是就事论事哈,也许不成立,表笑我,嘿嘿

xql 发表于 2008-1-19 11:11:54

明白了,谢谢
bow

iever 发表于 2008-1-19 17:40:21

原帖由 xql 于 2008-1-16 01:40 AM 发表 http://advent.pkuxkx.net:1234/pkuxkx/forum/images/common/back.gif
在做自己用的task机器,遇到个难题:
比如@npc=玄悲大师,那么id here
玄悲大师             = xuanbei dashi, xuanbei, dashi

怎么样才能取到后面的id呢,其他npc可能是@npc   =id1,id2,id3,id4....
我应该怎么做 ...

正解:
#TRIGGER {(*)%s~=%s(*)} {name=%1;id=%2;#var id %word( @id, 1, %char( 44));#var name %word( @name, 1, %char( 32));#ec @name @id}

用id here命令触发。

iever 发表于 2008-1-19 17:47:07

原帖由 whuan 于 2008-1-16 11:08 AM 发表 http://advent.pkuxkx.net:1234/pkuxkx/forum/images/common/back.gif
比如你已经获取到target_id=xuanbei dashi, xuanbei, dashi
#var temp_id;#var temp_pos;temp_pos=%pos(",",target_id);#if (temp_pos == 0) {temp_id=target_id} {temp_id=%left(target_id,temp_pos)}

没有测试 ...

不用这么复杂的,一个%word(@target_id,1,%char(44))即可

iever 发表于 2008-1-19 17:51:18

task没有搜魂特技太烧钱了,而且在北京或其他bt地点烧了钱都去不了更昏。

xql 发表于 2008-1-19 19:40:29

%word()
%char()
#ec
都不知道作用...

视乎你作task想保持什么速度,如果我要打破一小时20万就必须烧钱了
页: 1 2 [3] 4
查看完整版本: 机器人求助