移動ルート
移動ルートでは、プレイヤーが設定済みのカスタムボスに乗り、作成者が指定した曲線に沿って移動します。ルートは plugins/EliteMobs/transport_routes/ に保存します。乗り物は custombosses/ にある通常の有効な YAML 定義を使い、そこでエンティティの種類、モデル、変装、パワーを設定します。
ルートの始点と終点は 1 組だけで、固定です。フライトマスターやフライトポータルを通じて、複数の駅の間をプレイヤーが飛べるようにしたい場合は、代わりにフライトネットワークを作ってください。ネットワークは、このページと同じ乗り物と移動のルールを使います。
ゲーム内でルートを作る
エディターのコマンドはプレイヤー専用で、elitemobs.transport.admin が必要です。
- 出発地点に立ち、
/em transport create guild_flightを実行します。 - 次の経由地点へ順に飛び、各地点で
/em transport addを実行します。 - パーティクルのプレビューを確認します。薄い曲線には、追加予定の次の地点も含まれます。
- 到着時に乗客が向く方向を向き、
/em transport saveを実行します。 - 保存した乗り物とルートの設定を確認し、
/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 の向きにします。
エンティティの種類がニワトリまたはオウムの乗り物は、飛行中に羽根を散らし、羽ばたきます。