PFMultiplayerCreateMatchmakingTicket
Erstellt ein Matchmaking-Ticket für einen oder mehrere lokale Benutzer.
Syntax
HRESULT PFMultiplayerCreateMatchmakingTicket(
PFMultiplayerHandle handle,
uint32_t localUserCount,
const PFEntityKey* localUsers,
const char* const* localUserAttributes,
const PFMatchmakingTicketConfiguration* configuration,
void* asyncContext,
PFMatchmakingTicketHandle* ticket
)
Parameter
handle
PFMultiplayerHandle
Das Handle der PFMultiplayer-API instance.
localUserCount
uint32_t
Die Anzahl der lokalen Benutzer, die in das Ticket eingeschlossen werden sollen.
localUsers
PFEntityKey*
Eingabearray der Größe localUserCount
Das Array der lokalen Benutzer, die in das Ticket eingeschlossen werden sollen.
localUserAttributes
char* const*
Eingabearray der Größe localUserCount
Das Array von lokalen Benutzerattributen. Für jeden lokalen Benutzer sollte eine Attributzeichenfolge vorhanden sein. Jede Attributzeichenfolge sollte entweder eine leere Zeichenfolge oder ein serialisiertes JSON-Objekt sein. Beispiel: {"player_color":"blue","player_role":"tank"}
.
configuration
PFMatchmakingTicketConfiguration*
Die Ticketkonfiguration.
asyncContext
Leere*
Optional
Ein optionaler, app-definierter Kontextwert in Zeigergröße, der verwendet werden kann, um die Änderung des Abschlusszustands diesem Aufruf zuzuordnen.
ticket
PFMatchmakingTicketHandle*
Bibliotheksseitig zugeordnete Ausgabe
Das resultierende Ticketobjekt.
Rückgabewert
Typ: HRESULT
S_OK
, wenn der Aufruf erfolgreich war oder andernfalls ein Fehlercode vorliegt. Die lesbare Form des Fehlercodes kann über PFMultiplayerGetErrorMessage() abgerufen werden.
Hinweise
Die Bibliothek übermittelt automatisch und asynchron alle angegebenen lokalen Benutzer für ein Ticket an den Matchmaking-Dienst. Jedes Mal, wenn sich das Ticket status ändert, wird ein PFMatchmakingTicketStatusChangedStateChange bereitgestellt. Das Ticket status kann jederzeit über PFMatchmakingTicketGetStatus() abgefragt werden. Das Ticket beginnt sofort im PFMatchmakingTicketStatus::Creating
Zustand.
Wenn das Ticket abgeschlossen ist, wird ein PFMatchmakingTicketStatusChangedStateChange bereitgestellt. An diesem Punkt wurde eine Übereinstimmung gefunden, oder das Ticket wurde aufgrund eines Fehlers beendet. Bei Erfolg kann die gefundene Übereinstimmung über PFMatchmakingTicketGetMatch() abgefragt werden.
Wenn die Ticketerstellung fehlschlägt, weil bereits zu viele Tickets für die angegebenen Benutzer vorhanden sind, storniert die Bibliothek diese ausstehenden Tickets transparent und wiederholt dann die Ticketerstellung.
Eine Übereinstimmung kann erst gefunden werden, wenn alle Remotebenutzer, die membersToMatchWith
im Feld des configuration
Parameters angegeben sind, dem Ticket über PFMultiplayerJoinMatchmakingTicketFromId() beitreten.
Voraussetzungen
Header: PFMatchmaking.h