傷害系統
這是 EliteMobs 中生命值/傷害如何進行調整的全面性說明。在設計地城時應將它作為參考。
它聚焦於自訂 Boss,但一般菁英的調整方式相同。
開始之前!
如果你只是想做快速調整,不需要讀完全部內容。直接跳到「將此資料用於地城」章節,看看極為簡化的快速計算以及一系列預製的建議設定!
調整(一般)
EliteMobs 使用一套指數調整系統,其中每相差 5 個等級就會使有效戰力加倍(或減半)。Boss 生命值、玩家傷害與 Boss 傷害全都呈指數調整,使得戰鬥在每個等級範圍都感覺一致 —— 等級 10 的玩家對抗等級 15 的 Boss,與等級 50 的玩家對抗等級 55 的 Boss,感覺是一樣的。
玩家戰力來自兩個來源,以 50/50 的比例分配:
- 武器技能等級 —— 透過使用特定武器類型(劍、斧、弓、弩、三叉戟、鋤、錘矛或長矛)擊殺菁英怪物來獲得。
- 物品等級 —— 玩家所裝備的武器或護甲的菁英等級。
玩家也有一項護甲技能,會在戰鬥中被動升級(速率為武器技能的 1/3)。護甲技能等級會授予額外的最大生命值(每超過 1 級就 +1 顆心),並決定玩家對抗 Boss 傷害的防禦調整。
武器技能
EliteMobs 10 引入了一套技能系統,玩家透過在戰鬥中使用各種武器類型來各自升級每種武器類型。擊殺一隻菁英怪物會授予 XP 給所持武器相符的武器技能,同時也以較低的速率授予 XP 給護甲技能。
可用的武器技能有:
| 技能 | 武器 |
|---|---|
| 劍 | 所有劍類型 |
| 斧 | 所有斧類型 |
| 弓 | 弓 |
| 弩 | 弩 |
| 三叉戟 | 三叉戟 |
| 鋤 | 所有鋤類型 |
| 錘矛 | 錘矛(1.21+) |
| 長矛 | 所有長矛類型(1.21.11+) |
| 護甲 | 所有護甲部件(被動升級) |
來自怪物的技能 XP 等於 mobLevel^2,因此等級越高的怪物授予的 XP 就成比例越多。最高技能等級為 100,超過之後會有一個軟上限,使進一步的進程呈指數級困難。
技能加成
每項武器技能(以及護甲技能)都有一組技能加成 —— 隨玩家升級而解鎖的特殊能力。玩家可以選擇要啟用哪些加成。技能加成分為五種類型:
- 被動(Passive) —— 裝備時永遠生效(例如固定傷害提升)。
- 條件(Conditional) —— 只在符合特定條件時生效(例如目標生命值低於 30% 時的額外傷害)。
- 觸發(Proc) —— 在特定事件上基於機率觸發(例如擊中時造成流血的機率)。
- 堆疊(Stacking) —— 在連續行動中累積(例如連續擊中提高傷害)。
- 冷卻(Cooldown) —— 帶有內部冷卻時間的強大效果(例如每 60 秒一次免於致命傷害)。
來自武器技能的攻擊性技能加成,會作為加成性傷害倍率套用在對 Boss 造成的基礎傷害之上。來自護甲技能的防禦性技能加成,會透過各種機制(固定減免、閃避、傷害護盾等)減少傳入的 Boss 傷害。
自訂 Boss 造成的傷害
EliteMobs 10 中的 Boss 傷害使用三個乘法層,且沒有預先補償。此系統的設計使得一名裝備妥當的玩家能承受來自同等級內容約 5 次的攻擊。
自訂 Boss 的傷害公式為:
1. playerMaxHealth = 20 + (armorSkillLevel - 1) * 2
2. baseDamage = playerMaxHealth / 5.0
3. skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)
4. gearAdjustment = 2.0 * (1 - gearReduction)
5. scaledDamage = baseDamage * skillAdjustment * gearAdjustment
6. [爆炸距離衰減,若適用]
7. potionMultiplier 來自抗性效果
8. finalDamage = max(scaledDamage, 1) * potionMultiplier * customBossDamageMultiplier * specialMultiplier * configMultiplier
9. finalDamage = min(finalDamage, actualMaxHealth - 1)
這三個層分別是:
- 基礎傷害 —— 玩家每次受擊預期會損失多少生命值(
playerMaxHealth / 5)。 - 技能調整 —— 來自 Boss 等級與玩家護甲技能等級差距的指數調整。
- 裝備調整 —— 基於玩家所裝備的護甲與保護附魔、會感知傷害類型的減免(參閱下方的裝備防禦系統)。
注意: 傷害的上限被設為(玩家的實際最大生命值 - 1),以防止一擊必殺。此上限使用 generic_max_health 屬性,其中包含所有修飾(護甲技能加成、藥水效果等)。
playerMaxHealth
玩家的最大生命值由其護甲技能等級決定。基礎生命值為 20(10 顆心),且每超過 1 級的護甲技能等級都會增加 2 點生命值(1 顆心)。護甲技能等級 50 的玩家有 118 點生命值(59 顆心)。
baseDamage
基礎傷害就只是 playerMaxHealth / 5.0。這是一名裝備妥當、同等級的玩家每次受擊預期會受到的傷害量。與舊系統不同,這裡沒有預先補償 —— 基礎值就是目標傷害,而非一個膨脹的原始值。
skillAdjustment
技能調整使用指數調整,讓 Boss 與玩家護甲技能之間的等級差距變得有意義:
skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)
每相差 7.5 個等級就會使 Boss 的有效傷害加倍(或減半)。這比通用的等級修飾(每 5 級加倍)稍微寬鬆一些,因為裝備調整層已經提供了額外的調整。
| 等級差距 | 技能調整 | 約略擊殺所需次數(裝備相符) |
|---|---|---|
| 同等級 (0) | 1.0x | ~5 次 |
| +5 級 | ~1.6x | ~3 次 |
| +10 級 | ~2.5x | ~2 次 |
| +15 級 | 4.0x | ~1.25 次 |
裝備防禦系統
裝備防禦系統取代了舊的裝備坡道(gear ramp)。系統現在不再假設一個基於技能等級的固定預先補償倍率,而是讀取玩家實際裝備的裝備,並計算一個會感知傷害類型的裝備減免。
傷害類型
系統將傳入的傷害分為五個類別。傷害類型決定了哪些保護附魔會對裝備分數有所貢獻:
| 傷害類型 | 事件原因 | 使用的保護附魔 |
|---|---|---|
| MELEE | 直接攻擊、橫掃攻擊 | 僅保護 |
| PROJECTILE | 箭矢、火球 | 保護 + 投射物保護 |
| EXPLOSION | 苦力怕、惡魂爆炸 | 保護 + 爆炸保護 |
| FIRE | 火焰、火焰跳動傷害 | 保護 + 火焰保護 |
| OTHER | 其他一切 | 僅保護 |
裝備分數
裝備分數將護甲等級與附魔加成結合成單一個可與攻擊怪物等級相比較的數值:
gearScore = (4 個護甲欄位的 armorLevel 總和) / 4
+ (全部 6 個欄位的 enchantBonus 總和) / 4
護甲等級依物品而定:
- 菁英物品使用其儲存的菁英等級(該物品建立時所對應的等級)。
- 原版物品使用基於材質的查表:
| 材質 | 護甲等級 |
|---|---|
| 皮革 | 1 |
| 金 | 2 |
| 鎖鏈 | 3 |
| 鐵 | 4 |
| 海龜殼 | 4 |
| 鑽石 | 5 |
| 獄髓 | 7 |
只有 4 個護甲欄位(頭盔、胸甲、護腿、靴子)會對護甲等級有所貢獻。
附魔加成將保護附魔等級轉換為等同護甲等級的單位:
enchantBonus = (通用保護等級 + 特定類型保護等級) * (1/3)
全部 6 個裝備欄位(4 個護甲 + 主手 + 副手)都會對附魔加成有所貢獻。這表示帶有保護附魔的盾牌或武器可提供額外的防禦。對總和進行的 /4 正規化,意味著在全部 6 個欄位上都有附魔,會比只在 4 個護甲部件上有附魔多提供高達 50% 的附魔貢獻。
實例:25 級相符裝備 + 保護 IV 對抗 25 級(近戰)
玩家:armorSkillLevel=25,maxHP = 20 + 24*2 = 68
4 件菁英護甲部件各為 armorLevel=25,各帶有保護 IV
怪物:level=25,近戰攻擊
步驟 1 —— 每件的護甲等級:25(菁英物品,儲存值)
步驟 2 —— 每件的附魔加成:保護 IV = 4 * (1/3) = 1.333
(近戰傷害類型,因此只有通用保護生效)
步驟 3 —— 裝備分數:
armorLevelSum = 25*4 = 100,/4 = 25.0
enchantBonusSum = 1.333*4 = 5.333(無主手/副手附魔),/4 = 1.333
gearScore = 25.0 + 1.333 = 26.333
步驟 4 —— 裝備減免(高於相符):
reduction = 0.50 + (26.333 - 25) * 0.025 = 0.533 (53.3%)
步驟 5 —— 裝備調整:2.0 * (1 - 0.533) = 0.933
步驟 6 —— 最終傷害:baseDamage(13.6) * skillAdj(1.0) * gearAdj(0.933) = 12.69
擊殺所需次數:68 / 12.69 = 5.36,約 5.4 次
實例:1 級原版鑽石對抗 5 級骷髏(投射物)
玩家:armorSkillLevel=1,maxHP = 20
整套原版鑽石護甲(無附魔),無主手/副手附魔
怪物:level=5,骷髏箭矢(PROJECTILE 傷害類型)
步驟 1 —— 每件的護甲等級:5(來自查表的原版鑽石)
步驟 2 —— 附魔加成:0(任何部件皆無附魔)
步驟 3 —— 裝備分數:(5+5+5+5)/4 + 0/4 = 5.0
步驟 4 —— 裝備減免(相符):0.50 * (5/5) = 0.50 (50%)
步驟 5 —— 裝備調整:2.0 * (1 - 0.50) = 1.0
步驟 6 —— 最終傷害:baseDamage(4) * skillAdj(1.447) * gearAdj(1.0) = 5.79
擊殺所需次數:20 / 5.79 = 3.45,約 3.5 次
如果鑽石護甲還帶有投射物保護 IV,每件就會獲得 4 * (1/3) = 1.333 的附魔加成。裝備分數會上升到 5.0 + (1.333*4)/4 = 6.333,使減免提高到 53.3%,並明顯改善對箭矢的生存能力。
裝備減免曲線
裝備減免使用一條兩段式線性曲線,在裝備分數等於怪物等級的那一點過渡:
低於相符(gearScore 小於或等於 mobLevel):
reduction = 0.50 * (gearScore / mobLevel)
從 0%(裸體)到 50%(相符)呈線性調整。斜率取決於怪物等級 —— 對抗 5 級怪物時每一級裝備提供 10% 減免,而對抗 50 級怪物時每一級只提供 1%。這自然使得低等級的原版護甲對低等級怪物有效,但對高等級怪物無關緊要。
高於相符(gearScore 大於 mobLevel):
reduction = 0.50 + (gearScore - mobLevel) * 0.025
每一級高於怪物的裝備提供固定 2.5%。在高於怪物 +10 個裝備等級時達到 75% 硬上限。
裝備調整將減免轉換為傷害倍率:
gearAdjustment = 2.0 * (1 - gearReduction)
| 裝備狀況 | 裝備減免 | 裝備調整 | 擊殺所需次數(同技能等級) |
|---|---|---|---|
| 裸體(無裝備) | 0% | 2.0 | ~2.5 |
| 半相符裝備 | 25% | 1.5 | ~3.3 |
| 相符裝備(gearScore = mobLevel) | 50% | 1.0 | ~5.0 |
| 高於怪物 +4 級 | 60% | 0.8 | ~6.25 |
| 高於怪物 +10 級(上限) | 75% | 0.5 | ~10.0 |
情境表格
下表顯示一系列情境下的預期戰鬥結果:
| 情境 | 技能調整 | 裝備減免 | 裝備調整 | 次數 |
|---|---|---|---|---|
| 1 級裸體對抗 1 級 | 1.0 | 0% | 2.0 | 2.5 |
| 1 級裸體對抗 5 級 | 1.45 | 0% | 2.0 | ~1.7 |
| 1 級原版鑽石對抗 5 級 | 1.45 | 50% | 1.0 | ~3.5 |
| 25 級相符對抗 25 級 | 1.0 | 50% | 1.0 | 5.0 |
| 25 級相符+保護IV 對抗 25 級 | 1.0 | 53.3% | 0.93 | 5.4 |
| 25 級相符對抗 30 級 | 1.59 | 41.7% | 1.17 | 2.7 |
| 25 級頂級裝備對抗 25 級 | 1.0 | 75% | 0.50 | 10.0 |
| 50 級相符對抗 50 級 | 1.0 | 50% | 1.0 | 5.0 |
關鍵設計目標:
- 相符等級下 5 次攻擊 —— 核心平衡目標。一名裝備妥當的玩家在所有等級下,都能精確承受來自同等級菁英怪物的 5 次普通攻擊。
- 裸體 2.5 次攻擊 —— 沒有裝備代表透過 2.0 裝備調整承受雙倍傷害。立即激勵玩家裝備任何護甲。
- 原版護甲很重要 —— 穿著鑽石護甲的 1 級玩家能承受 5 級怪物約 3.5 次攻擊,而非裸體時的約 1.7 次。
- 附魔有意義但不會主宰 —— 在全部 4 件護甲部件上的保護 IV 為裝備分數增加約 1.33,將減免從 50% 推到 53.3%。明顯(生存能力約多 8%)但不會破壞遊戲平衡。
- 等級一致 —— 25 級與 50 級的相符戰鬥都精確產生 5 次攻擊。
- 頂級裝備上限為 10 次攻擊 —— 即使擁有最佳裝備(高於怪物 +10 級),玩家仍會受到有意義的傷害。
potionMultiplier(防禦性)
抗性藥水效果根據效果等級減少傳入的傷害:
potionMultiplier = max(0, 1.0 - (resistanceAmplifier + 1) * resistanceDamageMultiplier)
設定鍵為 MobCombatSettings.yml 中的 resistanceDamageMultiplierV2(預設值:0.2)。這與原版行為相符:抗性 I = 20% 減免,抗性 V = 100% 減免(免疫)。
customBossDamageMultiplier
這是自訂 Boss 檔案中的傷害倍率。預設為 1。
configMultiplier(防禦性)
這是 MobCombatSettings.yml 中的倍率。對於正規化戰鬥,它使用 normalizedDamageToPlayerMultiplier(預設 1.0)。對於調整型戰鬥,它使用 scaledDamageToPlayerMultiplier(預設 1.0)。對於標準怪物,它使用 damageToPlayerMultiplierV2(預設 1.0)。
specialMultiplier
這是由 Boss powers 套用的暫時性傷害倍率。某些 Boss 能力會在該 power 的持續期間提高 Boss 的傷害。當無 power 啟用時預設為 1.0。
爆炸傷害衰減
苦力怕爆炸與其他爆炸傷害(惡魂火球)會根據與爆炸中心的距離而減少。傷害倍率隨與爆炸的距離呈線性遞減,使得爆炸在遠距離較不致命。
自訂 Boss 的最大生命值
EliteMobs 10 中的 Boss 生命值使用指數調整而非線性調整。每 5 個等級,Boss 生命值就精確加倍。這確保等級差距無論絕對等級為何都感覺一致。
自訂 Boss 的生命值公式為:
health = 2.1875 * 2^(bossLevel / 5) * customBossHealthMultiplier
指數調整
基礎常數 (2.1875) 經過調校,使得 25 級 Boss 約有 70 點生命值。範例生命值數值:
| Boss 等級 | 生命值 | +5 級生命值 |
|---|---|---|
| 1 | ~2.5 | ~5 (2x) |
| 5 | ~4.4 | ~8.75 (2x) |
| 10 | ~8.75 | ~17.5 (2x) |
| 25 | ~70 | ~140 (2x) |
| 50 | ~2,240 | ~4,480 (2x) |
| 100 | ~2,293,760 | ~4,587,520 (2x) |
customBossHealthMultiplier
這是自訂 Boss 檔案中的倍率。預設為 1。
對自訂 Boss 造成的傷害
玩家傷害使用乘法層的指數與線性調整,以在各等級間維持戰鬥一致性,同時仍讓不同武器家族感覺不同。此公式將玩家戰力分為兩個獨立的軸 —— 武器技能等級(指數技能調整)與武器物品等級(線性武器調整) —— 因此技能投資與裝備都會對戰鬥戰力有所貢獻。
相較於舊版本的重要改變是,近戰武器速度不再試圖讓每種武器類型都有相同的理論 DPS。劍仍是基準點,而斧、錘矛與近戰三叉戟則接受受抑制的爆發補償。已經測試表現良好的武器家族,例如鋤與長矛,則維持傳統的攻速因子。
傷害公式
完整的玩家對菁英傷害公式為:
formulaDamage = baseDamage * attackSpeedFactor * skillAdjustment * weaponAdjustment * cooldownOrVelocity * sweepMultiplier * potionMultiplier * enchantmentMultiplier * arrowDamageMultiplier
finalDamage = max(formulaDamage, 1) * damageModifier * combatMultiplier * critMultiplier
每個組成部分說明如下。
baseDamage
每次受擊的基礎傷害,由怪物的正規化生命值(在 healthMultiplier=1.0 時)除以目標擊殺所需次數推導而來:
baseDamage = normalizedMobHP / 3.0
其中 normalizedMobHP = 2.1875 * 2^(mobLevel / 5)(參閱上方的「自訂 Boss 的最大生命值」章節)。常數 3.0(TARGET_HITS_TO_KILL_MOB)意味著一名相符的玩家在任何等級都能精確以 3 次劍擊擊殺一隻標準菁英。
注意: 自訂 Boss 檔案中的 healthMultiplier 會倍增實際怪物生命值,但不會影響 baseDamage。一個 healthMultiplier: 2.0 的 Boss 有雙倍生命值,需要 6 次攻擊而非 3 次。
attackSpeedFactor
這是近戰攻速節奏層。它從舊的傳統因子開始:
legacyFactor = 1.6 / actualAttackSpeed
基準速度 1.6 是劍的攻速。最終因子接著取決於武器家族:
劍、鋤、長矛、未知近戰,以及弓/弩近戰:
attackSpeedFactor = legacyFactor
斧、錘矛與近戰三叉戟:
attackSpeedFactor = sqrt(legacyFactor)
遠程投射物攻擊:
attackSpeedFactor = 1.0
這表示系統並非試圖讓每種近戰武器都有相同的 DPS。慢速爆發武器每揮一次仍打得更重,但斧、錘矛與近戰三叉戟不再接受完整的 1.6 / speed 爆發倍率。鋤與長矛刻意維持舊因子,因為試玩測試顯示它們的節奏已經可以接受。
在相符技能與武器等級下的範例:
| 武器類型 | 範例攻速 | 因子 | 對抗 healthMultiplier: 1.0 的公式次數 |
|---|---|---|---|
| 劍 | 1.6 | 1.00x | 3.0 |
| 斧 | 1.0 | 1.26x | ~2.4 |
| 錘矛 | 0.6 | 1.63x | ~1.8 |
| 鋤 | 4.0 | 0.40x | 7.5 |
| 三叉戟(近戰) | 1.1 | 1.21x | ~2.5 |
| 長矛(範例鑽石) | ~0.95 | ~1.68x | ~1.8 |
| 弓/弩投射物 | 不適用 | 1.00x | 投射物速度決定蓄力 |
對於投射物攻擊,包含弓、弩與投擲三叉戟,不套用近戰攻速因子。投射物的蓄力/強度改以 cooldownOrVelocity 表示。
注意: 用於近戰的純遠程武器(弓、弩)會被視為徒手攻擊 —— 武器等級 0 且技能等級 1,預設攻速為 4.0(拳頭速度)。這使它們在近戰中非常弱,激勵玩家在遠距離使用它們。
skillAdjustment
來自玩家武器技能等級與怪物等級差距的指數調整:
skillAdjustment = 2 ^ ((weaponSkillLevel - mobLevel) / 7.5)
每相差 7.5 個等級就會使玩家傷害加倍(或減半)。這與 Boss 對玩家傷害中所使用的防禦性技能調整速率相符,產生對稱的戰鬥。
| 技能差距 | 技能調整 | 效果 |
|---|---|---|
| -15 | 0.25x | 四分之一傷害 |
| -7.5 | 0.50x | 一半傷害 |
| 0(相符) | 1.0x | 基準 |
| +7.5 | 2.0x | 雙倍傷害 |
| +15 | 4.0x | 四倍傷害 |
與用於 Boss 生命值調整的通用等級修飾(會被夾限)不同,攻擊性技能調整在目前的程式碼中不會被夾限。實務上,非常大的等級差距(超過 +/-22 級)可能會產生極端值,但這在正常遊戲中不太可能發生,因為武器技能的上限是 100。
weaponAdjustment
一條基於武器物品等級對怪物等級的兩段式線性曲線。這呼應了裝備防禦系統的防禦性裝備減免曲線。
weaponAdjustment = 0.5 + bonus
低於相符(weaponLevel 小於或等於 mobLevel):
bonus = 0.50 * (weaponLevel / mobLevel)
從 0(無武器)到 0.50(相符)呈線性調整。未裝備武器時,調整為 0.50(一半傷害)。
高於相符(weaponLevel 大於 mobLevel):
bonus = 0.50 + (weaponLevel - mobLevel) * 0.025
bonus = min(bonus, 0.75)
每一級高於怪物的武器提供固定 2.5%,加成上限為 0.75。需要高於怪物 +10 個武器等級才能達到上限。
| 武器情境 | 加成 | 武器調整 | 對次數的影響 |
|---|---|---|---|
| 赤手(無武器) | 0.00 | 0.50 | 6 次(慢 2 倍) |
| 半等級武器 | 0.25 | 0.75 | 4 次 |
| 相符武器(weaponLevel = mobLevel) | 0.50 | 1.00 | 3 次(基準) |
| 高於怪物 +4 級 | 0.60 | 1.10 | ~2.7 次 |
| 高於怪物 +10 級(上限) | 0.75 | 1.25 | ~2.4 次 |
cooldownOrVelocity
對於近戰武器,這是 Minecraft 的攻擊冷卻倍率(0.0 到 1.0)。在冷卻重置前就攻擊會按比例減少所有公式傷害。在完全蓄力時,cooldown = 1.0。
對於遠程/投射物攻擊(弓、弩、投擲三叉戟與技能生成的箭矢),這是正規化的發射速度。完全拉滿的弓速度約為 3.0;該值會被正規化為 min(velocity / 3.0, 1.0),並夾限在 [0, 1] 範圍內。
sweepMultiplier
當一次劍的橫掃透過 ENTITY_SWEEP_ATTACK 擊中次要目標時,那些目標會受到主要受擊傷害的 25%:
sweepMultiplier = 0.25 (次要橫掃目標)
sweepMultiplier = 1.0 (主要目標)
potionMultiplier(攻擊性)
力量與虛弱藥水效果會修改傳出的玩家傷害:
potionMultiplier = 1.0 + strengthBonus - weaknessPenalty
其中 strengthBonus = (strengthAmplifier + 1) * strengthDamageMultiplier 而 weaknessPenalty = (weaknessAmplifier + 1) * weaknessDamageMultiplier。兩個設定值都預設為 0.2,與原版行為相符(力量 I = +20% 傷害,虛弱 I = -20% 傷害)。等級相同的力量與虛弱會精確抵消。此倍率的下限為 0。
MobCombatSettings.yml 中的設定鍵為:
| Key | Default | 說明 |
|---|---|---|
strengthDamageMultiplierV2 | 0.2 | 每級力量的加成傷害 |
weaknessDamageMultiplierV2 | 0.2 | 每級虛弱的傷害懲罰 |
enchantmentMultiplier
不死剋星與節肢剋星附魔對其各自的怪物類型提供少量傷害加成,但僅在 ItemSettings.yml 中停用 useEliteEnchantments 時。當啟用菁英附魔時,此倍率永遠為 1.0。
只有高於原版上限的附魔等級(僅菁英等級)會被計入:
enchantmentMultiplier = 1.0 + eliteLevelsAboveVanillaMax * 0.025
每一個僅菁英的附魔等級提供 2.5% 的傷害加成。舉例來說,菁英武器上的不死剋星 VIII(原版上限為 V)貢獻 3 個菁英等級:1.0 + 3 * 0.025 = 1.075(對亡靈有 7.5% 加成)。
arrowDamageMultiplier
由武器技能能力(例如多重射擊、箭雨等)生成的箭矢,會攜帶儲存在投射物資料容器中的傷害倍率。這讓技能生成的箭矢能夠造成比標準箭矢受擊更少的傷害。對於玩家正常發射的箭矢,此倍率為 1.0。
尖刺傷害
尖刺傷害使用一個基於怪物基礎傷害的獨立公式,而非標準攻擊公式。只有僅菁英的尖刺等級(高於原版上限 III 的等級)會被計入:
eliteThornsLevel = totalThornsLevel - vanillaMaxThornsLevel(每件護甲部件,跨全部 4 件加總)
thornsDamage = baseDamage * eliteThornsLevel * 0.02
每一個高於原版上限的菁英尖刺等級貢獻基礎傷害的 2%。原版尖刺 III 不會觸發菁英尖刺傷害。舉例來說,如果全部 4 件護甲部件都有尖刺 V(各 2 個菁英等級),菁英尖刺等級總計為 8:每次觸發為怪物基礎傷害的 baseDamage * 8 * 0.02 = 16%。
damageModifier
來自自訂 Boss 檔案(damageModifiers)的 Boss 專屬武器類型傷害修飾。這讓 Boss 能夠對特定武器材質承受更多或更少傷害(例如一個對劍有抗性但對斧虛弱的 Boss)。對於所有未明確設定的武器類型,預設為 1.0。
combatMultiplier
來自 MobCombatSettings.yml 的全域倍率(依戰鬥模式而定為 scaledDamageToEliteMultiplier、normalizedDamageToEliteMultiplier 或 damageToEliteMobMultiplierV2)。預設為 1.0。
critMultiplier
暴擊會使最終傷害倍增 1.5 倍。暴擊機率由玩家的菁英裝備暴擊機率屬性決定。
修飾夾限
通用等級修飾(用於 Boss 生命值調整與標準戰鬥)被夾限在 MIN_MODIFIER = 0.125 與 MAX_MODIFIER = 8.0 之間,以防止在非常大的等級差距下出現極端值。這些上限約在 +/-15 級差距時達到。
然而,用於玩家對菁英及菁英對玩家傷害公式中的攻擊性與防禦性技能調整(calculateOffensiveSkillAdjustment 與 eliteToPlayerDamageFormula 中的技能調整),在目前的程式碼中不會被夾限。實務上,技能等級受最高技能等級(100)所限,這自然限制了這些數值的範圍。
實例
範例 1:25 級相符劍對抗 25 級菁英(近戰)
玩家:weaponSkillLevel=25,weapon=菁英劍 (itemLevel=25)
怪物:level=25,healthMultiplier=1.0
步驟 1 —— 基礎傷害:mobHP(25) = 2.1875 * 2^5 = 70.0,baseDamage = 70.0/3 = 23.33
步驟 2 —— 攻速因子:劍速=1.6,factor = 1.6/1.6 = 1.0
步驟 3 —— 技能調整:2^((25-25)/7.5) = 2^0 = 1.0
步驟 4 —— 武器調整:weaponLevel(25) == mobLevel(25),bonus=0.50,adj = 1.0
步驟 5 —— 冷卻:完全蓄力 = 1.0
步驟 6 —— 橫掃:主要目標 = 1.0
formulaDamage = 23.33 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 = 23.33
怪物生命值 = 70.0 -> 擊殺所需次數 = 70.0 / 23.33 = 3.0
範例 2:25 級斧對抗 25 級菁英(受抑制的爆發補償)
玩家:weaponSkillLevel=25,weapon=菁英斧 (itemLevel=25)
怪物:level=25,healthMultiplier=1.0
步驟 1 —— 基礎傷害:23.33(同上)
步驟 2 —— 傳統攻速因子:1.6/1.0 = 1.6
步驟 3 —— 斧爆發抑制:sqrt(1.6) = 1.265
步驟 4 —— 技能調整:1.0(相符)
步驟 5 —— 武器調整:1.0(相符)
步驟 6 —— 冷卻:完全蓄力 = 1.0
formulaDamage = 23.33 * 1.265 * 1.0 * 1.0 * 1.0 = 29.52
擊殺所需次數 = 70.0 / 29.52 = 2.37
範例 3:25 級鋤對抗 25 級菁英(傳統快速武器因子)
玩家:weaponSkillLevel=25,weapon=菁英鋤 (itemLevel=25)
怪物:level=25,healthMultiplier=1.0
步驟 1 —— 基礎傷害:23.33(同上)
步驟 2 —— 攻速因子:鋤速=4.0,factor = 1.6/4.0 = 0.4
步驟 3 —— 技能調整:1.0(相符)
步驟 4 —— 武器調整:1.0(相符)
步驟 5 —— 冷卻:完全蓄力 = 1.0
formulaDamage = 23.33 * 0.4 * 1.0 * 1.0 * 1.0 = 9.33
擊殺所需次數 = 70.0 / 9.33 = 7.5
範例 4:20 級弓對抗 healthMultiplier=2.0 的 25 級菁英(遠程,等級不足)
玩家:weaponSkillLevel=20,weapon=菁英弓 (itemLevel=20)
怪物:level=25,healthMultiplier=2.0,實際生命值 = 70.0 * 2 = 140.0
步驟 1 —— 基礎傷害:23.33(來自正規化生命值,而非實際生命值)
步驟 2 —— 攻速因子:遠程,不適用 = 1.0
步驟 3 —— 技能調整:2^((20-25)/7.5) = 2^(-0.667) = 0.63
步驟 4 —— 武器調整:weaponLevel(20) < mobLevel(25),bonus = 0.5*(20/25) = 0.4,adj = 0.9
步驟 5 —— 箭矢速度:完全拉滿 = 1.0
formulaDamage = 23.33 * 1.0 * 0.63 * 0.9 * 1.0 = 13.23
擊殺所需次數 = 140.0 / 13.23 = 10.6 次
(技能與武器皆等級不足,並對抗一隻 healthMultiplier=2.0 的怪物)
DamageBreakdown 除錯工具
EliteMobs 包含一個內建的 DamageBreakdown 除錯工具,會即時追蹤並顯示傷害公式的每個組成部分。為某名玩家啟用後,它會記錄每一層(基礎傷害、攻速因子、技能調整、武器調整、冷卻、橫掃、尖刺等),並能輸出:
- 一份完整格式化的明細,顯示所有等級、公式組成部分、倍率,以及最終計算出的傷害。
- 一份精簡的單行摘要,供快速的遊戲內參考。
- 一份預期對實際的比較,會標記出大於 10% 的差異,對於診斷外掛衝突或設定錯誤的 Boss 檔案很有用。
這主要是一個開發與測試工具。伺服器管理員可以用它來驗證特定遭遇戰的戰鬥是否如預期般運作。
技能 XP 進程
武器與護甲技能透過擊殺菁英怪物賺取 XP 來升級。XP 系統使用立方等級需求,以建立平順的進程,並在等級 100 之後設有軟上限。
來自擊殺的 XP: 從一隻怪物賺取的 XP 等於 mobLevel^2。等級越高的怪物授予的 XP 就成比例越多。
到下一級的 XP:
對於等級 1 到 100:
xpToNextLevel = 8.5 * L^3
對於等級 100 以上(軟上限):
xpToNextLevel = 8.5 * L^3 * (1 + ((L - 100)^2 / 100))
軟上限倍率在等級 100 處連續(倍率 = 1.0),並在其之上呈二次方增長。在等級 150 時,倍率約為 26 倍,使進一步的進程幾乎不可能。就實務目的而言,最高技能等級為 100,不過系統允許以呈指數增加的成本進行超越其上的進程。
額外戰鬥機制
一擊必殺防護
EliteMobs 防止 Boss 一擊就立即殺死玩家。無論傷害計算結果為何,傷害的上限都被設為(玩家的 generic_max_health 屬性 - 1),確保玩家永遠以至少 1 點生命值存活。此上限使用 generic_max_health 屬性而非當前生命值,因此它將所有最大生命值修飾(護甲技能加成、藥水效果等)納入考量。
盾牌格擋
當玩家用盾牌格擋時,傳入的傷害會減少 80%(在 MobCombatSettings 中設定為 blockingDamageReduction)。格擋會完全抵消遠程投射物攻擊(投射物會被移除)。
護甲技能生命值加成
玩家根據其護甲技能等級獲得額外的最大生命值。每超過 1 級就授予 +2 點生命值(+1 顆心)。這作為一個屬性修飾套用,是玩家在較高等級提高生存能力的主要方式。
等級調整摘要
下表總結了等級差距如何在兩個方向上影響戰鬥:
| 等級差距 | Boss 生命值修飾 | Boss 傷害修飾 | 難度 |
|---|---|---|---|
| -10(玩家等級過高) | 0.25x 生命值 | ~0.4x 傷害 | 微不足道 |
| -5(玩家等級過高) | 0.5x 生命值 | ~0.6x 傷害 | 非常簡單 |
| 0(同等級) | 1.0x 生命值 | 1.0x 傷害 | 平衡 |
| +5(玩家等級不足) | 2.0x 生命值 | ~1.6x 傷害 | 具挑戰性 |
| +10(玩家等級不足) | 4.0x 生命值 | ~2.5x 傷害 | 非常困難 |
調整型戰鬥
調整型戰鬥(Scaled combat)是一種專為主世界自然菁英怪物與事件 Boss 設計的替代戰鬥模式。它讓 Boss 模擬成與玩家同等級,因此裝備與技能仍然重要,但怪物顯示的等級則無關緊要。結果是,無論進度等級如何,每位玩家面對同一隻主世界怪物時都會經歷一場同等公平的戰鬥。
調整型戰鬥與正規化戰鬥的差異
EliteMobs 有三種戰鬥模式:
| 模式 | 用於 | 等級是否重要? | 設定鍵 |
|---|---|---|---|
| 標準(Standard) | 沒有特殊旗標的基本怪物 | 是 —— 傷害與生命值隨怪物實際等級調整 | damageToEliteMobMultiplierV2 / damageToPlayerMultiplierV2 |
| 正規化(Normalized) | 地城與區域型 Boss(normalizedCombat: true) | 是 —— 但 Boss 使用一個獨立的正規化基準,以維持一致的地城平衡 | normalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier |
| 調整型(Scaled) | 自然主世界菁英與事件 Boss(scaledCombat: true 或全域設定) | 否 —— Boss 被模擬成玩家的等級 | scaledDamageToEliteMultiplier / scaledDamageToPlayerMultiplier |
關鍵區別:在正規化戰鬥中,50 級 Boss 比 10 級 Boss 更難。在調整型戰鬥中,兩者都感覺像是同等級戰鬥,因為系統會假裝 Boss 是玩家所處的任何等級。
運作方式
傷害(Boss 對玩家)
當一個調整型戰鬥 Boss 對玩家造成傷害時,傷害公式會將 Boss 的等級設為等於玩家的護甲技能等級:
mobLevel = armorSkillLevel(而非 Boss 的實際等級)
這表示技能調整變為 1.0(因為 bossLevel - armorSkillLevel = 0),傷害完全取決於玩家的裝備與護甲技能 —— 而非怪物儲存的等級。其餘的公式(基礎傷害、裝備調整、藥水等)運作方式與上方各章節所述完全相同。
傷害(玩家對 Boss)
當玩家攻擊一個調整型戰鬥 Boss 時,公式會:
- 將 Boss 模擬成玩家的武器技能等級 —— 暫時將怪物視為與玩家武器技能同等級。
- 針對該模擬等級執行標準傷害公式 —— 產生一個「對抗同等級怪物的傷害」結果。
- 重新調整為 Boss 的實際生命值 —— 將公式傷害從模擬怪物生命值的百分比,轉換為 Boss 實際生命值池的相同百分比。
simulatedMobLevel = playerWeaponSkillLevel
formulaDamage = playerToEliteDamageFormula(player, eliteEntity at simulatedMobLevel)
damagePercentage = formulaDamage / simulatedMobHP
actualDamage = damagePercentage * actualBossMaxHP
這表示無論 Boss 儲存的等級為何,一名裝備妥當的玩家永遠都能以相同的、相對於武器的攻擊次數擊殺一個調整型戰鬥 Boss。對於 healthMultiplier: 1.0,基準大約是 3 次劍擊;其他武器家族則遵循上方所述的攻速因子。
戰利品與獎勵
對於調整型戰鬥怪物,戰利品獎勵是基於玩家的戰鬥等級而非怪物的等級。這表示高等級玩家擊殺一隻調整型主世界菁英會獲得適合其進度的戰利品,而低等級玩家擊殺同一隻怪物則會獲得適當較低等級的戰利品。
等級顯示
調整型戰鬥實體在其名牌中顯示一個符號而非數字等級,因為它們的實際等級與玩家無關:
- 標準調整型實體(healthMultiplier 1.0 或更低):顯示劍的符號(預設:
「⚔」) - 高威脅調整型實體(healthMultiplier 高於 1.0):顯示骷髏符號(預設:
☠)
這些符號可在 MobCombatSettings.yml 中透過 scaledStandardLevelSymbol 與 scaledHighThreatLevelSymbol 自訂。
啟用調整型戰鬥
為所有自然菁英啟用(全域設定)
在 MobCombatSettings.yml 中:
useScaledCombatForNaturalElites: true
這在 EliteMobs 10 中預設為啟用。啟用時,主世界中所有自然生成的菁英怪物都會自動使用調整型戰鬥。使用 normalizedCombat 的地城 Boss 不受此設定影響。
為個別自訂 Boss 啟用
在自訂 Boss 設定檔中:
scaledCombat: true
這會強制特定的自訂 Boss 使用調整型戰鬥,無論全域設定為何。對於應該讓所有玩家都感覺同等公平的事件 Boss 或自訂主世界遭遇戰很有用。
注意: 如果一個 Boss 有 normalizedCombat: true(或它是一個全域啟用了正規化的區域型/實例型 Boss),正規化戰鬥會取得優先權,且該 Boss 不會使用調整型戰鬥 —— 除非在 Boss 檔案中明確設定了 scaledCombat: true,在這種情況下調整型戰鬥勝出。
設定鍵
以下 MobCombatSettings.yml 設定鍵控制調整型戰鬥行為:
| Key | Default | 說明 |
|---|---|---|
useScaledCombatForNaturalElites | true | 為所有自然生成的菁英啟用調整型戰鬥 |
scaledDamageToEliteMultiplier | 1.0 | 玩家對調整型戰鬥 Boss 傷害的全域倍率 |
scaledDamageToPlayerMultiplier | 1.0 | 調整型戰鬥 Boss 對玩家傷害的全域倍率 |
scaledStandardLevelSymbol | 「⚔」 | 標準調整型實體名牌中顯示的符號 |
scaledHighThreatLevelSymbol | ☠ | healthMultiplier 高於 1.0 的調整型實體所顯示的符號 |
useRecommendedHealthScaling | true | 為自然菁英使用 EliteMobs 10 的指數生命值調整(false = 傳統線性數值,見下方) |
何時使用各種戰鬥模式
- 正規化戰鬥(
normalizedCombat: true):用於地城、實例與區域型 Boss,當你想要精確控制難度,且 Boss 有一個玩家被預期要去相符的固定等級時。 - 調整型戰鬥(
scaledCombat: true或全域設定):用於主世界內容、事件 Boss,以及任何所有等級的玩家都應有相同體驗的遭遇戰。 - 標準戰鬥(兩個旗標皆無):用於原始等級應直接決定難度的怪物,例如出生點附近隨距離調整的菁英。
傳統生命值調整(useRecommendedHealthScaling: false)
當 MobCombatSettings.yml 中的 useRecommendedHealthScaling 設定為 false 時,自然菁英怪物(非地城或區域型 Boss)會使用一個簡化的傳統公式,而非指數調整:
baseDamage = level * 2
mobHealth = baseDamage * 3 (TARGET_HITS_TO_KILL_MOB)
這會產生小得多的生命值與傷害數字,更接近 EliteMobs 9 的行為。此設定存在的目的,是為了與那些圍繞較舊 EliteMobs 戰鬥數字建構整合的伺服器維持向後相容。不建議使用它,因為它會使玩家進程感覺較為平淡。此設定不影響正規化的區域型 Boss 戰鬥。
將此資料用於地城
注意:這假設你使用的是 normalizedCombat 數值! 那些數值是專門為了更輕鬆地平衡地城而製作的。
Boss 難度的一部分在於讓它對該遭遇戰具有適當的生命值與傷害。然而,請記住這只是其中一部分,powers 同樣重要。
以下內容以自訂 Boss 檔案的正確格式呈現。
簡易快速計算
有了指數調整系統,healthMultiplier 與 damageMultiplier 會直接調整基礎值:
-
healthMultiplier為 1.0 表示該 Boss 被同等級玩家擊殺大約需要 3 次劍擊。其他近戰武器依攻速因子而有所不同:受抑制的爆發武器(如斧、錘矛與近戰三叉戟)所需的次數比劍少,而鋤則需要更多次,因為它們維持傳統的快速武器因子。倍率 2.0 會使生命值加倍,0.5 會使其減半,以此類推。 -
damageMultiplier為 1.0 表示該 Boss 大約以 5 次攻擊殺死一名裝備妥當的同等級玩家。較高的倍率會讓 Boss 更致命,較低的倍率會讓它更安全。
由於調整是指數性的,這些相對於武器的攻擊次數無論 Boss 等級為何都維持一致 —— 一個 healthMultiplier: 2.0 的 10 級 Boss,與一個 healthMultiplier: 2.0 的 80 級 Boss,被同等級玩家對戰時所需的相對於劍的攻擊次數是相同的。
請記住,玩家往往優先強化武器,最後常常護甲比武器差很多。除非你設計非常特定類型的遠程戰鬥競技場,否則你大概不會想要每次攻擊都造成大量傷害。 請試玩你的內容!
建立一般地城怪物
有了 normalizedCombat 的調整,你可以套用一個極為簡約的設定:
normalizedCombat: true
healthMultiplier: 1.0 #~3 次劍擊即可斬殺
damageMultiplier: 1.0 #能承受 ~5 次攻擊
注意:由於 1.0 是預設值,這表示你也可以乾脆什麼都不定義。
建立雜兵群
雜兵群數量眾多但不太危險:
normalizedCombat: true
healthMultiplier: 0.7 #~2 次劍擊即可斬殺
damageMultiplier: 0.5 #能承受 ~10 次攻擊
建立增援
增援應該很容易死,但傷害方面要構成威脅(這些數值建議用於 4 隻以上的近戰實體,實際使用可能有所不同):
normalizedCombat: true
healthMultiplier: 0.25 #~1 次劍擊即可斬殺
damageMultiplier: 0.6 #能承受 ~8 次攻擊
建立小頭目
小頭目應該要能站穩腳步,並對玩家構成機制上的挑戰。它應該是一場持續一小段時間的技巧考驗,但不是極度致命的東西:
normalizedCombat: true
healthMultiplier: 3.0 #~10 次劍擊即可斬殺
damageMultiplier: 1.2 #能承受 ~4 次攻擊
建立 Boss
Boss 是真正的挑戰,是地城中一連串鋪陳的高潮,以及一場賭上一切的真正技巧考驗。遭遇戰應該很漫長,而死亡應該是當下存在的威脅。
normalizedCombat: true
healthMultiplier: 7.0 #~23 次劍擊即可斬殺
damageMultiplier: 1.4 #能承受 ~3.5 次攻擊
建立世界Boss
世界Boss 很危險,但最重要的是它們有大量的生命值,並召喚大量的增援/擁有大量的範圍效果攻擊。這些是設計來讓大群玩家在菁英遭遇戰應持續的最長時間內對戰的。它們不是非常致命,但有許多機制能壓垮準備不足的玩家。
normalizedCombat: true
healthMultiplier: 40.0 #~120 次劍擊即可斬殺
damageMultiplier: 1.5 #能承受 ~3 次攻擊
這些只是粗略的建議數值,任何最終數值都應圍繞遭遇戰本身來調整。