camelli 发表于 2009-7-6 18:12:01

如何根据()括号进行触发?

┌    一项基本知识    ──────────────────────┐
│读书写字 (literate)                      - 非同凡响 204/ 18939│
└────────────────────────────────┘
┌    一项基本功夫    ──────────────────────┐
│基本内功 (force)                         - 毫不足虑19/   0│
└────────────────────────────────┘
┌    一项特殊功夫    ──────────────────────┐
│□枯荣神功 (kurong-shengong)               - 第一重楼25/   551││

我的要求很简单:根据sk的输出,将所学的每项技能的中英文名称、等级截取下来放到rec中。
可是实验的结果是要么根据技能中文名称,要么是英文名称设置触发,如果根据() - /等符号触发器就无效
^(*)%s-%s(*)%s(%d)/%s(%d)
show %1 可以捕获技能名称和等级,但是名称中的英文和中文没法分别用变量捕获,请高手指点,谢谢。

whuan 发表于 2009-7-6 18:19:57

首先我声明一下,好久不用zmud了,提供一个思路你试试看吧

│基本内功 (force)                         - 毫不足虑19/   0│

^??│%s(*)%s~(*~)%s*
把触发语句的空格换成%s
把要获取的文字换成*,用()括起来
^后面记得加一个??,因为有可能出现>
()这种在前面加一个~,例如~( ~)
try

sghjjj 发表于 2009-7-6 20:47:37

2个问题
1 你想捕获括号里面的东西要用~字符放在括号前面
~((*)~)这个*获得的就是英文名字
2最后以(%d)结尾是不对的,
   读书写字 (literate)                      - 非同凡响 204/ 18939│
   这个%d可能只会捕获18939的第一个数字1,后面最好还要加上│才能完整的获得18939

camelli 发表于 2009-7-7 19:38:40

受教了,谢谢两位,whuan果然猛

whuan 发表于 2009-7-7 21:36:41

这句马屁拍得我很爽,哈哈哈

想当年做玩家的时候我天天寻思这个

camelli 发表于 2009-7-8 14:48:40

既然这么爽就多问个zmud 中database record变量问题吧。我能够通过#addkey,#delkey等操作record里的多条数据。
但是使用的时候在不知道key的情况下如何遍历该record内的所有数据?或者按照序号之类的访问指定的数据?loopdb一次性循环玩所有数据,做练功、学习机器人的时候不太方便。谢谢。

whuan 发表于 2009-7-8 23:45:19

这个不知道,问maper
页: [1]
查看完整版本: 如何根据()括号进行触发?