Locale的示范贴中,还提及了Define Status Bar这个东西。可以在不妨碍其它程式运转的情况下,在状态栏显示你想要注意的东西。例如说:你的妖怪叫什么名字,蹲在哪里。你知道的啦,有时候街上对你流口水自动攻击的怪(简称口水怪)不一定是你的,搞半天或许跟你半毛钱关系也没有,难道你要往上翻页翻半天检查一下到底是不是自己的吗?
Define Status Bar可以帮助你。在状态栏点击右键勾选Define Status Bar或者从上面的Actions下点选Define Status Bar会跳出一个Status Bars的框框。新添加一个,在status line行输入一句你喜欢的提示短句,这样你就不会找错怪了。
例如:本轮灭妖:@guainame (@guaiid) 在@place
然后你会看到左下方,输入指令条的上面显示了怪的名字拼音和地点(图九)。
噢,忘了说,我在变量那里新添加了一个”place”用来代表怪的地点。刚才我使用麻姑来测试,所以现在显示了麻姑。
看到这里,你可能已经不满足于手动输入怪名和地点这么驴的方法。能不能用trigger触发器自动抓呢?当然可以。在Mdcfil的贴子里就给了示范。
原句是这样子的:
#trigger {^{~>李|李}靖对你说道:近有(%x)~((%*)~)在(%x)为非作歹*} {killname=%1;killid=%2;killwhere=%3;#ts 200;#show 灭妖地点:@killwhere} {} {519}
但是,我在变量(variables)中用来代表怪名字和地点的词语跟他不一样。他用“killname”来代表怪的中文名字,而我用的是“guainame”。所以,在抄他的触发句子之前,我把killname换成guainame,killid换成guaiid,killwhere换成place。
好了,现在改成
#trigger {^{~>李|李}靖对你说道:近有(%x)~((%*)~)在(%x)为非作歹*} {guainame=%1; guaiid=%2;place=%3} mieyao
后面那截我就不抄了,是他用来配合其他触发的。为了不容易被误触发,我设了个class(类别),不必要时处于关闭状态。(图十)
现在测试一下。先跟李靖要个怪。
李靖对你说道:近有灰狐狸精(Huihuli jing)在盘丝岭为非作歹,速去降服!
下方的状态栏仍然显示麻姑的名字,看来有点不太对了。进入triggers把这个找出来看看,在testing那边将李靖那句话贴在第二行,按test trigger测试。结果显示句子不匹配(Pattern does not match),自然也就无法正常触发。要找出原因,直到它显示匹对为止。(图十一)
经过一轮测试,在紧贴在大括号后面的~符号删除,终于匹对上了(图十二)。我并不是说Mdcfil错了,也许是版本的问题或其他原因,别人做的机器自己拿来用时出现问题是很正常的事,修改修改就行了。
抓袁天罡的话做触发也是大同小异。
你向袁天罡打听有关『kill』的消息。
袁天罡将手中桃木剑向四方一划,对你说道:近有猩猩精(Xingxing jing)在开封城出没,为害不小,请速去收服!
这里我们看到,袁的话是分开两行的。我有个比较笨的方法,分开两句触发。
第一个触发:
^你向袁天罡打听有关『kill』的消息。
我对这个触发唯一的指令是,触发后关闭自己并启动第二个触发。
Pattern: ^你向袁天罡打听有关『kill』的消息。
Commands: #t- askguai; #t+ mieyao
Class: askguai
第二个触发:
Pattern: 近有(%x)~((%*)~)在(%x)出没,为害不小,请速去收服!
Commands: #t- mieyao; %1=guainame; %2=guaiid; %3=place
Class: mieyao
同样是触发后通过t- 类别名字(class)关闭自己,避免之后被别人影响而错误触发。
为了方便,我还添加了个热键(aliases):
Name: askyuan
Commands: #t+ askguai; ask yuan about kill
以后我对着袁天罡输入askyuan的时候,就会执行开启第一个触发和问袁要任务这两个命令。两个触发的开启和关闭之间顶多也只是一秒左右的事情。
[更正:呃...我收回做热键的话.第一次测试的时候完全没问题,第二天测试就出毛病了,也许不太适合这么做.你还是自己做个触发关闭class和要任务吧.]
要做完善的机器人,后续的事情还有很多。比如说,你可以在找到怪的同时#stop并follow它。Follow它之后触发开始打它,用什么招数各人都不一样。受伤了,触发自己吸气。打不过了,触发自己逃跑。诸如此类,很多很多......
我机器学得不好,只能说些皮毛,希望能对大家有启发。