XblMultiplayerSessionProperties
与此会话关联的一组属性。 任何玩家都可以修改这些属性。
语法
typedef struct XblMultiplayerSessionProperties {
const char** Keywords;
size_t KeywordCount;
XblMultiplayerSessionRestriction JoinRestriction;
XblMultiplayerSessionRestriction ReadRestriction;
uint32_t* TurnCollection;
size_t TurnCollectionCount;
const char* MatchmakingTargetSessionConstantsJson;
const char* SessionCustomPropertiesJson;
const char* MatchmakingServerConnectionString;
const char** ServerConnectionStringCandidates;
size_t ServerConnectionStringCandidatesCount;
uint32_t* SessionOwnerMemberIds;
size_t SessionOwnerMemberIdsCount;
XblDeviceToken HostDeviceToken;
bool Closed;
bool Locked;
bool AllocateCloudCompute;
bool MatchmakingResubmit;
} XblMultiplayerSessionProperties
成员
Keywords
类型:const char**
与会话关联的关键字集合(可选,可能为空)。
KeywordCount
类型:size_t
关键字数量。
JoinRestriction
类型;XblMultiplayerSessionRestriction
限制谁可以加入“开放”会话。 (对保留没有影响,这意味着它对“私人”和“可见”会话没有影响。)默认为“无”。 如果为“local”,则仅限于其令牌的 DeviceId 与会话中已有的其他人相匹配且“active”状态为 true 的用户。 如果为“followed”,则只有本地用户(如上定义)以及被会话的现有(非保留)成员关注的用户才能在没有保留的情况下加入。
ReadRestriction
类型;XblMultiplayerSessionRestriction
限制谁可以读取“开放”会话。 (对保留没有影响,这意味着它对“私人”和“可见”会话没有影响。)默认为“无”。 如果为“local”,则仅限于其令牌的 DeviceId 与会话中已有的其他人相匹配且“active”状态为 true 的用户。 如果为“followed”,则只有本地用户(如上定义)以及被会话的现有(非保留)成员关注的用户才能在没有保留的情况下读取。 读取限制适用于具有“打开”或“可见”可见性的会话,并且确定谁可以在未接到邀请的情况下读取会话。 读取限制必须至少与加入限制一样可访问,即:如果不同时设置“readRestriction”,则不能将“joinRestriction”设置为“followed”。
TurnCollection
类型:uint32_t*
会话 MemberIds 的集合,指示该轮到哪个成员。
TurnCollectionCount
类型:size_t
TurnCollection 数组中的条目数量。
MatchmakingTargetSessionConstantsJson
类型:const char*
表示目标会话常量的 JSON 字符串。
SessionCustomPropertiesJson
类型:const char*
用于指定会话的自定义属性的 JSON 字符串。 这些可以随时更改。 更改时,调用 multiplayer_service::write_session 可将更改写入服务。
MatchmakingServerConnectionString
类型:const char*
强制使用特定的连接字符串。 这对于会话进行中加入情形很有用。
ServerConnectionStringCandidates
类型:const char**
会话可用于连接游戏服务器的连接字符串的排序列表。 一般来说,游戏应使用列表上的第一个字符串,但复杂的游戏可以使用自定义机制选择其他字符串中的一个(例如,基于负载)。
ServerConnectionStringCandidatesCount
类型:size_t
ServerConnectionStringCandidates 数组中的条目数量。
SessionOwnerMemberIds
类型:uint32_t*
会话所有者的会话 MemberIds。
SessionOwnerMemberIdsCount
类型:size_t
SessionOwnerMemberIds 数组中的条目数量。
HostDeviceToken
类型:XblDeviceToken
主机的设备令牌。 必须与至少一个成员的“deviceToken”匹配,否则将删除此字段。 如果设置了“peerToHostRequirements”和“host”,则测量阶段认为给定主机是正确的主机并且仅测量该主机的测量指标。
Closed
类型:bool
控制会话是否可连接,与会话中的可见性、连接限制和可用空间无关。 不影响保留。 默认为 false。
已锁定
类型:bool
如果为 true,则会允许锁定会话成员,这样在用户离开后还能够返回此会话,而不会有其他用户占用该位置。 默认为 false。
AllocateCloudCompute
类型:bool
客户端设置为 true 会触发 MPSD 的 Xbox Live 计算分配尝试。 默认为 false。
MatchmakingResubmit
类型:bool
如果找到的匹配无效而需要重新提交,则为 true。 设置为 false 以表示匹配确实有效,并且匹配服务可以释放会话。
要求
头文件:multiplayer_c.h