Clousx6入门教程(③)

您所在的位置:网站首页 clousx6教学指令点歌 Clousx6入门教程(③)

Clousx6入门教程(③)

2023-07-10 05:25| 来源: 网络整理| 查看: 265

1.8 导入自己的词库

菜单最后一项就是导入本地词库啦。

这里想说明的是,你存在手机中用于导入的词库(简称本地词库),和已经导入Clousx6的词库(简称x6词库),它们是两个文件。

用MT编辑器编辑本地词库,需要再次导入词库,才能运行新代码;

长按已经导入的词库,第四项一般为“编辑”,进入后可以修改x6词库,进行简单调试。

总之,你清楚这两个是不同的文件就可以啦!

part2 词库编写中文篇

词库可以用中文、lua、动态dex(Java)等编写,这里先介绍中文词库指令。

2.1 词库触发

2.1.1 词库如何匹配

用户发送一条消息后,机器人会根据词库,从上往下依次匹配,并选定第一个与之匹配的词条,最后执行该词条的内容。

2.1.2 参数

用户发送的消息以空格作为分隔,视为从0开始的不同参数。全部消息为参数-1。

————下面是词库————

你好啊

参数-1是%参数-1%\r

参数0是%参数0%

你 好 啊

参数-1是%参数-1%\r

参数0是%参数0%\r

参数1是%参数1%\r

参数2是%参数2%

————上面是词库————

备注:英文百分号表示取值。有关取值更详细的用法,将在2.2.2中叙述。

特别注意,参数只是对于用户消息而言。它跟词库匹配是不能挂钩的。

当你需要在程序中使用它,才需要这个(一般与通配符“.*”、通配符“|”结合使用)。

2.1.3 替换

有的时候,需要截取指令中的信息。

————下面是词库————

洗练.*

a:$替换 %参数-1%|洗练|$

$调用 0 洗练 %a%$

洗练 .*

对“%参数1%”这个属性进行洗练操作

————上面是词库————

“$”用于已经编写好的指定操作,你只需要记住

替换指令用法:$替换 将要执行替换操作的内容|被替换部分|替换后部分$

比如$替换 abcade|a|x$,可以得到

有关“调用”指令,将在2.3.1讲到。

2.1.3 从上往下匹配

词库是从上往下依次匹配的,所以只会触发最先匹配到的词条。下面是一个样例词库。

————下面是词库————

a

b

c

d

a

c

————上面是词库————

你现在已经知道,如果单独看这三个词条,那么它们分别表示:

用户发送消息“a”,机器人回复“b”

用户发送消息“c”,机器人回复“d”

用户发送消息“a”,机器人回复“c”

那么发送a,机器人会回复b还是c呢?答案是b,因为词库是从上往下依次匹配的。

2.1.4 分隔符“|”

如果想让不同的消息触发相同的词条,那么需要使用分隔符“|”。

下方是一个例子。

————下面是例子————

你好|你好啊 123

你好啊

————上面是例子————

该词条的意思是,用户说话是“你好”,或者“你好啊 123”时,将会触发该词条,机器人回复“你好啊”。

同样,根据参数全匹配原则,如果用户说“你好啊”,或者“你好 123”,都不会触发该词条。

对于多个消息,每个消息之间用分隔符即可。

下方是一个例子。

————下面是例子————

你好|你好啊 123|a b c|我是萌泪 你好

你好啊

————上面是例子————

利用分隔符进行分隔,可以得到如下结论:

当用户说“你好”、“你好啊 123”、“a b c”、“我是萌泪 你好”时,机器人都会回复“你好啊”。

2.1.5 通配符“.*”

即使使用了分隔符,词条触发内容也是有限的,不是无限的。如果想使任意内容都可以触发,则需要通配符“.*”。

下方是一个例子。

————下面是例子————

你好.*

你好啊

————上面是例子————

对于该词条,任何以“你好”开头,且不带空格的消息,都可以触发该词条,原因略。

当然,你也可以将分隔符与通配符结合。

下方是一个例子。

————下面是例子————

你好.*|.*a|.*b.*

你好啊

————上面是例子————

像是“你好123”、“qwea”、“abc”,都可以触发该词条。而且,由于通配符可以匹配“空”,所以“你好”、“a”、“b”其实也是可以触发该词条的。

2.1.6 艾特QQ“@.*”“@%昵称%”

如果消息中艾特了人,程序处理又需要被圈人的QQ,代码需要使用“@.*”,并使用AT0读取。

下方是一个例子。

————下面是例子————

你好@.*

你好啊,%昵称%,你刚才艾特了一个人\r

我现在也艾特一下你@%昵称%\r

但是我不会艾特你艾特的人呢!\r

我知道你的QQ是%QQ%\r

被你艾特的人的QQ是%AT0%\r

我是不是很聪明?

————上面是例子————

请自己运行该词条,并查看效果。

2.1.7 参数截取

在2.1.2,我讲了参数的概念,这里要讲参数的截取。

参数实际上可以

2.1.7 练习

用户发送消息格式为“包含a 以b开头 c”、“a 以b结尾 c 包含d”、“只含有一个空格的任意消息”时,都将第一部分和第二部分输出;

样例答案:

.*a.* b.* c|a .*b c .*d.*|.* .*

第一部分是%参数0%\r

第二部分是%参数1%

2.2 条件分支

如果要做判断,条件分支必不可少呀~

2.2.1 条件分支基础写法

条件分支结构非常简单,下面是一个样例。

————下面是例子————

你好

如果:%QQ%==%主人%

你是我的主人!\r

如果尾

如果:%QQ%!=%主人%

你不是我的主人!\r

如果尾

我说的对不对呀?

你好啊

如果:%QQ%==%主人%

你是我的主人!\r

我说的对不对呀?

返回

如果尾

你不是我的主人!\r

我说的对不对呀?

————上面是例子————

备注:相等为“==”,不等为“!=”。

%主人%指的是你在

上面例子执行的效果是完全一致的。

“如果:”后面的条件为真,则继续执行;为假,则跳转至“如果尾”的后面,继续执行。

在条件分支里面使用“返回”,将不会执行后续内容,词条直接终止。

注意,条件不能嵌套。这一点在2.2.3会讲到。

2.2.2 变量、随机数

变量即可变的量,用来临时存储一些东西,仅在该词条内定义后起作用。

变量的定义符号为英文冒号,冒号左边是变量名字,右边是变量的值。

变量名只能用一个汉字,一个字母,或者一个数字表示,不能用多个!!!

变量的值可以是字符串或者数字任意内容,后面的赋值会顶掉之前的赋值。

随机数指令“%随机数a-b%”,其中a、b均为整数,可以生成a到b-1的随机整数(下方样例中,生成的是1、2、3、4中的任意一个数)。

下方是一个例子。

————下面是例子————

测试1

a:我是萌泪

1:80

数:%随机数1-5%

a的值是%a%\r

1的值是%1%\r

随机数的值是%数%\r

数:20

新的值为%数%

————上面是例子————

使用“%变量的名字%”,即可取得变量的值。注意,取变量值可以嵌套,但必须挨着!

嵌套指的是如下结构:

————下面是例子————

a:b

b:c

c:d

单层取值:%a%\r

双层取值:%%a%%\r

三层取值:%%%a%%%

————上面是例子————

什么叫必须挨着?换一种具体的说法,即随机数生成指令中,两个数字必须用具体的值,而不能用取值代替。

如下嵌套是不可行的:

a:20

b:%随机数50-100%

数:%随机数%a%-%b%%

像是随机数指令这样,

因为随机数指令的两侧已经是%了,所以不能再使用取值!其中%a%和%b%都是不允许的。

2.2.3 运算

运算指的是整数之间的运算。

“[]”为运算符,可以用于计算整数加减乘除。

————下面是例子————

测试2

数:%随机数10-100%

随机数的值是%数%\r

数:[%数%+10]

再加10等于%数%\r

数:[%数%-15]

再减15等于%数%\r

数:[%数%*3]

再乘3等于%数%\r

商:[%数%/7]

a:[%商%*7]

余:[%数%-%a%]

再除以7后,商为%商%,余数为%余%

————上面是例子————

加减乘不用多说,注意运算符两边都为整数即可。

除法运算符两边也必须是整数,但是运算结果也是整数,即商。而运算的小数部分,将会被舍去。

2.2.4 多重判断

进行复杂判断时,注意“返回”的使用,并且判断不能嵌套!

下方是一个例子。

————下面是例子————

.*

数:%随机数1-50%

如果:%参数0%>=%数%

%参数0%大于等于%数%,到底是大于还是等于呢?\r

如果尾

如果:%参数0%%数%

%参数0%大于%数%!

返回

如果尾

如果:%参数0%



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3