跳到主要内容

示例12:触发器引用数据编辑器的数据

在星火编辑器中,触发器可以引用数编ID或数编表,从而将预先配置好的数据信息带入游戏逻辑中。

引用数编数据的方式

触发器获取数编表有如下几种方式:

  1. 通过数编ID获取数编表

  2. 将数编表直接赋值给一个变量

  3. 通过面向对象的方法获取该对象的数编表(只能用于单位、物品、技能等)

一旦获取了数编表,就可以使用面向对象的方法读取该表中的其他信息。

注意:尝试用触发语句修改数编表是未被定义的行为,绝大多数情况下的修改都是无效的。

数编中任意数据的相关应用

任意数据介绍

任意数据是数编中能够存储一类特定类型对象的集合。在任意数据中,可以存储任意类型的对象、数组、二维数组中的其中一种,供触发器调用。

在任意数据中可以配置数组的维度,值也会根据数组维度类型自动修改成对应的类型

此外,当数组维度为一维数组时,你可以把任意数据理解成一张Excel表,值(数组)当中的每一项元素为一行,数编中每一个属性(比如物品ID、等级等)为列。

下面是一张简单的任意数据 - 物品表:

此任意数据表可以等效为:

序号物品数编ID
1金币神符
2伤害神符
3治疗神符
4单手剑

通过物品的数编ID,可以引用物品的数编表,从而读取该物品的信息或生成一个该物品的实例。

任意数据示例

下面我们以一个简单的demo来介绍任意数据的用法:

在任意数据中放置四种级别的强化石,通过按键按下在主控身边随机生成十颗不同级别的宝石。

首先在数据编辑器中小齿轮勾选:任意数据,再创建我们的 任意数据-物品 蓝图

创建完毕后对它进行配置,将其设置为一维数组并配入我们创建好的强化石

配置完毕后我们来到触发器,首先先创建我们的宝石表

然后根据宝石表拿我们的宝石数组

在进行完这些准备工作后我们来通过触发语句生成宝石:运用计时器在主控单位的坐标处创建宝石物品 p.s此处需要用面向对象的办法获取宝石数组的随机元素

然后我们进行调试查看效果:

案例:随机生成不同品质的宝石

下面用一个具体例子来说明如何用触发器引用数编表中的数据。这个案例会在游戏开始时,在主控单位处随机生成不同种类、不同品质的5个宝石物品。

首先,在局部变量处声明待生成的物品种类,这里使用的是数编ID:

在动作语句中,加入1-5的for循环语句。每次循环时,从宝石ID组中随机一个待生成宝石的数编ID,通过该ID生成宝石物品。

生成物品后,需要设定宝石的品质。这里通过面向对象的方法获取宝石现有的品质,并加上0-2之间的一个随机数,将新品质通过“设置物品品质”语句设置到创建过的宝石物品上。

通过调试结果来看,主控单位处生成了5个种类不同、品质不同的宝石物品。