メインコンテンツまでスキップ

MythicMobs

TypeWriter から MythicMobs のモブのスポーン、スキル発動、討伐目標、リージョンスポナーを利用できます。

無料v0.12連携
必要TypeWriter0.9Quest (TypeWriter extension)MythicMobsPacketEvents任意

概要​

MythicMobs 拡張機能は、MythicMobs プラグインを TypeWriter に接続します。モブとスキルはこれまでどおり MythicMobs で定義し、TypeWriter は、それらがいつ、誰に対して現れるかを決めます。シーケンスからモブをスポーンまたはデスポーンさせたり、スキルを発動したり、プレイヤーがモブを倒したりモブとやり取りしたときに反応したり、討伐数をクエストの目標としてカウントしたり、プレイヤーが近くにいる間リージョンにモブをスポーンさせたりできます。

モブはプライベートにできます。onlyVisibleForPlayer または visibilityGroup を指定してスポーンしたモブは、そのプレイヤーまたはグループにだけ表示され、他の誰にも攻撃されず、ターゲットにされず、クリックされず、サウンドとパーティクルも他のプレイヤーには見えません。これにより、共有サーバーでも、個人用のボス戦やプレイヤーごとのクエストモブが実現できます。

0.12 以降、可視性は TypeWriter の fact にも従えます。visibilityCriteria を使うと、criteria を満たすプレイヤーだけがモブを見て、狙われ、傷つけることができ、criteria は継続的に再評価されます。fact で動かすプライベートアリーナにグループは不要です。

この拡張機能は Paper と Folia で動作し、討伐目標には TypeWriter の Quest 拡張機能が必要です。実際のソースリポジトリは Typewriter-MythicMobs です。

機能​

  • スポーンとデスポーン — レベルを指定して指定位置にモブをスポーンさせるか、ある種類のアクティブなモブをすべて削除します。
  • スキルの発動 — アクション、またはシネマティックのセグメントから、プレイヤーとして MythicMobs のスキルを実行します。
  • モブのイベント — プレイヤーがモブを倒したとき、モブに倒されたとき、モブを右クリックしたときに、シーケンスを開始します。
  • 討伐目標 — 名前または正規表現で MythicMobs の討伐数をカウントするクエスト目標です。飛び道具やテイムしたペットによる討伐もカウントします。
  • リージョンスポナー — プレイヤーが近くにいるとき、1 つまたは複数のボックス内にモブをスポーンさせます。上限、クールダウン、ウォームアップに対応します。 任意の group により、そのグループのメンバーに限定でき、グループごとに独自のサイクルを持ちます。
  • プライベートモブ — 可視性をプレイヤー、グループ、または criteria(fact)を満たすプレイヤーに限定します。ダメージ、ターゲット、インタラクション、サウンド、パーティクルも対象です。
  • シネマティックモブ — シネマティック中にモブをスポーンさせ、他のすべてのプレイヤーには見えないようにし、タイムライン上でスキルを発動します。
  • モブ数ファクト — ある種類のモブが現在いくつアクティブかを、ダイアログや条件に利用できます。

インストール​

  1. サーバーに MythicMobs をインストールします。
  2. TypeWriter の公式 Quest 拡張機能をインストールします。
  3. 推奨: PacketEvents をインストールします。プライベートモブのサウンドとパーティクルを隠すために使われます。ない場合、拡張機能は PacketEvents not loaded — sound isolation disabled とログに出力し、プライベートモブは見た目の上では非公開のままですが、音は消えません。
  4. MythicMobs 拡張機能の JAR を plugins/Typewriter/extensions/ に置きます。
  5. サーバーを再起動します。

はじめに​

クエストを受諾したプレイヤーにだけボスを出現させ、そのボスが倒されたら目標を達成する手順です。

  1. MythicMobs で、モブ(例: CryptKing)を作成します。
  2. TypeWriter の Web パネルで sequence ページを開き、Spawn Mob アクションを追加します。
  3. mobName を CryptKing、level を 1 に設定し、spawnLocation をその地点にして(ゲーム内で位置をキャプチャします)、onlyVisibleForPlayer をオンにします。
  4. クエストの開始時にアクションが実行されるよう、トリガーまたは criteria をリンクします。
  5. クエストページを開き、MythicMob Kill Objective を追加します。quest と、fact(進行状況を保存するキャッシュ可能なファクト)をリンクし、mythicMobName を CryptKing、amount を 1 に設定して、display のテキストを書きます。
  6. 任意: onComplete に、報酬を与えるシーケンスを設定します。
  7. パブリッシュしてテストします。他のプレイヤーには、ボスが見えず、攻撃できず、音も聞こえません。
クエストなしで討伐に反応する

mobName を指定した Mob Death Event を使い、triggers に、実行したいシーケンスをリンクします。プレイヤーがモブを倒したときに発火します。

一部のプレイヤーにだけ見える戦闘​

プライベートアリーナです。特定の fact を満たすプレイヤーだけがモブを見て、モブに狙われ、戦うことができます。

  1. fact(例: in_arena)を作成し、アリーナに入るプレイヤーに設定します。
  2. Spawn Mob アクションを追加し、visibilityCriteria にその fact を設定します。criteria は visibilityRefreshInterval(既定は 1 秒)ごとに再評価されます。アリーナを出たプレイヤーはすぐにモブを失い、モブはターゲットを手放します。
  3. 好きなトリガーから戦闘を開始します。
  4. scope を VISIBLE_TO_PLAYER(そのプレイヤーに見えるモブだけを削除)にした Despawn Mob アクションで終了するか、abandonRange(0 より大きい値)と abandonDelay でモブを自動的に退場させます。許可されたプレイヤーが遅延の間ずっと範囲内にいない場合、モブは削除されます。Web エディタは新しい Duration を 1 秒で埋めるため、abandonDelay を確認してください。
  5. 任意: collidable を false にすると、衝突と押し出しがなくなります。その場合は全員に適用されます。

制限付きモブに関わるすべてのダメージ(近接、飛び道具、MythicMobs スキル、炎)は、許可されていないプレイヤーに対して遮断され、その逆も同様です。飛び道具は通り抜けます。

ダメージのないスキル(ポーション、投げ飛ばしなど)は、プレイヤーに結び付けられません。これらに MythicMobs のターゲット条件 typewritervisible(エイリアス twvisible)を追加してください。ターゲットが発動者を見ることを許可されている場合のみ真になります。

インラインでは、ターゲッターの条件として指定します。[ の後ろの 2 つのスペースと ] の前の 1 つのスペースは、MythicMobs に必要なのでそのまま残してください。

Skills:
- potion{type=SLOW;duration=100} @PlayersInRadius{r=10;conditions=[ - twvisible true ]} ~onTimer:40

行末に ?twvisible を書かないでください。MythicMobs はこの種の条件を、ターゲットにしたプレイヤーではなくモブに対して判定します。

またはメタスキルで指定します。メタスキル自身の行にはターゲッターを付けません。条件を通過した各ターゲットに対して実行されます。

# モブのファイル
Skills:
- skill{s=ArenaBossSlow} @PlayersInRadius{r=10} ~onTimer:40

# スキルのファイル
ArenaBossSlow:
TargetConditions:
- twvisible
Skills:
- potion{type=SLOW;duration=100}

ターゲッター内の twvisible false はその逆で、モブを見ることが許可されていないプレイヤーのみが対象になります。

注記

MythicMobs は Typewriter が読み込まれる前に自分のファイルを読み込みます。そこに twvisible が含まれている場合、拡張機能はサーバー起動時に一度だけ /mm reload を実行するので、特に操作は不要です。この条件は Typewriter のリロード後も動作し続けます。Typewriter が停止している場合は、すべてのプレイヤーを通過させ、/mm reload を求める警告を一度ログに出力します。

制限。 衝突は全か無かです。ダメージのないスキルは twvisible がなければフィルタされません。モブから離れた場所で再生されるサウンドとパーティクルは隠されません。元のエントリーが削除されたモブは、全員に対して非表示のままです。サーバー再起動後は、abandonRange を持つモブは、abandonDelay の間に許可されたプレイヤーが近づかなければ削除されます。

仕組み​

設定​

ほとんどの設定はエントリのフィールドです。知っておくべき動作が 2 つあります。

  • 自動分離。 MythicMobs のモブファイルで Options.VisibilityGroup: nearby を設定すると、モブはスポーン時に、最も近いプレイヤー(100 ブロック以内)にだけ見えるようになります。スポーン理由が NATURAL、RANDOM、RANDOM_SPAWN のモブは、このオプションがなくても同じ扱いを受けます。すでに TypeWriter のエントリによって制限されているモブには手を加えません。

  • モブの照合。 イベントの mobName フィールドは、MythicMobs の内部名に対して照合される正規表現です。Mob Death Event と MythicMob Interact Event では、大文字と小文字を区別しません。任意のモブに一致させるには .* を使います。

  • 目標の表示形式。 クエストトラッカーの MythicMob Kill Objective の行は、コードに固定されていません。plugins/Typewriter/snippets.yml で編集する 2 つの TypeWriter スニペットから読み込まれます。advancedQuest.display(進行中。デフォルトはグレー系の <display> (<current>/<required>))と advancedQuest.completed(数量に到達。デフォルトは ✔ に続いて取り消し線付きの <display> と進捗)です。プレースホルダー: <display>(目標の display フィールド)、<current>、<required>。PlaceholderAPI のプレースホルダーも解析されます。この 2 つのキーは他の BTC の目標系エクステンションと共有されているため、1 回の編集ですべてのカウント系目標のスタイルが変わります。

エントリ​

14 件のエントリー(拡張機能のソースから生成)。

アクション3
イベント3
目標1
ファクト4
シネマティック2
定義1
プレースホルダーのファクト

MythicMob Faction、MythicMob Level、MythicMob Stance は、現在のリリースでは常に 0 を返します。これらは将来のバージョンのために予約されています。これらに基づく条件は作らないでください。

トラブルシューティング​

何もスポーンしない。 mobName は、既存のモブの MythicMobs 内部名でなければなりません。モブが不明な場合、Spawn Mob は何も通知せずに何もしません。MythicMobs のモブファイル名と見比べてください。

ログに「Skill ... not found」エラーが出る。 Execute Skill と Skill Cinematic は、skillName が MythicMobs のスキルでない場合に、このエラーを出します。ログにスキルが「is not usable at this time」と出る場合は、クールダウン中か、条件を満たしていません。

スポナーがまったくスポーンしない。 プレイヤーが、リージョンの defaultActivationRange(デフォルトは 24 ブロック。リージョンの中心までの距離で測ります)以内にいる必要があります。スポナーは 1 秒に 1 回チェックされ、サーバー起動の約 5 秒後に開始します。また、criteria、warmup が経過していること、クールダウン(defaultCooldown、ティック単位)が経過していること、範囲内のモブ数が defaultMaxMobs 未満であることも確認してください。mobType を正しく設定してください。そうでないと、ログに Cannot find MythicMob ... と出力されます。

他のプレイヤーにプライベートモブが見えてしまう。 可視性が適用されるのは、TypeWriter のエントリ、nearby オプション、または自然スポーンによってスポーンしたモブだけです。それ以外のモブは公開されたままです。また、スポーンアクションにはプレイヤーが必要です。visibilityGroup を設定していても、プレイヤーがどのグループにも属していない場合、モブはトリガーしたプレイヤーだけにフォールバックします。

討伐目標がカウントされない。 目標がカウントされるのは、quest がプレイヤーに対してアクティブで、プレイヤー(またはその飛び道具やテイムしたペット)がとどめを刺した場合だけです。mobs が空でない場合、mythicMobName は無視されます。fact が、キャッシュ可能なファクトエントリであることを確認してください。

プレイヤーを倒したイベントが発火しない。 MythicMob Kill Player Event は、mythicMobType を、死亡の原因となったモブの内部名に対する、大文字と小文字を区別する正規表現として照合します。任意の MythicMob に一致させるには、空にしてください。

関連する拡張機能​

  • MythicMobs NPC — MythicMobs のモブを、対話できる NPC として使います。