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

移動ルート

移動ルートでは、プレイヤーが設定済みのカスタムボスに乗り、作成者が指定した曲線に沿って移動します。ルートは plugins/EliteMobs/transport_routes/ に保存します。乗り物は custombosses/ にある通常の有効な YAML 定義を使い、そこでエンティティの種類、モデル、変装、パワーを設定します。

ルートの始点と終点は 1 組だけで、固定です。フライトマスターやフライトポータルを通じて、複数の駅の間をプレイヤーが飛べるようにしたい場合は、代わりにフライトネットワークを作ってください。ネットワークは、このページと同じ乗り物と移動のルールを使います。

ゲーム内でルートを作る​

エディターのコマンドはプレイヤー専用で、elitemobs.transport.admin が必要です。

  1. 出発地点に立ち、/em transport create guild_flight を実行します。
  2. 次の経由地点へ順に飛び、各地点で /em transport add を実行します。
  3. パーティクルのプレビューを確認します。薄い曲線には、追加予定の次の地点も含まれます。
  4. 到着時に乗客が向く方向を向き、/em transport save を実行します。
  5. 保存した乗り物とルートの設定を確認し、/em transport start guild_flight で試乗します。

エディターで作った新しいルートは、同梱のカスタムボス transport_cannon_seat.yml を参照します。必要に応じて、transportEntity を別の有効なカスタムボスのファイル名に変更します。

コマンド操作
/em transport create <id>現在位置から新しい下書きを作成
/em transport edit <id>有効な既存ルートを編集
/em transport add現在位置を末尾に追加
/em transport move <number>指定した経由地点を現在位置へ移動。番号は 1 から
/em transport remove最後の経由地点を削除
/em transport undo直前の形状編集を取り消す。履歴は最大 32 件
/em transport status現在の下書きを表示
/em transport ride保存せずに下書きを試乗。最初の経由地点から出発
/em transport save形状と到着時の向きを保存
/em transport cancel下書きを破棄
/em transport list読み込まれたルートを一覧表示
/em transport reloadルートファイルとフライトネットワークのファイルを再読み込み。飛行中の移動は元のルートを維持
/em transport start <id>保存済みルートで移動を開始
/em transport stop現在の移動を中止

保存時は、保存した経由点と到着時の向きでルートを再読み込みできたことを確認してから下書きを破棄します。確認に失敗するとエラーを表示し、ファイルへの書き込みが済んでいても、修正や再試行のために下書きを保持します。下書きはメモリ内のみで保持され、切断や終了時に消去されます。

ルートの YAML​

guild_flight.yml の例:

isEnabled: true
name: Guild flight
world: my_dungeon
transportEntity: transport_cannon_seat.yml
speed: 12
acceleration: 8
countdownTicks: 60
arrivalYaw: 90
waypoints:
- "10,70,10"
- "20,85,20"
- "40,70,40"

ルート ID は、英小文字、数字、アンダースコア、ハイフンを使った 1~64 文字にします。ワールドはプレイヤーがいる元の作成済みワールドと一致させます。そのダンジョンのインスタンス内では、元のワールド名がプレイヤーの現在のインスタンスに解決されます。生成されたインスタンス名を直接書かないでください。

speed と acceleration は有限の正数にします。countdownTicks は 0 以上で、初期値は 60 ティックです。エディターで形状を保存しても、既存の外観や移動の調整値は保持されます。

ルートファイルは extends: other_route.yml に対応しているため、あるルートが別のルートファイルの設定を継承し、異なる部分だけを上書きできます。isEnabled は継承されません。定義の再利用を参照してください。

出発のカウントダウン中は動かずに待ちます。位置が変わると出発を中止しますが、移動せずに周囲を見るだけなら中止しません。この判定は乗車前に適用され、飛行中の乗り物の移動には適用されません。/em transport ride はまずあなたを下書きの最初の経由地点へ移動させ、そのカウントダウンは、そこから 2 ブロックを超えて動いた場合にのみ中止されます。フライトポータルからのフライトでは、ポータル内での移動が許容されます。

廃止されたルート項目 carrier、customModel、flightAnimation は受け付けません。外観と動作は、参照先のカスタムボス定義に設定します。

移動用 NPC を追加する​

NPC の種類を TRANSPORT にし、読み込まれたルートの ID を .yml なしで列挙します。

interactionType: TRANSPORT
transportRoutes:
- guild_flight

これらの項目を、有効な NPC 定義に追加します。メニューには利用可能な重複しない目的地を 1~54 件指定でき、乗車前にプレイヤーが NPC の近くにいることを確認します。フライトネットワークの目的地を提供する NPC については、フライトマスターを参照してください。

ルートの空間確保と中断​

ルート上の空間はマップ作成者が確保します。乗り物は指定された曲線を進み、障害物を避ける経路探索や危険な形状の修正は行いません。予定の乗り物で全区間をプレビューして試乗し、乗り物と乗客の両方に十分な空間を用意してください。

フライトにはネイティブな飛行用 Mind を使います。サーバーバージョンに対応するものがない場合や、transportEntity が存在しない、または無効になっているなどの理由で乗り物をスポーンできない場合は、代わりに 2 秒間の盲目効果とともに、プレイヤーが終点へ直接テレポートされます。乗り物のスポーンに失敗した場合、コンソールには EliteMobs をリロードするまでルートごとに 1 回だけ記録され、elitemobs.transport.admin を持つプレイヤーにはチャットで理由が表示されます。スポーンはしたものの、プレイヤーを座らせることができなかった乗り物は、エラーを表示して移動を中止します。

飛行中にスニークしても、乗客は降りられません。死亡、テレポート、ワールドやインスタンスの変更、乗り物の削除で移動は終了します。中断時は乗り物を削除しますが、出発地点へのテレポートは保証しません。5 秒間進行しなくなったフライトは、乗客を終点に降ろします。ダンジョンインスタンスの外で飛行中に切断した乗客は、次回ログインしたときに終点へ配置され、サーバーを停止またはリロードすると、搭乗中の乗客は終点に配置されます。正常に到着すると、乗客を終点へ配置して arrivalYaw の向きにします。

エンティティの種類がニワトリまたはオウムの乗り物は、飛行中に羽根を散らし、羽ばたきます。