このクイックスタートでは、カタログとインベントリ アイテムの両方に既に精通していることを前提としています。例のプレイヤーは、トレードで譲渡したいインベントリ アイテムを既に所有している必要があります。
OpenTrade API を呼び出して、別のプレイヤーがトレードを利用できるようにすることです。ギフトの受取人を識別するための playfabId と、現在アイテムをインベントリに保有しているプレイヤーの ItemInstanceID が必要です。
secondPlayerId: ギフトの受取人 (PlayFabId) を識別する一意の文字列です。
myItemInstanceId: 現在のプレイヤーが所有するアイテム インスタンス (InstanceID) を識別する一意の文字列です。
すべてのトレードは公開情報です。どのプレイヤーも、他のプレイヤーのオープン トレードや、そのプレイヤーの取引履歴を閲覧できます (そのプレイヤーの
playFabId を知っている場合)。LogSuccess コールバックが result.Trade.TradeId も評価し、firstPlayFabId と tradeId の両方を 2 番目のプレイヤーに転送する必要があります。これらが保存されていないと、2 番目のプレイヤーはトレードを評価または受諾できません。
現在のプレビューでは、トレードが同時実行アクションからスレッド セーフであることを確認する必要があります。スレッド セーフなオプションには、カスタム ゲーム サーバーや、CloudScript から外部データベース/システムへの Webhook 呼び出しがあります。スレッド セーフではないオプションは、プレイヤー データ キーを直接変更する CloudScript で構築できます。後者のオプションでは、同時発生するトレード リストの更新が正しく処理されない可能性があるという同時実行性の問題があります。
playFabId と tradeId を 2 番目のプレイヤーに転送したら、2 番目のプレイヤーは GetTradeStatus リクエストを行うことで、トレードの要件を確認できます (ギフトであることを確認するため)。
最も関連性の高い TradeStatus 値は、Open、Filled、および Canceled です。それ以外のすべての状態は中間状態です。呼び出しの間、トレードはそれらの中間状態に目立った期間留まる場合があります。最近変更されたトレードはすぐには利用できない場合があります。
AcceptGiftFrom 関数によって、贈られたアイテムが最初のプレイヤーのインベントリから 2 番目のプレイヤーへ転送されます。