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

另请参阅

PFMatchmaking 成员