角色類型
角色類型代表一組角色定義。每個角色都必須定義為角色類型的一部分。角色類型是在多人遊戲工作階段文件中定義的。 玩家只能從一個角色類型中被指派一個角色。例如,如果「職業」角色類型包括治療者、坦克和輸出,則玩家只能被指派到其中一個角色。 您可以定義多個角色類型,而玩家可以從每個角色類型中被指派一個角色。在上述案例中,如果在個別的角色類型中定義了小隊隊長角色,則選擇治療者角色的玩家也可以被指派小隊隊長角色。角色類型屬性
定義角色類型時,您必須指定下列資訊。- 角色類型的名稱。名稱必須是小寫英數字元,且不得超過 100 個字元。
- 角色的定義。
- 角色是否由擁有者管理。
- 角色的屬性是否可以在工作階段的存留期間變更。
hasOwners 功能的工作階段指定角色類型由擁有者管理。
XBOX 服務 API (XSAPI) 目前不支援擁有者將角色指派給其他玩家。
角色屬性
定義角色時,您必須指定下列資訊。- 角色的名稱。名稱必須是小寫英數字元,且不得超過 100 個字元。
- 可以擔任該角色的玩家數目上限。值必須大於零。
- 應擔任該角色的目標玩家數目。值必須大於零,且小於或等於可以擔任該角色的玩家數目上限。
建立角色
角色和角色類型通常是在工作階段範本中定義的;如需詳細資訊,請參閱多人遊戲工作階段範本。服務支援在建立工作階段期間定義角色類型和角色,但 XSAPI 不支援。在工作階段範本中定義角色類型和角色
您可以在 XBOX 服務設定期間建立工作階段範本時定義角色類型和角色。 角色類型和角色的相關資訊,會在工作階段範本中使用下列格式指定為基底層級的roleTypes 元素。
擷取多人遊戲工作階段的角色資訊
您可以從多人遊戲工作階段或多人遊戲搜尋控制代碼取得角色類型、角色以及指派給每個角色之玩家數目的相關資訊。 在 XSAPI 中,角色類型和角色的相關資訊會儲存在陣列結構中。 在搜尋要求傳回的XblMultiplayerSearchHandle 物件中,您可以使用角色類型的名稱為 XblMultiplayerSessionRoleTypes 資料建立索引,以取得角色類型的相關資訊。
此呼叫會傳回 XblMultiplayerRoleType 物件。若要取得角色的相關資訊,請為 Roles 陣列建立索引。
XblMultiplayerRole 物件包含角色的相關資訊,包括 MaxMemberCount、MemberXuids、MemberCount 和 TargetCount。
將角色指派給玩家
目前,在 XSAPI 中,玩家只能指派自己的角色。若要為目前玩家指定角色類型和角色,請將XblMultiplayerSessionHandle 物件傳遞至 XblMultiplayerSessionCurrentUserSetRoles 方法。
如果在您嘗試將工作階段寫入服務時角色已滿,MPSD 會拒絕寫入。