構文
パラメーター
handle PFMultiplayerHandle
PFMultiplayer API インスタンスのハンドルです。
localUserCount uint32_t
チケットに含めるローカル ユーザーの数です。
localUsers PFEntityKey*サイズ
localUserCount の入力配列
チケットに含めるローカル ユーザーの配列です。
localUserAttributes char* const*サイズ
localUserCount の入力配列
ローカル ユーザー属性文字列の配列です。ローカル ユーザーごとに 1 つの属性文字列を指定する必要があります。各属性文字列は、空の文字列またはシリアル化された JSON オブジェクトのいずれかである必要があります。例: {"player_color":"blue","player_role":"tank"}。
configuration PFMatchmakingTicketConfiguration*
チケットの構成です。
asyncContext void*省略可能 この呼び出しに完了状態の変更を関連付けるために使用できる、オプションでアプリ定義のポインター サイズのコンテキスト値です。
ticket PFMatchmakingTicketHandle*ライブラリ割り当ての出力 結果として得られるチケット オブジェクトです。
戻り値
型: HRESULT 呼び出しが成功した場合はS_OK、それ以外の場合はエラー コード。エラー コードを人間が読める形式で取得するには、PFMultiplayerGetErrorMessage() を使用します。
解説
ライブラリは、チケット上で指定されたすべてのローカル ユーザーを自動的かつ非同期にマッチメイキング サービスへ送信します。チケットのステータスが変わるたびに PFMatchmakingTicketStatusChangedStateChange が提供されます。チケットのステータスは、PFMatchmakingTicketGetStatus() からいつでもクエリできます。チケットは最初にPFMatchmakingTicketStatus::Creating 状態から開始します。チケットが完了すると、PFMatchmakingTicketStatusChangedStateChange が提供されます。この時点で、マッチが見つかったか、失敗によりチケットが停止したかのいずれかです。成功した場合、見つかったマッチは PFMatchmakingTicketGetMatch() からクエリできます。
指定されたユーザーに対して既にチケットが多すぎるためにチケット作成が失敗した場合、ライブラリは透過的にそれら未処理のチケットをキャンセルし、その後チケット作成を再試行します。
configuration パラメーターの membersToMatchWith フィールドで指定されたすべてのリモート ユーザーが PFMultiplayerJoinMatchmakingTicketFromId() を介してチケットに参加するまで、マッチは見つかりません。
