> ## 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.

# Permissões de chat e mudo do PlayFab Party

> Configure as permissões de chat e o mudo do PlayFab Party entre pares de controles de chat para controlar a voz e o texto de entrada e saída entre equipes e jogadores.

## Visão geral

O PlayFab Party oferece controle refinado sobre como seus jogadores podem se comunicar uns com os outros. Em vez de
especificar equipes ou canais, o PlayFab Party exige que permissões explícitas entre cada par de controles de chat sejam
definidas. O sistema de permissões de chat permite controlar a comunicação de voz de entrada e saída, bem como a comunicação de texto de entrada entre qualquer par de controles de chat.

## Permissões de chat

A comunicação entre controles de chat é desabilitada por padrão, e cabe ao jogo definir as
`PartyChatPermissionOptions` corretas entre cada par de controles de chat. As permissões de chat devem refletir a relação entre
cada controle de chat conforme determinado pelo cenário que você está tentando alcançar. Por exemplo, em um cenário de equipe contra equipe,
talvez você queira definir as permissões de chat para permitir todos os tipos de comunicação entre membros da mesma equipe, bloquear
a comunicação de áudio entre membros da equipe adversária e permitir o recebimento de texto entre todos na sessão.

O exemplo a seguir mostra como habilitar toda a comunicação entre um controle de chat local e um remoto. A variável
`localChatControlA` aponta para um objeto `PartyLocalChatControl` válido, enquanto `remoteChatControlB` aponta para um
objeto `PartyChatControl` válido que representa um controle de chat em um dispositivo remoto.

```cpp theme={null}
PartyChatPermissionOptions allOptions = PartyChatPermissionOptions::SendAudio | PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText;
localChatControlA->SetPermissions(remoteChatControlB, allOptions);
```

<Note>
  Observe que as permissões de chat se aplicam apenas localmente. No exemplo anterior, a comunicação bidirecional completa só acontecerá se `remoteChatControlB` estiver configurado remotamente para permitir toda a comunicação com `localChatControlA`
</Note>

## Mudo

Os jogos também podem silenciar o áudio de saída (`PartyLocalChatControl::SetAudioInputMuted()`), bem como
o áudio de entrada de um controle de chat remoto (`PartyLocalChatControl::SetIncomingAudioInputMuted()`). Os estados
desses mudos podem ser acessados por meio de seus respectivos getters e também são refletidos nos indicadores de chat retornados
por `PartyLocalChatControl::GetChatIndicator()` e `PartyLocalChatControl::GetLocalChatIndicator()`.

Os mudos são particularmente úteis para dar alguma forma de controle temporário ao jogador sem precisar alterar nenhuma das
permissões de chat que você possa ter definido no início da sessão de jogo.

## Como configurar cenários populares

### Pressionar para falar

O recurso de pressionar para falar deve ser implementado usando o mudo local. Chame `PartyLocalChatControl::SetAudioInputMuted(false)` para permitir
a fala e `PartyLocalChatControl::SetAudioInputMuted(true)` para restringi-la.

### Equipes

Suponha que temos 4 usuários, A, B, C e D, cada um em seu próprio dispositivo. O Usuário A e o Usuário B estão na equipe Azul, e
o Usuário C e o Usuário D estão na equipe Vermelha.

No dispositivo do Usuário A:

```cpp theme={null}
// Enable all communication with teammate B
localChatControlA->SetPermissions(chatControlB, PartyChatPermissionOptions::SendAudio | PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);

// Disable all communication with opponents
localChatControlA->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
localChatControlA->SetPermissions(chatControlD, PartyChatPermissionOptions::None);
```

### Transmissão

Suponha que o Usuário A seja o líder que dá as ordens e os Usuários B, C e D possam apenas ouvir.

No dispositivo do Usuário A:

```cpp theme={null}
localChatControlA->SetPermissions(chatControlB, PartyChatPermissionOptions::SendAudio);
localChatControlA->SetPermissions(chatControlC, PartyChatPermissionOptions::SendAudio);
localChatControlA->SetPermissions(chatControlD, PartyChatPermissionOptions::SendAudio);
```

No dispositivo do Usuário B:

```cpp theme={null}
localChatControlB->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlB->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
localChatControlB->SetPermissions(chatControlD, PartyChatPermissionOptions::None);
```

No dispositivo do Usuário C:

```cpp theme={null}
localChatControlC->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlC->SetPermissions(chatControlB, PartyChatPermissionOptions::None);
localChatControlC->SetPermissions(chatControlD, PartyChatPermissionOptions::None);
```

No dispositivo do Usuário D:

```cpp theme={null}
localChatControlD->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlD->SetPermissions(chatControlB, PartyChatPermissionOptions::None);
localChatControlD->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
```


## Related topics

- [Notas de versão do PlayFab Party](/pt-BR/services/playfab/multiplayer/networking/release-notes.md)
- [Requisitos do XBOX para jogos do XBOX](/pt-BR/publishing/certification/xbox-requirements.md)
- [XR-015 Gerenciamento das comunicações do jogador](/pt-BR/publishing/certification/xr/xr-015.md)
- [Requisitos XBOX testados na certificação para jogos de console XBOX](/pt-BR/publishing/certification/console-cert-tested-requirements.md)
- [Ferramenta de redefinição de dados do jogador (XblPlayerDataReset.exe)](/pt-BR/tools/tools-services/live-player-data-reset.md)
