由于铃心自定义的特殊性,因此在铃心C系列教程中并不会大量涉及铃心自定义的基础功能。
铃心C系列教程会直指自定义回复的变量部分,强调一种编程思维和方法的养成。

编辑于2020.2.6 转载请注明作者

铃心自定义中,“变量”代表了么?

以下所提到的“铃心回复”均以“代码”作为替代,但严格意义上来说,铃心回复系统并不能算的上一种语言。

在铃心中,复杂的回复系统都是通过变量的堆叠和嵌套实现的。从某种意义上来说,铃心的变量其实就是其他语言中各种各样的函数。

如各种语言里必定会出现的For循环,在铃心里则是以【循环[循环次数]>=<[循环体]】这个有参变量进行表达。因此可以说,铃心的变量其实就是各种编程语言中的函数。

铃心自定义中的嵌套意味着什么?

在铃心中,所有的嵌套其实都是声明了一种从属关系。与其他语言的花括号和缩进一样,代表了一种“层次”。

一般来说,由于自定义函数和变量的存在,在一般语言内基本见不到大于六层的嵌套层数——但是在铃心中,由于赋值变量的使用比较复杂,且代码长度往往较短,因此经常会出现超过五层的嵌套情况。

在我个人写的“铃心化牌堆中”,就出现过大片大片极为极端的十几层嵌套。

现在想起来,感觉真沙雕。

虽然铃心作者在新版本提供了自定义函数的方案,但仍旧是治标不治本。

如何入门铃心变量?

首先,你肯定需要一样东西,叫做“变量说明”

在变量说明里,你可以清晰的看到所有的变量名称和使用方法——我认为这些变量的使用已经很简单了,除了部分涉及到基本的编程知识之外,其他部分基本上没有任何的理解难度。

而我们需要做的,只是挨个在编辑器里面尝试会有什么效果就可以了。

什么?你说这部分讲的太简单了?完全没有用?好,那我们就开始按照上文的方法分析几个变量。

实例:变量“【艾特】”

关于【艾特】变量,背后还有一个有趣的小故事,不过在这里就不多谈了。

  • 【艾特】放在关键词中,表示 艾特机器人。
  • 【艾特】放在回复中,表示 艾特发送者。
  • PS.如果要艾特指定人,[CQ:at,qq=xxx],xxx改为要@的人的QQ就可以了。

好,让我们来逐句话进行分析吧。

首先我们要搞清楚,到底什么叫做关键词

关键词是用来触发回复的一个标准。一旦关键词被匹配,就会运行铃心的回复。
由此可以看出,铃心的体系是一个很标准的“关键词-回复”体系,也可以说是一个非常简单的“输入-输出”体系。

那么回到正题,这个例子中,关键词指的到底是什么呢?

阿姨觉得你一定能看到关键词那三个字

所以说,这句话的具体效果就是:

很好理解是吧,这个的确很简单。那么下一句话呢?

这个就更好理解了不是吗?由于太简单了,于是我们就把这个当做课后作业留给大家自己尝试就好。
这里提一下,什么叫做发送者——即是指谁触发,谁就是发送者。

那么就是最后一句话了,这里涉及到一个概念,叫做CQ码。

首先,我们要灵活使用百度,那么百度一下,我们可以知道,CQ码是指在酷Q的消息中,以[CQ:开头、]结尾的,可以实现特殊功能的代码。

CQ码在酷Q文库中的参考

在酷Q文库中,我们可以轻松地发现一个叫做@某人的CQ码,它的结构就是所谓的[CQ:at,qq=xxx]。跟铃心中的一模一样——这也就代表,铃心的消息是支持所有CQ码的,只是铃心作者害怕你不知道,就贴心的给这些CQ码全部给打包成变量了。

类似的用CQ码打包而成的变量还有【图片】【语音】等,在此就不赘述了。

严格来说,【图片】和【语音】都不是严格的CQ码打包而成的,因为它们还支持URL等方式调用,方便的要死(躺)。

实例:含参变量【判空[被判断文本]>=<[为空替换文本]】

  • 【判空[被判断文本]>=<[为空替换文本]】
  • 如果[被判断文本]为空,则此变量表示的值为[为空替换文本],否则为[被判断文本]
  • 如果[为空替换文本]填写为!null且[被判断文本]为空时,直接结束此条回复(强制结束回复)
  • 如果[为空替换文本]填写为!back[返回的回复]且[被判断文本]为空时,将回复重置为[返回的回复]

我们还是逐句来理解分析并且实现。

这个很好理解——但是接下来的就不好理解了。

如果[为空替换文本]填写为!null且[被判断文本]为空时,直接结束此条回复(强制结束回复)

好,首先我们要搞清楚这个回复触发的条件,是 [被判断文本] 为空,且[为空替换文本]只填写!null。

!null代表直接掐断该回复的进程,直接结束掉这条回复。
要注意,在!null后面填写任何东西,都会使其失效!

如果[为空替换文本]填写为!back[返回的回复]且[被判断文本]为空时,将回复重置为[返回的回复]

还是老规矩,来看一个例子。

!back的作用可以理解为,如果满足条件,不管曾经有什么或者将来有什么,我都不去执行,回复就为定死的[返回的回复]。

下课了

嗯,看起来已经到时间了——今天我们主要介绍了铃心自定义中关于变量的最基础的——也是最为核心的知识。

在之后的C系列教程中,不会再详细的讲解某个变量的具体用法,除非遇到一些容易混淆的。

最后还是一句话送给大家:

多思考——总会有办法的

某个伟人