PFMultiplayerCreateMatchmakingTicket

为一个或多个本地用户创建匹配票证。

语法

HRESULT PFMultiplayerCreateMatchmakingTicket(  
    PFMultiplayerHandle handle,  
    uint32_t localUserCount,  
    const PFEntityKey* localUsers,  
    const char* const* localUserAttributes,  
    const PFMatchmakingTicketConfiguration* configuration,  
    void* asyncContext,  
    PFMatchmakingTicketHandle* ticket  
)  

参数

handle PFMultiplayerHandle

PFMultiplayer API 实例的句柄。

localUserCount uint32_t

要包含在票证中的本地用户计数。

localUsers PFEntityKey*
大小为 localUserCount 的输入数组

要包含在票证中的本地用户数组。

localUserAttributes char* const*
大小为 localUserCount 的输入数组

本地用户属性字符串的数组。 每个本地用户都应有一个属性字符串。 每个属性字符串都应为空字符串或序列化 JSON 对象。 例如 {"player_color":"blue","player_role":"tank"}

configuration PFMatchmakingTicketConfiguration*

票证配置。

asyncContext void*
可选

一个可选应用定义的指针大小的上下文值,可用于将完成状态更改与此调用关联起来。

ticket PFMatchmakingTicketHandle*
库分配的输出

生成的票证对象。

返回值

类型:HRESULT

如果调用成功,则为 S_OK,否则为错误代码。 可通过 PFMultiplayerGetErrorMessage() 检索错误代码的可读形式。

备注

该库会自动异步地将票证上的所有指定本地用户提交到匹配服务。 每次票证状态更改时,都会提供 PFMatchmakingTicketStatusChangedStateChange。 可以随时通过 PFMatchmakingTicketGetStatus() 查询票证状态。 票证将立即以 PFMatchmakingTicketStatus::Creating 状态启动。

票证完成后,将提供 PFMatchmakingTicketStatusChangedStateChange。 此时,会找到匹配项,或者票证因失败而停止。 成功后,可以通过 PFMatchmakingTicketGetMatch() 查询找到的匹配项。

如果由于指定用户的票证已过多而导致票证创建失败,则库会透明地取消这些未完成的票证,然后重试创建票证。

configuration参数membersToMatchWith字段中指定的所有远程用户都通过PFMultiplayerJoinMatchmakingTicketFromId() 加入票证之前,才能找到匹配项。

要求

标头: PFMatchmaking.h

另请参阅

PFMatchmaking 成员