> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Convites de lobby

> Envie e aceite convites do PlayFab Lobby, use ouvintes de convites e controle quem pode convidar outras pessoas por meio dos privilégios de membro e de proprietário do lobby.

Este artigo fornece uma visão geral dos convites de lobby e de como usá-los no SDK de Lobby e Matchmaking.

<Note>
  Somente jogadores (ou seja, entidades title\_player\_account do PlayFab) podem enviar ou receber convites. Servidores de jogo (ou seja, entidades game\_server do PlayFab) não podem. Para obter mais informações sobre como os servidores de jogo interagem com os lobbies, consulte [Servidores de jogo e lobbies](/pt-BR/services/playfab/multiplayer/lobby/lobby-server-overview).
</Note>

## Tipos de convite

Há dois tipos de convite que seu jogo provavelmente usará.

1. [Convites no jogo](#joining-a-lobby-by-in-game-invites)
2. [Convites da plataforma](#joining-a-lobby-by-platform-invites)

<a id="joining-a-lobby-by-in-game-invites" />

### Ingressar em um lobby por meio de convites no jogo

* Um membro de um lobby pode convidar outro jogador para esse lobby diretamente por meio do serviço de lobby.
* O proprietário do lobby pode optar por restringir o envio de convites somente ao proprietário por meio da propriedade de lobby **RestrictInvitesToLobbyOwner**
* Esse convite compartilha a cadeia de conexão do lobby com o jogador convidado.
* O jogador convidado recebe o convite por meio de **PFLobbyInviteReceivedStateChange** e pode usar a cadeia de conexão anexada para ingressar no lobby.
* Esses convites funcionam entre plataformas, mas só funcionam dentro do jogo.

<a id="joining-a-lobby-by-platform-invites" />

### Ingressar em um lobby por meio de convites da plataforma

* Os membros do lobby podem compartilhar diretamente a cadeia de conexão do lobby com outros jogadores por meio de mecanismos de convite específicos da plataforma.
* Esses convites não funcionam entre plataformas, mas podem ser recebidos sem que o destinatário já esteja executando o jogo.
* Depois que o jogador convidado receber a cadeia de conexão por meio do mecanismo da plataforma, ele poderá usar a cadeia de conexão anexada para ingressar no lobby.

## Exemplo de envio e recebimento de convites usando o SDK de Lobby e Matchmaking

Use **PFMultiplayerStartListeningForLobbyInvites** no destinatário do convite para permitir o recebimento de convites no jogo.

O ouvinte de convites mudará seu status para **Listening** depois de ser configurado com êxito.

```cpp theme={null}
HRESULT AllowInvitations(
    const PFEntityKey* entity)
{
    return PFMultiplayerStartListeningForLobbyInvites(g_pfmHandle, entity);
}

void HandleInvitationListenerStatusChange(
    const PFLobbyInvitationListenerStatusChangedStateChange& invitationListenerStateChange)
{
    PFLobbyInvitationListenerStatus status;
    HRESULT hr = PFMultiplayerGetLobbyInvitationListenerStatus(
        g_pfmHandle,
        &invitationListenerStateChange.listeningEntity,
        &status);
    assert(SUCCEEDED(hr));

    switch (status)
    {
        case PFLobbyInvitationListenerStatus::Listening:
        {
            Log("%s is listening for invitations", invitationListenerStateChange.listeningEntity.id);
            break;
        }
        case PFLobbyInvitationListenerStatus::NotAuthorized:
        {
            Log("Invitation listener not authorized!"); // this is likely an issue with the listener's entity token.
            break;
        }
        default:
    }
}
```

Use **PFLobbySendInvite** para enviar um convite a outro usuário do PlayFab por meio do serviço de lobby.

O destinatário receberá uma **PFLobbyInviteReceivedStateChange**.

```cpp theme={null}
HRESULT SendInvite(PFLobbyHandle lobby, const PFEntityKey* sender, const PFEntityKey* receiver)
{
    return PFLobbySendInvite(lobby, sender, receiver, nullptr);
}

void HandleInvitationNotification(const PFLobbyInviteReceivedStateChange& invite)
{
    Log("%s invited to lobby by %s", invite.listeningEntity.id, invite.invitingEntity.id);
    // pass invite.connectionString to PFMultiplayerJoinLobby
}
```

## Confira também

* [Lobby e matchmaking](/pt-BR/services/playfab/multiplayer/lobby/lobby-and-matchmaking)
* [Localizar lobbies](/pt-BR/services/playfab/multiplayer/lobby/find-lobbies)
* [Ingressar em lobbies](/pt-BR/services/playfab/multiplayer/lobby/join-lobbies)
* [Propriedades do lobby](/pt-BR/services/playfab/multiplayer/lobby/lobby-properties)


## Related topics

- [PFMultiplayerStartListeningForLobbyInvites](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayerstartlisteningforlobbyinvites.md)
- [Ingressar em lobbies](/pt-BR/services/playfab/multiplayer/lobby/join-lobbies.md)
- [Usar o lobby e o matchmaking juntos](/pt-BR/services/playfab/multiplayer/lobby/lobby-and-matchmaking.md)
- [PFLobbyInviteListenerStatus](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/enums/pflobbyinvitelistenerstatus.md)
- [PFMultiplayerStopListeningForLobbyInvites](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayerstoplisteningforlobbyinvites.md)
