Documentação do Steamworks
Inventário Steam: acessórios de itens
Acessórios permitem que jogadores personalizem os seus itens no jogo e possibilitam criar versões ainda mais diferenciadas, interessantes e valiosas de itens comuns.

Acessórios adicionados aos itens ficarão visíveis no inventário na Comunidade Steam e criarão anúncios "únicos" (não commodity) no Mercado da Comunidade Steam.

Cabe a você decidir quais tipos de acessórios oferecer e os efeitos cosméticos ou de jogabilidade de cada tipo. Você também pode oferecer diferentes tipos de acessórios ou de itens no jogo.

backpackcomic_resize30.png

Como exemplo concreto, veremos como definir um tipo comum de acessório — adesivos.

Unique_backpack.png

No exemplo da imagem acima, o prefixo "Unique" (Único) foi adicionado automaticamente.

Marcar um item como personalizável

Jogadores só poderão adicionar acessórios a itens que foram configurados para aceitar acessórios daquele tipo. Para marcar um item como personalizável, atualize a definição do item com a propriedade "accessory_tag", cujo valor deve ser igual ao token que representa a categoria nos marcadores específicos do item.

Exemplo:
"accessory_tag": "adesivo",

Para esta definição de item, os marcadores específicos de item que sejam da categoria "adesivo" serão tratados como um acessório adicionado. O valor do marcador específico de item será o ID da definição do item (ItemDefID) do acessório.

Lembre-se de que os marcadores específicos de um item são mantidos com ele, mesmo se houver alteração de titularidade.

Um item pode ter vários acessórios, como ilustrado no exemplo acima. É possível limitar o número de acessórios de um item por meio da propriedade "accessory_limit":

"accessory_limit": 3,

O limite padrão é 4. Limites maiores não são recomendados.

No jogo, se um item for personalizável, é possível encontrar os seus acessórios ao examinar os marcadores do item em questão (para tal, chame a função ISteamInventory::GetResultItemProperty() passando a propriedade "tags").

Definir um acessório

Como cada acessório é uma definição de item, é possível usar as ferramentas existentes para definir a aparência do acessório — como a propriedade icon_url e nomes traduzidos.

A descrição gerada para itens personalizados usarão os dados da definição do item. Caso a definição do item seja alterada, acessórios que já estejam nos inventários de usuários também serão atualizados.

Uma definição simples de um adesivo:
{ "appid": 480, "name": "Estrela Azul", "description": "O adesivo de uma estrela azul, com poderes misteriosos.", "icon_url": ...

Criar acessórios de uso único

Funções que adicionam marcadores específicos de item podem ser usadas para adicionar acessórios. O caso mais interessante é definir um acessório consumível que usuários podem obter, comprar, trocar e então usar.

Esta funcionalidade é oferecida por ferramentas, que usam o tipo de item "tag_tool". A ferramenta é consumida para modificar um item-alvo.

Para ativar a ferramenta, primeiro precisamos adicionar o marcador do acessório ao item personalizável (no nosso exemplo, a mochila):
{ "appid": 480, "itemdefid": 2000, "type": "item", "name": "Mochila do Dia a Dia", "description": "Um bom lugar para guardar coisas, com bastante espaço para colar adesivos.", "icon_url":..., "accessory_tag": "adesivo", "accessory_limit": 3, "allowed_tags_from_tools": "adesivo" }

Cada tipo de adesivo é criado com a propriedade "type" associada ao valor "tag_tool". A ação da ferramenta será aplicar o marcador de acessório, usando a definição de item do adesivo como argumento. Logo, a definição de item do adesivo fica assim:
{ "appid": 480, "itemdefid": 1001, "name": "Estrela Azul", "description": "O adesivo de uma estrela azul com poderes misteriosos.", "price_category": "1;VLV25", "icon_url"..., "type": "tag_tool", "tags": "adesivo:1001", }

Observe que o valor da propriedade "tags" faz com que o ID da definição de item do adesivo seja aplicada ao item-alvo.

Também observe que itens de acessório funcionam com todas as ações e métodos de inventário — incluindo a definição de categorias de preços e a venda na loja de itens.

Usar acessórios

To actually apply the sticker to an item, call the ExchangeItems (crafting) method from the Steamworks SDK (or via the WebAPI from a trusted server). Informe o adesivo e o item personalizado como materiais e defina o tipo-alvo da definição de item como a definição do item personalizável original. Isso fará com que a ferramenta seja aplicada e o item-alvo seja atualizado.

Se a requisição for válida, a chamada ao método ExchangeItems consumirá o adesivo e atualizará os marcadores do item-alvo de forma atômica.

Marcadores específicos de itens também podem ser definidos de outras formas, inclusive por geradores — consulte a documentação sobre marcadores de itens para saber mais.

Localização e aparência

Acessórios são automaticamente renderizados na visualização web, incluindo na mochila de usuários e no Mercado da Comunidade. O bloco da descrição incluirá uma versão pequena do ícone para cada acessório adicionado, juntamente dos nomes traduzidos de cada um.

Como sempre, nomes de itens são traduzidos por meio de valores no esquema de definição de itens.

Consulte a seção "marcadores de itens" na documentação do serviço de inventário Steam para saber como informar textos traduzidos para o nome interno. No nosso exemplo, o nome interno "adesivo" é exibido como "Sticker" em inglês.

You can also specify special text that will be displayed before the aforementioned special description block. Simply provide a accessory_description_<language> API language code property on your item description; in combination with dynamic properties, you can set tokens that will be replaced with dynamic property values.

Example:


If the item instance (that has the "sticker" accessory attached) has the dynamic property num_times_stickered set to 123, then specifying this on the sticker item definition:

{ "accessory_description_english": "Stickers applied %num_times_stickered% times" }

will output the following text in the web view.

Stickers applied 123 times

Remover ou substituir acessórios

Once consumed, an accessory item can't be restored by removing it from the customized item. Accessories can of course be removed - see the per-item tags documentation for methods to remove tags from an item.

For user customization, you may choose to offer a tag_tool whose only purpose is to remove existing accessories.

Adding two instances of the same accessory to an item is not currently supported. Attempting to do so will fail in the ExchangeItems call and will not consume the accessory item.