Skip to main content

Piles

Economy v2 est désormais en disponibilité générale. Pour obtenir de l’aide et donner votre avis, rendez-vous sur le forum PlayFab.
Le service Inventory d’Economy V2 introduit le concept de piles, qui apporte davantage de flexibilité et de prise en charge pour vos besoins en matière d’inventaire. Les piles permettent à des instances séparées et distinctes d’un même objet d’exister dans le même inventaire. Cette fonctionnalité permet des scénarios d’organisation dans le jeu, la possibilité de définir des propriétés d’objet différentes, et bien plus encore ! Les objets ayant le même Id peuvent être stockés sous forme de piles de l’objet, chacune avec sa propre quantité et différenciée par un StackId. Si rien n’est spécifié, les actions d’inventaire utilisent généralement la pile par défaut dont le StackId est : default La pile par défaut peut être supprimée. La prochaine fois qu’un ajout ou un transfert a lieu sans StackId (ou avec le StackId par défaut), la pile par défaut est recréée

Gestion des inventaires et des piles

Voici une présentation détaillée des API Inventory et de leurs interactions avec les piles.

Ajouter des objets d’inventaire

Dans l’API AddInventoryItems, vous pouvez définir un StackId dans le paramètre Item. Ce paramètre définit soit la pile dont la quantité est augmentée, soit l’ID de la nouvelle pile en cours de création. Exemple de requête AddInventoryItems avec un StackId :
La requête ci-dessus crée soit une toute nouvelle pile de l’objet avec une quantité de 5 et un StackId NewStack, soit ajoute 5 à la pile NewStack existante si elle existait déjà

Soustraire des objets d’inventaire

Dans l’API SubtractInventoryItems, le StackId sert à définir la pile de laquelle la quantité est soustraite. De plus, vous pouvez définir un booléen DeleteEmptyStacks qui supprime la pile si la soustraction ramène sa quantité à 0. Tenter de soustraire d’une pile une quantité supérieure à sa quantité actuelle génère une erreur. Exemple de requête SubtractInventoryItems avec un StackId :
La requête ci-dessus soustrait 5 de la pile dont l’ID est NewStack et supprime la pile si sa quantité était exactement de 5.

Mettre à jour des objets d’inventaire

Dans l’API UpdateInventoryItems, vous pouvez définir un StackId dans le paramètre Item. Ce paramètre définit soit la pile mise à jour, soit l’ID de la nouvelle pile en cours de création. Exemple de requête UpdateInventoryItems :
La requête ci-dessus crée soit une toute nouvelle pile de l’objet avec une quantité de 5 et un StackId NewStack, soit définit la quantité de NewStack sur 5 si elle existait déjà

Supprimer des objets d’inventaire

L’API DeleteInventoryItems permet de supprimer une pile entière d’objets de l’inventaire d’un joueur. Un StackId peut être fourni pour définir la pile spécifique de l’objet à supprimer. Exemple de requête DeleteInventoryItems :

Acheter des objets d’inventaire

L’API PurchaseInventoryItems utilise le prix de l’objet défini dans le catalogue, déduit le coût de l’inventaire du joueur et l’échange contre la quantité souhaitée de l’objet. Vous devez spécifier l’Item que vous souhaitez acheter et la quantité (Amount) de l’objet que vous souhaitez acheter. Lorsque vous effectuez des achats avec des piles, quelques paramètres sont pertinents :
  • Pour PriceAmounts, vous pouvez définir un StackId facultatif pour chaque objet de prix (c’est-à-dire les objets dépensés) afin de définir la pile de laquelle les objets dépensés seront déduits
  • Pour l’objet Item, vous pouvez définir un StackId facultatif qui représente la pile dans laquelle les objets reçus seront placés
  • Vous pouvez définir un booléen DeleteEmptyStacks qui supprime la pile si la soustraction ramène sa quantité à 0.
Pour plus de détails sur l’achat d’objets, consultez PurchaseInventoryItems.
Exemple de requête PurchaseInventoryItems avec des piles :

Transférer des objets d’inventaire

Lorsque vous utilisez l’API TransferInventoryItems avec des piles, quelques paramètres sont pertinents :
  • Dans l’objet GivingItem, vous pouvez définir un StackId facultatif qui représente la pile de laquelle les objets donnés seront prélevés
  • Dans l’objet ReceivingItem, vous pouvez définir un StackId facultatif qui représente la pile dans laquelle les objets reçus seront placés
  • Vous pouvez définir un booléen DeleteEmptyStacks qui supprime la pile si la quantité de GivingItem ramène la quantité de la pile à 0
Exemple de requête TransferInventoryItems avec des piles :

API ExecuteInventoryOperations

Vous pouvez utiliser les paramètres StackId et DeleteEmptyStacks dans les objets Operation de l’API ExecuteInventoryOperations. Ces paramètres vous permettent de regrouper plusieurs opérations d’inventaire utilisant des piles. Exemple de requête ExecuteInventoryOperations avec des piles :

Ajout de propriétés personnalisées avec DisplayProperties et NewStackValues

Vous pouvez définir des propriétés d’objet personnalisées sur les objets d’inventaire avec le paramètre DisplayProperties. La définition de propriétés peut se faire dans les API AddInventoryItems, PurchaseInventoryItems et TransferInventoryItems, mais uniquement lors de la création d’une nouvelle pile. Pour définir des propriétés d’affichage pour de nouveaux objets, le paramètre NewStackValues doit être défini dans la requête d’API. Exemple de requête AddInventoryItems avec NewStackValues :
Pour mettre à jour les propriétés d’affichage d’objets existants, vous pouvez utiliser l’API UpdateInventoryItems afin de modifier directement les propriétés.
Last modified on October 6, 2026