北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 5968|回复: 4

【求助】zmud或cmud中这样的触发语句应该怎么写匹配pattern?

[复制链接]
发表于 2014-11-12 16:20:44 | 显示全部楼层 |阅读模式
想学下cmud中map的用法,选了一个比较有难度的mudlib,结果被抓取出口信息的触发卡住了,想要放弃又心有不甘,所以来论坛看看有没有高手能帮我解决难题。

我不会mush,所以解决思路请局限在zmud和cmud范围内(可以用正则表达式)。
主要的问题就出在触发语句的“包含”上。

具体情况如下:
1、这里唯一的出口是east(东大街)。
2、这里明显的出口是east(东大街)、south(南大街)
3、这里明显的出口是east(东大街)、south(南大街)
                           west(西大街)
4、这里明显的出口是east(东大街)、south(南大街)
                            west(西大街)、north(北大街)
5、这里明显的出口是east(东大街)、south(南大街)
                           west(西大街)、north(北大街)
                           up(游戏大厅)
6、这里明显的出口是east(东大街)、south(南大街)
                           west(西大街)、north(北大街)
                           up(游戏大厅)、down(垃圾场)

该mudlib的出口信息设置是每两个出口换一行。针对上述6种情况我分别写了6个触发pattern语句分别抓取出口方向(应该不会有超过6个出口吧……):
1、这里唯一的出口是(%w)~(%x~)。
2、这里明显的出口是(%w)~(%x~)、(%w)~(%x~)$
3、这里明显的出口是%w)~(%x~)、(%w)~(%x~)$(%w)~(%x~)
……
6、这里明显的出口是(%w)~(%x~)、(%w)~(%x~)$(%w)~(%x~)、(%w)~(%x~)$(%w)~(%x~)、(%w)~(%x~)$

但是,3、4、5、6的语句只会触发2的结果,因为2的触发pattern是后面3、4、5、6触发语句的一个子集,所以先触发2的结果,后面的3、4、5、6就不触发了;同理,屏蔽了2之后,出现5、6的语句之后只会触发4的结果。

请问怎么写语句才能控制得到的是我想要的触发结果?
也可以这么说:怎样才能让出口信息有3行的时候不触发2、3、4的结果并且出口信息有两行的时候不触发2的结果?每个地方的出口信息有几行是不确定的……

我用的cmudpro334,触发里有个priority参数看起来是控制优先级,但无论我是把这个参数正序设置还是倒序设置都无法正确得到结果。

恳请各路高人伸出援手

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-11-13 17:16:14 | 显示全部楼层
cmudpro 334有破解版么...
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-11-13 21:17:11 | 显示全部楼层
1、这里唯一的出口是east(东大街)。
2、这里明显的出口是east(东大街)、south(南大街)
3、这里明显的出口是east(东大街)、south(南大街)
                           west(西大街)
4、这里明显的出口是east(东大街)、south(南大街)
                            west(西大街)、north(北大街)
5、这里明显的出口是east(东大街)、south(南大街)
                           west(西大街)、north(北大街)
                           up(游戏大厅)
6、这里明显的出口是east(东大街)、south(南大街)
                           west(西大街)、north(北大街)
                           up(游戏大厅)、down(垃圾场)


我不懂cmud,zmud不过,说说我的看法...
不过,这两样,里面有没有类似数组的变量.如果有,你直接抓成数组不可以吗?统一抓出来再判断.

这里明显的出口是east(东大街)、south(南大街)
                      west(西大街)、north(北大街)


把这两行当成一行来看..不考虑多行触发..但凡有([a-z])\(.+\)的,统统抓下来...
不知道,这样成不成.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-11-18 20:04:47 | 显示全部楼层
回复 3# lzkd


    谢谢。感觉思路有点方向。貌似正则匹配不是很好写。我自己摸索试试。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-11-18 20:05:48 | 显示全部楼层
回复 2# oolong

我没发现cmudpro334有破解版。但可以用trial-reset重置试用期,永久试用。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-24 06:50 AM , Processed in 0.011377 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表