采用多策略的随机词条物品

前置知识

示例

属性词条

首先,在本文正式讲解如何制作随机词条物品之前,请读者抛弃原有一切对于随机词条物品的观念,基于AzureFlow对数据把控的视角,重新理解随机词条物品的制作与生成。

我们规定,拥有如下格式的字典,即为一条属性词条数据

{ name, value }

其中,name即为该属性的名称,value即为该属性的值。

例如下述属性词条数据:

随机属性词条

基于上述规定以及定义好的属性词条数据(其实本质上就是一个字典{}),本文接下来将介绍如何制作随机的属性词条。

首先,将一堆属性词条数据放在一个列表[]中,方便后续进行随机,示例如下:

如上述配置所示,我们定义一个属性列表_attributes,里面包含了四个属性词条数据,并且属性值为1~100的随机整数值。

但是_attributes仅在define配置项中,真正的物品还没有属性词条数据,因此,我们将根据列表随机来随机出相关属性词条数据作为后续使用,如下例所示:

小提示:

上述的配置中,数据中的attributes实际上是一个包含了两个随机词条数据的列表,其结构大致如下:

自定义添加条件随机

目前为止,我们已经实现了随机词条数据,但是这里肯定会有读者有疑问,“这里仅仅进行了最简单的数据随机,如果我想根据玩家的等级进行随机,抑或是根据物品的其他数据(例如武器品质等)来进行策略化的随机,这该怎么实现呢?”,诸位稍安勿躁,且听本文继续娓娓道来。

根据上文的配置,我们不难发现,最关键的地方在于_attributes.choice/sample,因此,我们只需要在进行数据随机时进行额外判断即可,本文以when为例,如下例所示:

展示词条数据

目前为止,我们已经实现了词条数据的定义、获取与随机,接下来我们将得到的随机词条数据展示到物品上去,这里笔者将提供一个函数,可以将属性词条数据转变为Lore,读者无需过分在意实现原理(其原理涉及到javascript代码,如果有能力可以自行修改),使用如下:

首先,在插件文件夹plugins/AzureFlow/global文件夹下,新建文件attribute.utils.js,并复制粘贴如下内容:

上述脚本提供了一个将属性词条数据根据一定规则转变为对应的Lore的功能,如果读者有能力,可自行修改部分代码以满足需求。

综上,我们现在已经添加了一个功能性函数,接下来只需要运用在物品配置中即可,如下例所示:

至此,已完成了随机属性词条物品的制作。

效果展示

待完工。。。

总结

本文实现了多策略下的随机词条物品,读者可自行发挥其他脚本与功能,实现功能更为强大,数据更为健壮的物品。

最后更新于