自定义怪物
在我们开始之前
请注意下面是唯一一个自定义怪物的必须配置选项,这也是一个自定义怪物的最简单配置形式:
其他的配置选项都是可选的。
示例怪物
首先,我们需要知道自定义怪物配置储存在哪里。它们被储存在 ~/EliteMobs/custombosses 文件夹。
每个自定义怪物都有它自己独立的文件,这意味着如果你想要创建新的自定义怪物,只需要在该文件夹内创建一个新的文件即可创建新的怪物,文件名称即为怪物的id。
默认情况下,EliteMobs 包含一个 test_boss.yml
示例自定义怪物文件,它也是一个很好的示例模板,内容如下:
isEnabled
isEnabled
设置是否启用该自定义怪物。
entityType
entityType
设置自定义怪物的实体类型,你可以在 mobproperties 文件夹查看当前 EliteMobs 支持的实体类型。
示例:
name
name
设置自定义怪物的名称。
示例:
变量:
$level
- "$level Cool boss" - 1 Cool boss$normalLevel
- "$normalLevel Cool boss" - [1] Cool boss$minibossLevel
- "$minibossLevel Cool boss" - 〖1〗 Cool boss$bossLevel
- "$bossLevel Cool boss" - 『1』 Cool boss$reinforcementLevel
- "$reinforcementLevel Cool boss" - 〔1〕 Cool Boss$eventBossLevel
- "$eventBossLevel Cool boss" - 「1」 Cool boss
以上变量符都是显示怪物的等级,只是显示上有区别,参考所给示例你就能明白,在此不再赘述。
level
level
设置自定义怪物的等级。
任何固定的值
dynamic
dynamic
代表动态,会根据当前在线玩家拥有的最高战斗等级来决定它的等级,所以,很少玩家会觉得这个怪物很好打。
示例:
timeout
timeout
设置自定义怪物逃跑的时间,以分钟为单位(也就是自动消失)。如果设置为 0
那么该怪物将永远不会自动消失。
示例:
isPersistent
isPersistent
设置在怪物所在区块被卸载后怪物是否保持存活,只建议对大 BOSS 开启,否则会造成服务器性能问题。
示例:
healthMultiplier
healthMultiplier
设置怪物的血量的加倍值,值 0.0001
到 0.9999
代表低于该等级怪物本身的血量值,大于 1
则代表高于。事实上在技术层面上,EliteMobs 并没有实际修改怪物的血量值,它只是通过修改怪物的防御来实现类似效果,不过为了便于理解这里就这么写了。
示例:
damageMultiplier
damageMultiplier
设置怪物的伤害的加倍值,值 0.0001
到 0.9999
代表低于该等级怪物本身的血量值,大于 1
则代表高于。不会影响怪物能力的伤害。
示例:
damageModifiers
damageModifiers
设置不同物品对自定义怪物造成的伤害的加倍值,你可以用它制作怪物的弱点和强化。
示例:
在这个示例中,玩家使用钻石剑只会对怪物造成 80% 的伤害,但使用三叉戟将会造成双倍伤害。
normalizedCombat
normalizedCombat
修改怪物的伤害和最大生命值以遵循 MobCombatSettings.yml 中标准化实体的设置。 这对于创建地牢很有用,因为您在进行战斗平衡时不再需要考虑每种实体类型的基础伤害。
示例:
helmet/chestplate/leggings/boots/mainhand/offhand
helmet
/chestplate
/leggings
/boots
/mainHand
/offHand
设置怪物的对应槽位(分别为头盔、胸甲、护腿、靴子、主手、副手)的物品id,只对能够穿戴对应槽位的怪物有效。
请注意这里可以设置物品的 CustomModelData 的值,只需要在填写物品id时遵循格式: 物品id:custommodeldata的值
。示例: DIAMOND_SWORD:1
则代表怪物手持 CustomModelData 为 1 的钻石剑。
同样地,你还可以设置染色皮革的值,只需要遵循格式:物品id:0xHEX颜色代码
。
示例:
isBaby
isBaby
设置怪物是否是幼体,只有部分实体支持,例如僵尸。
示例:
powers
powers
设置怪物的能力列表(也就是技能),能力可以在 ~/EliteMobs/powers
文件夹查看。部分能力可能不支持部分实体类型,但在这里无法一一提供,如有帮助可联系作者。
示例:
boss phases
设置怪物的阶段(形态),更多信息请 点击这里 查看。
regional boss
有关区域 BOSS 的大概介绍,请 点击这里 查看。有关区域 BOSS 如何设置,请 点击这里 查看。
spawnMessage
spawnMessage
设置当怪物生成时的提示。
示例:
需要依赖公告权重值系统,下面不再赘述,有关公告权重值相关信息,请 点击这里 查看!
deathMessage
deathMessage
设置当怪物死亡时的提示,可以使用变量 $players$ 替代参与击杀怪物的玩家。
示例:
需要依赖公告权重值系统,下面不再赘述,有关公告权重值相关信息,请 点击这里 查看!
deathMessages
deathMessages
设置怪物死亡的提示,但是可以多行。
可以使用变量 $damager1name
, $damager2name
, $damager3name
, $damager1damage
, $damager2damage
, $damager3damage
和 $players
。$damager1name
等代表伤害输出第x名的玩家的名称,$damager1damage
等代表 伤害输出第x名的玩家的输出值。$players
则同上。
需要依赖公告权重值系统,下面不再赘述,有关公告权重值相关信息,请 点击这里 查看!
escapeMessage
escapeMessage
设置怪物逃跑的消息,只有在 timeout
选项设置的时间到了之后怪物自动消失才会出现。
需要依赖公告权重值系统,下面不再赘述,有关公告权重值相关信息,请 点击这里 查看!
locationMessage
locationMessage
设置怪物出现在 Boss 条的信息,用于显示怪物的位置和距离。
$distance - 距离。
$location - 坐标。
Example:
需要依赖公告权重值系统,下面不再赘述,有关公告权重值相关信息,请 点击这里 查看!
uniqueLootList
uniqueLootList
设置该自定义怪物固定的掉落物。
itemFilename.yml:掉落几率
itemFilename.yml
替换为自定义战利品名称,也就是 ~/EliteMobs/customitems
文件夹内的文件名称。掉落几率可以填写 0-1 之间的值,例如 0.5 代表 50%。
其他格式:
你还可以使用以下掉落物类型:
minecraft:type=物品id:amount=数量:chance=几率
- 掉落原版 MC 物品。SCRAP:等级=x-y:amount=x-y:ignorePlayerLevel=x:chance:x
- 掉落 EliteMobs 的卷轴,其中level=x-y
和amount=x-y
分别代表卷轴等级数量,x-y 代表在 x-y 之间随机抽取一个数字。ignorePlayerLevel=x
设置是否忽视玩家当前战斗等级而掉落。UPGRADE_ITEM:level=x-y:amount=x-y:ignorePlayerLevel=x:chance:x
- 掉落 EliteMobs 的升级球,同上不再赘述。itemFilename.yml:掉落几率:权限
- 设置需要权限才会掉落指定固定战利品。
示例:
dropsEliteMobsLoot
dropsEliteMobsLoot
设置怪物是否掉落非上面选项设置的其他战利品。
示例:
dropsVanillaLoot
dropsVanillaLoot
设置怪物是否掉落其原版会掉落的物品,例如僵尸掉落腐肉。
示例:
dropsRandomLoot
dropsRandomLoot
设置怪物是否掉落随机战利品。
示例:
trails
trails
设置怪物的粒子效果。
示例:
onDamageMessages
onDamageMessages
设置怪物击打到玩家时随机出现的提示。
示例:
onDamagedMessages
onDamagedMessages
设置玩家击打到怪物时随机出现的提示。
示例:
mountedEntity
mountedEntity
设置怪物的坐骑,可以填写:
某个原版生物的id (示例:
mountedEntity: BAT
)。指定自定义怪物的文件名称。
示例:
announcementPriority
announcementPriority
设置公告权重值,请 点击这里 了解详情。
followDistance
followDistance
设置怪物的察觉距离,部分实体类型可能不能很好工作。
示例:
请注意不要将这里的值设置过大,这将会导致服务器大量 CPU 负担!
onDeathCommands
onDeathCommands
设置当怪物死亡时执行的指令列表。可以使用如下变量:
$level
代表怪物的等级。$name
代表怪物的名称。$chance=x$
设置指令执行的几率。$players
代表击杀怪物的玩家,如果击杀者有多位,那么指令会被执行多次。$locationX
,$locationY
和$locationZ
代表怪物死亡的坐标。
在这个示例中,假设有 Player1、Player2和Player3 三位玩家一起击杀,那么将会执行三次 broadcast 指令:
此外还会有 50% 几率执行如下指令:
onSpawnCommands
onSpawnCommands
设置当怪物生成时执行的指令列表。 $chance=x$
变量同样可用。
示例:
onCombatEnterCommands:
onCombatEnterCommands
设置当怪物进入战斗时执行的指令列表。 $chance=x$
变量同样可用。
onCombatLeaveCommands:
onCombatLeaveCommands
设置当怪物离开战斗时执行的指令列表。 $chance=x$
变量同样可用。
disguise
disguise
设置怪物的伪装,更多信息请 点击这里 查看。
customModel
customModel
设置怪物的模型,更多信息请 点击这里 查看。
示例:
frozen
frozen
设置怪物是否原地不动。
示例:
最后更新于