跳至主要內容

技能系統

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

共有 11 種技能類型

技能武器備註
Swords任何 _SWORD
Axes任何 _AXE
BowsBOW
CrossbowsCROSSBOW
TridentsTRIDENT
Hoes (Scythes)任何 _HOE
MacesMACE需要 Minecraft 1.21+
Spears任何 _SPEAR需要 Minecraft 1.21.11+(搭配資源包)
法杖experimental_arcane_staff
魔棒experimental_arcane_wand
Armor頭盔、胸甲、護腿、靴子被動提升

技能透過使用對應的武器擊殺精英怪來提升。你的戰鬥等級(由你的技能計算而來)決定了你能存取哪些內容、能裝備哪些裝備,以及在你周圍生成何種難度的怪物。

技能如何提升

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

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

怪物提供的基礎經驗值

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

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

Boss 經驗值倍率

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

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,並在 enableFarmingProtectionfalse 時完全略過。完整設定表請參閱刷怪防護

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

經驗值進程

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

等級 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

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

戰鬥等級決定:

  • 在你周圍生成的精英怪等級
  • 你能裝備的裝備(裝備等級必須等於或低於你對應的技能等級)
  • 你能存取哪些地下城與實例化內容
  • 經驗值與戰利品的資格(反濫用檢查使用戰鬥等級)

戰鬥等級顯示

你的戰鬥等級會以漂浮在你頭頂上方的數字顯示,其他玩家也能看見。這使用基於封包的文字顯示,並會在你的技能改變時自動更新。顯示格式可自訂(預設:Combat Lv. X)。

經驗值條

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

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

裝備限制

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

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

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

技能獎勵

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

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

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

skillbonuses 檔案控制的內容

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

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

通知與 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 setskillType 參數接受:ARMORSWORDSAXESBOWSCROSSBOWSTRIDENTSHOESMACESSPEARS, STAVES, WANDS

伺服器設定

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

設定預設說明
skillSystemEnabledtrue啟用或停用整個技能系統
armorSkillHealthBonusEnabledtrue盔甲技能是否給予額外的最大生命值(等級每高於 1 級 +1 顆心)
scalePlayerHealthDisplayToVanillafalse保留 EliteMobs 的最大 HP,但在視覺上將玩家 HUD 縮放回原版的 10 顆心
forceDefaultHealthWhenArmorSkillHealthBonusDisabledfalse當盔甲生命值加成停用時,於玩家加入時強制其回到原版 20 點最大生命值
skillWorldExclusions(空)技能系統不作用的世界名稱列表。位於這些世界的玩家不會獲得技能經驗值、盔甲生命值加成、經驗值條或戰鬥等級顯示。對於希望所有人平等的活動世界很有用。比對不分大小寫
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 設定頁面。

實驗性戰鬥

目前建置包含獨立的實驗性職業系統。plugins/EliteMobs/Experimental Combat.yml 中的 enabled 預設為 true;設為 false 並重新載入 EliteMobs 可停用模組。實驗期間職業定義與平衡值固定在外掛中。舊伺服器套用本節前,應檢查已安裝版本及產生的設定。

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

/em class input java_hotbar_layer 使用 F 後按 1/2/3 觸發 Mobility、Signature、Utility。/em class input focus_item 選擇替代的 Focus 物品操作,/em class focus 領取該物品。EliteMobs 戰鬥內容中預設啟用職業操作。allowClassAbilitiesOutsideEliteMobsWorlds 預設為 true,允許玩家在其他區域潛行時連按兩次 F,為目前工作階段啟用操作。

模組啟用時,GUILD_GREETER 開啟 Guild Training;停用時開啟武器技能加成選擇選單。職業成長獨立於武器和護甲成長;不帶武器身分的職業技能傷害不會獲得武器 XP。