スキルシステム
EliteMobsは、プレイヤーがエリートモブと戦うことでレベルアップする、スキルベースの進行システムを使用しています。単一のグローバルなレベルではなく、プレイヤーは個別の武器スキルと防具スキルを伸ばし、それらが合わさって全体的な強さを決定します。
スキルは11種類あります。
| スキル | 武器 | 備考 |
|---|---|---|
| Swords(剣) | 任意の_SWORD | |
| Axes(斧) | 任意の_AXE | |
| Bows(弓) | BOW | |
| Crossbows(クロスボウ) | CROSSBOW | |
| Tridents(トライデント) | TRIDENT | |
| Hoes(鎌) | 任意の_HOE | |
| Maces(メイス) | MACE | Minecraft 1.21以降が必要 |
| Spears(槍) | 任意の_SPEAR | Minecraft 1.21.11以降が必要(リソースパック付き) |
| スタッフ | experimental_arcane_staff | |
| ワンド | experimental_arcane_wand | |
| 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 |
ボスXP倍率
手強いモブほど価値があります。上記の基本XPは、モブの healthMultiplier と damageMultiplier から導かれる係数で乗算されます。
bossXPMultiplier = healthMultiplier^0.6 * (1 + (damageMultiplier - 1) * 0.15)
HPの成分は**劣線形の指数(0.6)**を使い、戦闘が長引くほど多く報われる一方で、高体力のボスを狩ることが不釣り合いに儲かるようにはならないようにしています。ダメージの成分は大きく減衰されています。ダメージがわずかに増えるだけで難易度は大きく上がるため、線形の報酬ではプレイヤーを自殺的な相手へ向かわせてしまうからです。
| healthMultiplier | damageMultiplier | XP倍率 |
|---|---|---|
| 1.0 | 1.0 | 1.00倍 |
| 3.0(ミニボス) | 1.2 | 1.99倍 |
| 7.0(ボス) | 1.4 | 3.41倍 |
| 40.0(ワールドボス) | 1.5 | 9.83倍 |
キル時の完全な処理順序は次のとおりです:実効モブレベル(下記のアンチエクスプロイト上限を適用後)→ 基本XP → ボス倍率 → ダメージ寄与による分配 → 武器XPと防具XP。
アンチエクスプロイト保護
以下の3つはすべて AntiExploit.yml で設定され、enableFarmingProtection が false の場合は完全にスキップされます。設定表の全体はファーミング保護を参照してください。
- 低レベルのモブ(スキルごと): 各武器/防具スキルは、モブがその特定のスキル自体のレベルより
farmingProtectionLevelDifference(デフォルト15)レベル以内の下までである場合にのみXPを獲得します。このチェックは戦闘レベルではなく個々のスキルレベルを使用し、スケール戦闘では完全にスキップされます。スケール戦闘ではモブがプレイヤーに合わせて正規化されるため、「レベルが低すぎる」という概念が意味を持たないからです。 - 高レベルのモブ: スキルXPには、
combat_level + farmingProtectionLevelDifference(デフォルト15)を上限とする有効報酬レベルを使います。同じ上限は自然発生のエリートの戦利品にも適用されますが、カスタムボスの戦利品にはこのファーミング保護のレベル上限を使いません。XPを獲得するための他の条件も引き続き適用されます。 - 自然エリートのファーミング上限: 自然発生の(カスタムボス以外の)エリートのキルは、長さ
farmingProtectionMinutes(デフォルト30)のローリングウィンドウで数えられます。そのウィンドウ内でfarmingProtectionKills(デフォルト20)を超えると、丸1ウィンドウの間、自然エリートの報酬からロックアウトされます。ロックアウトの開始時と解除時に、それぞれチャットで通知されます。カスタムボスは対象外です。
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以下のアイテムは、スキルレベルにかかわらず誰でも装備できます。これにより、新規プレイヤーが締め出されることなく、序盤の装備を自由に使えるようになっています。
スキルレベルを超えるアイテムを装備しようとすると、警告メッセージが表示され、そのアイテムはエリートボーナスを一切提供しません。
スキルボーナス
スキルをレベルアップすると、4つのティアにわたって特別な戦闘能力がアンロックされます。各ティアは、そのスキルのボーナスを1つではなく一式アンロックします。
| ティア | アンロックレベル |
|---|---|
| 1 | レベル10 |
| 2 | レベル25 |
| 3 | レベル50 |
| 4 | レベル75 |
ティアをアンロックしてもスロットが増えるわけではありません。武器または防具種別ごとに、アンロック済みのものの中から同時に最大3つのボーナスをアクティブにできます。スキルボーナスは/emメニュー、または冒険者ギルドのスキルボーナスNPCを訪れることで管理します。
skillbonuses/*.ymlファイルは、表示名、説明、アンロックティア、ボーナスの種類、メニューアイコン、loreのテンプレートに加え、バランスの一部も制御します。各ボーナスが設定を参照する場合、プラグインはbaseValue、scalingPerLevel、procChance、cooldownSeconds、maxStacks、stackBonusを読み取ります。これらのキーを参照しないボーナスは、コード内の固定値を使います。どのボーナスがどの値を設定から取得するかは、スキルボーナスを参照してください。
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, STAVES, WANDS。
サーバー設定
スキルシステムはskills.ymlで設定します。主な設定項目:
| 設定 | デフォルト | 説明 |
|---|---|---|
skillSystemEnabled | true | スキルシステム全体を有効/無効にする |
armorSkillHealthBonusEnabled | true | Armorスキルが最大体力ボーナスを付与するかどうか(レベル1を超えるごとに+1ハート) |
scalePlayerHealthDisplayToVanilla | false | EliteMobsの最大HPは維持しつつ、プレイヤーのHUD上の表示だけをバニラの10ハートに視覚的に戻す |
forceDefaultHealthWhenArmorSkillHealthBonusDisabled | false | 防具の体力ボーナスが無効な場合、参加時にプレイヤーをバニラの最大体力20に強制する |
skillWorldExclusions | (空) | スキルシステムが無効になるワールド名のリスト。これらのワールドにいるプレイヤーは、スキルXP、防具の体力ボーナス、XPバー、戦闘レベル表示を一切受け取りません。全員が平等であるべきイベントワールドに便利です。照合は大文字小文字を区別しません |
skillsMenuTitle | &5&lYour Skills | スキルメニューのタイトル |
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設定ページを参照してください。
実験的な戦闘システム
現在のビルドには独立した実験的クラスシステムがあります。plugins/EliteMobs/Experimental Combat.ymlのenabledは既定でtrueです。falseにしてEliteMobsをリロードすると無効になります。実験期間中のクラス定義とバランスはプラグイン側で固定されています。古いサーバーへ適用する前に、インストール済みバージョンと生成された設定を確認してください。
/em classでプロフィール、/em class info <class>で形態の説明を開き、/em class select <class>で解除済みの形態を選択します。必要権限はelitemobs.commandです。基本クラスはpaladin、berserker、ranger、cleric、spellcasterです。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を2回押すと、そのセッション中は有効になります。
モジュール有効時、GUILD_GREETERはGuild Trainingを開き、無効時は武器スキルボーナス選択画面を開きます。クラスの成長は武器・防具と別です。武器識別情報のないクラス能力のダメージでは武器XPを得られません。