Passer au contenu principal

Inventaire des joueurs

Exigences

Pour utiliser l’inventaire des joueurs, un catalogue doit être défini pour votre titre. Pour plus d’informations, consultez notre tutoriel sur les catalogues.
Vous pouvez également définir des boutiques pour votre catalogue.
Alors qu’un catalogue est la liste de tous les objets disponibles dans le jeu, une boutique est un sous-ensemble d’objets du catalogue qui peut proposer une tarification spécifique. Plusieurs boutiques peuvent être définies par catalogue, ce qui vous permet de présenter au joueur des ensembles d’objets distincts en fonction de la segmentation des utilisateurs ou d’autres facteurs. Une fois que vous avez défini un catalogue via Game Manager ou via nos appels d’API d’administration SetCatalogItems ou UpdateCatalogItems, vous pouvez utiliser un large éventail d’appels d’API d’inventaire côté client et côté serveur.

Vue d’ensemble de l’API

Tous les appels d’API d’inventaire sont conçus pour faire autorité côté serveur et être sécurisés. Lorsqu’ils sont utilisés correctement, les clients ne peuvent pas tricher ni acquérir des objets qu’ils n’ont pas mérités. Clients : Serveur : L’exemple ci-dessous présente les blocs de code qui appellent ces méthodes d’API et met en place des cas d’usage de base de l’inventaire des joueurs.
Pour référence, ces exemples sont tirés de Unicorn Battle, un jeu que nous avons créé à titre d’exemple pour illustrer les fonctionnalités de PlayFab.
La monnaie virtuelle AU utilisée ci-dessous est l’or (Gold), une monnaie gratuite gagnée en combattant des monstres (consultez notre tutoriel sur les monnaies). Avant de commencer, nous allons définir quelques fonctions utilitaires qui seront utilisées et réutilisées dans la plupart des exemples de ce guide.

Exemple côté client uniquement : acheter et consommer une potion de soin

Ordre des appels d’API client : PurchaseItem, GetUserInventory, ConsumeItem Nous devons d’abord définir l’objet dans notre catalogue. PlayFab - Economy - Modifier un objet du catalogue Voici les exigences du CatalogItem pour la potion de soin (Health Potion).
  • PurchaseItem nécessite un prix d’objet positif (5 AU).
  • ConsumeItem nécessite que l’objet soit Consumable, avec un nombre d’utilisations positif (3).
  • Le joueur qui effectue l’achat doit disposer de cinq AU dans son solde de monnaie virtuelle.
Le code de chaque appel est fourni ci-dessous.

Exemple : un joueur reçoit un conteneur et l’ouvre

Ordre des appels d’API : Nous devons d’abord disposer d’un conteneur défini dans notre catalogue. Pour le conteneur de cet exemple, nous avons sélectionné un CrystalContainer. Cet exemple montre également comment ouvrir le conteneur avec une clé : un objet facultatif qui doit également figurer dans l’inventaire du joueur pour que l’appel UnlockContainerInstance réussisse. PlayFab - Economy - Modifier un conteneur du catalogue Les exigences du CatalogItem pour notre CrystalContainer dans cet exemple sont les suivantes :
  • CrystalContainer doit être défini comme Container.
  • Les conteneurs peuvent éventuellement définir un objet clé (Key Item), qui est alors nécessaire pour déverrouiller le conteneur ; dans ce cas, une CrystalKey.
  • Il est fortement conseillé que votre conteneur et toute clé soient tous deux consommables, avec un nombre d’utilisations positif, afin qu’ils soient retirés de l’inventaire du joueur après utilisation.

Code serveur

Code client

Consommation des clés et des conteneurs

Dans l’exemple précédent, il est conseillé que la clé et/ou le conteneur soient consommables, mais il ne s’agit que d’une recommandation. Toutefois, si un conteneur et sa clé (le cas échéant) ne sont pas consommables, le conteneur peut être rouvert indéfiniment, en accordant son contenu au joueur à chaque fois. Comme la capacité de l’inventaire du joueur n’est pas infinie, ce modèle est fortement déconseillé. Lorsqu’un conteneur consommable est déverrouillé, le nombre d’utilisations du conteneur et de la clé consommable utilisée est automatiquement diminué, ce qui les retire de l’inventaire du joueur lorsque ce nombre atteint zéro.

Options viables

Conteneur consommable, sans clé : le modèle le plus basique, dans lequel le conteneur est consommé à l’ouverture et il n’y a pas de clé. Conteneur consommable, clé consommable : le cas simple du conteneur verrouillé, qui permet au joueur d’ouvrir le conteneur avec la clé. Les deux sont consommés, et le joueur ne peut ouvrir un conteneur disposant d’utilisations restantes qu’avec une clé disposant elle aussi d’utilisations restantes. Conteneur durable, clé consommable : permet au joueur d’ouvrir le conteneur chaque fois qu’il trouve une clé. La clé est consommée, et le conteneur ne peut être ouvert que tant que la clé dispose d’utilisations restantes. Conteneur consommable, clé durable : permet au joueur de conserver une clé capable d’ouvrir tous les conteneurs dont elle est l’objet clé. Le conteneur est consommé, mais le joueur conserve la possibilité d’ouvrir ultérieurement des conteneurs avec la clé.

Exemple : racheter des objets d’inventaire au joueur

Il n’existe pas d’API intégrée permettant de racheter des objets d’inventaire au joueur, car ce processus est propre à chaque jeu. Vous pouvez toutefois utiliser les méthodes d’API existantes pour créer votre propre expérience SellItem :
  • L’API serveur PlayFab RevokeInventoryItem** vous permet de retirer un objet de l’inventaire.
  • L’API serveur PlayFab AddUserVirtualCurrency** peut restituer un montant approprié de monnaie virtuelle. Il n’est actuellement pas possible de restituer de l’argent réel via les méthodes d’API PlayFab.
Les objets et les monnaies virtuelles sont étroitement liés. Pour plus d’informations, consultez notre tutoriel sur les monnaies.
La fonction CloudScript suivante combine les deux appels serveur décrits en un seul appel accessible depuis le client.

Bonnes pratiques

  • Veillez à vérifier que toutes les informations saisies par le client sont valides avant d’effectuer toute modification.
  • CloudScript n’est pas atomique ; l’ordre des appels est donc important : AddUserVirtualCurrency peut réussir et RevokeInventoryItem échouer.
Dans ce processus, il est généralement préférable de donner au joueur quelque chose qu’il n’a pas mérité plutôt que de lui retirer quelque chose sans compensation.
Cette fonction CloudScript est ensuite accessible depuis le client.
Dernière modification le 8 octobre 2026