Syntaxe
Paramètres
handle PFMultiplayerHandle
Handle de l’instance de l’API PFMultiplayer.
localUserCount uint32_t
Nombre d’utilisateurs locaux à inclure dans le ticket.
localUsers PFEntityKey*tableau d’entrée de taille
localUserCount
Tableau des utilisateurs locaux à inclure dans le ticket.
localUserAttributes char* const*tableau d’entrée de taille
localUserCount
Tableau des chaînes d’attributs des utilisateurs locaux. Il doit y avoir une chaîne d’attributs pour chaque utilisateur local. Chaque chaîne d’attributs doit être soit une chaîne vide, soit un objet JSON sérialisé. Par exemple, {"player_color":"blue","player_role":"tank"}.
configuration PFMatchmakingTicketConfiguration*
Configuration du ticket.
asyncContext void*facultatif Valeur de contexte facultative, définie par l’application et de la taille d’un pointeur, qui peut être utilisée pour associer le changement d’état d’achèvement à cet appel.
ticket PFMatchmakingTicketHandle*sortie allouée par la bibliothèque Objet ticket obtenu.
Valeur de retour
Type : HRESULTS_OK si l’appel a réussi, ou un code d’erreur dans le cas contraire. La forme lisible du code d’erreur peut être récupérée au moyen de PFMultiplayerGetErrorMessage().
Remarques
La bibliothèque soumet automatiquement et de façon asynchrone tous les utilisateurs locaux spécifiés d’un ticket au service de matchmaking. Chaque fois que l’état du ticket change, un PFMatchmakingTicketStatusChangedStateChange est fourni. L’état du ticket peut être interrogé à tout moment au moyen de PFMatchmakingTicketGetStatus(). Le ticket démarre immédiatement à l’étatPFMatchmakingTicketStatus::Creating. Lorsque le ticket se termine, un PFMatchmakingTicketStatusChangedStateChange est fourni. À ce stade, une partie a été trouvée ou le ticket s’est arrêté en raison d’un échec. En cas de réussite, la partie trouvée peut être interrogée au moyen de PFMatchmakingTicketGetMatch().
Si la création du ticket échoue parce qu’il existe déjà trop de tickets pour les utilisateurs spécifiés, la bibliothèque annule de façon transparente ces tickets en attente, puis retente la création du ticket.
Aucune partie ne peut être trouvée tant que tous les utilisateurs distants spécifiés dans le champ
membersToMatchWith du paramètre configuration n’ont pas rejoint le ticket au moyen de PFMultiplayerJoinMatchmakingTicketFromId().
