技能系统
EliteMobs 使用一套基于技能的进度系统,玩家通过与精英怪战斗来升级。玩家发展的不是单一的全局等级,而是各自独立的武器技能和一项护甲技能,它们共同决定其整体实力。
共有 9 种技能类型:
| 技能 | 武器 | 备注 |
|---|---|---|
| 剑(Swords) | 任意 _SWORD | |
| 斧(Axes) | 任意 _AXE | |
| 弓(Bows) | BOW | |
| 弩(Crossbows) | CROSSBOW | |
| 三叉戟(Tridents) | TRIDENT | |
| 锄(镰刀 / Hoes / Scythes) | 任意 _HOE | |
| 重锤(Maces) | MACE | 需要 Minecraft 1.21+ |
| 矛(Spears) | 任意 _SPEAR | 需要 Minecraft 1.21.11+(搭配资源包) |
| 护甲(Armor) | 头盔、胸甲、护腿、靴子 | 被动升级 |
技能通过使用对应武器击杀精英怪来升级。你的战斗等级——由你的技能计算得出——决定了你能访问哪些内容、能装备哪些装备,以及在你周围生成的怪物难度。
技能如何升级
当你击杀一只精英怪时,你会根据该怪物的等级获得 XP。XP 的分配方式如下:
- 武器 XP 归于与你仅主手所持武器相匹配的技能。副手武器不获得 XP。
- 护甲 XP 在每次击杀时以武器 XP 的 1/3 速率被动获得。这意味着护甲总是落后于你的武器技能。
- 组队战斗: 当多名玩家对同一只精英怪造成伤害时,XP 会按每位玩家的伤害贡献比例分配。如果你造成了 60% 的伤害,你将获得 60% 的基础 XP。
来自怪物的基础 XP
击杀怪物获得的基础 XP 为:
mob_xp = mob_level ^ 2
| 怪物等级 | 获得 XP |
|---|---|
| 1 | 1 |
| 10 | 100 |
| 25 | 625 |
| 50 | 2,500 |
| 100 | 10,000 |
反漏洞保护
- 低等级怪物(按技能计): 仅当怪物比该特定技能的等级低不超过 5 级时,每项武器/护甲技能才会获得 XP。如果某只怪物比你的剑术技能低 5 级以上,那么这次击杀你的剑术技能将一无所获(护甲技能对护甲同理)。此检查使用的是单项技能等级,而非你的战斗等级。
- 高等级怪物: 比你战斗等级高出 5 级以上的怪物,其用于 XP 计算的有效等级被限制在
combat_level + 5。你仍会获得 XP,但不是全额。 - 自然精英刷怪上限: 过快击杀过多自然精英(10 分钟内 10 次击杀,或每小时 30 次击杀)会触发临时冷却。这不适用于自定义 Boss 或地下城内容。
XP 进度
从当前等级升到下一等级所需的 XP 遵循以下公式:
1–100 级:
xp_to_next_level = 8.5 * current_level ^ 3
100 级以上(软上限):
xp_to_next_level = 8.5 * current_level ^ 3 * (1 + ((current_level - 100) ^ 2 / 100))
软上限倍率在 100 级时为 1.0(无额外惩罚),并按二次方增长。到 150 级时,倍率达到 26 倍,使得进一步提升变得极其困难。
每级 XP 表
下表显示了从给定等级升到下一等级所需的 XP,以及大约需要击杀多少只同等级怪物(武器技能,非护甲):
| 等级 | 升至下一级所需 XP | 同等级怪物击杀数 |
|---|---|---|
| 10 | 8,500 | 85 |
| 25 | 132,812 | 213 |
| 50 | 1,062,500 | 425 |
| 75 | 3,585,937 | 638 |
| 100 | 8,500,000 | 850 |
护甲以武器速率的 1/3 获得 XP,因此与上表的数字相比,提升护甲大约需要 3 倍数量的击杀。在 50 级时,这意味着仅护甲就需要约 1,275 次同等级击杀。
战斗等级
你的战斗等级是衡量你整体实力的指标。它的计算方式为:
combat_level = (highest_weapon_skill + second_highest_weapon_skill + armor_skill) / 3
结果向下取整(整数除法)。
战斗等级决定:
- 在你周围生成的精英怪等级
- 你能装备哪些装备(装备等级必须不高于你相匹配的技能等级)
- 你能访问哪些地下城和实例内容
- XP 和战利品资格(反漏洞检查使用战斗等级)
战斗等级显示
你的战斗等级会以一个悬浮数字显示在你头顶上方,对其他玩家可见。它使用基于数据包的文本显示,并在你的技能变化时自动更新。显示格式可配置(默认:Combat Lv. X)。
XP 条
当你获得技能 XP 时,会出现一个动画 Boss 血条,显示你朝向下一等级的进度。该血条具有:
- 随 XP 获得而平滑爬升的动画
- 每种技能类型有不同的颜色(例如,剑为红色、弓为绿色、护甲为蓝色)
- 升级时的特殊粒子和音效
- 在 5 秒无活动后自动隐藏
装备限制
EliteMobs 装备具有与技能系统挂钩的等级要求。要装备一件精英物品,你对应武器或护甲类型的技能等级必须等于或高于该物品的等级。
例外: 20 级或以下的物品任何人都可以装备,不论技能等级如何。这确保了新玩家能够自由使用前期装备,而不会被锁定在外。
如果你尝试装备一件高于你技能等级的物品,你会收到一条警告消息,并且该物品不会提供任何精英加成。
技能奖励
随着你提升技能,你会在里程碑等级解锁特殊的战斗能力:
- 10 级 —— 解锁第一个奖励
- 25 级 —— 解锁第二个奖励
- 50 级 —— 解锁第三个奖励
- 75 级 —— 解锁第四个奖励
每种武器或护甲类型同时最多可拥有 3 个激活奖励。技能奖励通过 /em 菜单管理,或通过造访冒险者公会中的技能奖励 NPC 进行管理。
完整列出全部 84+ 个奖励及其作用,请参阅技能奖励。
通知与 UI
技能系统提供多种形式的反馈:
- 升级: 每次升级时的标题消息、挑战完成音效和不死图腾粒子爆发。
- 里程碑: 仅当玩家达到里程碑等级(每第 5 级:5、10、15……)时才会发送全服广播。常规升级不会广播。该广播可在
dungeons.yml中关闭。 - 战斗等级显示: 头顶上方的悬浮数字,对其他玩家可见。升级时自动更新。
- XP 条: 战斗期间显示技能 XP 进度的动画 Boss 血条。
- XP 获取消息: 可选的每次击杀 XP 消息(默认禁用,因为它们可能会刷屏)。
上述大多数项目在 skills.yml 中配置;里程碑升级广播及其消息位于 dungeons.yml 中。
管理员命令
| 命令 | 权限 | 说明 |
|---|---|---|
/em skill check <player> | elitemobs.skill.check | 查看玩家的技能等级、XP 进度和百分比 |
/em skill set <player> <skillType> <level> | elitemobs.skill.admin | 将某项特定技能设置为给定等级 |
/em skill setAll <player> <level> | elitemobs.skill.admin | 将所有技能设置为相同等级 |
/em debug combat start | elitemobs.admin | 开始自动化战斗系统测试 |
/em debug combat test <type> | elitemobs.admin | 测试某种特定武器类型(例如 swords、bows) |
/em debug combat results | elitemobs.admin | 查看上次战斗测试的结果 |
/em debug combat cancel | elitemobs.admin | 取消正在进行的战斗测试 |
/em skill set 的 skillType 参数接受:ARMOR、SWORDS、AXES、BOWS、CROSSBOWS、TRIDENTS、HOES、MACES、SPEARS。
服务器配置
技能系统在 skills.yml 中配置。关键设置:
| 设置 | 默认 | 说明 |
|---|---|---|
skillSystemEnabled | true | 启用或禁用整个技能系统 |
armorSkillHealthBonusEnabled | true | 护甲技能是否授予额外的最大生命值(每超过 1 级 +1 颗心) |
scalePlayerHealthDisplayToVanilla | false | 保留 EliteMobs 的最大生命值,但在视觉上将玩家 HUD 缩放回原版的 10 颗心 |
forceDefaultHealthWhenArmorSkillHealthBonusDisabled | false | 当护甲生命值加成被禁用时,强制玩家在加入时回到原版的 20 点最大生命值 |
skillWorldExclusions | (空) | 技能系统在其中失效的世界名称列表。这些世界中的玩家不会获得技能 XP、护甲生命值加成、XP 条或战斗等级显示。对于希望人人平等的活动世界很有用。匹配不区分大小写 |
showCombatLevelDisplay | true | 在玩家上方显示战斗等级数字 |
showXPBar | true | 在战斗期间显示动画 XP 进度条 |
skillBarTitleFormat | &6$skillName &7Lv.$level$xpText | XP 条标题格式 |
skillLevelUpTitleFormat | &e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦ | 升级 Boss 血条标题格式 |
combatLevelFormat | &6&lCombat Lv. $level | 战斗等级显示格式 |
完整的配置参考请参阅 EliteMobs 配置 页面。