要按我说,好感度啊,什么的,全都是虚幻。真正的情感还是要来源于制作者本身。

编辑于2020.2.6 转载请注明作者

好感度是个什么玩意

问得好,最早的铃心好感度回复我也不知道我是怎么想的,就做出来了。当时大概的想法是通过好感度来限制某些功能的使用——后来在逐渐的演化中,变成了一个更好的表达机器人人设的手段。

好感度回复的预期是什么样的

  • 能够通过某些手段升高好感度
  • 能够查询目前好感度的值
  • 能够通过好感度进行区分回复

首先,我们需要一个储存好感度的文件。在预期使用数量较少(小于2万)的情况下,采用读写配置文件的方法还是比较快的。

好了,现在好感度增加有了,我们还需要一个好感度查询,让用户能够自由的查询自己的好感度。

好了,一个简单的好感度查询功能我们也有了。
接下来,我们就需要一个极其重要的部分——那就是一个受好感度参数控制的回复系统。

受参数限制的回复系统&基础的嵌套比较思想

首先我们的想法肯定是——好感度高于某个值,回复就由第一级回复切换至第二级——这个想法是相当正确的,因此我们找到了这样的一个变量。

由此,我们就有了初代的好感度回复代码!

简单吧!这样我们就有了一个非常基础的好感度回复。
如果我们要多个好感度区间的话,可以增加更多的比较来进行判断。

同样,按照这个规律,我们可以嵌套三层,四层,五层...甚至更多层。

但是我们很容易就会发现——当嵌套层数增加的时候,别说是一般人了,地中海都会迷惑——在早期的无编辑器时代,这种排查括号的工作相当的繁琐,尽管现在有了,但是一般人也搞不定太多的嵌套括号的。

所以这种书写方式,我只推荐低于四层的时候可以写写,再多了,就几乎没法做了。

真的没有办法了吗?

有,怎么可能没有。下面就是本篇的难点和重点——利用循环代替嵌套形式的比较——如果感觉困难的话,可以选择性的跳过。

在理想的情况下,我们想要的最好的添加好感度回复的方法是这样的。

因此,根据这个目标,我规定了一个书写好感度回复的标准格式

上面的就是一个好感度回复的结构示例,其代表的意思是——好感度低于20就触发回复“好感度一级”,如果处于20-40之间,就触发“好感度二级”,以此类推——直到好感度大于80,则回复“好感度四级”

好,有了这个思路之后,我们就需要针对性的开发一个读取的方式。

请注意,下文内容可能引起不适,相对于前文的简单内容难度可能略大——但是我们会在后面的一篇“迭代法介绍”中专门的讲解这类处理方式。在这里,你只需要知道这是一种近乎万能的处理方式即可。

如果看不懂没关系——考虑到大部分使用者都看不懂,因此我采用了铃心的最新科研成果——函数系统,将其打包成函数了!

函数的具体使用方法可以参考铃心的变量文档,在这里我就不多赘述什么了。

这里采用的方案其实本质上来说还是传统的比较方案。只是用了一个循环迭代的思想,来读取了一个理想化格式的好感度回复而已。

3.3更新:Fori循环查找进行区间回复

作者为铃心群老大,因为看到我写的迭代觉得太复杂了,就用Fori写了一个,缺陷是不能够处理[]信息。但是可以在中间加入一个【替换】来进行处理,防止[]导致的歧义。总体上是优越于我的迭代方案的。

4.4更新

由于旧版无法匹配负数,因此特此带来兼容负数的函数更新:

结语

给力吗?最后一个给力吗?

其实就是这样,在开发的过程中,我们也会偷懒——但是偷懒正是我们不断改进的主要方案。
好感度系统的函数化,极大的降低了书写好感度回复的难度和成本,使得几乎所有人都可以快速的完成好感度区间回复的编辑。
同时,由于铃心的特殊性,在好感度回复中也可以调用铃心原有的变量。是不会有任何影响的。

对于本篇来说,我们接触了基本的嵌套思想,并且见识了利用现有的变量到底可以做到什么地步。

在下一篇,我会以开关系统的发展和演化来向大家介绍如何设计一个不错的铃心功能,敬请期待!

其实好感度回复的那个,我是直接把我骰子用的复制过来了,根本没有测试过。

如果出错了,请务必用留言通知我!


我什么都不懂,我只会现学现卖,谢谢配合。