icebug 发表于 2014-9-25 21:02:11

求助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

icebug 发表于 2014-9-25 21:11:21

求大神解答~~~~~~~~~~~~~~~~

icebug 发表于 2014-9-26 14:37:56

自己修改了一下
已经基本解决问题
但是回答时候有时候正在杀杀手有时候正在打坐,这个有没有好一点的办法解决?
doafterspecial()?
页: [1]
查看完整版本: 求助MUSH正则表达式