那么下面我们就说说怎么自动找怪:这里以yuan的怪为例
1.我们先建一个job的类如图
这个类点击新建那个按钮,选择类就新建了一个类,把这个类命令为job.
2.类建好了后.我们就建一个trigger,当yuan对你说话时触发.因为yuan的话是两句,我不知道能不能用两行匹配触发,我做了一个折中的方案.就是yuan说第一句话时,打开我们找怪的类,避免人多问的时候误触发我们的机器.
^袁天罡将手中桃木剑向四方一划,对你说道:
这句就是我们要触发的句子,^符号表示前面匹配,就是屏幕开头就是这一句话,否则不触发
如:[闲聊]xxx说道:袁天罡将手中桃木剑向四方一划,对你说道:
这句如果有^那么就不会触发我们的trigger,如果没有,我们触发器就会触发,因为他会忽略掉前的[闲聊]xxx说道:
下面的value就是我们要执行的命令
#t+ getguai 的意思是打开类getguai(打开类那么这个类里面的trigger可以执行,否则不执行)
那么下面我们就来看getguai这个类
我们在这里建一个trigger,就是当yuan对你说灭妖时候的话
近有(%x)~((*)~)在(*)出没,为害不小,请速去收服!
%x是一个通配符,非空字符他基本上都能通配.用括号括起来就表示里面是表示一个字符串变量
~((*)~)来是什么呢.因为我们的(符号会被解释为特殊字符( (后面是变量 ),但是这一句怎么解释呢:
近有狐狸精(huli jing)在高老庄出没
我们的第一个(%x)表示狐狸精,那么huli jing 怎么解释出来呢?如果我们继续用(*) (注释:*可以通配任意字符,也就是*可以代表一切字符).那么*代表的就是(huli jing),他连括号都表示出来了,而我们想要的是huli jing.那么huli jing 前面的括号怎么表示呢,那么就用转意符~了,~(表示这个(就是括号而不是表示(他后面是跟一个变量.
在这里我们定义三个变量:yao=%1 这里%1就是这第一个括号里面的内容.
yaoguai=%lower(%2) 这里%2是第二个括号里面的内容.%lower是只把%2里面的字符转化为小写
place=%3 就是第三个括号里面的内容了,也就是地点了
#sh 你说道: go @place 就是在屏幕上打出这句话,用来做下一步触发
下面是第三步:根据yuan的信息找怪.我们建一个map类来专门处理各个地方找怪
他的触发源就是刚才上一个找怪我们自己在屏幕上打出的字:#sh ……………………..
假如那个怪在长安,我们建一个trigger
你说道:go 长安城$
Value是一个别名:changanguai.现在我们看看这个changanguai是个什么样的别名