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

# Usando tabelas de prêmios

> Crie tabelas de prêmios do PlayFab que concedem moeda virtual, itens de inventário, notificações por push ou ações do CloudScript às primeiras posições quando um placar é redefinido.

Este tutorial mostra como criar uma tabela de prêmios que dispara um conjunto de ações em um grupo de jogadores dentro de um intervalo de posições, em um [Placar redefinível](/pt-BR/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

Em particular, essa é uma maneira de disparar emails, enviar notificações por push, conceder [Itens de inventário](/pt-BR/services/playfab/player-progression/player-data/player-inventory) e [Moeda virtual](/pt-BR/services/playfab/economy-monetization/economy/tutorials/currencies) ou executar uma função do [CloudScript](/pt-BR/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript) na redefinição de um placar.

Neste exemplo, mostramos como criar a tabela de prêmios End Tournament Prizes, que concede moeda virtual a 5 jogadores com base na posição deles em um placar após a realização de uma redefinição.

## Requisitos

<Info>
  Este é um tutorial *avançado*. Verifique se todos os requisitos mostrados abaixo foram atendidos; caso contrário, você *não* conseguirá concluir este tutorial.
</Info>

* Será necessário ter conhecimento básico de como criar um jogador, pois é preciso haver jogadores em um placar antes que ele possa executar qualquer ação nesses jogadores.
* Também vale a pena ler o [Início rápido do Game Manager](/pt-BR/services/playfab/live-service-management/gamemanager/quickstart) se você não estiver familiarizado com o Game Manager, pois é nele que as tabelas de prêmios são criadas.
* Para usar tabelas de prêmios, você deve ter conhecimento geral de como funcionam os placares redefiníveis. Leia sobre placares em nosso tutorial [Usando estatísticas e placares redefiníveis](/pt-BR/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).
* Além disso, as moedas virtuais devem estar configuradas. Leia nosso tutorial sobre [Moedas](/pt-BR/services/playfab/economy-monetization/economy/tutorials/currencies) e configure duas moedas com os seguintes parâmetros:
  * **Currency code**: GO
  * **Display name**: Gold
  * **Initial deposit**: 200
  * **Currency code**: SI
  * **Display name**: Silver
  * **Initial deposit**: 1000

## Etapa 1 - Criar um placar

No Game Manager:

* Acesse **Leaderboards** no menu à esquerda.
* Selecione **New Leaderboard**.
* Adicione um **Leaderboard** chamado **tournamentScore\_manual** no campo **Statistic name**.
* Usando o menu suspenso fornecido, defina o campo **Reset frequency** como **Manually**.
* Vá para o campo **Aggregation method** e selecione **Maximum (always use the highest value)** no menu suspenso fornecido.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-new-leaderboard.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=ae4751c677d887a754e11f3cabd0ff69" alt="Game Manager - Leaderboards - New Leaderboard" width="1280" height="900" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-new-leaderboard.png" />

## Etapa 2 - Criar uma tabela de prêmios para o placar

Agora que um placar foi criado, uma tabela de prêmios pode ser associada a ele. Acesse:

* **Leaderboards** no menu à esquerda.
* Selecione a guia **Prize Tables**.
* Selecione o botão **NEW PRIZE TABLE** para ser levado à exibição **New Prize Table**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-tables.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=5dff3f1dfb1f60bc663bfd2ce175bcc5" alt="Game Manager - Leaderboards - Prize Tables" width="1392" height="705" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-tables.png" />

Na exibição **New Prize Table**:

* Vá para a área **INFO** e insira o **Name** da **New Prize Table**, intitulada **End Tournament Prizes**.
* Escolha **tournamentScore\_manual** no menu suspenso **Leaderboard**.

Para que esta tabela de prêmios execute alguma ação, será necessário definir posições. Para fazer isso:

* Selecione **+ ADD RANK** na seção **TABLE CONTENTS**.
* Um formulário **Rank** será exibido.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-new-prize-table.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=528df8c1e58927de159fe555fceeb453" alt="Game Manager - Leaderboards - New Prize Table" width="973" height="1187" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-new-prize-table.png" />

No formulário **Rank**:

* Verifique se o campo **Rank from** tem o valor **1**.
* Verifique se o campo **To (inclusive)** tem o valor **2**.
* No menu suspenso **Type**, escolha **Grant virtual currency**.
* No menu suspenso **virtual currency code**, escolha **GO (Gold)** com uma quantidade de **10**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-table-add-rank.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=39b565857248eba5c35b0cdc45318828" alt="Game Manager - Leaderboards - Prize Table - Add Rank" width="1294" height="1259" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-table-add-rank.png" />

Agora, adicionaremos um segundo intervalo de posições:

* Selecione **+ADD RANK** na seção **TABLE CONTENTS** (também há um *segundo* na parte inferior, que também funciona).
* No formulário **Rank** exibido, verifique se o campo **Rank from** tem o valor **3** e se o campo **To (inclusive)** tem o valor **5**.
* No menu suspenso **Virtual currency code**, escolha **SI** (**Silver**) com uma quantidade de **10**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-table-add-second-rank.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=f8bcf1ce6445bae43ff8b7ac6f38840c" alt="Game Manager - Leaderboards - Prize Table - Add Second Rank" width="875" height="1250" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-table-add-second-rank.png" />

## Etapa 3 - Preencher o placar com um jogador

Um placar e uma tabela de prêmios associada a ele foram criados. A próxima etapa é preencher o placar com jogadores.

Para criar jogadores, usaremos [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid). Em seguida, usaremos os jogadores para preencher o placar com [UpdatePlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.updateplayerstatistics).

Antes de podermos usar [UpdatePlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.updateplayerstatistics), precisamos habilitá-la em API Features.

* Selecione **Settings** no menu à esquerda.
* Selecione a guia **API Features**.
* Marque a caixa **Allow client to post player statistics**.
* Em seguida, selecione o botão **SAVE API FEATURES** na parte inferior da tela.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/api-features-allow-client-to-post-player-statistics.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=71197d724d092da6b5ff0a4093ad843e" alt="Game Manager - Settings - API Features - Allow client to post player statistics" width="2079" height="1191" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/api-features-allow-client-to-post-player-statistics.png" />

### Exemplo de código C\#

O exemplo de código **C#** a seguir cria 5 jogadores e os conecta usando [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid).

Em seguida, ele preenche o placar que você criou anteriormente (`tournamentScore_manual`) com os 5 jogadores com os valores: **105**, **104**, **103**, **102** e **101** usando [UpdatePlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.updateplayerstatistics).

```csharp theme={null}
// Note: This is a recursive function. Invoke it initially with no parameter
public void CreatePlayerAndPopulateLeaderboard(int playerIndex = 5) {
    if (playerIndex <= 0) return;
    const string leaderboardName = "tournamentScore_manual";
    PlayFabClientAPI.LoginWithCustomID(new LoginWithCustomIDRequest {
        CustomId = playerIndex.ToString(),
        CreateAccount = true
    }, result => OnLoggedIn(result,playerIndex,leaderboardName), FailureCallback);
}

private void OnLoggedIn(LoginResult loginResult, int playerIndex, string leaderboardName) {
    Debug.Log("Player has successfully logged in with " + loginResult.PlayFabId);
    PlayFabClientAPI.UpdatePlayerStatistics(new UpdatePlayerStatisticsRequest {
        Statistics = new List<StatisticUpdate> {
            new StatisticUpdate {
                StatisticName = leaderboardName,
                Value = playerIndex + 100
            }
        }
    }, result=> OnStatisticsUpdated(result,playerIndex), FailureCallback);
}

private void OnStatisticsUpdated(UpdatePlayerStatisticsResult updateResult, int playerIndex) {
    Debug.Log("Successfully updated player statistic");
    // Recursively invoke for next player
    CreatePlayerAndPopulateLeaderboard(playerIndex - 1);
}

private void FailureCallback(PlayFabError error){
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}
```

### Verificar os resultados do exemplo de código C\#

Para verificar se há 5 jogadores no placar com os valores corretos:

* Selecione **Leaderboards** no menu à esquerda.
* Na guia **Leaderboards**, volte para a exibição de lista **Leaderboard**.
* Selecione **tournamentScore\_manual**; deverá haver 5 **Players** com os valores **105**, **104**, **103**, **102** e **101**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-leaderboards-view-leaderboard-check-values.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=489c3dc10f130dd28d3e5cdf4d206f16" alt="Game Manager - Leaderboards - View Leaderboard - Check values" width="1988" height="910" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-leaderboards-view-leaderboard-check-values.png" />

## Etapa 4 - Verificar as moedas iniciais do jogador

Antes de verificar qualquer coisa:

* Volte para **Players** no menu à esquerda da etapa 2.
* Acesse a guia **Players** e localize um jogador que foi colocado no **Leaderboard** **tournamentScore\_manual** na etapa 3.
* Selecione o **Player ID** e a guia **Virtual Currency** desse jogador.
* Anote os valores das **Currencies** **GO** (**Gold**) e **SI** (**Silver**) desse jogador.

Antes de verificar qualquer coisa, volte aos **Players** de teste da etapa 2.

* Acesse **Players** e localize um que foi colocado no **tournamentScore\_manual Leaderboard** na etapa 3.
* Selecione o **Player ID** e a guia **Virtual Currency** desse jogador.
* Anote os valores das moedas **GO** (**Gold**) e **SI** (**Silver**) desse jogador.
* Agora faça isso para os 4 jogadores restantes dos 5 que foram colocados no **tournamentScore\_manual Leaderboard** na etapa 3.
* Anote os valores das moedas **GO** (**Gold**) e **SI** (**Silver**) deles (isso será importante para confirmar que a tabela de prêmios funcionou após a redefinição).

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-players-virtual-currency-check-values.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=9626280dfe1f4ea05d8ce7ffcf274cee" alt="Game Manager - Players - Virtual Currency - Check values" width="1439" height="853" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-players-virtual-currency-check-values.png" />

## Etapa 5 - Redefinir o placar para conceder recompensas

Agora acesse **Leaderboards**.

* Volte para a exibição de lista **Leaderboards**.

* Selecione **tournamentScore\_manual**.

* Anote as posições dos **Players** no **Leaderboard** (elas são *indexadas a partir de zero*, portanto a posição **0** será o *primeiro lugar*).

* Selecione o botão **RESET NOW**.

* Selecione o botão **RESET** para confirmar a redefinição do **Leaderboard**

* Isso limpará a lista de **Players**.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-leaderboards-check-player-positions.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=bcca3903355aa64af07fdd4cb6877efa" alt="Game Manager - Leaderboards - Check player positions" width="1988" height="910" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-leaderboards-check-player-positions.png" />

* Selecione o botão **RESET NOW** na parte superior da tela.
* Quando for exibida a pergunta **Reset this Leaderboard now?**, selecione o botão **RESET** para confirmar a redefinição.
* Isso limpará a lista de **Players**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-reset-leaderboard.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=5b3b43e79c4771b98591e15c1d8c48e3" alt="Game Manager - Reset Leaderboard" width="1682" height="956" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-reset-leaderboard.png" />

## Etapa 6 - Testar se a tabela de prêmios funciona

Para ver se a tabela de prêmios funcionou, os jogadores no placar podem ser verificados para ver se receberam as quantidades corretas de moeda. Isso pode ser visto rapidamente no PlayStream Debugger de um jogador.

Para ver isso no PlayStream Debugger:

* Selecione **Players** no menu à esquerda.
* A guia **PlayStream** mostrará um evento de classificação do **Player** em um **Leaderboard**, seguido de uma atualização de **Virtual Currency**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-playstream-debugger-check-leaderboard-events.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=f364ffcffe413f4c79b3e37d8a34d7a7" alt="Game Manager - Players - PlayStream Debugger - Check Leaderboard Events" width="1147" height="887" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-playstream-debugger-check-leaderboard-events.png" />

Agora, vamos verificar manualmente se os jogadores receberam as moedas corretas:

* Selecione **Players** no menu à esquerda.
* Na guia **Players**, vá para a área **Virtual Currency** da tela.
* Verifique se a moeda foi concedida corretamente.
* O valor deve ser *maior* do que a quantidade anotada anteriormente.
* Observe que os **Players** nas posições **0** ou **1** do placar ganharam **10 de ouro**, *sem receber prata*.
* Enquanto isso, os **Players** nas posições **2**, **3** e **4** receberam **10 de prata** e *nenhum ouro*.
* Isso corresponde às ações configuradas para a tabela de prêmios.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-player1-check-vc-amount.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=5278deaf409f0d4279cb2b373be127d5" alt="Game Manager - Player1 - Check Virtual Currency Amount" width="1248" height="805" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-player1-check-vc-amount.png" />

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-player2-check-vc-amount.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=5740cfcf5ec78dde6f38277303fb5245" alt="Game Manager - Player2 - Check Virtual Currency Amount" width="1268" height="834" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-player2-check-vc-amount.png" />

Outra maneira de verificar se a **Virtual Currency** foi concedida corretamente é:

* Acesse **Players**.
* Observe o **Event History**.
* Ele mostrará um evento **player\_virtual\_currency\_balance\_changed** com detalhes específicos sobre as quantidades alteradas da **Virtual Currency** concedida.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-players-event-history-chart-check-vc-changed.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=e13a5faf2dfba3032b3c3061a7860673" alt="Game Manager - Players - Event History Chart - Check Virtual Currency Change" width="1861" height="968" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-players-event-history-chart-check-vc-changed.png" />


## Related topics

- [Tabelas de classificação usando o Azure Functions](/pt-BR/services/playfab/community/leaderboards/leaderboards-cloudscript.md)
- [Tabelas de classificação com níveis manuais](/pt-BR/services/playfab/community/leaderboards/manual-tiers.md)
- [Tabelas de classificação sazonais](/pt-BR/services/playfab/community/leaderboards/seasonal-leaderboards.md)
- [Tabelas de drop no Economy (Legacy)](/pt-BR/services/playfab/economy-monetization/economy/tutorials/drop-tables.md)
- [Usando a página Players](/pt-BR/services/playfab/player-progression/player-data/using-the-players-page.md)
