跳至主要內容

技能系統

EliteMobs 使用以技能為基礎的進程系統,玩家透過與精英怪戰鬥來提升等級。玩家發展的並非單一的全域等級,而是各自獨立的武器技能與一項盔甲技能,這些技能共同決定他們的整體實力。

共有 11 種技能類型:

技能武器備註
Swords任何 _SWORD
Axes任何 _AXE
BowsBOW
CrossbowsCROSSBOW
TridentsTRIDENT
Hoes (Scythes)任何 _HOE
MacesMACE需要 Minecraft 1.21+
Spears任何 _SPEAR需要 Minecraft 1.21.11+(搭配資源包)
法杖FMM 中定義的有效 STAFF 武器需要相容的 FreeMinecraftModels
魔棒FMM 中定義的有效 WAND 武器需要相容的 FreeMinecraftModels
Armor頭盔、胸甲、護腿、靴子被動提升

技能透過使用對應武器擊殺精英怪來提升。由技能計算的戰鬥等級參與決定內容存取條件與附近自然精英怪的難度。裝備限制使用對應的武器或盔甲技能;20 級及以下的精英裝備不受限制。

技能如何提升​

當你擊殺一隻精英怪時,你會依據該怪物的等級賺取經驗值。經驗值的分配方式如下:

  • 武器 XP 按傷害貢獻分配給命中或發射投射物時記錄的技能。怪物死亡時切換武器不會改變 XP 的歸屬。
  • 護甲 XP 自動按你分得 XP 的 1/3 倍率獲得。使用多種武器時,護甲技能可能高於某個單獨的武器技能。
  • 團隊戰鬥: 當多名玩家對同一隻精英造成傷害時,經驗值會依據每位玩家的傷害貢獻按比例分配。如果你造成了 60% 的傷害,你就賺取基礎經驗值的 60%。

怪物提供的基礎經驗值​

擊殺一隻怪物所賺取的基礎經驗值為:

mob_xp = mob_level ^ 2
怪物等級賺取的經驗值
11
10100
25625
502,500
10010,000

Boss 經驗值倍率​

更強悍的怪物價值更高。上述基礎經驗值會乘上一個由該怪物 healthMultiplier 與 damageMultiplier 推導出的係數:

bossXPMultiplier = healthMultiplier^0.6 * (1 + (damageMultiplier - 1) * 0.15)

生命值部分使用次線性指數(0.6),讓較長的戰鬥有更高報酬,同時避免高生命值 Boss 變得不成比例地適合刷取。傷害部分則被大幅抑制,因為即使傷害小幅提升也會大幅拉高難度,而線性報酬會推使玩家去挑戰自殺式目標。

healthMultiplierdamageMultiplier經驗值倍率
1.01.01.00x
3.0(小 Boss)1.21.99x
7.0(Boss)1.43.41x
40.0(世界 Boss)1.59.83x

擊殺時完整的運算順序為:有效怪物等級(在下述反濫用上限之後)→ 基礎經驗值 → Boss 倍率 → 依傷害貢獻分配 → 武器經驗值與盔甲經驗值。

反濫用防護​

以下三項全都設定於 AntiExploit.yml,並在 enableFarmingProtection 為 false 時完全略過。完整設定表請參閱刷怪防護。

  • 低等級怪物(依技能而定): 每項武器/盔甲技能只有在怪物等級至多低於該特定技能等級 farmingProtectionLevelDifference(預設 15)級時才會獲得經驗值。此檢查使用的是個別技能等級,而非你的戰鬥等級,並且在調整型戰鬥下會被完全略過,因為那時怪物已被正規化到玩家身上,「等級太低」毫無意義。
  • 高等級怪物: 技能經驗值使用的有效獎勵等級上限為 combat_level + farmingProtectionLevelDifference(預設 15)。同一上限也適用於自然精英怪的戰利品;自訂 Boss 的戰利品不使用此刷怪防護等級上限。獲得經驗值的其他資格條件仍然生效。
  • 自然精英刷怪上限: 自然(非自訂 Boss)精英擊殺會在一個長度為 farmingProtectionMinutes(預設 30)的滾動視窗中被計數。在該視窗內超過 farmingProtectionKills(預設 20)次擊殺,會讓你被鎖定自然精英獎勵一整個視窗。鎖定開始時你會在聊天中收到通知,解除時也會再收到一則。自訂 Boss 不受此限。

技能經驗值權限加成​

戰鬥獲得的武器與盔甲經驗值可以套用權限倍率。這些加成不會繞過獎勵資格檢查,也不會放大其他來源的經驗值。

elitemobs.perks.xp.<perk>.<skill>

使用上表中的小寫英文技能名稱(swords、armor、wands 等),或用 all 表示所有技能。

加成倍率
10percentboost1.10
25percentboost1.25
50percentboost1.50
double2.00
150percentboost2.50
triple3.00
quadruple4.00
customboostskills.yml 中的 customXpPerkMultiplier,預設 1.0

一般加成不會疊加,而是使用適用的最高倍率。customboost 會覆蓋這項選擇,即使設定倍率為 1.0 或更低也一樣。針對個別技能的明確權限拒絕會被尊重。自訂倍率必須是有限的非負數;無效值會回復為 1.0。

結果會在公開技能經驗值事件之前向下取整。例如,elitemobs.perks.xp.double.swords 會將符合條件的劍經驗值加倍,但不會將盔甲經驗值加倍。

經驗值進程​

從目前等級提升到下一級所需的經驗值遵循此公式:

等級 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 倍,使後續進程變得極為困難。

每級經驗值表​

下表顯示從某個給定等級提升到下一級所需的經驗值,以及大約需要擊殺多少同等級怪物才能達成(武器技能,非盔甲):

等級升至下一級所需經驗值擊殺同等級怪物數量
108,50085
25132,812213
501,062,500425
753,585,937638
1008,500,000850
盔甲耗時更久

盔甲以武器 1/3 的速率賺取經驗值,因此與上表的數字相比,提升盔甲大約需要 3 倍的擊殺數。在等級 50 時,這表示光是盔甲就需要約 1,275 次同等級擊殺。

戰鬥等級​

你的戰鬥等級是衡量你實力的整體指標。其計算方式為:

combat_level = (highest_weapon_skill + second_highest_weapon_skill + armor_skill) / 3

結果會向下取整(整數除法)。

戰鬥等級決定:

  • 在你周圍生成的精英怪等級
  • 你能存取哪些地下城與實例化內容
  • 技能經驗值與自然精英戰利品使用的獎勵等級上限;低等級目標的經驗值資格使用各項獨立技能

裝備限制使用對應的武器或盔甲技能,而不是戰鬥等級。20 級及以下的物品不受限制。

戰鬥等級顯示​

戰鬥等級以漂浮數字顯示在頭頂,依名稱標籤的可見性規則,對你自己與其他玩家顯示。它使用基於封包的文字展示實體,並隨技能變動自動更新。顯示格式可設定(預設:Combat Lv. X)。當 [Alpha] Advanced Combat System 給予你一個啟用中的職業時,標籤會改為顯示該職業及其等級。你處於戰鬥中時,標籤上方會出現一行 ❤ current/max 血量。在 classLabelWorldExclusions 列出的世界中,職業標籤會被隱藏;沒有職業的玩家在這些世界仍會顯示戰鬥等級標籤。

config.yml 中的 usePassengerCombatLevelDisplay 預設為 true,因此標籤會作為僅存在於封包中的乘客騎在玩家身上,步行時不會落在玩家後方。其他玩家仍然看得到該玩家的名稱。設為 false 則使用跟隨文字,它會以短暫的滑行傳送跟上玩家。當其他實體騎在玩家身上時,乘客模式會自動切換為跟隨文字。當玩家騎乘的載具會把標籤安排在玩家自己的座位上時,標籤會改為騎在載具上。請參閱戰鬥回饋。

經驗值條​

當你賺取技能經驗值時,會出現一條帶動畫的 Boss 血條,顯示你朝下一級的進度。此血條具有:

  • 隨經驗值獲得而緩緩攀升的流暢動畫
  • 每種技能類型不同的顏色(例如劍為紅色、弓為綠色、盔甲為藍色)
  • 升級時的特殊粒子與音效
  • 閒置 5 秒後自動隱藏

裝備限制​

EliteMobs 裝備有與技能系統綁定的等級需求。若要裝備一件精英物品,你對應該武器或盔甲類型的技能等級必須等於或高於該物品的等級。

例外: 等級 20 或以下的物品,任何人都能裝備,不受技能等級限制。這確保新玩家能自由使用前期裝備,而不會被擋在門外。

如果你試圖裝備一件超過你技能等級的物品,你會收到一則警告訊息,且該物品將不提供任何精英加成。

技能獎勵​

隨著你提升技能,你會分四個階層解鎖特殊的戰鬥能力。每個階層解鎖的是該技能的一組獎勵,而非單一個:

階層解鎖等級
1等級 10
2等級 25
3等級 50
4等級 75

解鎖某個階層並不會給你一個欄位。你每種武器或盔甲類型一次最多可擁有 3 個啟用中的獎勵,從你已解鎖的所有獎勵中挑選。技能獎勵可透過 /em 選單,或前往冒險者公會中的技能獎勵 NPC 來管理。

skillbonuses 檔案控制的內容

skillbonuses/*.yml 檔案控制顯示名稱、說明、解鎖階層、獎勵類型、選單圖示及 lore 範本,也控制部分平衡數值。當某個獎勵讀取其設定時,外掛會使用 baseValue、scalingPerLevel、procChance、cooldownSeconds、maxStacks 和 stackBonus。不讀取這些設定項目的獎勵則使用程式碼中的固定常數。各獎勵具體從設定中讀取哪些值,請參閱技能獎勵。

關於全部 104 個獎勵的完整列表及其作用,請參閱技能獎勵。

通知與 UI​

技能系統提供多種形式的回饋:

  • 升級: 每次升級時的標題訊息、挑戰完成音效,以及不死圖騰粒子爆發。
  • 里程碑: 只有當玩家達到里程碑等級(每第 5 級:5、10、15、……)時才會發送全伺服器廣播。一般升級不會廣播。此廣播可在 dungeons.yml 中關閉。
  • 戰鬥等級顯示: 漂浮在頭頂的數字,依名稱標籤的可見性規則,對自己與其他玩家顯示。升級時自動更新。
  • 經驗值條: 戰鬥期間顯示技能經驗值進度的動畫 Boss 血條。
  • 經驗值獲得訊息: 選用的每次擊殺經驗值訊息(預設停用,因為可能造成洗版)。

上述大部分項目在 skills.yml 中設定;里程碑升級廣播及其訊息則位於 dungeons.yml。

管理員指令​

指令權限說明
/em skill check <player>elitemobs.skill.check查看玩家的技能等級、經驗值進度與百分比
/em skill set <player> <skillType> <level>elitemobs.skill.admin將特定技能設為某個給定等級
/em skill setAll <player> <level>elitemobs.skill.admin將所有技能設為相同等級
/em debug combat startelitemobs.admin開始自動化戰鬥系統測試
/em debug combat test <type>elitemobs.admin測試特定武器類型(例如劍、弓)
/em debug combat resultselitemobs.admin查看上一次戰鬥測試的結果
/em debug combat cancelelitemobs.admin取消進行中的戰鬥測試
備註

/em skill set 的 skillType 參數接受:ARMOR、SWORDS、AXES、BOWS、CROSSBOWS、TRIDENTS、HOES、MACES、SPEARS, STAVES, WANDS。

伺服器設定​

技能系統在 skills.yml 中設定。主要設定如下:

設定預設說明
skillSystemEnabledtrue啟用或停用整個技能系統
armorSkillHealthBonusEnabledtrue盔甲技能是否給予額外的最大生命值(等級每高於 1 級 +1 顆心)
scalePlayerHealthDisplayToVanillafalse保留 EliteMobs 的最大 HP,但在視覺上將玩家 HUD 縮放回原版的 10 顆心
forceDefaultHealthWhenArmorSkillHealthBonusDisabledfalse當盔甲生命值加成停用時,於玩家加入時強制其回到原版 20 點最大生命值
skillWorldExclusions(空)技能系統不作用的世界名稱列表。位於這些世界的玩家不會獲得技能經驗值、盔甲生命值加成、經驗值條或戰鬥等級顯示。對於希望所有人平等的活動世界很有用。比對不分大小寫
classLabelWorldExclusions(空)只隱藏玩家上方職業標籤的世界名稱列表。玩家名稱、戰鬥血量顯示、技能與經驗值皆不受影響,沒有職業的玩家仍會顯示戰鬥等級標籤。比對不分大小寫
skillsMenuTitle&5&lYour Skills技能選單標題
showCombatLevelDisplaytrue在玩家上方顯示職業或戰鬥等級標籤
showXPBartrue在戰鬥期間顯示動畫經驗值進度條
skillBarTitleFormat&6$skillName &7Lv.$level$xpText經驗值條標題格式
skillLevelUpTitleFormat&e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦升級 Boss 血條標題格式
combatLevelFormat&6&lCombat Lv. $level戰鬥等級顯示格式

如需完整的設定參考,請參閱 EliteMobs 設定頁面。

[Alpha] Advanced Combat System​

請參閱職業成長、訓練與操作指南,了解包括 Adventurer、訓練師試煉、基礎需求與 Java 按鍵在內的完整流程。

[Alpha] Advanced Combat System 為 EliteMobs 戰鬥加入職業與技能。歡迎向開發者提供 Alpha 意見。plugins/EliteMobs/AdvancedCombatSystem.yml 中的 enabled 預設為 true;設為 false 並重新載入 EliteMobs 可停用此模組。Alpha 階段的職業定義與平衡參數保持固定。舊版本的設定不會自動匯入;請在啟動更新後的伺服器之前設定此檔案。

/em class 開啟職業資料,/em class info <class> 查看形態說明,/em class select <class> 選擇已解鎖形態。這些玩家指令需要 elitemobs.command。基礎職業為 paladin、berserker、ranger、cleric、spellcaster。Spellcaster 需要相容的 FreeMinecraftModels 及其內建法杖和魔棒,內容不可用時保持鎖定。法杖與魔棒使用已註冊物品身分;普通木棒、長矛或烈焰桿不會自動變成魔法武器。

在 Java 版中,先按 F,再按 1/2/3 選擇 Mobility、Signature 或 Utility。在選擇視窗內,再按一次 F 選擇 Mobility,左鍵選擇 Signature,右鍵選擇 Utility。EliteMobs 戰鬥內容中預設啟用職業操作。allowClassAbilitiesOutsideEliteMobsWorlds 預設為 true,允許玩家在其他區域潛行時連按兩次 F,為目前工作階段啟用職業操作。

無論職業戰鬥是否啟用,GUILD_GREETER NPC 都會開啟武器技能加成選擇選單。職業訓練請找獨立的 CLASS_TRAINER NPC。職業成長獨立於武器與盔甲成長;不帶武器身分的職業技能傷害不會獲得武器經驗值。