PhoneHub + Pulse ドキュメント
PhoneHub + Pulse Phone — 導入ガイド
統合エディション 1.4.6 · ZeroDev
このエディションは、Pulse Phone、PhoneHub の建物、独自の PhoneHub OS、3D端末キオスク、修理台、スタッフ用の在庫・配送システムをまとめたものです。スマホ単体のエディションとは別の製品です。スマホとストアのリソースを一緒にインストールしてください。phone を2つ動かしたり、PhoneHub のマップの2つのバージョンを動かしたりしないでください。
1. インストールの前に
- 既存のスマホのリソース、マップのリソース、設定、データベースをバックアップしてください。
- OneSync と、GTA のゲームビルド 2699 以降を使ってください。
- データベース、framework、インベントリ、ボイスリソース、screenshot-basic を先に起動してください。
- リソース名は正確に
phoneとzerodev_phonehub_mloのままにしてください。 - 以前の PhoneHub のリソースを有効な resources ディレクトリから削除し、重複した
ensureの行も削除してください。バックアップはそのディレクトリの外に保管してください。 - 同じ Portola Drive の建物を置き換える他のマップは、無効にしたままにしてください。
- マップのファイルを置き換える前に、FiveM を完全に閉じてサーバーを停止してください。サーバーを起動してから、FiveM をもう一度起動します。このストリーミングされる MLO を置き換えたり再起動したりする前に、クライアントを切断してください。接続中のクライアントは、建物から離れていてもマップを保持していることがあり、ホットリスタートするとそのクライアントがクラッシュすることがあります。
このパッケージには、サーバーライセンスキー、framework、インベントリ、有料のサードパーティスクリプトは含まれません。Keymaster での処理の後、サーバーキーは、この新しい統合アセットの権利を持つアカウントのものである必要があります。古いスマホ単体のエディションの権利で、この新しいエディションの権利が付与されることはありません。
2. リソースをコピーする
このダウンロードの phone と zerodev_phonehub_mlo のフォルダーを、サーバーの resources ディレクトリにコピーしてください。どのカテゴリーフォルダーに入れても構いませんが、フォルダー名は正確にそのままにしてください。
screenshot-basic。カメラには、phone より先に起動した screenshot-basic が必要です。標準のリソースで動作します。ダウンロードには軽量版のコピーも含まれています(写真を撮っている間だけゲーム画像を描画し、名前、exports、イベントは同じです)。切り替えは任意です。古いフォルダーを resources の外にバックアップとして残し、スクリーンショットを撮るスクリプトをテストし、何か変わったら古いフォルダーを戻してください。手順は Pulse Phone のクイックスタートの手順6にあり、変更したファイルは screenshot-basic/ZERODEV-CHANGES.md に一覧があります。
server.cfg の既存の依存リソースの後に、これらの行を追加してください:
ensure phone
ensure zerodev_phonehub_mlo古いスマホのエンジンや UI を新しいパッケージにコピーしないでください。アップグレードの場合は、必要な設定を新しい設定ファイルに移してください。データベース、リソースの KVP ストレージ、media と ownermedia のディレクトリは残してください。新しい phone/config/phonehub_business.lua には、スマホ単体のエディションにはない配送の設定が含まれています。
設定済みのショップカウンターは -749.541, -216.952224, 36.256562、向きは 210 です。ストアの場所は、クリーンな統合エディションですでに設定されています。このエディションのスマホショップは PhoneHub だけで、スマホ単体のパッケージにある Legion Square のストアは含まれません。1.4.4 以前から引き継いだ config.lua にはまだ Legion Square が記載されていますが、その項目はスキップされ、コンソールが一度その旨を表示します。フロアのキオスク、修理台、サービスカウンター、屋上の操作ポイントで PhoneHub のキー(既定は E)を押すか /phonehub を使うと、PhoneHub の端末が開きます。キオスクでは Shop、修理台では Repair が開きます。キーは FiveM のキー割り当てで変更できます。コマンドにもキーと同じ距離の条件があり、スタッフの操作には引き続きサーバーの権限が必要です。
3. framework、インベントリ、その他のスクリプト
Config.Framework = 'auto' と、phone/config/config.lua の自動のプロバイダー設定から始めてください。スマホの起動時ヘルスレポートが、実際に選ばれたプロバイダーを示します。購入を受け付ける前にそのレポートを確認してください。
| framework | セットアップ |
|---|---|
| ESX Legacy | es_extended とインベントリを phone より先に起動します。zerodev_phonehub_mlo/setup/phonehub_esx_jobs.sql をインポートしてください。足りないジョブ階級を追加するだけで、プレイヤーへの割り当ては行いません。 |
| QBCore | 付属の zerodev_phonehub_mlo/setup/phonehub_qb_job.lua のジョブ項目を、コアの共有ジョブテーブルに追加します。スマホのアイテムは、スマホのアイテムガイドに沿って登録してください。 |
| Qbox | インストール済みの Qbox のジョブ設定、または対応するジョブ登録 API で、同じジョブと階級を登録します。ox_inventory のアイテム定義を使ってください。 |
| ox_core / vRP | スマホの既存の framework アダプターと、PhoneHub のジョブと数値の階級を返すジョブプロバイダーを設定します。ジョブシステムがそれらを公開していない場合は、ACE で制御する建物へのアクセスを使ってください。 |
| Standalone / カスタム | 一般向けの買い物は、スマホの既存の standalone/カスタムブリッジで使えます。スタッフ機能には、設定したジョブプロバイダーか、信頼できる管理者の ACE が必要です。 |
インベントリのアダプターは、ox_inventory、対応する framework のインベントリ機能、そして phone/guides/integrations.md(またはお使いのスマホのビルドに含まれる連携ガイド)に記載された名前付きのサードパーティプロバイダーに対応しています。各プロバイダーには実際のアイテム定義と互換性のある API バージョンが必要です。足りないアイテムはスマホのヘルスチェックが報告します。そのエラーを抑制しないでください。アイテム設定の例は phone/config/items/ に同梱しています。
スマホの編集可能なブリッジは、ボイス、ソサエティ口座、銀行、ガレージ、住宅、通報、その他の連携に対応しています。機能ごとに選ぶプロバイダーは正確にひとつにしてください。名前を変えたリソースは Config.ResourceNames で固定し、プロバイダーを明示的に選ぶには Config.Providers を使ってください。任意のサードパーティの exports が自動で互換になるわけではありません。お使いのスクリプトが一覧にない場合は、ドキュメント化されたカスタムブリッジを実装してください。framework のアダプターと自動の契約テストは、すべてのサードパーティのバージョンを実機でテストしたという意味ではありません。
このリリースで実機テストした構成:ESX Legacy、ox_inventory、oxmysql、pma-voice。他の framework では、ストアを開く前にセクション7の初回チェックを実行してください。
4. 一般向けショップ、またはプレイヤー所有のビジネス
サーバーコンソールで、どちらかのコマンドを実行します:
phonehubmode public
phonehubmode business選んだモードは再起動後も保持されます。public モードでは通常の買い物のままです。business モードでは、PhoneHub のカウンターでの購入に永続的な在庫と予約が適用されます。business モードではカウンターでの下取りが無効になります。価格、支払い、アイテムの受け渡しは、同じスマホのチェックアウトで検証されます。
ジョブ名と階級を phone/config/phonehub_business.lua で設定します:
| 階級 | 既定の業務 |
|---|---|
| 0 — 研修生 | ビジネス端末の閲覧、到着した配送の受け取り、建物の操作 |
| 1 — 販売 | 研修生の業務に加え、仕入れの発注 |
| 2 — 技術者 | 発注と受け取り、設定された修理の担当 |
| 3 — マネージャー | スタッフの全操作に加え、保留中の仕入れ注文のキャンセルと返金 |
ジョブは framework の通常の管理ツールで割り当ててください。会社管理は、スマホで Services → My Work → PhoneHub → Staff and account を開きます。選んだ framework の対応するスタッフ・ソサエティ機能を使います。統合エディションでは、Business タブでのゲーム内購入、または下で説明する管理者の割り当てコマンドによる、永続的なプレイヤー所有にも対応しています。所有に関する価格はすべてゲーム内通貨の金額です。
ESX で esx_addonaccount を使う場合は、口座リソースを起動する前に zerodev_phonehub_mlo/setup/phonehub_esx_society.sql もインポートし、サーバーを再起動してください。これにより、既存の残高を置き換えることなく、残高ゼロの society_phonehub 会社口座が作成されます。ジョブ名を変えた場合は、口座のサフィックスも合わせて変更してください。その他の銀行プロバイダーでは、設定したジョブについて通常の会社口座の設定が必要です。ビジネスを始める前に、Company で少額の入金と出金を確認してください。
運営予算は、在庫の仕入れ用の独立した内部台帳です。売上で増え、仕入れの注文で減ります。自動的にソサエティの銀行口座になるわけではなく、プレイヤーが引き出せる現金残高でもありません。
5. 仕入れの注文と在庫の配送
サービスカウンターで E を押して PhoneHub の端末を開き、Stock を選びます。製品、構成、数量を選んでください。サーバーが仕入れの見積もりを計算し、従業員の階級、距離、運営予算を確認します。
既定の配送時間は120秒です。再起動しても配送中のまま残ります。到着後、従業員が端末で Receive delivery を選びます。既定の destination='stock' では、購入者側のプレイヤーインベントリのプロバイダーとは関係なく、チェックアウトで消費されるストアの在庫台帳に商品が追加されます。受け取りのリクエストを繰り返しても、同じ配送が2重に追加されることはありません。マネージャーは未受け取りの配送をキャンセルでき、予算への返金は1回だけ行われます。
設定:
delivery = {
seconds = 120,
autoReceive = false,
destination = 'stock',
resource = '',
export = '',
}独自の倉庫・スタッシュを使うには、destination='custom' を設定し、サーバー側の export を指定します。その export は (shipment, source) を受け取り、shipment.id を永続的な重複防止キーとして使う必要があります。すべての行が正常に保存された場合にだけ true を返してください。インベントリのアイテム/SKU の対応は、そのアダプターで設定します。カスタム配送では、内部の販売台帳にはアイテムが追加されません。在庫の重複を避けるため、倉庫の販売フローを明示的に接続してください。汎用のスタッシュアダプターは想定していません。
外部への受け渡しが不確かな場合は、やみくもに再試行せず、確認のために保留されます。受け渡し先のインベントリを確認した後、次を使ってください:
phonehubdelivery <shipment-id> delivered
phonehubdelivery <shipment-id> retryお客様のチェックアウトの予約が不確かな場合は、支払いとインベントリの記録を確認してから phonehubresolve <reservation-id> returned|delivered を使ってください。
6. ストアの操作
サービスの操作ポイントか、屋上の操作台の近くで E を押します。
- Space:正面ドアと屋上ドアのロック、店内照明、ラウンジのディスプレイ、テラスのキャノピー(雨や雪で自動、または開/閉)、テラスのヒーターまたは送風、テラスの電源、15秒間のスプリンクラーテスト。
- Cameras:Entrance overview、Showroom overview、Service counter。Back で端末に戻るとカメラが閉じ、Escape で終了します。
- Stock と Business:仕入れの注文、配送、売上、販売と修理の台帳、チームのアクセス権。
建物の操作には、PhoneHub のジョブ、または設定したスタッフ・管理者の ACE が必要です。テラスの一般向け操作のアクセス権は、systems_config.lua で別に設定します。phonehub.admin は信頼できる管理者のプリンシパルにだけ付与し、決して全員に付与しないでください。MLO のシステム設定で phoneResource='phone' を設定してください。
自動ドアは、ロック解除中は近接センサーを使います。動く扉は、開いている間も含めて当たり判定を保つ必要があります。家具、ガラス、照明は作り込んだマップのアセットで、すべての装飾オブジェクトにゲームプレイ上の操作があるわけではありません。
7. 初回の受け入れチェック
- サーバーを起動し、
phone:healthを実行します。想定どおりの framework、インベントリ、データベース、ボイスのプロバイダーであること、必須アイテムが欠けていないことを確認してください。 - 通常どおり参加してショップを訪れます。noclip を無効にした状態で、歩道から両方の入口を通り、階段を上り下りし、屋上の出入口を通ってください。
- キャノピーを開閉します。8枚のパネルが、どの位置でもガイドレール内でそろっている必要があります。雨・雪での自動クローズは別にテストしてください。
- 各 CCTV の映像を開き、切り替えて、終了します。映像が見えること、そしてプレイヤーの通常の視点とフォーカスが戻ることを確認してください。
- スタッフのアカウントで両方のドアグループをロックします。両側から当たり判定を確認してください。ロックを解除し、近接での開閉アニメーションをもう一度確認してください。
- 昼夜の照明、ディスプレイのオン/オフ、ガラス、看板、座席、すべての縁を確認します。建物に向かって、また離れるように歩いたり運転したりして、ストリーミングの切り替わりを確認してください。
- public モードでスマホやアクセサリーを購入します。business モードでは、在庫の減少、従業員の発注、到着と受け取り、残高不足、権限のないアクセスを確認してください。
- サーバーを再起動し、ショップのモード、在庫、保留中の配送が保持されていることを確認します。受け取りやキャンセルを重複して試しても、商品や返金が重複しないことを確認してください。複数のプレイヤーに同じストアの状態が見えることを確認してください。
クライアントの F8 コンソールで phonehubcheck を実行すると、カバーの実際のそろい具合が表示されます。各パネルの値は 1 に近いはずです。これは診断用で、見た目の品質や当たり判定が正しいことの証明ではありません。自動チェックで、すべてのカメラアングルやすべてのサーバー構成を保証することはできません。
8. トラブルシューティングとアップデート
ポート 30120 が使用中:別のサーバーインスタンスがすでに動いています。2つ目の FXServer を起動せず、txAdmin(またはホストのパネル)から停止してください。
操作が表示されない:両方のリソースが起動していること、名前が変わっていないこと、プレイヤーが操作ポイントにいることを確認してください。クライアントの F8 とサーバーのエラーを確認してください。
スタッフとしてアクセスできない:設定したジョブ、数値の階級、サービスカウンターまでの距離、選ばれたジョブプロバイダーを確認してください。public のショップモードではスタッフの権限は付与されません。
古いマップや古いインターフェースが残る:重複したリソースや ensure の行を削除してください。FiveM を完全に閉じ、サーバーを停止し、ファイルを置き換えてから、サーバーを起動して FiveM をもう一度起動してください。再接続だけでは古いストリーミングアセットが残ることがあります。クライアントが接続している間は、建物から遠く離れていても MLO をホットリロードしないでください。
元に戻す場合:これらのリソースを停止し、バックアップしたリソースのフォルダーと設定を復元してから、既存の txAdmin で再起動してください。整合性のあるデータのバックアップを意図的に復元する場合を除き、データベースと KVP ストレージはそのまま残してください。
サポートを依頼するときのために、付属のリリースのハッシュ(SHA256.json)を保管しておいてください。
PhoneHub OS と所有権
Config.PhoneHubOS(phone/config/phonehub_business.lua 内)がこのエディションを制御します。ownership='both' では、ゲーム内購入と管理者による割り当ての両方を許可します。どちらか一方だけを許可するには 'admin' か 'purchase' を設定してください。purchasePrice はゲーム内通貨の金額です。管理者は phonehubowner <online player id> を、サーバーコンソールから、または phonehub.admin の ACE を持った状態で使います。購入の支払いが保留中の間は、割り当てはブロックされます。オーナーは、一時的なプレイヤーの source 番号ではなく、framework のキャラクター識別子に紐づけて保存されます。所有権を設定すると、既存の永続的な在庫と運営予算のシステムが有効になります。
オーナーは Business タブで、近くにいるスタッフやマネージャーを追加します。これらの独立した役割は framework の ID ブリッジを通じて動作し、プレイヤーのメインのジョブは変わりません。既存の PhoneHub のジョブの役割と、設定した管理者のアクセス権も引き続き使えます。既定では、マネージャーは仕入れを発注でき、スタッフは到着した配送を受け取れます。在庫は、購入または仕入れの配送が確定するまで予約されたままです。
service='hybrid' では、スタッフ対応とセルフサービスの両方の会計と修理を許可します。'self' では直接のサービスを許可し、'staff' ではこのショップでお客様が承認したスタッフのオファーが必要です。単体の製品は、既存のショッピング OS のままです。
フロアのキオスクに近づいて E を押します。Shop タブでは、実際の保護された Pulse のモデルが読み込まれ、ドラッグでの回転、前面・背面の確認、ズーム、選んだカラーの表示ができます。価格はスマホのサーバーから取得します。支払いには確認が必要で、設定したインベントリ、お金、箱入りスマホの受け渡しを使います。タイムアウトは支払いが失敗した証拠ではありません。もう一度試す前に、インベントリと支払いの記録を確認してください。
お客様は Help タブで販売や修理のサポートを依頼し、順番待ちの番号を受け取ります。スタッフは Counter タブで近くのお客様を選んでオファーを用意し、承認と支払いができるのはそのお客様だけです。両者は同じショップの同じ routing bucket にいる必要があります。修理の承認は、選んだ固有の端末とその見積もり価格に紐づきます。端末を変えると無効になります。
スタッフ対応の修理では、技術者が空いている修理台で端末を開き、お客様の修理のオファーを用意し、承認されるまでその場にいます。修理台は支払いの前に予約されます。支払い済みの修理が成功すると、そのプレイヤーを技術者として組み立ての演出が行われます。セルフサービスではショップの技術者が担当します。端末の修理はスマホのエンジンが管理しており、サーバーのセッションが中断しても支払い済みの作業を復元します。クライアント側のプロップが、インベントリのスマホを作成したり置き換えたりすることはありません。
屋上とカウンターの操作ポイントにある Space タブでは、キャノピー、空調、ロック、照明、ディスプレイを操作します。完成した MLO の形状、雨風よけ、床、座席はそのまま残ります。