> ## 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 attribuent de la monnaie virtuelle, des objets d'inventaire, des notifications Push ou des actions CloudScript aux premiers 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/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

Il s'agit notamment d'un moyen de déclencher des e-mails, d'envoyer des notifications Push, d'attribuer des [objets d'inventaire](/fr/services/playfab/player-progression/player-data/player-inventory) et de la [monnaie virtuelle](/fr/services/playfab/economy-monetization/economy/tutorials/currencies), ou d'exécuter une fonction [CloudScript](/fr/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 attribue de la monnaie virtuelle à 5 joueurs en fonction de leur rang dans un classement après une réinitialisation.

## Configuration requise

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

* Des connaissances de base sur la création d'un joueur seront nécessaires, car il doit y avoir des joueurs dans un classement avant que celui-ci puisse effectuer des actions sur ces joueurs.
* Il est également utile de lire le [démarrage rapide de Game Manager](/fr/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 des connaissances générales sur le fonctionnement des classements réinitialisables. Consultez les informations sur les classements dans notre tutoriel [Utilisation des statistiques et classements réinitialisables](/fr/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/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** nommé **tournamentScore\_manual** dans le champ **Statistic name**.
* À l'aide du menu déroulant fourni, définissez le champ **Reset frequency** sur **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 lui ê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** :

* Accédez à la zone **INFO** et saisissez 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 doivent être définis. Pour ce faire :

* Sélectionnez **+ ADD RANK** dans la section **TABLE CONTENTS**.
* Un formulaire **Rank** apparaît.

<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" />

Ajoutons maintenant une deuxième plage de rangs :

* Sélectionnez **+ADD RANK** dans la section **TABLE CONTENTS** (il en existe également un *deuxième* en bas, qui fonctionne aussi).
* Dans le formulaire **Rank** qui apparaît, 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 la table de prix qui lui est 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). Nous utiliserons ensuite 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** en 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 de l'API - Autoriser le client à publier des statistiques de joueur" 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 **Players** 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 du joueur

Avant toute vérification :

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

Avant toute vérification, revenez aux **Players** de test de l'étape 2.

* Accédez à **Players** et recherchez-en un qui a été placé dans le **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 des 5 joueurs placés dans le **Leaderboard tournamentScore\_manual** à l'étape 3.
* Veillez à 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 attribuer les récompenses

Accédez maintenant à **Leaderboards**.

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

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

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

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

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

* Cela videra la liste **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 - 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 videra la liste **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 - 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 constaté rapidement 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** affiche un événement de classement d'un **Player** dans un **Leaderboard**, suivi d'une mise à jour 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 - 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**, accédez à la zone **Virtual Currency** de l'écran.
* Vérifiez que la monnaie a été attribuée correctement.
* Le montant devrait être *supérieur* à celui noté précédemment.
* Notez que les **Players** aux positions **0** ou **1** du classement ont gagné **10 gold** *sans recevoir de silver*.
* Les **Players** aux positions **2**, **3** et **4** ont quant à eux reçu **10 silver** et *pas de 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 **Virtual Currency** a été attribuée correctement :

* Accédez à **Players**.
* Consultez l'**Event History**.
* Un événement **player\_virtual\_currency\_balance\_changed** s'affiche, avec des détails précis sur les montants modifiés pour la **Virtual Currency** attribué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/publishing/game-publishing/how-to/how-to-priceupdate.md)
- [Utilisation de l'inventaire des joueurs](/fr/services/playfab/player-progression/player-data/player-inventory.md)
- [Tables de butin dans Economy (hérité)](/fr/services/playfab/economy-monetization/economy/tutorials/drop-tables.md)
- [Prix en argent réel dans Economy v2](/fr/services/playfab/economy-monetization/economy-v2/catalog/real-money-prices.md)
- [Prix promotionnels](/fr/publishing/game-publishing/concepts/availability/sale-pricing.md)
