创建能力
EliteMobs 脚本系统
以下页面介绍了如何创建 Elite 脚本!
这是一项高级功能,需要对 EliteMobs 有深入的了解。
注意:Elite 脚本可以作为能力文件添加,也可以添加到自定义 Boss 文件中! 如果用作能力文件,你可以像往常一样使用自定义 Boss 的 powers 配置设置,将它们作为普通能力添加到 Boss 中。
添加 EliteScript
要开始向 Boss 添加 EliteScript,请在 Boss 文件中添加以下条目:
eliteScript:
注意:以下内容对大小写和空格极其敏感!请确保你的空格、换行符和整体格式与示例一致!
现在你已经声明了脚本的开始,可以添加你的特定脚本了。在此示例中,我们将创建一个名为 Example 的脚本:
eliteScript:
Example:
EliteScripts 有 5 个不同的部分:Events、Conditions、Zones、Actions 和 Cooldowns。只有 Actions 是必需的。
让我们看一个简单的示例:
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,0.5,0
Cooldowns:
local: 60
global: 20
此脚本使精英怪在被玩家击中时向上弹起,并且在 3 秒内不会再次触发(由于 Cooldowns 部分的设置,其他能力也会在 1 秒内被阻止触发)。
现在你已经了解了脚本结构的一般格式,是时候学习每个部分可以做什么了!
Events
点击上面的链接了解如何使用事件!
Targets
点击上面的链接了解如何使用目标!
Actions
点击上面的链接了解如何使用动作!
Zones
点击上面的链接了解如何使用区域!
Conditions
点击上面的链接了解如何使用条件!
Cooldowns
点击上面的链接了解如何使用冷却时间!
添加多个 EliteScripts
你可以在一个事件上拥有多个动作,但如果你想在同一个 Boss 上拥有多个脚本呢?只需创建一个新的脚本条目即可!让我们扩展前面的示例并添加另一个脚本:
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,0.5,0
Cooldowns:
local: 60
global: 20
Example2:
Events:
- PlayerDamagedByEliteMobEvent
Actions:
- action: SET_ON_FIRE
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 200
global: 60
在这个示例中,我们添加了第二个名为 Example2 的脚本。Example2 会点燃被 Boss 伤害的玩家,这是因为 targetType 设置为 DIRECT_TARGET。
此脚本的冷却时间设置为 200 tick,这意味着 Boss 每 10 秒才能点燃玩家一次。
创建独立能力
独立能力几乎完全由 Elite 脚本组成。只有两个可选字段。不要忘记,独立能力必须放置在 ~plugins/EliteMobs/powers 文件夹中才能工作。
独立能力示例:
isEnabled: true
powerType: UNIQUE
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,.3,0
Cooldowns:
local: 60
global: 20
isEnabled
与插件其他地方一样,设置能力是否启用。
powerType
能力类型设置能力的分配方式。值为:
UNIQUE:能力仅应用于在能力部分设置了该能力的自定义 Boss。DEFENSIVE/MISCELLANEOUS/OFFENSIVE:任何精英怪都可以获得这些能力,它们将计入特定的能力子集。MAJOR_ZOMBIE、MAJOR_SKELETON、MAJOR_BLAZE、MAJOR_ENDERMAN、MAJOR_GHAST:只有相应实体类型的精英怪才能自然生成这些能力,它们将计为主要能力。
effect
设置能力使用的视觉效果或材质。这由一些硬编码的能力用来定义其视觉粒子或材质效果。
| 键 | 值 | 默认值 |
|---|---|---|
effect | String | none |
powerCooldown
设置单个能力的冷却时间(以 tick 为单位)。这控制此特定能力触发的频率。
| 键 | 值 | 默认值 |
|---|---|---|
powerCooldown | Integer | 0 |
globalCooldown
设置所有能力共享的全局冷却时间(以 tick 为单位)。此能力触发后,在全局冷却时间到期之前,其他能力无法触发。
| 键 | 值 | 默认值 |
|---|---|---|
globalCooldown | Integer | 0 |
