ロール タイプ
ロール タイプ は、ロール定義のグループを表します。各ロールは、ロール タイプの一部として定義される必要があります。ロール タイプは、マルチプレイヤー セッション ドキュメントで定義されます。 プレイヤーには、1 つのロール タイプから 1 つのロールのみを割り当てることができます。たとえば、「クラス」ロール タイプにヒーラー、タンク、ダメージが含まれる場合、プレイヤーはそれらのロールのうち 1 つだけに割り当てることができます。 複数のロール タイプを定義でき、プレイヤーは各ロール タイプから 1 つのロールを割り当てることができます。前のシナリオでは、ヒーラー ロールを選択したプレイヤーは、分隊長ロールが別のロール タイプで定義されている場合、分隊長ロールを割り当てることもできます。ロール タイプのプロパティ
ロール タイプを定義する際は、次の情報を指定する必要があります。- ロール タイプの名前。名前は小文字の英数字であり、100 文字以下である必要があります。
- ロールの定義。
- ロールがオーナー管理されているかどうか。
- セッションの存続期間中にロールのプロパティを変更できるかどうか。
hasOwners 機能が設定されているセッションのみです。
XBOX Services API (XSAPI) は現在、オーナーが他のプレイヤーにロールを割り当てることをサポートしていません。
ロールのプロパティ
ロールを定義する際は、次の情報を指定する必要があります。- ロールの名前。名前は小文字の英数字であり、100 文字以下である必要があります。
- ロールを埋めることができるプレイヤーの最大数。値はゼロより大きい必要があります。
- ロールを埋めるべきプレイヤーの目標数。値はゼロより大きく、そのロールを埋めることができるプレイヤーの最大数以下である必要があります。
ロールの作成
ロールとロール タイプは通常、セッション テンプレートで定義されます。詳細については、Multiplayer セッション テンプレート を参照してください。サービスはセッション作成中のロール タイプとロールの定義をサポートしていますが、XSAPI はサポートしていません。セッション テンプレートでロール タイプとロールを定義する
XBOX services 構成中にセッション テンプレートを作成する際にロール タイプとロールを定義できます。 ロール タイプとロールに関する情報は、次の形式を使用してセッション テンプレートの基本レベルのroleTypes 要素として指定されます。
マルチプレイヤー セッションのロール情報を取得する
マルチプレイヤー セッションまたはマルチプレイヤー検索ハンドルから、ロール タイプ、ロール、および各ロールに割り当てられたプレイヤーの数に関する情報を取得できます。 XSAPI では、ロール タイプとロールに関する情報は配列構造で保存されます。 検索要求から返されるXblMultiplayerSearchHandle オブジェクトでは、ロール タイプの名前で XblMultiplayerSessionRoleTypes データをインデックス化することにより、ロール タイプに関する情報を取得できます。
この呼び出しは、XblMultiplayerRoleType オブジェクトを返します。ロールに関する情報を取得するには、Roles 配列をインデックス化します。
XblMultiplayerRole オブジェクトには、MaxMemberCount、MemberXuids、MemberCount、および TargetCount を含む、ロールに関する情報が含まれています。
プレイヤーにロールを割り当てる
現在、プレイヤーは XSAPI で自分自身のロールのみを割り当てることができます。現在のプレイヤーのロール タイプとロールを指定するには、XblMultiplayerSessionHandle オブジェクトを XblMultiplayerSessionCurrentUserSetRoles メソッドに渡します。
セッションをサービスに書き込もうとする際に、ロールが既に満杯になっている場合、MPSD は書き込みを拒否します。