跳到主要内容

实例副本难度

实例副本有一个特殊设置,可以方便地为副本定义不同的难度。

运作方式

难度的设计部分借鉴了《最终幻想 14》的等级同步系统。

正如你在物品上所看到的,精英护甲和武器会根据其等级获得特定的精英伤害和精英防御。当你处于开启了难度的实例副本中时,物品的等级会被临时且不可见地降低,以匹配等级同步。

EliteMobs 使用指数缩放,每相差 5 级,有效强度就翻一倍。例如,一把 50 级的剑要比 45 级的剑强得多。如果玩家处于一个把装备等级同步到 45 级的实例副本难度中,那么这把 50 级的剑就会表现得像一把 45 级的剑,伤害也会按比例降低。

不过,如果那把剑带有 10 级锋利,它仍然会在基础伤害之上加上同样多的伤害。

这意味着,在带难度的实例副本中,重要的不是装备的等级,而是装备的品质。想要通关秘境(mythic)难度的玩家必须努力从其他实例副本中获取高品质物品,并可能需要大量使用物品升级系统。

这也让老玩家几乎不可能碾压旧的高难度内容,并且即便他们的等级远高于副本等级,也依然有动力去挑战。

队伍系统

EliteMobs 拥有最多五名成员的仅会话有效队伍。当某位队伍成员选择了一个实例副本时,EliteMobs 会记录当前的完整成员名单并启动一次可点击的准备确认。发起者自动算作已准备;其余每名成员都必须确认接受这个确切的副本和难度,之后世界准备才会开始。动态副本的提示还会包含所选等级。拒绝、超时、成员名单变化、成员不可用、权限失败、容量不足、已在其他实例中的冲突,或被取消的 MagmaCore MatchJoinEvent 预检,都会中止整队进入,而不是只移动一部分队员。EliteMobs 的 PlayerJoinDungeonEvent 是在玩家被接纳之后触发的不可取消通知。

个人的物品附魔挑战仍然是单人的,因为挑战会临时占用发起玩家的物品。

为了应对进入后的多名玩家,Boss 会被设计成拥有特定能力,这些能力会随着更多玩家加入竞技场而变得更加危险。此外,Boss 还会获得随实例内玩家数量缩放的生命值加成。公式为:scaledHealth = baseHealth * 0.75 * playerCount。例如,2 名玩家时 Boss 拥有其基础生命值的 1.5 倍,3 名玩家时为 2.25 倍,5 名玩家时为 3.75 倍。

注意: 生命值缩放只在实例中有 2 名或更多玩家时才会生效。单人玩家面对的 Boss 使用标准生命值。

如何定义难度

难度在实例副本的 content_packages 文件夹内的副本包文件中定义。该文件位于 /plugins/EliteMobs/content_packages/[your_dungeon_name]/[package_file].yml,应与 contentLevelname 等其他副本设置放在一起。

我们来看一个示例:

difficulties:
- levelSync: 60
name: normal
- levelSync: 50
name: hard
- levelSync: 40
name: mythic

这设置了三个难度。实际上只有 name 是必需的——无论是在菜单中还是在内部,难度都是通过它来匹配的。levelSyncid 是可选的;没有 levelSync 的难度就只是不应用等级同步。

name 是难度的名称,会显示在游戏内的难度设置中。可以取任意名称。

levelSync 设置该实例副本的物品等级上限,如本页上文所述。

你可以定义任意多或任意少的难度。只需按照相同格式在 difficulties 设置中添加或删除条目即可。

相对等级同步

等级同步也可以使用相对值而不是绝对数字。请始终给该值加引号。 YAML 会把不带引号的 +5 解析为普通整数 5,等到 EliteMobs 读取时开头的 + 已经消失——因此 levelSync: +5 会悄悄变成等级 5 的绝对同步,而 levelSync: +0 会变成绝对的 0,从而彻底禁用等级同步。不带引号的负值(例如 levelSync: -10)恰好能够幸免,因为 - 会被保留下来,EliteMobs 仍然会把它当作相对值读取——但给每个值都加引号才是唯一没有歧义的写法:

difficulties:
- levelSync: '+5'
name: easy
- levelSync: '+0'
name: normal
- levelSync: '-10'
name: hard

相对值是基于副本的基础内容等级计算的,并且结果永远不会低于 1。例如,如果一个副本的内容等级为 60:

  • levelSync: '+5' 变为 65
  • levelSync: '+0' 变为 60
  • levelSync: '-10' 变为 50

这对于内容等级可能变化的动态副本尤其有用。在动态副本上,内容等级只有在实例创建之后才能确定,因此相对值会在那时才解析。

绝对值 levelSync: 0——或任何 EliteMobs 无法解析的值——意味着该难度完全不进行等级同步

可选的难度 ID 字段

你可以在每个难度条目上设置一个 id 字段。自定义 Boss 和自定义物品会使用这个 ID 来应用基于难度的能力和战利品。如果你不设置 id 字段,该难度就不会有 ID,依赖它的基于难度的功能也不会生效。

difficulties:
- levelSync: 60
name: normal
id: 0
- levelSync: 50
name: hard
id: 1

基于难度的能力

可以配置 Boss 只在特定难度下拥有某些能力。我们来看一个示例:

powers:
- filename: invulnerability_fire.yml
difficultyID:
- 1
- 2

注意:这是自定义 Boss 配置文件的一部分!

在这个例子中,Boss 只会在 ID 为 12 的难度下拥有火焰免疫。

基于难度的战利品

可以配置 Boss 掉落特定于某个实例副本难度的战利品。我们来看一个示例:

uniqueLootList:
- filename: himiko_boss_drop_axe_tank_normal.yml
chance: 0.05
difficultyID: 0

注意:这是自定义 Boss 配置文件的一部分!

在这个例子中,Boss 只会在难度 0 下掉落战利品 himiko_boss_drop_axe_tank_normal.yml,且掉落几率为 5%。