protectqiqi 发表于 2024-4-3 22:55:03

ambi 发表于 2024-4-2 07:02 AM
只有我一个人关心那个错误是什么吗

和你有莫大的关系,所以绝对不能让你知道!绝对不!

protectqiqi 发表于 2024-4-3 22:55:40

jarlyyn 发表于 2024-4-2 04:31 PM
let chinesere = /[%u4e00-%u9fa5]/g

正则匹配中文,不全,但够用。

按这个大佬说的做,没错的。。。

protectqiqi 发表于 2024-4-4 13:00:54

本帖最后由 protectqiqi 于 2024-4-4 01:04 PM 编辑

刚才有人QQ上问我为什么他的hpbrief匹配不行。。。然后我看了下他的设置(图1),他把要匹配的三个不同格式的内容放在同一个Trigger里面了。看来还要再拿这个例子讲一下匹配的细节。

正确的思路应该是这样的:
1. hpbrief的行首是一个#,这样很好,匹配的时候把#放在最前,可以防止被别的内容误触发。

2. 它的第一行和第二行只有两个细微的差别,第一行的第一个数字一般会带有小数点,并且后面会有字母K或者M。这两个小差别很重要,是在匹配时区分第一行和第二行的关键。

3. 那么第一行就用下面这个表达式来匹配。其中+就表示第一个数字除了0-9之外,还会有小数点。表示第一个数字后面会有字母M或者K。fig1到fig都是我起的变量名字。(哎呀。。。这里的字符又被自动过滤掉了,你看的是表达式是错的,正确的请看附件里的第三张图吧。)
#(?<fig1>+),(?<fig2>\d+),(?<fig3>\d+),(?<fig4>\d+),(?<fig5>\d+),(?<fig6>\d+)

4. 第二行的匹配需要新建一个Trigger,不能和第一行混在一起。第二行的表达式更简单,就是行首的#,加上六个数字,中间有逗号间隔。(哎呀。。。这里的字符又被自动过滤掉了,你看的是表达式是错的,正确的请看附件里的第三张图吧。)
#(?<fig1>\d+),(?<fig2>\d+),(?<fig3>\d+),(?<fig4>\d+),(?<fig5>\d+),(?<fig6>\d+)
5. 这样两个Trigger就能把hpbrief里面的12个数字都提取出来了。





顺带就能讲一下怎么用提取出来的变量了。如果变量不需要做数学计算,那么直接用
matches.变量名
就可以把它用在Trigger窗口下方的Lua code里。

比如我在这里用的Lua code是:
send("\nsay exp = " ..matches.fig1)
send("\nsay pot = " ..matches.fig2)
send("\nsay 内力 = " ..matches.fig3)


send的作用是向游戏发送指令。\n是换行,双引号“”里面的内容是会直接发送的,所以 matches.变量名 不能放在“”里面,这里的matches.fig1matches.fig2matches.fig3就会把在Trigger里匹配到的内容代入到里面。两个小点..表示把前后两个字符连接起来。最后的效果可以看图2。

还有一点要注意的是,用这种方法提取出来的变量只能在单个Trigger里面使用,而不能跨Trigger。所以上面的两个Trigger里我都用的fig1 - fig6,它们并不会互相干扰。如果要跨Trigger使用变量,就需要到Variable模块里面去创建变量,等以后再慢慢讲。



dtp 发表于 2024-4-4 13:03:37

第一行就是第一行,第二行就是第二行,和格式无关,和行号有关。

zhangchenyun 发表于 2024-4-4 13:06:32

好牛都要开课了

protectqiqi 发表于 2024-4-4 13:09:49

zhangchenyun 发表于 2024-4-4 01:06 PM
好牛都要开课了

大佬~~我不想肝经验了,我想学mudlet。

ambi 发表于 2024-4-4 13:41:23

protectqiqi 发表于 2024-4-3 10:55 PM
和你有莫大的关系,所以绝对不能让你知道!绝对不!

yct35啊?不会是想抢我第一美的光环吧

zhangchenyun 发表于 2024-4-4 22:32:56

protectqiqi 发表于 2024-4-4 01:09 PM
大佬~~我不想肝经验了,我想学mudlet。

不错啊,这个比肝经验有成就感的

marsflyer 发表于 2024-4-7 13:12:17

继续继续!

hellfire 发表于 2024-4-11 15:50:09

小白请教一下
││[主]│破阵(275) 61.7%             │仍需二十六秒才能接到下个任务。      我如果想取出“二十六”的话,应该怎么匹配?谢谢了
页: 1 2 [3] 4
查看完整版本: 七七的Mudlet入门 (摆烂式不定期更新)