北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: protectqiqi

七七的Mudlet入门 (摆烂式不定期更新)

[复制链接]
 楼主| 发表于 2024-4-3 22:55:03 | 显示全部楼层
ambi 发表于 2024-4-2 07:02 AM
只有我一个人关心那个错误是什么吗

和你有莫大的关系,所以绝对不能让你知道!绝对不!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2024-4-3 22:55:40 | 显示全部楼层
jarlyyn 发表于 2024-4-2 04:31 PM
let chinesere = /[%u4e00-%u9fa5]/g

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

按这个大佬说的做,没错的。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 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.]+就表示第一个数字除了0-9之外,还会有小数点。[MK]表示第一个数字后面会有字母M或者K。fig1到fig都是我起的变量名字。(哎呀。。。这里的字符又被自动过滤掉了,你看的是表达式是错的,正确的请看附件里的第三张图吧。
  1. #(?[0-9.]+)[MK],(?\d+),(?\d+),(?\d+),(?\d+),(?\d+)
复制代码


4. 第二行的匹配需要新建一个Trigger,不能和第一行混在一起。第二行的表达式更简单,就是行首的#,加上六个数字,中间有逗号间隔。哎呀。。。这里的字符又被自动过滤掉了,你看的是表达式是错的,正确的请看附件里的第三张图吧。
  1. #(?\d+),(?\d+),(?\d+),(?\d+),(?\d+),(?\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.fig1  matches.fig2  matches.fig3就会把在Trigger里匹配到的内容代入到里面。两个小点..表示把前后两个字符连接起来。最后的效果可以看图2。

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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2024-4-4 13:03:37 | 显示全部楼层
第一行就是第一行,第二行就是第二行,和格式无关,和行号有关。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2024-4-4 13:06:32 | 显示全部楼层
好牛都要开课了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2024-4-4 13:09:49 | 显示全部楼层

大佬~~我不想肝经验了,我想学mudlet。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
回复 支持 1 反对 0

使用道具 举报

发表于 2024-4-4 13:41:23 | 显示全部楼层
protectqiqi 发表于 2024-4-3 10:55 PM
和你有莫大的关系,所以绝对不能让你知道!绝对不!

啊?不会是想抢我第一美的光环吧
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2024-4-4 22:32:56 | 显示全部楼层
protectqiqi 发表于 2024-4-4 01:09 PM
大佬~~我不想肝经验了,我想学mudlet。

不错啊,这个比肝经验有成就感的
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2024-4-7 13:12:17 | 显示全部楼层
继续继续!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2024-4-11 15:50:09 | 显示全部楼层
小白请教一下
│[14]│[主]  │破阵(275) 61.7%             │仍需二十六秒才能接到下个任务。      我如果想取出“二十六”  的话,应该怎么匹配?谢谢了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 05:49 AM , Processed in 0.011658 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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