Documentación de Steamworks
Accesorios de artículos del inventario de Steam
Los accesorios de artículos ofrecen a los jugadores la posibilidad de personalizar los artículos de tu juego y crear versiones más valiosas, interesantes e incluso únicas de los artículos comunes utilizados en él.

Los accesorios añadidos podrán verse en el inventario de Steam del jugador y crearán anuncios de artículos "únicos" (no mercancías) al poner estos a la venta en el Mercado de la comunidad de Steam.

Tú decides los tipos de accesorios disponibles y los efectos cosméticos o de juego de cada uno de estos tipos. También puedes permitir el uso de diferentes tipos de accesorios en diferentes tipos de artículos en tu juego.

backpackcomic_resize30.png

Como ejemplo concreto, veremos la definición de un tipo familiar de artículo accesorio: las pegatinas.

Unique_backpack.png

En este ejemplo, el prefijo "Único" se añade automáticamente.

Marcar un artículo como personalizable

Los jugadores solo pueden añadir accesorios a los artículos que hayas configurado expresamente para ese tipo de accesorio. Para marcar un artículo como personalizable, actualiza la ItemDef con la propiedad "accessory_tag" cuyo valor es una categoría de etiqueta individual de artículo.

Ejemplo:
"accessory_tag": "sticker",

Para esta ItemDef, una etiqueta individual de artículo con la categoría "sticker" se tratará como un accesorio añadido. El valor de la etiqueta individual de artículo será el id. de ItemDef del accesorio.

Recuerda que las etiquetas individuales persisten durante toda la vida del artículo, incluso a través de los cambios de propietario.

Un artículo puede llevar varios accesorios, como en el ejemplo anterior. Puedes limitar el número de accesorios en un mismo artículo con la propiedad "accessory_limit":

"accessory_limit": 3,

El límite por defecto es 4. No recomendamos límites más altos.

En el juego, si un artículo es personalizable, puedes encontrar los accesorios que se le han añadido examinando las etiquetas individuales de artículo (llama al método del SDK ISteamInventory::GetResultItemProperty() con el nombre de la propiedad "tags").

Definir un accesorio

Dado que cada accesorio es en realidad un ItemDef, puedes utilizar las herramientas ya existentes para definir la apariencia del accesorio (incluyendo sobre todo la propiedad icon_url y los nombres localizados).

La descripción generada de los artículos personalizados utilizará la información de la ItemDef. Si cambias la ItemDef, los accesorios que ya están en los inventarios de los usuarios también se actualizarán.

Una definición simple de pegatina (calcomanía):
{ "appid": 480, "name": "Blue Star", "description": "A blue star sticker with mysterious powers", "icon_url": ...

Crear accesorios de un solo uso

Los accesorios se pueden colocar con cualquier método que añada etiquetas individuales de artículos. El caso más interesante es definir un accesorio consumible que los jugadores puedan obtener o comprar, intercambiar y luego utilizar.

Esta funcionalidad la proporciona el tipo de artículo "tag_tool". La tag_tool (herramienta de etiqueta) se consume para modificar el artículo objetivo.

Para activar la tag_tool, primero tenemos que activar la accessory_tag (etiqueta de accesorio) en el artículo personalizable (en nuestro ejemplo, este es la mochila):
{ "appid": 480, "itemdefid": 2000, "type": "item", "name": "Everyday backpack", "description": "A good place to keep things, with lots of room for stickers.", "icon_url":..., "accessory_tag": "sticker", "accessory_limit": 3, "allowed_tags_from_tools": "sticker" }

Cada tipo de pegatina se crea con "type" configurado como "tag_tool". La acción de "tag_tool" será aplicar la "accessory_tag" con la ItemDef de esta pegatina como argumento. Así, la ItemDef de nuestra pegatina quedaría de este modo:
{ "appid": 480, "itemdefid": 1001, "name": "Blue Star", "description": "A blue star sticker with mysterious powers", "price_category": "1;VLV25", "icon_url"..., "type": "tag_tool", "tags": "sticker:1001", }

Ten en cuenta que el valor de "tags" aplicará el id. de ItemDef de esta pegatina al artículo objetivo.

Recuerda también que los artículos accesorios son compatibles con todas las acciones de inventario y métodos de entrega normales, incluyendo la definición de categorías de precios y su venta en la tienda de artículos.

Usar accesorios

Para aplicar efectivamente la pegatina a un artículo, llama al método ExchangeItems (fabricación) desde el SDK de Steamworks (o a través de la WebAPI desde un servidor de confianza). Pasa la pegatina y el artículo personalizable como materiales, y define el tipo de ItemDef objetivo para que coincida con el artículo personalizable original. Esto aplicará la tag_tool y actualizará el artículo.

Si la solicitud es válida, la llamada ExchangeItems consumirá atómicamente la pegatina y actualizará las etiquetas en el artículo objetivo.

Las etiquetas individuales también se pueden establecer de otras maneras, incluso con generadores (consulta la página de etiquetas de artículos).

Localización y apariencia

Los accesorios se representan automáticamente en la vista web, incluyendo la mochila de los usuarios y el Mercado de la Comunidad. El bloque de descripción incluirá una versión pequeña del icono para cada accesorio adjunto y una lista de los nombres localizados de cada accesorio.

Como siempre, los nombres de los artículos se localizan proporcionando valores en el esquema ItemDef.

Consulta la sección "Etiquetas de artículos" en la página del servicio de inventario de Steamworks para saber cómo proporcionar texto localizado para el nombre interno. En nuestro ejemplo, el nombre interno "sticker" simplemente se asigna como "Sticker" en todos los idiomas admitidos.

También puedes especificar el texto especial que se mostrará antes del bloque de descripciones especiales anteriormente mencionado. Solo tienes que proporcionar una propiedad accessory_description_<idioma> del código de idioma de la API en la descripción del artículo. Además de las propiedades dinámicas, puedes configurar tokens que se sustituirán por valores de propiedades dinámicas.

Por ejemplo:


Si la instancia del artículo (que tiene el accesorio «pegatina» adjunto) tiene la propiedad dinámica num_times_stickered con un valor de 123, especificar lo siguiente en la definición del artículo de la pegatina:

{ "accessory_description_spanish": "Se han aplicado pegatinas %num_times_stickered% veces" }

generará el siguiente texto en la vista de la página web.

Se han aplicado pegatinas 123 veces

Retirar o sustituir accesorios

Una vez consumido, el artículo accesorio no podrá restaurarse al eliminarlo del artículo personalizado. Por supuesto, los accesorios pueden eliminarse. Consulta la documentación de las etiquetas para artículos para obtener más información sobre los métodos para eliminar etiquetas de un artículo.

Para la personalización por parte de los usuarios, si quieres, puedes ofrecer una herramienta (tag_tool) cuya única función es eliminar los accesorios existentes.

Actualmente, no se pueden añadir dos instancias de un mismo accesorio a un artículo. Al intentarlo, fallará la llamada a ExchangeItems y no se consumirá el artículo accesorio.