Documentazione di Steamworks
Accessori degli oggetti dell'inventario di Steam
Gli accessori degli oggetti consentono ai giocatori di personalizzare i loro oggetti in gioco e di creare versioni più preziose, interessanti e persino esclusive degli oggetti comuni utilizzati nel gioco.

Gli accessori aggiunti saranno visibili nella vista Inventario della Comunità e faranno parte di elenchi di oggetti "Esclusivi" (non commodity) quando vengono offerti sul Mercato della Comunità di Steam.

Spetta a te decidere quali tipi di accessori supportare e quali effetti estetici o di gameplay possono avere i diversi tipi di accessori. Puoi anche scegliere di supportare tipi diversi di accessori su tipi diversi di oggetti nel tuo gioco.

backpackcomic_resize30.png

Come esempio concreto, vediamo come definire un accessorio per un oggetto di tipo familiare, gli adesivi.

Unique_backpack.png

In questo esempio, il prefisso "Esclusivo" viene aggiunto automaticamente.

Contrassegnare un oggetto come personalizzabile

I giocatori possono aggiungere accessori solo a oggetti che hai configurato esplicitamente per quel tipo di accessorio. Per contrassegnare un oggetto come personalizzabile, aggiorna l'ItemDef con la proprietà "accessory_tag", il cui valore è un token di categoria dell'etichetta per ciascun oggetto.

Esempio:
"accessory_tag": "sticker",

Per questo ItemDef, un'etichetta per oggetto con categoria "sticker" sarà trattata come accessorio aggiunto. Il valore dell'etichetta per oggetto sarà l'ItemDefID dell'oggetto accessorio.

Ricorda che le etichette per oggetto persistono per tutta la durata di un oggetto, anche se il proprietario cambia.

Un oggetto può presentare più accessori, come nell'esempio sotto mostrato. Puoi limitare il numero di accessori su un unico oggetto usando la proprietà "accessory_limit":

"accessory_limit": 3,

Il limite predefinito è 4. Sono sconsigliati limiti più alti.

Se un oggetto è personalizzabile, puoi trovare in gioco gli accessori aggiunti esaminando le etichette per oggetto (chiama il metodo SDK ISteamInventory::GetResultItemProperty() con il nome della proprietà "tags").

Definire un accessorio

Poiché ogni accessori è in realtà un ItemDef, puoi usare gli strumenti esistenti per definire il suo aspetto, tra cui, ancora più importante, la proprietà icon_url e i nomi localizzati.

La descrizione generata degli oggetti personalizzati userà le informazioni di ItemDef. Se cambi l'ItemDef, verranno aggiornati anche gli accessori già presenti negli inventari degli utenti.

Una semplice definizione di adesivo:
{ "appid": 480, "name": "Stella blu", "description": "Un adesivo con una stella blu con misteriosi poteri", "icon_url": ...

Creare accessori monouso

Per aggiungere accessori è possibile utilizzare qualsiasi metodo che aggiunge etichette per oggetto. Il caso più interessante consiste nel definire un accessorio consumabile che i giocatori possono guadagnare o acquistare, scambiare e quindi utilizzare.

Questa funzionalità è fornita dal tipo di oggetto "tag_tool". Il tag_tool viene consumato per modificare l'oggetto selezionato.

Per prima cosa, per abilitare il tag_tool, dobbiamo abilitare l'etichetta dell'accessorio sull'oggetto personalizzabile (nel nostro esempio si tratta dello zaino):
{ "appid": 480, "itemdefid": 2000, "type": "item", "name": "Zaino di tutti i giorni", "description": "Un buon posto in cui conservare le cose, con tantissimo spazio per gli adesivi.", "icon_url":..., "accessory_tag": "sticker", "accessory_limit": 3, "allowed_tags_from_tools": "sticker" }

Ogni topo di adesivo viene creato con il "tipo" impostato su un "tag_tool". L'azione del tag_tool sarà applicare l'etichetta accessorio, con l'ItemDef di questo adesivo come argomento. Quindi, l'ItemDef del nostro adesivo avrà questo aspetto:
{ "appid": 480, "itemdefid": 1001, "name": "Stella blu", "description": "Un adesivo con una stella blu con misteriosi poteri", "price_category": "1;VLV25", "icon_url"..., "type": "tag_tool", "tags": "sticker:1001", }

Osserva che il valore "tags" applicherà l'ID ItemDef di questo adesivo all'oggetto selezionato.

Osserva inoltre che gli oggetti accessori supportano tutte le normali azioni dell'Inventario e metodi di distribuzione, tra cui la definizione delle categorie di prezzo e la vendita nel Negozio oggetti.

Usare gli accessori

Per applicare effettivamente l'adesivo a un oggetto, chiama il metodo ExchangeItems (creazione) dall'SDK di Steamworks (o tramite l'API web da un server attendibile). Passa l'adesivo e l'oggetto personalizzabile come materiali e imposta il tipo ItemDef di destinazione in modo che corrisponda all'oggetto personalizzabile originale. Ciò applicherà il tag_tool e aggiornerà l'oggetto selezionato.

Se la richiesta è valida, la chiamata ExchangeItems consumerà in maniera atomica l'adesivo e aggiornerà le etichette sull'oggetto di destinazione.

Le etichette per oggetto possono essere impostate anche in altri modi, ad esempio con i generatori; consulta la pagina Etichette degli oggetti.

Localizzazione e aspetto

Gli accessori vengono sottoposti automaticamente a rendering nella visualizzazione web, compreso lo zaino dell'utente e il Mercato della Comunità. Il blocco con la descrizione comprenderà una versione più piccola dell'icona di ogni accessorio aggiunto ed elencherà i nomi localizzati di ciascun accessorio.

Come al solito, i nomi degli oggetti vengono localizzati fornendo i valori nello Schema ItemDef.

Consulta la sezione "Etichette degli oggetti" nella pagina Servizio dell'inventario di Steam per fornire un testo localizzato per il nome interno. Nel nostro esempio, il nome interno "sticker" viene semplicemente mappato a "Sticker" in tutte le lingue supportate.

Puoi anche specificare un testo speciale che verrà visualizzato prima del suddetto blocco nella descrizione speciale. Ti basta fornire una proprietà accessory_description_<language> Codice lingua API nella descrizione del tuo oggetto. In combinazione con le proprietà dinamiche, puoi definire i token che verranno sostituiti con valori di proprietà dinamiche.

Esempio:


Se l'istanza dell'oggetto (con allegato l'accessorio "sticker") ha la proprietà dinamica num_times_stickered impostata su 123, allora la seguente dicitura nella definizione dell'oggetto sticker:

{ "accessory_description_english": "Adesivi applicati %num_times_stickered% volte" }

darà come risultato il seguente testo in una visuale web:

Adesivi applicati 123 volte

Rimuovere o sostituire gli accessori

Una volta consumato, un oggetto accessorio non può essere ripristinato togliendolo dall'oggetto personalizzato. Ovviamente gli accessori possono essere rimossi; consulta la documentazione sulle etichette per oggetto per conoscere i metodi di rimozione delle etichette da un oggetto.

Per la personalizzazione da parte degli utenti, puoi scegliere di offrire un tag_tool il cui unico scopo sia di rimuovere gli accessori esistenti.

Attualmente l'aggiunta di due istanze dello stesso accessorio di un oggetto non è supportata. Un tentativo del genere fallirà nella chiamata ExchangeItems e non consumerà l'oggetto accessorio.