Vehicle
概要
Vehicle を使うと、プレイヤーは、車、ボート、空飛ぶ乗騎などのカスタム乗り物を、所有し、呼び出し、運転できます。乗り物タイプ(見た目、速度、体力、燃料、戦闘、成長)を 1 度だけ定義すると、各プレイヤーは、そのインスタンスを、独自のレベル、燃料、体力、シールド、スキンとともに所有し、アーティファクトに保存されます。プレイヤーは、ガレージメニューまたはアクションから乗り物を呼び出し、移動キーで乗り、格納します。
乗り物は、2 つの部分で構成されます。透明なキャリアエンティティが、物理演算と乗員を担当します。それにビジュアルが取り付けられます。表示されたアイテム、バニラのモブ、BetterModel のモデル、BTCMobs のモブのいずれかです。そのため、手軽な乗り物にはシンプルなアイテムを、看板となる乗り物にはアニメーション付きのモデルを使えます。
運転、燃料、ダメージ、アビリティ、レベルアップは、すべて TypeWriter に公開されます。イベントを発火し、ファクトを公開し、アビリティは TypeWriter の任意のアクションのリストを実行します。TypeWriter の BTC ビルド上で動作し、BTC Core の機能が必要です。
機能
- 4 種類の移動タイプ —
GROUND、WATER、AMPHIBIOUS、AIR。それぞれ専用のキャリアを持ちます。 - 4 種類のビジュアル —
display(アイテム)、vanilla(モブ)、bettermodel、btcmobs。モデルはプレイヤーごとに解決されます。 - 燃料 — タンク、1 秒あたりの消費量、受け入れる燃料アイテム、給油アクション。
- 体力とシールド — 被弾はまずシールドが吸収し、体力が 0 になると乗り物は破壊され、修理が必要になります。
- レベルとステータス — 設定可能な経験値曲線と、レベルごとのステータスボーナス。
- 戦闘 — 射程、クールダウン、スタミナ消費を持つ左クリック攻撃、ジャンプキー長押しによるチャージ、任意の衝突ダメージ。
- アビリティ — クールダウンとスタミナ消費を持ち、TypeWriter の任意のアクションを実行する、発動可能なアビリティ。
- ガレージメニュー — プレイヤーの乗り物を表示する、GUI レイアウトで構築されたページ分割メニュー。
- 所有数の上限 — パーミッションで引き上げられる、基本の上限。
- イベントとファクト — 衝突、燃料切れ、レベルアップ、攻撃、チャージヒット、破壊、スタミナ枯渇。
インストール
- BTCMobs と Basic のエクステンション(どちらも宣言された依存関係)と、ガレージメニュー用の GUI エクステンションをインストールします。BTCMobs を参照してください。
- PacketEvents をインストールします。ないと、操縦が無効になり、ログに
PacketEvents not found! WASD steering will be disabled.と表示されます。 - 任意で、
bettermodelビジュアルを使うために、BetterModel をインストールします。 - Vehicle の JAR を
plugins/Typewriter/extensions/に配置し、サーバーを再起動します。
はじめに
- TypeWriter の Web パネルでスタティックページを開き、Vehicle Storage アーティファクトを追加します。
- Vehicle Config エントリーを 1 つ追加し、
storageにアーティファクトを設定します。ないと、乗り物のデータは読み込まれも保存もされず、ログにAucun stockage designeと表示されます。 - Vehicle Definition を追加します。
movement(GROUND)、visual(MINECARTなどの素材を持つdisplay)を選び、stats、fuel(allowedFuelsにアイテムを追加)、combatを調整します。 - そのデフィニションを参照する Spawn Vehicle アクションを追加し、コマンド、NPC、イベントからトリガーします。最初の呼び出しで、プレイヤーには、燃料と体力が満タンのこのタイプの新しい乗り物が与えられ、それに搭乗します。
- ガレージには、
layoutPoolで構築した Vehicle Garage Menu を追加し、Open Vehicle Garage をトリガーします。 - ガソリンスタンドやガレージの NPC に、Refill Vehicle Fuel と Repair Vehicle を追加します。Publish してテストします。
Vehicle は、独自のコマンドを登録しません。呼び出し、格納、修理は、アクション、ガレージメニュー、または TypeWriter のコマンドエントリーを通じて行います。
仕組み
キャリアは movement によって異なります。GROUND はサーバーが動かすアーマースタンドを、WATER と AMPHIBIOUS はクライアント自身がシミュレートするボートを、AIR はハッピーガストを使用します。ボートの場合、サーバーは運転せず、毎 tick 検証を行い、maxSpeed を超えたとき、タンクが空のとき、または(GROUND では)液体に入ったときに、乗り物を元の位置に戻します。
操縦には、プレイヤーの入力パケット(前進、後退、左、右、ジャンプ、スニーク)が使われます。降りると、乗り物は格納されます(消去され、データが保存されます)。
乗り物のインスタンスは、レベル、経験値、体力、シールド、燃料、スキンを持ちます。ステータスには 1 + statBonusPerLevel * (level - 1) が掛けられます(重力は除く)。レベルを上げるために必要な経験値は baseXp * level ^ xpGrowth です。maxLevel では、経験値は増えなくなります。
メニュー
Vehicle Garage Menu は、他の GUI メニューと同じように構築します。layoutPool、mainLayoutId、任意の views、共有シャーシを継承するための baseMenuId です。次のボタンタイプ(アイテムの buttonType)でアイテムを配置します。
| ボタンタイプ | 動作 |
|---|---|
vehicle_button:VEHICLE_SLOT#<n> | プレイヤーの n 番目の乗り物(インスタンス ID 順)を表示します。クリックすると呼び出します。プレイヤーの所有数が少ない場合は空です。 |
vehicle_button:VEHICLE_SPAWN | アクティブな乗り物を呼び出します。 |
vehicle_button:VEHICLE_DESPAWN | 搭乗中の乗り物を格納し、メニューを閉じます。 |
vehicle_button:VEHICLE_INFO | アクティブな乗り物のレベル、燃料、体力をチャットに出力します。 |
vehicle_button:NAV_BACK | 前のメニューに戻ります。 |
vehicle_button:NAV_CLOSE | メニューを閉じます。 |
vehicleDisplay は、乗り物のスロットの見た目を設定します。item、nameFormat、lore で、トークン %name%、%level%、%max_level%、%fuel%、%max_fuel%、%health%、%max_health%、%shield% を使用できます。ボタン用に配置したアイテムは、ページが定義している場合、独自の名前とロアを保持します。
パーミッション
| パーミッション | 許可される内容 |
|---|---|
typewriter.vehicle.limit.<n> | Vehicle Ownership Limit エントリーがこれを読み取るときに、所有数の上限を <n> だけ引き上げます(最も高い値が有効です)。 |
エクステンションが定義する他のパーミッションはありません。
プレースホルダー
2 つのファクトは、TypeWriter を通じてプレースホルダーとして読み取れます。Vehicle Ownership Limit と Vehicles Owned Count で、それぞれ数値を返します。エクステンションは、独自のプレースホルダーを登録しません。
エントリー
25 件のエントリー(拡張機能のソースから生成)。
アクション9
- Activate Vehicle AbilityActivate Vehicle Ability
- Add Vehicle XPAdd Vehicle XP
- Open Vehicle GarageOpen Vehicle Garage
- Refill Vehicle FuelRefill Vehicle Fuel
- Repair VehicleRepair Vehicle
- Set Vehicle SkinSet Vehicle Skin
- Spawn VehicleSpawn Vehicle
- Vehicle AttackVehicle Attack
- Vehicle ChargeVehicle Charge
イベント7
- On Vehicle AttackOn Vehicle Attack
- On Vehicle Charge HitOn Vehicle Charge Hit
- On Vehicle CollisionOn Vehicle Collision
- On Vehicle DestroyedOn Vehicle Destroyed
- On Vehicle Fuel EmptyOn Vehicle Fuel Empty
- On Vehicle Level UpOn Vehicle Level Up
- On Vehicle Stamina DepleteOn Vehicle Stamina Deplete
ファクト4
- Vehicle Charge Meter FactVehicle Charge Meter
- Vehicle LimitVehicle Ownership Limit
- Vehicle Owned CountVehicles Owned Count
- Vehicle Stamina FactVehicle Stamina
アーティファクト1
- Vehicle StorageVehicle Storage Artifact
マニフェスト4
- Vehicle AbilityVehicle Ability
- Vehicle ConfigVehicle Global Configuration
- Vehicle DefinitionVehicle Definition
- Vehicle Garage MenuVehicle Garage Menu
トラブルシューティング
再起動後に何も保存されていない。 vehicle_config に storage がないか、存在しないアーティファクトを指しています。ログに Aucun stockage designe dans 'vehicle_config' と報告されます。storage にアーティファクトを設定してください。
WASD で乗り物が動かない。 PacketEvents がないため、操縦が無効になっています。インストールして再起動してください。
乗り物が元に戻される、または動かない。 サーバーは、乗り物が stats.maxSpeed(tick あたりのブロック数)より速く動いたとき、fuel が 0 のとき(On Vehicle Fuel Empty が発火します)、または GROUND が水や溶岩に入ったときに、ロールバックします。maxSpeed を上げるか、給油するか、AMPHIBIOUS に切り替えてください。
Ce vehicule n'est pas disponible pour le moment. ビジュアルを作成できませんでした。BetterModel に存在しないモデル ID、不明な BTCMobs の mobId、またはアイテムではない display の素材が原因です。ログで non spawne や visuel を確認してください。
呼び出しが、上限のメッセージで拒否される。 プレイヤーはすでに baseOwnershipLimit 台(デフォルトは 1)の乗り物を所有しています。上限にパーミッションが含まれるのは、Vehicle Ownership Limit エントリーを作成した場合のみで、そうでなければ baseOwnershipLimit だけが適用されます。
This vehicle is destroyed — repair it before summoning it again. 体力が 0 になりました。Repair Vehicle を実行してください。これは、repair.item を repair.amount 個消費し、アクティブな乗り物の体力を healthPerRepair 分回復します。
アビリティが何も起こさない。 乗り物デフィニションの abilities に記載されていて、プレイヤーが運転中で、十分なスタミナがあり、クールダウンが終わっている必要があります。いずれかが満たされない場合は、vehicle_config のメッセージが送信されます。