역할 유형(Role types)
역할 유형은 역할 정의 그룹을 나타냅니다. 각 역할은 역할 유형의 일부로 정의되어야 합니다. 역할 유형은 멀티플레이어 세션 문서에서 정의됩니다. 플레이어는 하나의 역할 유형에서 하나의 역할만 할당받을 수 있습니다. 예를 들어 “class” 역할 유형에 힐러, 탱커, 딜러가 포함되어 있다면 플레이어는 그중 하나의 역할만 할당받을 수 있습니다. 여러 역할 유형을 정의할 수 있으며, 플레이어는 각 역할 유형에서 하나의 역할을 할당받을 수 있습니다. 이전 시나리오에서, 힐러 역할을 선택한 플레이어는 분대장 역할이 별도의 역할 유형에 정의되어 있다면 분대장 역할도 할당받을 수 있습니다.역할 유형 속성
역할 유형을 정의할 때 다음 정보를 지정해야 합니다.- 역할 유형의 이름. 이름은 소문자 영숫자여야 하며 100자를 초과할 수 없습니다.
- 역할의 정의.
- 역할이 소유자 관리인지 여부.
- 세션 수명 동안 역할의 속성을 변경할 수 있는지 여부.
hasOwners 기능이 설정된 세션에 대해서만 역할 유형을 소유자 관리로 지정할 수 있습니다.
XBOX Services API(XSAPI)는 현재 소유자가 다른 플레이어에게 역할을 할당하는 것을 지원하지 않습니다.
역할 속성
역할을 정의할 때 다음 정보를 지정해야 합니다.- 역할의 이름. 이름은 소문자 영숫자여야 하며 100자를 초과할 수 없습니다.
- 역할을 채울 수 있는 최대 플레이어 수. 값은 0보다 커야 합니다.
- 역할을 채워야 할 목표 플레이어 수. 값은 0보다 크고 역할을 채울 수 있는 최대 플레이어 수보다 작거나 같아야 합니다.
역할 만들기
역할 및 역할 유형은 일반적으로 세션 템플릿에 정의됩니다. 자세한 내용은 멀티플레이어 세션 템플릿을 참조하세요. 서비스는 세션 생성 중 역할 유형 및 역할 정의를 지원하지만 XSAPI는 그렇지 않습니다.세션 템플릿에서 역할 유형 및 역할 정의
XBOX services 구성 중에 세션 템플릿을 만들 때 역할 유형 및 역할을 정의할 수 있습니다. 역할 유형 및 역할에 관한 정보는 다음 형식을 사용하여 세션 템플릿에서 기본 수준의roleTypes 요소로 지정됩니다.
멀티플레이어 세션의 역할 정보 검색
멀티플레이어 세션이나 멀티플레이어 검색 핸들에서 역할 유형, 역할 및 각 역할에 할당된 플레이어 수에 대한 정보를 얻을 수 있습니다. XSAPI에서 역할 유형 및 역할에 대한 정보는 배열 구조로 저장됩니다. 검색 요청에서 반환된XblMultiplayerSearchHandle 객체에서 역할 유형의 이름으로 XblMultiplayerSessionRoleTypes 데이터를 인덱싱하여 역할 유형에 대한 정보를 얻을 수 있습니다.
호출은 XblMultiplayerRoleType 객체를 반환합니다. 역할에 대한 정보를 얻으려면 Roles 배열을 인덱싱합니다.
XblMultiplayerRole 객체에는 MaxMemberCount, MemberXuids, MemberCount, TargetCount를 포함한 역할에 대한 정보가 들어 있습니다.
플레이어에게 역할 할당
현재 플레이어는 XSAPI에서 자신의 역할만 할당할 수 있습니다. 현재 플레이어의 역할 유형 및 역할을 지정하려면XblMultiplayerSessionHandle 객체를 XblMultiplayerSessionCurrentUserSetRoles 메서드에 전달합니다.
서비스에 세션을 쓰려고 할 때 역할이 이미 가득 찬 경우, MPSD는 쓰기를 거부합니다.