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

# Utilisation des tables de prix

> Créez des tables de prix PlayFab qui accordent de la monnaie virtuelle, des objets d'inventaire, des notifications Push ou des actions CloudScript aux meilleurs rangs lors de la réinitialisation d'un classement.

Ce tutoriel vous explique comment créer une table de prix qui déclenche un ensemble d'actions sur un groupe de joueurs situés dans une plage de rangs, dans un [classement réinitialisable](/fr-CA/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

Plus précisément, c'est une façon de déclencher l'envoi de courriels, d'envoyer des notifications Push, d'accorder des [objets d'inventaire](/fr-CA/services/playfab/player-progression/player-data/player-inventory) et de la [monnaie virtuelle](/fr-CA/services/playfab/economy-monetization/economy/tutorials/currencies), ou d'exécuter une fonction [CloudScript](/fr-CA/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript) lors de la réinitialisation d'un classement.

Dans cet exemple, nous vous montrons comment créer une table de prix de fin de tournoi, qui accorde de la monnaie virtuelle à 5 joueurs en fonction de leur rang dans un classement après une réinitialisation.

## Exigences

<Info>
  Il s'agit d'un tutoriel *avancé*. Assurez-vous que toutes les exigences ci-dessous sont remplies, sinon vous ne pourrez *pas* terminer ce tutoriel.
</Info>

* Une connaissance de base de la création d'un joueur sera nécessaire, car il faudra des joueurs dans un classement avant qu'il puisse effectuer des actions sur ces joueurs.
* Il vaut également la peine de lire le [démarrage rapide de Game Manager](/fr-CA/services/playfab/live-service-management/gamemanager/quickstart) si vous ne connaissez pas Game Manager, car c'est là que les tables de prix sont créées.
* Pour utiliser les tables de prix, vous devez avoir une connaissance générale du fonctionnement des classements réinitialisables. Renseignez-vous sur les classements dans notre tutoriel [Utilisation des statistiques et des classements réinitialisables](/fr-CA/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).
* De plus, des monnaies virtuelles doivent être configurées. Lisez notre tutoriel sur les [monnaies](/fr-CA/services/playfab/economy-monetization/economy/tutorials/currencies) et configurez deux monnaies avec les paramètres suivants :
  * **Code de monnaie** : GO
  * **Nom d'affichage** : Gold
  * **Dépôt initial** : 200
  * **Code de monnaie** : SI
  * **Nom d'affichage** : Silver
  * **Dépôt initial** : 1000

## Étape 1 - Créer un classement

Dans Game Manager :

* Accédez à **Leaderboards** dans le menu de gauche.
* Sélectionnez **New Leaderboard**.
* Ajoutez un **Leaderboard** appelé **tournamentScore\_manual** dans le champ **Statistic name**.
* À l'aide du menu déroulant fourni, définissez le champ **Reset frequency** à **Manually**.
* Passez au champ **Aggregation method** et sélectionnez **Maximum (always use the highest value)** dans le menu déroulant fourni.

<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 - Classements - Nouveau classement" width="1280" height="900" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-new-leaderboard.png" />

## Étape 2 - Créer une table de prix pour le classement

Maintenant qu'un classement a été créé, une table de prix peut y être associée. Accédez à :

* **Leaderboards** dans le menu de gauche.
* Sélectionnez l'onglet **Prize Tables**.
* Sélectionnez le bouton **NEW PRIZE TABLE** pour accéder à la vue **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 - Classements - Tables de prix" width="1392" height="705" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-tables.png" />

Dans la vue **New Prize Table** :

* Passez à la zone **INFO** et entrez le **Name** de la **New Prize Table**, intitulée **End Tournament Prizes**.
* Choisissez **tournamentScore\_manual** dans le menu déroulant **Leaderboard**.

Pour que cette table de prix effectue une action, des rangs devront être définis. Pour ce faire :

* Sélectionnez **+ ADD RANK** sous la section **TABLE CONTENTS**.
* Un formulaire **Rank** s'affichera.

<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 - Classements - Nouvelle table de prix" width="973" height="1187" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-new-prize-table.png" />

Dans le formulaire **Rank** :

* Vérifiez que le champ **Rank from** a la valeur **1**.
* Vérifiez que le champ **To (inclusive)** a la valeur **2**.
* Dans le menu déroulant **Type**, choisissez **Grant virtual currency**.
* Dans le menu déroulant **virtual currency code**, choisissez **GO (Gold)** avec un montant 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 - Classements - Table de prix - Ajouter un rang" width="1294" height="1259" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-table-add-rank.png" />

Nous allons maintenant ajouter une deuxième plage de rangs :

* Sélectionnez **+ADD RANK** sous la section **TABLE CONTENTS** (il y en a aussi un *deuxième* en bas, qui fonctionne également).
* Dans le formulaire **Rank** qui s'affiche, assurez-vous que le champ **Rank from** a la valeur **3** et que le champ **To (inclusive)** a la valeur **5**.
* Dans le menu déroulant **Virtual currency code**, choisissez **SI** (**Silver**) avec un montant 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 - Classements - Table de prix - Ajouter un deuxième rang" width="875" height="1250" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-prize-table-add-second-rank.png" />

## Étape 3 - Remplir le classement avec un joueur

Un classement et une table de prix associée ont maintenant été créés. L'étape suivante consiste à remplir le classement avec des joueurs.

Pour créer des joueurs, nous utiliserons [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid). Ensuite, nous utiliserons ces joueurs pour remplir le classement avec [UpdatePlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.updateplayerstatistics).

Avant de pouvoir utiliser [UpdatePlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.updateplayerstatistics), nous devons l'activer dans API Features.

* Sélectionnez **Settings** dans le menu de gauche.
* Sélectionnez l'onglet **API Features**.
* Cochez la case **Allow client to post player statistics**.
* Sélectionnez ensuite le bouton **SAVE API FEATURES** au bas de l'écran.

<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 - Paramètres - Fonctionnalités d'API - Autoriser le client à publier les statistiques des joueurs" width="2079" height="1191" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/api-features-allow-client-to-post-player-statistics.png" />

### Exemple de code C\#

L'exemple de code **C#** suivant crée 5 joueurs et les connecte à l'aide de [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid).

Il remplit ensuite le classement que vous avez créé précédemment (`tournamentScore_manual`) avec les 5 joueurs, avec les valeurs **105**, **104**, **103**, **102** et **101**, à l'aide de [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());
}
```

### Vérifier les résultats de l'exemple de code C\#

Pour vérifier que 5 joueurs figurent dans le classement avec les bonnes valeurs :

* Sélectionnez **Leaderboards** dans le menu de gauche.
* Dans l'onglet **Leaderboards**, revenez à la vue de liste **Leaderboard**.
* Sélectionnez **tournamentScore\_manual**; il devrait y avoir 5 **joueurs** avec les valeurs **105**, **104**, **103**, **102** et **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 - Classements - Afficher le classement - Vérifier les valeurs" width="1988" height="910" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-leaderboards-view-leaderboard-check-values.png" />

## Étape 4 - Vérifier les monnaies initiales des joueurs

Avant de vérifier quoi que ce soit :

* Revenez à **Players** dans le menu de gauche de l'étape 2.
* Accédez à l'onglet **Players** et trouvez un joueur qui a été ajouté au **Leaderboard** **tournamentScore\_manual** à l'étape 3.
* Sélectionnez le **Player ID**, puis l'onglet **Virtual Currency** de ce joueur.
* Notez les valeurs des **monnaies** **GO** (**Gold**) et **SI** (**Silver**) de ce joueur.

Avant de vérifier quoi que ce soit, revenez aux **joueurs** de test de l'étape 2.

* Accédez à **Players** et trouvez-en un qui a été ajouté au **Leaderboard tournamentScore\_manual** à l'étape 3.
* Sélectionnez le **Player ID**, puis l'onglet **Virtual Currency** de ce joueur.
* Notez les valeurs des monnaies **GO** (**Gold**) et **SI** (**Silver**) de ce joueur.
* Faites maintenant de même pour les 4 autres joueurs sur 5 qui ont été ajoutés au **Leaderboard tournamentScore\_manual** à l'étape 3.
* Assurez-vous de noter les valeurs de leurs monnaies **GO** (**Gold**) et **SI** (**Silver**) (elles seront importantes pour confirmer que la table de prix a fonctionné après la réinitialisation).

<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 - Joueurs - Monnaie virtuelle - Vérifier les valeurs" width="1439" height="853" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-players-virtual-currency-check-values.png" />

## Étape 5 - Réinitialiser le classement pour accorder les récompenses

Accédez maintenant à **Leaderboards**.

* Revenez à la vue de liste **Leaderboards**.

* Sélectionnez **tournamentScore\_manual**.

* Notez les positions des **joueurs** dans le **Leaderboard** (elles sont *indexées à partir de zéro*, donc la position **0** correspond à la *première place*).

* Sélectionnez le bouton **RESET NOW**.

* Sélectionnez le bouton **RESET** pour confirmer la réinitialisation du **Leaderboard**

* Cela effacera la liste des **joueurs**.

<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 - Classements - Vérifier les positions des joueurs" width="1988" height="910" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-leaderboards-check-player-positions.png" />

* Sélectionnez le bouton **RESET NOW** en haut de l'écran.
* Lorsque le message **Reset this Leaderboard now?** s'affiche, sélectionnez le bouton **RESET** pour confirmer la réinitialisation.
* Cela effacera la liste des **joueurs**.

<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 - Réinitialiser le classement" width="1682" height="956" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-reset-leaderboard.png" />

## Étape 6 - Vérifier que la table de prix fonctionne

Pour savoir si la table de prix a fonctionné, vous pouvez vérifier si les joueurs du classement ont reçu les bons montants de monnaie. Cela peut être rapidement vu dans le débogueur PlayStream d'un joueur.

Pour le voir dans le débogueur PlayStream :

* Sélectionnez **Players** dans le menu de gauche.
* L'onglet **PlayStream** affichera un événement de classement d'un **joueur** dans un **Leaderboard**, suivi d'une mise à jour de la **monnaie virtuelle**.

<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 - Joueurs - Débogueur PlayStream - Vérifier les événements de classement" width="1147" height="887" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-playstream-debugger-check-leaderboard-events.png" />

Vérifions maintenant manuellement si les joueurs ont reçu les bonnes monnaies :

* Sélectionnez **Players** dans le menu de gauche.
* Dans l'onglet **Players**, passez à la zone **Virtual Currency** de l'écran.
* Vérifiez que la monnaie a été accordée correctement.
* Le montant devrait être *supérieur* à celui noté précédemment.
* Remarquez que les **joueurs** aux positions **0** ou **1** du classement ont reçu **10 gold**, *sans aucun silver*.
* Pendant ce temps, les **joueurs** aux positions **2**, **3** et **4** ont reçu **10 silver** et *aucun gold*.
* Cela correspond aux actions configurées pour la table de prix.

<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 - Joueur 1 - Vérifier le montant de monnaie virtuelle" 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 - Joueur 2 - Vérifier le montant de monnaie virtuelle" width="1268" height="834" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-player2-check-vc-amount.png" />

Une autre façon de vérifier que la **monnaie virtuelle** a été accordée correctement :

* Accédez à **Players**.
* Consultez l'**Event History**.
* Un événement **player\_virtual\_currency\_balance\_changed** s'affichera, avec des détails précis sur les montants modifiés pour la **monnaie virtuelle** accordée.

<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 - Joueurs - Graphique de l'historique des événements - Vérifier la modification de la monnaie virtuelle" 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

- [Comment modifier les prix](/fr-CA/publishing/game-publishing/how-to/how-to-priceupdate.md)
- [Configurer les prix et la disponibilité d'un jeu](/fr-CA/publishing/game-publishing/tutorial-xbox-managed/how-to-configure-pricing-and-availability.md)
- [Utilisation de l'inventaire des joueurs](/fr-CA/services/playfab/player-progression/player-data/player-inventory.md)
- [Tables de butin dans Economy (hérité)](/fr-CA/services/playfab/economy-monetization/economy/tutorials/drop-tables.md)
- [Prix de solde](/fr-CA/publishing/game-publishing/concepts/availability/sale-pricing.md)
