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

# Tables de butin dans Economy (hérité)

> Créez des tables de butin pondérées et séquentielles dans PlayFab Economy (hérité) à l'aide de Game Manager pour accorder un butin aléatoire et des récompenses aux joueurs à partir de votre catalogue.

# Tables de butin (Economy hérité)

<Info>
  Les API Economy v1 sont en mode maintenance et ne recevront plus de nouvelles fonctionnalités, uniquement des correctifs de bogues. **Les API v1 seront maintenues dans un avenir prévisible.** Consultez la [vue d'ensemble d'Economy v2](/fr/services/playfab/economy-monetization/economy-v2/overview) pour en savoir plus sur la prochaine version de PlayFab Economy !
</Info>

Ce tutoriel présente les étapes de création de tables de butin à l'aide de PlayFab Game Manager.

Les tables de butin vous permettent de générer aléatoirement des [objets d'inventaire](/fr/services/playfab/player-progression/player-data/player-inventory), et les tables de butin *séquentielles* peuvent apporter une part d'aléatoire aux récompenses des joueurs.

* Nous supposons que vous connaissez déjà les [catalogues](/fr/services/playfab/economy-monetization/economy/items/catalogs), l'[inventaire](/fr/services/playfab/player-progression/player-data/player-inventory) et PlayFab [Game Manager](/fr/services/playfab/live-service-management/gamemanager/quickstart).
* Vous devez disposer d'un *catalogue principal*, qui contient des objets standard (ni lots ni conteneurs).
* Vous devez avoir défini au moins *une* monnaie virtuelle, que vous utiliserez comme monnaie « gratuite » dans le jeu.

Vous pouvez utiliser votre propre ensemble d'objets, mais notre objectif est de créer une catégorisation croisée des objets.

À titre d'exemple, nous utiliserons le tableau d'objets suivant :

| | Accessoire | Armure | Épée |
| - | :- | :- | :- |
| **Commun** | Common Accessory | Common Armor | Common Sword |
| **Peu commun** | Uncommon Accessory | Uncommon Armor | Uncommon Sword |
| **Rare** | Rare Accessory | Rare Armor | Rare Sword |
| **Légendaire** | Legendary Accessory | Legendary Armor | Legendary Sword |

Une fois que vous avez configuré un ensemble d'objets similaire dans votre catalogue, nous sommes prêts à créer les tables de butin.

## Création de tables de butin

Dans Game Manager :

1. Accédez à votre **titre**.
2. Sélectionnez **Economy** dans le menu de gauche.
3. Accédez à l'onglet **Catalogs** et choisissez votre catalogue principal.
4. Sélectionnez **Drop Tables**.

Votre écran doit ressembler à cet exemple.

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-catalogs-drop-tables.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=3ee2c6e31f0afbd822a1117ad70f1d79" alt="Game Manager - Catalogs - Drop Tables" width="943" height="488" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-catalogs-drop-tables.png" />

Commencez à créer des **Drop Tables** en fonction de chacun des descripteurs de vos objets. Notre première catégorisation est le **type d'équipement** ; nous allons donc créer une nouvelle **Drop Table** appelée **Accessories**.

1. Sélectionnez le bouton **New Drop Table**.

2. Définissez le **Table Id** sur **Accessories**.

3. Sélectionnez **ADD TO DROP TABLE**. La fenêtre contextuelle **Pick multiple items** s'affiche.

4. Ajoutez ces objets en sélectionnant le bouton **Add** en regard de leur **ID** :
   * **Common Accessory**
   * **Uncommon Accessory**
   * **Rare Accessory**
   * **Legendary Accessory**

5. Sélectionnez le bouton **Close**.

6. Ajustez les valeurs **Weight** des objets en fonction de leur rareté :

   * **Common** : 1000
   * **Uncommon** : 100
   * **Rare** : 10
   * **Legendary** : 1

   Les poids indiquent la fréquence à laquelle les objets doivent être obtenus les uns par rapport aux autres. Dans l'exemple présenté ici, vous obtiendrez environ **1 000 objets communs** pour chaque objet **légendaire**.

7. Sélectionnez **SAVE DROP TABLE**.

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-drop-table-edit-accessories.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=3bcb2b90132d3dec3eafdaef771461ab" alt="Game Manager - Drop Table - Modifier Accessories" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-drop-table-edit-accessories.png" />

Une fois **Accessories** terminée, suivez les mêmes étapes pour créer des tables de butin pour **Armors** et **Weapons**.

Notre autre catégorisation porte sur la rareté ; nous allons donc créer un autre ensemble de tables, en commençant par **Common Equipment**.

1. Sélectionnez le bouton **New Drop Table**.

2. Définissez le **Table Id** sur **Common Equipment**.

3. Sélectionnez **ADD TO DROP TABLE**. La fenêtre contextuelle **Pick multiple items** s'affiche.

4. Ajoutez ces objets en sélectionnant le bouton **Add** en regard de leur **ID** :
   * **Common Accessory**
   * **Common Armor**
   * **Common Sword**

5. Sélectionnez le bouton **Close**.

6. Ajustez les valeurs **Weight** des objets en fonction de la répartition souhaitée des options de **Common Equipment** pour cet emplacement :

   * **Common Accessory** : 1
   * **Common Armor** : 4
   * **Common Sword** : 5

7. Sélectionnez **SAVE DROP TABLE**.

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-drop-table-edit-common-equipment.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=e82dae21d2162de31f53bbf112c2d225" alt="Game Manager - Drop Table - Modifier Common Equipment" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-drop-table-edit-common-equipment.png" />

### Utilisation des tables de butin

Vous pouvez accéder aux tables de butin par programmation à l'aide de ces deux méthodes de l'API serveur PlayFab :

1. [GetRandomResultTables](xref:titleid.playfabapi.com.server.playeritemmanagement.getrandomresulttables)
2. [EvaluateRandomResultTable](xref:titleid.playfabapi.com.server.playeritemmanagement.evaluaterandomresulttable)

À l'aide de [GetRandomResultTables](xref:titleid.playfabapi.com.server.playeritemmanagement.getrandomresulttables), vous pouvez lire les données brutes des tables de butin que nous avons saisies dans Game Manager.

<Note>
  **`GetRandomResultTables`** ne tire *pas* de valeurs aléatoires et n'attribue pas de résultats. L'API vous permet de lire les données et d'analyser les informations comme bon vous semble.
</Note>

### Option 1

```csharp theme={null}
public void ReadDropTableData() {
    PlayFabServerAPI.GetRandomResultTables(new GetRandomResultTablesRequest() {
        TableIDs = new List<string> { "Accessories", "Common Equipment" }
    }, result => {
        Debug.Log("Completed getting drop tables");
    }, error => {
        Debug.LogError(error.GenerateErrorReport());
    });
}
```

Le gestionnaire de résultat recevra les informations de structure de la table de butin que nous avons créée, au format [GetRandomResultTablesResult](xref:titleid.playfabapi.com.server.playeritemmanagement.getrandomresulttables#getrandomresulttablesresult).

Vous pouvez aussi laisser PlayFab évaluer la table *à votre place* et vous fournir un résultat d'objet unique à l'aide de l'API [EvaluateRandomResultTable](xref:titleid.playfabapi.com.server.playeritemmanagement.evaluaterandomresulttable). Cela renvoie l'`itemId` pouvant servir à générer un objet unique, tiré selon les poids fournis.

Vous pouvez ensuite effectuer un second appel, qui crée l'objet et le donne au joueur.

### Option 2

```csharp theme={null}
public void Grant(string playFabId, string tableId) {
    // First, roll a random number and evaluate the drop table
    PlayFabServerAPI.EvaluateRandomResultTable(new EvaluateRandomResultTableRequest()
    {
        TableId = tableId
    }, result => OnRandomResultTableResponse(result, playFabId), OnError);
}

public void OnRandomResultTableResponse(EvaluateRandomResultTableResult tableResult, string playFabId) {
    // Second, take the result and grant it to the player
    PlayFabServerAPI.GrantItemsToUser(new GrantItemsToUserRequest {
        PlayFabId = playFabId,
        ItemIds = new List<string> { tableResult.ResultItemId }
    }, result =>
    {
        // Handle Result
    }, OnError);
}

public void OnError(PlayFabError error) {
    Debug.LogError(error.GenerateErrorReport());
}
```

En résumé :

**Option 1** : vous permet de charger les données une seule fois, de les mettre en cache et d'effectuer le tirage *vous-même* sur votre propre serveur de jeu. Cette option offre une latence plus faible grâce à un nombre réduit d'appels à PlayFab, et vous permet de personnaliser les tirages en fonction d'une logique propre au jeu.

**Option 2** : laisse PlayFab effectuer davantage de travail, mais n'oubliez pas que plusieurs appels d'API impliquent une latence *plus élevée*.

### Utilisation avancée des tables de butin (configuration d'une caisse de butin)

Les tables de butin peuvent être liées à partir de lots et de conteneurs. Les lots sont une excellente option pour les boutiques en monnaie virtuelle, où un seul achat permet d'obtenir une pile d'objets aléatoires.

Par exemple, supposons que nous ayons un **lot de 11 objets** avec des règles de butin spécifiques. Dans ce cas, nous garantissons un objet légendaire, ce qui constitue un argument de vente auprès des clients. Nous allons également le *restreindre*, afin que le joueur ne puisse pas avoir *trop* de chance et recevoir **11 objets légendaires**.

### Nouvelle table de butin

Créons une table de butin qui peut littéralement donner *n'importe quoi* ; d'ailleurs, nous allons l'appeler **Anything**.

Lors de la création de cette table de butin, donnez-lui *d'autres* tables de butin comme options (dans la fenêtre contextuelle **Pick multiple items**, sélectionnez l'onglet **Drop Tables** pour ajouter d'autres tables de butin), et attribuez-leur des poids appropriés.

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-new-drop-table.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=91467936c149620be0008ee13b429ca4" alt="Game Manager - Nouvelle table de butin" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-new-drop-table.png" />

## Ajout d'un lot

À ce stade, nous en avons terminé avec les tables de butin et nous allons ajouter un **Bundle**.

1. Sélectionnez **Economy** dans le menu de gauche.
2. Accédez à l'onglet **Catalogs** et choisissez votre catalogue principal.
3. Sélectionnez **Bundles** et choisissez **New Bundle**.
4. Définissez l'**Item Id** sur **11-Item Drop**, sélectionnez **Consumable** et choisissez **By time** **15 Seconds**.
5. Sélectionnez **ADD TO BUNDLE**.
6. Dans la fenêtre contextuelle **Pick multiple items**, sélectionnez l'onglet **Drop tables**.
7. Ajoutez les tables de butin en sélectionnant le bouton **Add** en regard de leur **ID**.
8. Définissez les champs **Quantity** sur les valeurs indiquées dans l'image ci-dessous.
9. Sélectionnez **SAVE BUNDLE**.

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-new-catalog-bundle.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=32e531cbb1e6833a2214055427c0c133" alt="Game Manager - Nouveau lot de catalogue" width="1280" height="1500" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-new-catalog-bundle.png" />

Le **Bundle** que nous avons créé pour cet exemple utilise plusieurs fonctionnalités :

* Tous les objets, *quel que soit* leur type, doivent avoir un **Item ID**.
* Un **Bundle** compte comme un objet à part entière, et son contenu est livré au moment où il est accordé. C'est pourquoi nous rendons le **Bundle** lui-même consommable, et il expire 15 secondes après la livraison.
* Nous ajoutons différentes **Drop tables** en différentes quantités pour garantir la livraison de **11 objets**, mais différents objets sont tirés sur différentes tables.
  * Tout d'abord, nous garantissons au moins **1 objet légendaire** ; le premier emplacement est donc tiré sur **Legendary Equipment**.
  * Les 3 emplacements suivants sont tirés sur **Anything**, qui peut donner d'autres objets **légendaires** ou des équipements communs moins intéressants. Ces tirages déterminent s'il s'agit d'un *bon* ou d'un *mauvais* tirage, car ces trois objets peuvent varier considérablement.
  * Enfin, nous remplissons les emplacements restants avec des objets **rares** et **peu communs** garantis, afin qu'un tirage de **11 objets** ne soit ni *trop* bon ni *trop* mauvais.

## Conclusion

Une table de butin génère aléatoirement un seul objet à partir d'une liste d'objets potentiels et de poids. Les lots et les conteneurs peuvent constituer l'un des moyens les plus simples de livrer un ou plusieurs objets à un joueur à l'aide de tables de butin.

Vous pouvez utiliser manuellement une table de butin depuis [CloudScript](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript), à l'aide de l'une de ces méthodes de l'API serveur :

1. [GetRandomResultTables](xref:titleid.playfabapi.com.server.playeritemmanagement.getrandomresulttables)
2. [EvaluateRandomResultTable](xref:titleid.playfabapi.com.server.playeritemmanagement.evaluaterandomresulttable)


## Related topics

- [Drop Tables in Economy (Legacy)](/services/playfab/economy-monetization/economy/tutorials/drop-tables.md)
- [Tablas de botín en Economy (heredada)](/es/services/playfab/economy-monetization/economy/tutorials/drop-tables.md)
- [Drop tables and randomized loot in Economy v2](/services/playfab/economy-monetization/economy-v2/tutorials/drop-tables-and-randomized-loot.md)
- [Catalogs (Legacy Economy)](/services/playfab/economy-monetization/economy/items/catalogs.md)
- [Catálogos (Economía heredada)](/es/services/playfab/economy-monetization/economy/items/catalogs.md)
