スキルシステム
EliteMobsは、プレイヤーがエリートモブと戦うことでレベルアップする、スキルベースの進行システムを使用しています。単一のグローバルなレベルではなく、プレイヤーは個別の武器スキルと防具スキルを伸ばし、それらが合わさって全体的な強さを決定します。
スキルの種類は9つあります。
| スキル | 武器 | 備考 |
|---|---|---|
| Swords(剣) | 任意の_SWORD | |
| Axes(斧) | 任意の_AXE | |
| Bows(弓) | BOW | |
| Crossbows(クロスボウ) | CROSSBOW | |
| Tridents(トライデント) | TRIDENT | |
| Hoes(鎌) | 任意の_HOE | |
| Maces(メイス) | MACE | Minecraft 1.21以降が必要 |
| Spears(槍) | 任意の_SPEAR | Minecraft 1.21.11以降が必要(リソースパック付き) |
| Armor(防具) | ヘルメット、チェストプレート、レギンス、ブーツ | パッシブにレベルアップ |
スキルは、対応する武器を使ってエリートモブを倒すことでレベルアップします。スキルから算出される戦闘レベルは、アクセスできるコンテンツ、装備できる装備、そして周囲にスポーンするモブの難易度を決定します。
スキルのレベルアップの仕組み
エリートモブを倒すと、そのモブのレベルに応じてXPを獲得します。XPは次のように分配されます。
- 武器XPは、メインハンドのみにある武器に対応するスキルに入ります。オフハンドの武器はXPを獲得しません。
- 防具XPは、すべてのキルで武器XPの1/3のレートでパッシブに獲得されます。つまり、防具は常に武器スキルより遅れて伸びます。
- グループ戦闘: 複数のプレイヤーが同じエリートにダメージを与えた場合、XPは各プレイヤーのダメージ貢献度に応じて比例配分されます。ダメージの60%を与えた場合、基本XPの60%を獲得します。
モブから得られる基本XP
モブを倒して得られる基本XPは次のとおりです。
mob_xp = mob_level ^ 2
| モブのレベル | 獲得XP |
|---|---|
| 1 | 1 |
| 10 | 100 |
| 25 | 625 |
| 50 | 2,500 |
| 100 | 10,000 |
アンチエクスプロイト保護
- 低レベルのモブ(スキルごと): 各武器/防具スキルは、モブがその特定のスキル自体のレベルより最大でも5レベル下までである場合にのみXPを獲得します。モブがSwordsスキルより5レベル超下である場合、そのキルからSwordsスキルは何も獲得しません(防具とArmorスキルについても同様)。このチェックは戦闘レベルではなく個々のスキルレベルを使用します。
- 高レベルのモブ: 戦闘レベルより5レベル超上のモブは、XP計算上、実効レベルが
combat_level + 5に制限されます。XPは得られますが、満額ではありません。 - 自然エリートのファーミング上限: 自然エリートを短時間に倒しすぎる(10分で10体、または1時間で30体)と、一時的なクールダウンが発生します。これはカスタムボスやダンジョンコンテンツには適用されません。
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を獲得すると、次のレベルへの進捗を示すアニメーション付きのボスバーが表示されます。このバーには次の特徴があります。
- XP獲得に合わせて少しずつ伸びるなめらかなアニメーション
- スキル種別ごとに異なる色(例:Swordsは赤、Bowsは緑、Armorは青)
- レベルアップ時の特別なパーティクルとサウンドエフェクト
- 5秒間操作がないと自動的に非表示になる
装備の制限
EliteMobsの装備には、スキルシステムに紐づいたレベル要件があります。エリートアイテムを装備するには、その武器または防具種別のスキルレベルが、アイテムのレベル以上でなければなりません。
例外: レベル20以下のアイテムは、スキルレベルにかかわらず誰でも装備できます。これにより、新規プレイヤーが締め出されることなく、序盤の装備を自由に使えるようになっています。
スキルレベルを超えるアイテムを装備しようとすると、警告メッセージが表示され、そのアイテムはエリートボーナスを一切提供しません。
スキルボーナス
スキルをレベルアップすると、節目のレベルで特別な戦闘能力がアンロックされます。
- レベル10 -- 1つ目のボーナスがアンロック
- レベル25 -- 2つ目のボーナスがアンロック
- レベル50 -- 3つ目のボーナスがアンロック
- レベル75 -- 4つ目のボーナスがアンロック
武器または防具種別ごとに、同時に最大3つのボーナスをアクティブにできます。スキルボーナスは/emメニュー、または冒険者ギルドのスキルボーナスNPCを訪れることで管理します。
84種類以上すべてのボーナスとその効果の完全なリストについては、スキルボーナスを参照してください。
通知とUI
スキルシステムは、いくつかの形式のフィードバックを提供します。
- レベルアップ: タイトルメッセージ、チャレンジ達成音、そしてレベルアップごとの不死のトーテムのパーティクルバースト。
- マイルストーン: プレイヤーがマイルストーンレベル(5レベルごと:5、10、15……)に到達したときにのみ、サーバー全体へのブロードキャストが送信されます。通常のレベルアップはブロードキャストされません。このブロードキャストは
dungeons.ymlでオフに切り替えられます。 - 戦闘レベルの表示: 頭上に浮かぶ数字。他のプレイヤーからも見え、レベルアップ時に自動的に更新されます。
- XPバー: 戦闘中にスキルXPの進捗を示すアニメーション付きのボスバー。
- 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 | Armorスキルが最大体力ボーナスを付与するかどうか(レベル1を超えるごとに+1ハート) |
scalePlayerHealthDisplayToVanilla | false | EliteMobsの最大HPは維持しつつ、プレイヤーの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✦ | レベルアップ時のボスバーのタイトルフォーマット |
combatLevelFormat | &6&lCombat Lv. $level | 戦闘レベル表示のフォーマット |
設定の完全なリファレンスについては、EliteMobs設定ページを参照してください。