求助MUSH正则表达式
首先解释一下这个是关于一个MUD的答题的,我是一个MUSH菜鸟
ZMUD还有点马虎
之前在技术园地发表过求教,考虑用数据库解决问题
有大大给我讲解了基本思路,我也去求教了胖猫。奈何实在MUSH底子薄弱,编程也只懂一些C++
实在写不出像样的东西,所以一直搁置。
(别人的机器人我尝试修改了几次都出现了大的错误所以自己放弃了)
因此我就尝试用MUSH最基本的触发器解决问题。
但是抓触发总是有问题。
下面是举例:
--------------------------------------------------------------------------------
#TRIGGER {^??【闲聊】丫丫~(Ya ya~):好,当心室收缩时测得的血压是:*%s(%x)、高压} {halt;#wa 1000;huida %1} {huida} 519
#TRIGGER {^??【闲聊】丫丫~(Ya ya~):好,大雁塔在哪里?:*%s(%x)、西安} {halt;#wa 1000;huida %1} {huida} 519
上面是通过ZMUD正则解决问题
思路很明确,抓取问题,和正确答案前面的字母A\B\C\D
回答字母 A\B\C\D
在ZMUD中很好的解决了问题。
后来发现ZMUD运行时候一是占用太多资源,我在VPS上挂2个号开第三个号就出问题了,而MUSH最好可以开4个号以上没问题
因此我在触发器里面这么写。
</trigger>
<trigger
enabled="y"
group="huida"
match="^[> ]*【闲聊】丫丫\(Ya ya\):好,当心室收缩时测得的血压是:/s+(/w+)、高压.*$"
regexp="y"
send_to="12"
sequence="100"
>
<send>DoAfter("1","huida %1")</send>
</trigger>
<trigger
enabled="y"
group="huida"
match="^[> ]*【闲聊】丫丫\(Ya ya\):好,大雁塔在哪里?:/s+(/w+)、西安.*$"
regexp="y"
send_to="12"
sequence="100"
>
<send>DoAfter("1","huida %1")</send>
求教这样对么?好像有点问题,抓不住触发,求大神分析。
北大侠客行MUD,中国最好的MUD 求大神解答~~~~~~~~~~~~~~~~ 自己修改了一下
已经基本解决问题
但是回答时候有时候正在杀杀手有时候正在打坐,这个有没有好一点的办法解决?
doafterspecial()?
页:
[1]