メインコンテンツへスキップ
このトピックでは、イベントベース統計の変更を処理するためのサンプル コードを提供します。これらの例は、XBOX services API (XSAPI) のフラット C API を使用する C++ のコード フラグメントです。XSAPI は Real-Time Activity (RTA) サービスを通じて統計の更新を配信し、RTA サブスクリプションを自動的に管理します。

始める前に

これらのコード フラグメントは 1 つのスコープを共有し、次のことを前提としています。
  • xboxLiveContext は、サインインしているユーザーの XblContextHandle です。作成するには、XblContextCreateHandle を呼び出します。
  • xboxUserId は、統計の更新を受け取るプレイヤーの uint64_t 型の XBOX ユーザー ID (XUID) です。
  • scid は、タイトルのサービス構成 ID (SCID) を含む const char* です。
  • TotalPuzzlesSolved は統計名の例です。タイトルに構成されているイベントベース統計の名前に置き換えてください。
  • LogToScreen は、アプリ内の printf スタイルのログ関数です。
イベントベース統計の変更に関する通知を取得するには
  1. 統計変更ハンドラーを追加します。
  2. 更新を受け取る統計を追跡します。
クリーンアップするには
  1. 統計の追跡を停止します。
  2. 統計変更ハンドラーを削除します。

統計変更ハンドラーを追加する

次のサンプル コードを使用して、統計変更通知のイベント ハンドラーを登録します。 イベント ハンドラーは XblStatisticChangeEventArgs オブジェクトを受け取ります。xboxLiveContext またはハンドラーが null の場合、XblUserStatisticsAddStatisticChangedHandler は 0 を返し、ハンドラーを登録しません。

更新を受け取る統計を追跡する

ハンドラーは、追跡している統計についてのみ更新を受け取ります。更新を受け取るユーザーと統計名を指定して XblUserStatisticsTrackStatistics を呼び出します。追跡する統計のセットは、ハンドラーとは独立していつでも変更できます。
XblUserStatisticsSubscribeToStatisticChange と XblUserStatisticsUnsubscribeFromStatisticChange は非推奨です。引き続き動作しますが、今後のリリースで削除される予定であり、コンパイラの設定によっては、これらの呼び出しで非推奨の警告が発生する場合があります。代わりに XblUserStatisticsTrackStatistics と XblUserStatisticsStopTrackingStatistics を使用してください。

統計の追跡を停止する

特定の統計の更新が不要になったら、追跡したときと同じユーザー、SCID、統計名を指定して XblUserStatisticsStopTrackingStatistics を呼び出します。
または、一連のユーザーについて追跡しているすべての統計の更新を停止するには、XblUserStatisticsStopTrackingStatistics の代わりに XblUserStatisticsStopTrackingUsers を呼び出します。
XSAPI は追跡要求の数をカウントします。ユーザーの同じ統計を複数回追跡した場合、更新を停止するには、追跡停止関数を同じ回数呼び出してください。

統計変更ハンドラーを削除する

次のサンプル コードを使用して、統計変更通知のイベント ハンドラーを削除します。

関連項目

最終更新日 2026年10月30日