Inventario del jugador
Requisitos
Para usar el inventario del jugador, debe tener un catálogo definido para su título. Lea nuestro tutorial de Catálogos para obtener más información.Opcionalmente, también puede definir tiendas para su catálogo.
Información general de la API
Todas las llamadas de API de inventario están diseñadas para ser con autoridad de servidor y seguras. Cuando se usan correctamente, los clientes no podrán hacer trampas ni adquirir artículos que no hayan ganado. Clientes:- Comprar artículos con moneda virtual: PurchaseItem
- Realizar compras con dinero real: StartPurchase, PayForPurchase, ConfirmPurchase
- Pueden ver los artículos que tiene un jugador: GetUserInventory
- Pueden quitar artículos: ConsumeItem, UnlockContainerInstance
- Pueden intercambiar artículos: OpenTrade, GetPlayerTrades, AcceptTrade, CancelTrade
- Puede regalar/conceder artículos: GrantItemsToUser
- Puede ver los artículos: GetUserInventory
- Puede modificar artículos: ModifyItemUses, UpdateUserInventoryItemCustomData
- Puede quitar artículos: RevokeInventoryItem, ConsumeItem, UnlockContainerInstance
Como referencia, estos ejemplos proceden de Unicorn Battle, un juego que creamos como ejemplo para demostrar las características de PlayFab.
Ejemplo solo de cliente: comprar y consumir una poción de salud
Orden de llamadas de la API de cliente: PurchaseItem, GetUserInventory, ConsumeItem Primero debemos comenzar por definir el artículo en nuestro catálogo. Estos son los requisitos deCatalogItem para la poción de salud.
PurchaseItemrequiere un precio de artículo positivo (5 AU).ConsumeItemrequiere que el artículo seaConsumable, con un recuento de artículos positivo (3).- El jugador que realiza la compra debe tener cinco AU disponibles en su saldo de moneda virtual.
Ejemplo: se concede un contenedor al jugador y lo abre
Orden de llamadas de la API:- API de servidor de PlayFab GrantItemsToUser
- API de cliente de PlayFab UnlockContainerInstance
UnlockContainerInstance se realice correctamente.
Los requisitos de CatalogItem para nuestro CrystalContainer en este ejemplo incluyen:
- Que CrystalContainer esté definido como un Container.
- Que los contenedores pueden definir opcionalmente un Key Item, que luego es necesario para desbloquear el contenedor; en este caso, una CrystalKey.
- Se recomienda encarecidamente que el contenedor y cualquier llave sean ambos Consumable, con un recuento de usos positivo, para que se quiten del inventario del jugador después de su uso.
Código del servidor
Código del cliente
Consumo de llaves y contenedores
En el ejemplo anterior, se sugiere que la llave o el contenedor sean consumibles, aunque eso es solo una recomendación. Pero si un contenedor y su llave (si la hay) no son consumibles, el contenedor se puede reabrir infinitamente, concediendo su contenido al jugador cada vez. Dado que la capacidad del inventario del jugador no es infinita, este patrón está muy desaconsejado. Cuando se desbloquea un contenedor consumible, tanto el contenedor como la llave consumible que se usó verán automáticamente reducido su recuento de usos, y se quitarán del inventario del jugador cuando el recuento de usos llegue a cero.Opciones viables
Contenedor consumible, sin llave: el patrón más básico, en el que el contenedor se consume al abrirse y no hay llave. Contenedor consumible, llave consumible: el caso sencillo del contenedor bloqueado, que permite al jugador abrir el contenedor con la llave. Se consumen ambos, y el jugador solo puede abrir un contenedor con usos restantes con una llave con usos restantes. Contenedor duradero, llave consumible: esto permite a un jugador abrir el contenedor cada vez que encuentra una llave. La llave se consume, y el contenedor solo se abre mientras la llave tenga usos restantes. Contenedor consumible, llave duradera: esto permite a un jugador conservar una llave que puede abrir todos los contenedores para los que es el artículo llave. El contenedor se consume, pero el jugador conserva la capacidad de abrir contenedores con la llave más adelante.Ejemplo: comprar artículos del inventario al jugador
No hay una API integrada para recomprar artículos del inventario al jugador, ya que el proceso es específico de cada juego. Sin embargo, puede usar los métodos de API existentes para crear su propia experiencia de SellItem:- La API de servidor de PlayFab RevokeInventoryItem** le permite quitar un artículo del inventario.
- La API de servidor de PlayFab AddUserVirtualCurrency** puede devolver una cantidad adecuada de moneda virtual. Actualmente no es posible devolver dinero real a través de los métodos de API de PlayFab.
Los artículos y las monedas virtuales tienen una relación estrecha. Para obtener más información, consulte nuestro tutorial de Monedas.
Procedimientos recomendados
- Asegúrese de verificar que toda la información de entrada del cliente sea válida antes de realizar cualquier cambio.
- CloudScript no es atómico, por lo que el orden de las llamadas importa: AddUserVirtualCurrency puede tener éxito y RevokeInventoryItem puede fallar.
