由于铃心自定义的特殊性,因此在铃心C系列教程中并不会大量涉及铃心自定义的基础功能。
编辑于2020.2.6 转载请注明作者
铃心C系列教程会直指自定义回复的变量部分,强调一种编程思维和方法的养成。
铃心自定义中,“变量”代表了么?
以下所提到的“铃心回复”均以“代码”作为替代,但严格意义上来说,铃心回复系统并不能算的上一种语言。
在铃心中,复杂的回复系统都是通过变量的堆叠和嵌套实现的。从某种意义上来说,铃心的变量其实就是其他语言中各种各样的函数。
如各种语言里必定会出现的For循环,在铃心里则是以【循环[循环次数]>=<[循环体]】这个有参变量进行表达。因此可以说,铃心的变量其实就是各种编程语言中的函数。
铃心自定义中的嵌套意味着什么?
在铃心中,所有的嵌套其实都是声明了一种从属关系。与其他语言的花括号和缩进一样,代表了一种“层次”。
一般来说,由于自定义函数和变量的存在,在一般语言内基本见不到大于六层的嵌套层数——但是在铃心中,由于赋值变量的使用比较复杂,且代码长度往往较短,因此经常会出现超过五层的嵌套情况。
在我个人写的“铃心化牌堆中”,就出现过大片大片极为极端的十几层嵌套。
现在想起来,感觉真沙雕。
虽然铃心作者在新版本提供了自定义函数的方案,但仍旧是治标不治本。
如何入门铃心变量?
首先,你肯定需要一样东西,叫做“变量说明”
在变量说明里,你可以清晰的看到所有的变量名称和使用方法——我认为这些变量的使用已经很简单了,除了部分涉及到基本的编程知识之外,其他部分基本上没有任何的理解难度。
而我们需要做的,只是挨个在编辑器里面尝试会有什么效果就可以了。
什么?你说这部分讲的太简单了?完全没有用?好,那我们就开始按照上文的方法分析几个变量。
实例:变量“【艾特】”
关于【艾特】变量,背后还有一个有趣的小故事,不过在这里就不多谈了。
- 【艾特】放在关键词中,表示 艾特机器人。
- 【艾特】放在回复中,表示 艾特发送者。
- PS.如果要艾特指定人,[CQ:at,qq=xxx],xxx改为要@的人的QQ就可以了。
好,让我们来逐句话进行分析吧。
1 |
【艾特】放在关键词中,表示艾特机器人 |
首先我们要搞清楚,到底什么叫做关键词。
关键词是用来触发回复的一个标准。一旦关键词被匹配,就会运行铃心的回复。
由此可以看出,铃心的体系是一个很标准的“关键词-回复”体系,也可以说是一个非常简单的“输入-输出”体系。
那么回到正题,这个例子中,关键词指的到底是什么呢?

所以说,这句话的具体效果就是:
1 2 3 4 |
关键词:【艾特】 #当你在艾特机器人的时候触发这个事件 回复:是谁在艾特我? #具体效果就是你艾特了机器人,机器人会说“是谁在艾特我?” |
很好理解是吧,这个的确很简单。那么下一句话呢?
1 |
【艾特】放在回复中,表示 艾特发送者。 |
这个就更好理解了不是吗?由于太简单了,于是我们就把这个当做课后作业留给大家自己尝试就好。
这里提一下,什么叫做发送者——即是指谁触发,谁就是发送者。
那么就是最后一句话了,这里涉及到一个概念,叫做CQ码。
1 |
如果要艾特指定人,[CQ:at,qq=xxx],xxx改为要@的人的QQ就可以了。 |
首先,我们要灵活使用百度,那么百度一下,我们可以知道,CQ码是指在酷Q的消息中,以[CQ:开头、]结尾的,可以实现特殊功能的代码。
在酷Q文库中,我们可以轻松地发现一个叫做@某人的CQ码,它的结构就是所谓的[CQ:at,qq=xxx]
。跟铃心中的一模一样——这也就代表,铃心的消息是支持所有CQ码的,只是铃心作者害怕你不知道,就贴心的给这些CQ码全部给打包成变量了。
类似的用CQ码打包而成的变量还有【图片】【语音】等,在此就不赘述了。
严格来说,【图片】和【语音】都不是严格的CQ码打包而成的,因为它们还支持URL等方式调用,方便的要死(躺)。
实例:含参变量【判空[被判断文本]>=<[为空替换文本]】
- 【判空[被判断文本]>=<[为空替换文本]】
- 如果[被判断文本]为空,则此变量表示的值为[为空替换文本],否则为[被判断文本]
- 如果[为空替换文本]填写为!null且[被判断文本]为空时,直接结束此条回复(强制结束回复)
- 如果[为空替换文本]填写为!back[返回的回复]且[被判断文本]为空时,将回复重置为[返回的回复]
我们还是逐句来理解分析并且实现。
1 2 3 4 5 6 7 |
#回复内容 【判空>=<我是空回复】 【换行】 【判空我不是空回复>=<我是空回复】 #返回 我是空回复 我不是空回复 |
这个很好理解——但是接下来的就不好理解了。
如果[为空替换文本]填写为!null且[被判断文本]为空时,直接结束此条回复(强制结束回复)
好,首先我们要搞清楚这个回复触发的条件,是 [被判断文本] 为空,且[为空替换文本]只填写!null。
1 2 3 4 5 6 7 |
#回复 我肯定会被显示。 【判空>=<!null】 我觉得我应该会被显示吧。 #实际返回 #什么都没有 |
!null代表直接掐断该回复的进程,直接结束掉这条回复。
要注意,在!null后面填写任何东西,都会使其失效!
如果[为空替换文本]填写为!back[返回的回复]且[被判断文本]为空时,将回复重置为[返回的回复]
还是老规矩,来看一个例子。
1 2 3 4 5 6 |
#回复 啊【换行】 【赋值变量测试>=<【判空>=<!back我是新回复】】【换行】 啊啊啊 #实际返回 我是新回复 |
!back的作用可以理解为,如果满足条件,不管曾经有什么或者将来有什么,我都不去执行,回复就为定死的[返回的回复]。
下课了
嗯,看起来已经到时间了——今天我们主要介绍了铃心自定义中关于变量的最基础的——也是最为核心的知识。
在之后的C系列教程中,不会再详细的讲解某个变量的具体用法,除非遇到一些容易混淆的。
最后还是一句话送给大家:
多思考——总会有办法的
某个伟人
Comments | NOTHING