PFMultiplayerJoinMatchmakingTicketFromId
使用票证 ID 和队列名称将一个或多个本地用户加入匹配票证。
语法
HRESULT PFMultiplayerJoinMatchmakingTicketFromId(
PFMultiplayerHandle handle,
uint32_t localUserCount,
const PFEntityKey* localUsers,
const char* localUserAttributes,
const char* ticketId,
const char* queueName,
void* asyncContext,
PFMatchmakingTicketHandle* ticket
)
参数
handle
PFMultiplayerHandle
PFMultiplayer API 实例的句柄。
localUserCount
uint32_t
要加入票证的本地用户计数。
localUsers
PFEntityKey*
大小为 localUserCount
的输入数组
要加入票证的本地用户数组。
localUserAttributes
char*
大小为 localUserCount
的输入数组
本地用户属性字符串的数组。 每个本地用户都应有一个属性字符串。 每个属性字符串都应为空字符串或序列化 JSON 对象。 例如 {"player_color":"blue","player_role":"tank"}
。
ticketId
char*
以 null 结尾
要加入的票证的 ID。
queueName
char*
以 null 结尾
票证所属的队列。
asyncContext
void*
可选
一个可选应用定义的指针大小的上下文值,可用于将完成状态更改与此调用关联起来。
ticket
PFMatchmakingTicketHandle*
库分配的输出
生成的票证对象。
返回值
类型:HRESULT
如果调用成功,则为 S_OK
,否则为错误代码。 可通过 PFMultiplayerGetErrorMessage() 检索错误代码的可读形式。
备注
该库会自动异步地提交所有指定的本地用户来联接匹配服务上的票证。 每次票证状态更改时,都会提供 PFMatchmakingTicketStatusChangedStateChange。 可以随时通过 PFMatchmakingTicketGetStatus() 查询票证状态。 票证将立即以 PFMatchmakingTicketStatus::Joining
状态启动。
票证完成后,将提供 PFMatchmakingTicketStatusChangedStateChange。 此时,会找到匹配项,或者票证因失败而停止。 成功后,可以通过 PFMatchmakingTicketGetMatch() 查询找到的匹配项。
如果由于指定用户的票证已经太多而导致票证创建失败,则会透明地取消这些未完成的票证,然后重新尝试创建票证。
要求
标头: PFMatchmaking.h