跳到主要内容

自定义属性的应用

自定义属性在游戏开发中的作用和重要性不言而喻。在复杂的游戏设计中,标准的属性设定往往无法满足所有游戏特有的需求。这时,自定义属性的引入变得尤为重要,它使得开发者能够根据自己游戏的具体需求,添加特定的属性来丰富游戏内容,增强游戏的可玩性和互动性。在星火编辑器中自定义属性提供了一种灵活且强大的方式,允许游戏开发者根据自己游戏的需求去扩展和定制游戏功能。

在星火编辑器中属性分为两大类。分别为:『单位属性』『玩家属性』

其中单位属性通常用于定义单位的能力和特性,如生命值、攻击力等。这些属性可以通过公式与游戏的其他元素关联,以实现复杂的游戏机制。

而玩家属性则关注于定义玩家的状态和能力,例如玩家的金钱、复活时间、击杀助攻等,这些属性可以影响玩家与游戏世界的互动方式。

我们可以在数编常量配置中对这些属性进行自定义:

接下来我们分别通过创建数值型自定义属性和字符串型自定义属性来熟悉自定义属性的用法

数值型自定义属性的用法:

1.例如我们可以通过自定义属性来创造war3中的三种英雄属性:力量、敏捷、智力。其中我们来设置每点智力增加25的魔法上限

首先在常量配置中找到我们的『单位属性类型(数值)』,对智力这个自定义属性来进行添加

在添加完毕后我们需要让"智力"这个属性生效。此时我们需要到数据编辑器中的『游戏机制』下的『默认全局游戏机制配置』来自定义我们的魔法上限 首先在自定义单位属性下面添加'魔法上限'自定义属性节点,然后在自定义属性节点后设置影响本属性的其他属性为:智力,并且设置它对用的属性公式

在自定义属性公式中定义属性的计算方式:魔法上限 = 原来的魔法上限 + 智力 * 25

接下来我们创建一个初始智力为0,魔法上限为1000的单位来进行测试,可以发现当我们的智力增加到4的时候,魔法上限也对应增加到了1100

2.当然我们也可以自定义我们的伤害公式

这里我们以自定义技能伤害为例:自定义火球术的伤害,使它的伤害=初始伤害(30)+智力

我们需要在技能中找到伤害效果节点的伤害值,将其勾选为编辑公式

设置对应的伤害公式为:30+智力

接下来进行调试,查看效果,可以看到当智力为0的时候,火球术的伤害为:30,当智力为4的时候,火球术的伤害为:34

字符串型自定义属性的用法:

而对于字符串自定义属性,我们一般可以将它与星火的血条编辑器相结合,用来显示单位的职业,或者掉落的物品的名称,下面我们来创建两个例子来实现它们

1.通过字符串自定义属性来实现角色的职业

与自定义数值类型相同,我们首先需要在常量配置中添加自定义的字符串属性

在配置好后,我们需要手动为单位添加这个『职业』的值(这里以盗贼为例)

接下来我们需要实现单位头上显示职业的操作,这里就需要在血条编辑器中进行操作 首先在血条编辑器中创建一个新的模板,在文字中选择绑定的属性为:『职业』

然后我们需要更改单位的血条模板为新创建好的模板来实现我们的职业显示

接下来查看我们的效果:

当然我们也可以进行小小的优化,例如这样:

2.通过字符串自定义属性来实现掉落物品的名字

同样的方法,我们需要在常量配置中添加自定义的字符串属性,将其命名为:『物品名字』

使用同样的操作在血条编辑器中创建一个对应的模板,将绑定的属性设置为:『物品名字』,并在数编中创建对应的物品,在其物品单位模板中对它的字符串属性『物品名字』进行初始化

然后选择我们创建完毕的血条模板

接下来我们看一下实际效果:

注意事项

单位属性的上限为9007199254740991(约为9000兆),超出该数值会导致单位属性在服务端和客户端之间的同步失败,可能会出现一些游戏内的非预期问题。