Documentazione di Steamworks
Schema dell'inventario di Steam

Panoramica sullo schema dell'elemento ItemDef

Schema di base e tipi di oggetti

Si tratta delle proprietà fondamentali comprese e interpretate da Steam, necessarie per il corretto funzionamento dell'economia, degli scambi e della visualizzazione dell'inventario. Molte di queste proprietà sono le stesse che vengono restituite dall'API web ISteamEconomy/GetAssetClassInfo.

Un ItemDef deve essere uno dei tipi seguenti:

NomeDescrizione
itemUn tipo di oggetto che può essere trovato nell'inventario di un giocatore.
bundleRappresenta una raccolta di elementi ItemDef, con la loro quantità associata a ciascun tipo. Quando questo oggetto viene assegnato, si espande automaticamente nell'insieme di oggetti configurati nella proprietà bundle.
generatorRappresenta un oggetto casuale. Quando viene assegnato un oggetto di questo tipo, viene selezionato un tipo di oggetto casuale dalla proprietà bundle e creata un'istanza di tale tipo. Ad esempio, immagina che sia come una cassa quando viene aperta e uno dei possibili oggetti viene creato.
playtimegeneratorSi tratta di una forma speciale di generator che può essere concessa effettuando la chiamata a ISteamInventory::TriggerItemDrop dall'applicazione.
tag_generatorSpeciale definizione dell'oggetto che applica etichette alle istanze dell'oggetto (per maggiori dettagli, consulta la sezione Etichette degli oggetti dell'inventario di Steam).
Per i dettagli sulla definizione dei tipi di oggetti complessi, dai un'occhiata qui.

Proprietà dell'elemento ItemDef

NomeDescrizione
appidL'ID dell'applicazione.
nameIl nome in lingua inglese dell'oggetto. Puoi fornire versioni tradotte del nome dell'oggetto utilizzando l'esempio seguente come guida:
name_english: "Hat" name_italian: "Cappello"
Per i suffissi validi da usare per i nomi delle lingue, consulta la documentazione Localizzazione e lingue.
descriptionLa descrizione in inglese dell'oggetto.
Puoi fornire versioni tradotte della descrizione dell'oggetto utilizzando l'esempio seguente come guida:
description_english: "This is a tall hat" description_italian: "Questo è un cappello a cilindro"
Per i suffissi validi da usare per i nomi delle lingue, consulta la documentazione Localizzazione e lingue.
display_typeLa descrizione in inglese del "tipo" di oggetto.
Puoi fornire versioni tradotte del tipo di oggetto utilizzando l'esempio seguente come guida:
display_type_english: "Weapon" display_type_italian: "Arma"
Per i suffissi validi da usare per i nomi delle lingue, consulta la documentazione Localizzazione e lingue.
itemdefidL'ID dell'elemento ItemDef. Questo valore deve essere inferiore a 1.000.000 per gli oggetti che non fanno parte del Worskhop.
typeUn valore interno ('item' | 'bundle' | 'generator' | 'playtimegenerator' | 'tag_generator').
bundleConsulta la sezione Oggetti di tipo pacchetto o generatore di seguito.
promoConsulta la sezione Formato della proprietà promo di seguito.
drop_start_timeTimestamp in formato UTC che impedisce l'assegnazione di oggetti promozionali prima dell'orario indicato. Applicabile solo quando la promozione viene impostata in modo manuale (consulta la sezione Formato della proprietà promo di seguito).
exchangeConsulta la sezione Formato di scambio di seguito.
priceConsulta la sezione Formato dei prezzi di seguito.
price_categoryUn prezzo preimpostato, in cui gestiamo i vari valori di valuta al posto tuo. Consulta la sezione Formato dei prezzi di seguito.
background_colorIl colore da visualizzare sullo sfondo dell'inventario espresso come numero esadecimale a 6 cifre.
name_colorIl colore in cui visualizzare il nome nell'inventario espresso come numero esadecimale a 6 cifre.
icon_urlL'URL dell'icona piccola dell'oggetto. L'URL deve essere pubblicamente accessibile in quanto i server di Steam lo scaricheranno e lo memorizzeranno nella cache. La dimensione consigliata è di 200 pixel x 200 pixel.
icon_url_largeL'URL dell'immagine grande dell'oggetto. L'URL deve essere pubblicamente accessibile in quanto i server di Steam lo scaricheranno e lo memorizzeranno nella cache. La dimensione consigliata è di 2048 pixel x 2048 pixel.
marketablePuò essere "false" o "true". Indica se l'oggetto può essere venduto agli altri utenti nel Mercato della Comunità di Steam.
tradablePuò essere "false" o "true". Indica se l'oggetto può essere scambiato con altri utenti attraverso il sistema di scambio di Steam.
tagsConsulta Etichette degli oggetti dell'inventario di Steam.
tag_generatorsElenco degli ID di definizione dell'oggetto tag_generator da applicare (consulta Etichette degli oggetti dell'inventario di Steam).
tag_generator_nameNome del token della categoria dell'etichetta (consulta Etichette degli oggetti dell'inventario di Steam).
tag_generator_valuesElenco dei valori dell'etichetta e relativa possibilità di essere selezionati (consulta Etichette degli oggetti dell'inventario di Steam).
store_tagsStringa con le "etichette" delimitate dal carattere ";". Queste etichette verranno utilizzate per suddividere gli oggetti in categorie o applicare filtri nel Negozio di oggetti della tua applicazione.
store_imagesURL di immagini delimitate dal carattere ";". Queste immagini verranno trasmesse e utilizzate nella pagina dei dettagli del Negozio di articoli Steam per la tua app.
game_onlyPuò essere "false" o "true". Se "true", allora gli oggetti non verranno mostrati nello zaino dell'utente di Steam, incluse le notifiche dei nuovi oggetti. Gli usi comuni per questa funzione sono oggetti assegnati e consumati immediatamente.
hiddenPuò essere "false" o "true". Se "true", la definizione dell'oggetto non verrà visualizzata dai client e l'oggetto non sarà acquistabile. Utilizza questa proprietà per nascondere le definizioni dell'oggetto inutilizzate o in fase di sviluppo.
store_hiddenPuò essere "false" o "true". Se "true", l'oggetto sarà nascosto dal Negozio di oggetti di Steam dell'applicazione. Per impostazione predefinita, tutti gli oggetti con un prezzo verranno visualizzati nel Negozio.
use_drop_limitPuò essere "false" o "true". Se "true", faremo affidamento su drop_limit per limitare l'assegnazione degli oggetti da ISteamInventory::TriggerItemDrop. Consulta la sezione Assegnazione di oggetti in base al tempo di gioco di seguito.
drop_limitUn valore intero. Limita il numero di volte in cui l'oggetto potrà essere assegnato da ISteamInventory::TriggerItemDrop. L'impostazione di questo valore su zero eviterà che l'oggetto venga assegnato in futuro. Consulta la sezione Assegnazione di oggetti in base al tempo di gioco di seguito.
drop_intervalUn valore intero. Il tempo di gioco in minuti prima che l'oggetto possa essere assegnato all'utente. Consulta la sezione Assegnazione di oggetti in base al tempo di gioco di seguito.
use_drop_windowPuò essere "false" o "true". Se "true", useremo "drop_window" per questo elemento ItemDef. Consulta la sezione Assegnazione di oggetti in base al tempo di gioco di seguito.
drop_windowUn valore intero. Intervallo di tempo in minuti prima che un oggetto venga assegnato. Consulta la sezione Assegnazione di oggetti in base al tempo di gioco di seguito.
drop_max_per_windowUn valore intero. Numero di assegnazioni concesse nel dato intervallo di tempo. Il valore predefinito è 1. Consulta la sezione Assegnazione di oggetti in base al tempo di gioco di seguito.
granted_manuallyPuò essere "false" o "true". Se "true", l'oggetto sarà assegnato solo quando AddPromoItem() o AddPromoItems() vengono chiamate con l'ID esplicito della definizione dell'oggetto. In caso contrario, l'oggetto può essere assegnato tramite la chiamata GrantPromoItems(). Valore predefinito: false.
use_bundle_pricefalse/true. Consulta la sezione Vendita di oggetti di tipo pacchetto di seguito. Valore predefinito: false.
auto_stackPuò essere "false" o "true". Se "true", le assegnazioni degli oggetti saranno aggiunte automaticamente a uno stack singolo del tipo determinato. Le assegnazioni saranno visibili nei callback dell'inventario come modifiche delle quantità. Valore predefinito: false.

Schema esteso

Puoi definire anche eventuali proprietà aggiuntive di cui hai bisogno specificatamente per il tuo gioco.

Uso di definizioni complesse degli oggetti

Oggetti di tipo pacchetto o generatore

Le regole per gli oggetti di tipo pacchetto, generatore o generatore in base al tempo di gioco vengono definite attraverso il campo bundle.

Per i pacchetti descriviamo il tipo e la quantità di oggetti contenuti al loro interno.

Per gli oggetti di tipo "generator" o "playtimegenerator", descriviamo i possibili tipi di oggetto da generare e il relativo peso di ciascun tipo. Tieni presente che non è necessario che la somma dei pesi sia 100, ma è più pratico.

Il campo bundle viene espresso come una serie di ricette dell'oggetto separate da ";". Ogni ricetta è costituita da un ID dell'elemento ItemDef, seguito facoltativamente da una "x", che svolge la funzione di separatore, e dalla quantità desiderata.

Se la quantità non viene indicata esplicitamente, per impostazione predefinita viene utilizzato il valore "1".

Formato del pacchetto

bundle_def : item_recipe , { ";" , item_recipe } item_recipe : item_def , []

Esempi di pacchetti

  • Assegna un itemdef 201, un itemdef 202 e un itemdef 203:
    type: bundle bundle: 201;202;203
  • Assegna un'istanza di itemdef 101 e cinque istanze di istemdef 102:
    type: bundle bundle: 101x1;102x5
  • Casuale: 90% di possibilità di ottenere itemdef 501, 9% di possibilità di ottenere itemdef 502, 1% di possibilità di ottenere l'oggetto 503:
    type: generator bundle: 501x90;502x9;503x1
  • 90% di possibilità di ottenere un oggetto comune; 10% di possibilità di ottenere un oggetto speciale.
    itemdefid: 600 name: Common generator type: generator bundle: 601;602;603;604;605 itemdefid: 700 name: Special generator type: generator bundle: 701;702;703;704;705 itemdefid: 800 name: Master generator type: generator bundle: 600x9;700x1

Nota: come nell'ultimo esempio, le definizioni del pacchetto e del generatore possono essere concatenate. Al momento dell'assegnazione, tutti i tipi di oggetti complessi vengono espansi più volte fino a quando non rimane un semplice elemento ItemDef.

Formule di scambio

L'API ExchangeItems consente di definire ricette per la creazione/trasformazione degli oggetti che possono essere chiamate in modo sicuro dal client. I server di Steam controlleranno l'inventario del giocatore, consumeranno in maniera atomica i materiali forniti e assegneranno l'oggetto finale se i requisiti vengono soddisfatti.

L'oggetto finale può essere un tipo pacchetto o generatore.

La formula è fornita nel campo exchange dell'oggetto finale. La formula viene specificata come una serie di una o più ricette separate da punti e virgola.

Ogni ricetta è una serie di oggetti materiale obbligatori, separati da virgole.

I materiali richiesti possono essere assegnati in modo esplicito da itemdefid o in base all'etichetta. Se non viene indicata una quantità, viene presunta una quantità di 1.

Quando si usa ExchangeItems, il caller fornisce un elenco di oggetti materiale da scambiare per l'oggetto finale. Il server controllerà ogni ricetta e quindi sceglierà la prima soddisfatta dai materiali assegnati.

Gli scambi sono flessibili: queste formule consentono di utilizzare una chiave per aprire un forziere, di creare un oggetto fantasioso costruito con parti di ricambio diverse, nonché di riciclare e di aggiornare gli oggetti.

Formato di scambio

<exchange>: <recipe> { ";" <recipe> } <recipe>: <material> { "," <material> } <material>: <item_def_descriptor> / <item_tag_descriptor> <item_def_descriptor>: <itemdefid> [] <item_tag_descriptor>: <tag_name> ":" <tag_value> []
Se non è indicata esplicitamente, la quantità richiesta è 1.

Esempio di scambio

// richiede uno dei seguenti elementi: // - un item#100 e un item#101; oppure, // - cinque item#102; oppure, // - tre item#103 e tre item#104. "exchange":"100,101;102x5;103x3,104x3" // richiede un guanto sinistro e un guanto destro: "exchange":"handed:left,handed:right" // richiede tre alberi più qualcosa di fantasioso: "exchange":"type:tree*3,quality:fancy" // richiede: // - item#201 e item#202; oppure, // - un oggetto al sapore di banana e un oggetto pesante "exchange":"201x1,202x1;flavor:banana,mass:heavy" // ricicla cinque artefatti "comuni" in un artefatto "speciale": { "name":"special_generator", "type":"generator", "tags":"rarity:special", "bundle":...., "exchange":"rarity:common*5", ... }

Oggetti promozionali

Gli oggetti promozionali possono essere assegnati ai giocatori in base a diversi criteri:

  • Proprietà di un appID (incluso l'appID di un DLC)
  • Un achievement
  • Tempo di gioco registrato con un appID
  • Assegnato manualmente: il client deve effettuare la chiamata a AddPromoItem con l'ID specifico della definizione dell'oggetto.

I controlli degli oggetti promozionali vengono eseguiti da Steam, pertanto gli oggetti possono essere richiesti in modo sicuro dal client. Consulta la sezione ISteamInventory::AddPromoItem. Per definire un oggetto promozionale, imposta una o più regole per l'assegnazione dell'oggetto nella proprietà "promo" della definizione dell'oggetto.

Tieni presente che anche un pacchetto può costituire un oggetto promozionale.

Gli oggetti promozionali che vengono assegnati manualmente possono presentare determinati intervalli di assegnazione. Ad esempio, utilizzando il parametro promo potresti assegnare alcuni oggetti ogni settimana a fronte del completamento di un compito da parte del giocatore, ad esempio una missione nel gioco. Per utilizzare questa funzione, imposta i valori drop_start_time e drop_interval nell'elemento ItemDef.

Gli oggetti promozionali non vengono assegnati per la proprietà temporanea di un titolo gratuito (inclusi i titoli dei weekend gratis, quelli a cui l'accesso è stato effettuato tramite la condivisione familiare, ecc.).

Formato della regola della proprietà promo

<promo>: <rule> { ";" <rule> } <rule>: app_rule / ach_rule / played_rule / manual_rule <app_rule>: "owns:" <appid> <ach_rule>: "ach:" <achievement name> <played_rule>: "played:" <appid>/<minutes played, defaults to 1> <manual>: "manual"

Esempi di promozioni

// definizioni semplici della regola della promozione: "promo":"owns:440;owns:480" // ha un tempo di gioco di almeno 15 minuti registrato sull'appID 570: "promo":"played:570/15" // l'oggetto consumabile che può essere assegnato una volta a settimana: "itemdefid": 404, "type": "item", "name": "Weekly Quest Item", "promo": "manual", "drop_start_time": "20170801T120000Z", "drop_interval": 10080, ...

Orario di inizio dell'assegnazione

Impostando l'orario di inizio dell'assegnazione dell'oggetto promozionale, si eviterà di assegnarlo in un orario precedente a quello indicato. In questo modo è possibile implementare il codice per l'assegnazione dell'oggetto anticipatamente rispetto all'orario di inizio. Il timestamp deve essere specificato nel formato ISO 8601 nel fuso orario UTC: YYYYMMDDTHHMMSSZ. Ad esempio: 20050515T171151Z.

Assegnazione di oggetti in base al tempo di gioco

Questa funzione consente ai server di Steam di tenere traccia della distribuzione degli oggetti e di gestirla in base al tempo di gioco dell'utente. Quando desideri assegnare un oggetto nel gioco, è sufficiente effettuare la chiamata alla funzione ISteamInventory::TriggerItemDrop. Per effettuare l'assegnazione, dovrai creare oggetti del tipo "playtimegenerator".
L'assegnazione in base al tempo di gioco è controllata dalla tua applicazione. Le assegnazioni automatiche basate interamente sul tempo di gioco degli utenti non sono supportate. In altre parole, il tempo di gioco costituisce una condizione per l'assegnazione, ma questa viene tuttavia valutata e attivata dall'applicazione.

Il tasso di assegnazione degli oggetti può essere controllato a livello di applicazione attraverso la sezione raggiungibile da Comunità->Servizio dell'inventario->Distribuzione di oggetti in base al tempo di gioco. Puoi personalizzare il processo con tre controlli:
(1) Quanto tempo deve essere trascorso per distribuire un oggetto?
(2) Quanti oggetti vengono distribuiti in un intervallo?
(3) Qual è la durata di attesa della finestra prima di poter assegnare un altro oggetto?

Lo stesso controllo esiste per l'elemento ItemDef. I valori impostati sull'oggetto sovrascriveranno qualsiasi impostazione dell'applicazione per l'oggetto specifico. Ciò consente a ogni oggetto di disporre del proprio tasso di distribuzione, di un numero massimo per finestra e di un tempo di attesa.

Nel caso siano state applicate impostazioni alla distribuzione ("drop_interval", "use_drop_window", "drop_window", "drop_max_per_window"), ciascuna assegnazione del generatore in base al tempo di gioco verrà registrata separatamente. In altre parole, se per l'elemento ItemDef NON vengono specificate impostazioni per la distribuzione, questa avverrà normalmente come per tutti i generatori basati sul tempo di gioco che non presentano impostazioni. La distribuzione verrà limitata dall'intervallo di distribuzione dell'applicazione. In caso contrario, se per l'elemento ItemDef vengono specificate delle impostazioni per la distribuzione, gli oggetti vengono assegnati e monitorati separatamente a livello di generatore, indipendentemente dall'applicazione o da altri generatori basati sul tempo di gioco dell'elemento ItemDef.

Esempio di assegnazione dell'ItemDef in base al tempo di gioco

  1. Consente all'utente di ricevere un oggetto dopo 30 minuti di tempo di gioco. Lo svantaggio di impostare solo questa proprietà è che consente all'utente di accumulare il tipo di oggetto, in quanto gli verrà assegnato ogni 30 minuti di gioco.
    Consigliamo vivamente di aggiungere un'impostazione della finestra per la distribuzione:
    "drop_interval" : 30
  2. Limita l'assegnazione a un singolo oggetto al giorno dopo 30 minuti di gioco. Questa impostazione ti consente di premiare i giocatori ogni giorno quando fanno ritorno al tuo gioco.
    "drop_interval" : 30,
    "use_drop_window" : "true",
    "drop_window" : "1440"

  3. Consente all'utente di ottenere tre oggetti al giorno giocando per almeno 90 minuti. Non è necessario che i minuti siano consecutivi. Questa proprietà consente di ricompensare i tempi di gioco più lunghi.
    "drop_interval" : 30,
    "use_drop_window" : "true",
    "drop_window" : "1440",
    "drop_max_per_window" : "3"
Se un'impostazione specifica dell'elemento ItemDef è mancante, per impostazione predefinita verrà impostata su quanto definito nell'applicazione.

Limiti di assegnazione

La variabile drop_limit consente di definire un numero massimo di assegnazioni in base al tempo di gioco per un generatore specifico.
Puoi utilizzare la variabile per limitare la generazione di un oggetto (ad esempio, assegnandolo solo la prima volta che l'utente completa il gioco in modalità difficoltà leggendaria).
In alternativa, impostando il valore su zero può essere utilizzata per prevenire eventuali distribuzioni future di un oggetto obsoleto. L'impostazione verrà riconosciuta solo se use_drop_limit è impostato su "true".

Vendita di oggetti

Per abilitare la vendita di alcuni oggetti del gioco, definisci semplicemente il prezzo o le categorie di prezzo nell'elemento ItemDef appropriato.
Per maggiori informazioni sull'abilitazione e la personalizzazione della tua pagina del Negozio, consulta la documentazione di Steam Negozio di oggetti.

Definizione dei prezzi

I prezzi degli oggetti possono essere definiti in uno qualunque dei seguenti campi, ma non in entrambi.
NomeDescrizione
priceDefinisce un prezzo specifico per ciascuna valuta. Le valute non definite verranno convertite automaticamente al momento dell'acquisto.
price_categoryDefinisce un prezzo che sarà presentato in tutte le valute supportate utilizzando la tabella dei prezzi curata da Valve.

Il campo price_category viene specificato nella valuta speciale "VLV". VLV100 è equivalente a 0,99 USD e viene convertito in tutte le valute supportate usando i tassi di conversione di Valve.

I tassi di conversione VLV sono accuratamente gestiti per adattarsi alle fluttuazioni delle valute nel tempo. Aggiorniamo i prezzi secondo necessità, consentendo piccole fluttuazioni per fornire ai clienti un prezzo stabile e un'esperienza utente positiva.

Formato dei prezzi

Price: <version>;<pricelist> Version: "1" <pricelist> : <originalprice>(;<price>)* <originalprice>: <currency><integer>(,<currency><integer)* <price>: (<daterange>)<currency><integer>(,<currency><integer)* <currency> 3 letters like "USD" <integer> amount in currency-specific units <daterange>: YYYYMMDDTHHMMSSZ-YYYYMMDDTHHMMSSZ
<daterange> deve essere esattamente di 33 caratteri.

L'elenco degli intervalli di data "dateranges" deve essere in ordine decrescente (ossia prima le date future).

Esempi di prezzi

  • price_category: 1;VLV100
    Categoria di prezzo preimpostata dalla tabella dei prezzi curata da Valve.
  • price: 1;USD100
    (1,00 dollaro americano)
  • price: 1;USD100,EUR080
    (1,00 dollaro americano o 0,80 €)
  • prezzo: 1;USD100,EUR080;20130607T080000Z-20130606T080000ZUSD50,EUR40
    (1 dollaro americano o 0,80 euro, tranne a partire dal 6/6/2013, quando il prezzo è stato ridotto a 0,50 $/0,40 €)
  • price: 1;USD100,EUR080;20130609T080000Z-20130606T080000ZUSD50,EUR40
    (1,00 dollaro americano o 0,80 euro, fatta eccezione per il periodo compreso tra il 6/6/2013 e il 9/6/2013, quando il prezzo è stato ridotto a 0,50 $ o 0,40 €)

Vendita di pacchetti


Gli oggetti inclusi in un pacchetto possono essere venduti nel Negozio di oggetti. Il pacchetto verrà espanso durante il processo di acquisto, pertanto l'utente potrà vedere l'elenco degli oggetti inclusi. La politica di rimborso di Steam consente di rimborsare l'acquisto entro un certo limite di tempo, ma tutti gli oggetti contenuti devono essere ancora presenti nell'inventario del giocatore e non devono esservi state apportate modifiche.

Prezzi dei pacchetti

Per la definizione del prezzo di un pacchetto ci sono alcuni aspetti ulteriori da considerare. Steam utilizza i prezzi dei singoli oggetti all'interno del pacchetto per determinarne il prezzo e suddividere i ricavi in modo proporzionale. Questa suddivisione determinerà il valore degli esborsi per i collaboratori del Workshop. Un pacchetto può prevedere contenuti di vario tipo offerti da collaboratori diversi del Workshop o includere contenuti del Workshop assieme a quelli offerti dallo sviluppatore.

Per stabilire il prezzo di un oggetto incluso in un pacchetto:
  • Definisci i prezzi per ogni oggetto all'interno del pacchetto.
  • Se alcuni degli oggetti contenuti non devono essere vendibili singolarmente, imposta il campo store_hidden
    su "true" per tali oggetti.
  • Imposta il campo price o price_category del pacchetto su un prezzo semplice (come VLV0).
    Questo prezzo non verrà utilizzato nel Negozio, ma è necessario per segnalare al Negozio di oggetti che si tratta di un oggetto vendibile.
  • Facoltativamente, imposta il campo purchase_bundle_discount su una percentuale di sconto da applicare al pacchetto.

Se preferisci, puoi definire il prezzo specifico del pacchetto per ogni valuta. La sovrascrizione del prezzo del pacchetto ignorerà qualsiasi sconto specificato nel campo purchase_bundle_discount. Tuttavia, i prezzi dei singoli oggetti sono ancora utilizzati per suddividere in modo proporzionato i ricavi del pacchetto, pertanto è necessario fornirli.

Per sovrascrivere il prezzo automatico del pacchetto:
  • Specifica il prezzo desiderato nel campo price o price_category del pacchetto.
  • Imposta use_bundle_price su true per il pacchetto.

Vendita di oggetti di tipo "generator"

Non tentare di vendere oggetti di tipo generator direttamente nel Negozio di oggetti.

Per vendere un oggetto con una componente casuale (ad esempio un forziere), è necessario definire l'oggetto nel forziere come item di tipo semplice, quindi creare un oggetto di tipo generatore che consenta al forziere di ricevere una ricetta di scambio.

Dopo l'acquisto, il giocatore può scegliere di "aprire" il forziere, ed è a questo punto che potrai effettuare la chiamata a ISteamInventory::ExchangeItems per eseguire il generatore. L'acquisto del forziere non sarà più rimborsabile una volta aperto.

Tabella dei prezzi VLV preimpostati

Di seguito sono presentate le possibili valute attualmente a tua disposizione per specificare il parametro price_category dell'oggetto.
NomePrezzo in USD
VLV250,25 USD
VLV500,49 USD
VLV750,75 USD
VLV1000,99 USD
VLV1501,49 USD
VLV2001,99 USD
VLV2502,49 USD
VLV3002,99 USD
VLV3503,49 USD
VLV4003,99 USD
VLV4504,49 USD
VLV5004,99 USD
VLV5505,49 USD
VLV6005,99 USD
VLV6506,49 USD
VLV7006,99 USD
VLV7507,49 USD
VLV8007,99 USD
VLV8508,49 USD
VLV9008,99 USD
VLV9509,49 USD
VLV10009,99 USD
VLV110010,99 USD
VLV120011,99 USD
VLV130012,99 USD
VLV140013,99 USD
VLV150014,99 USD
VLV160015,99 USD
VLV170016,99 USD
VLV180017,99 USD
VLV190018,99 USD
VLV200019,99 USD
VLV250024,99 USD
VLV300029,99 USD
VLV350034,99 USD
VLV400039,99 USD
VLV450044,99 USD
VLV500049,99 USD
VLV600059,99 USD
VLV700069,99 USD
VLV800079,99 USD
VLV900089,99 USD
VLV1000099,99 USD

Esempio di schema dell'elemento ItemDef:

{ "appid": 480, "items": [ { "itemdefid": 10, "type": "playtimegenerator", "bundle": "100x100;101x50;102x25;103x2;110x20;111x20;120x5;121x3", "name": "Drop Generator", "name_color": "7D6D00", "background_color": "3C352E", "item_slot": "generator", "icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "tradable": false, "marketable": false }, { "itemdefid": 100, "type": "item", "name": "Hat decoration", "description": "Hat decoration description", "price": "1;USD99", "name_color": "7D6D00", "background_color": "3C352E", "item_slot": "decoration", "icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "tradable": true, "marketable": true }, { "itemdefid": 200, "type": "item", "price": "1;VLV100", "name_english": "Red Hat", "name_german": "Roter Hut", "description_english": "Red Hat", "description_german": "Roter Hut", "store_tags": "hat;featured", "icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "tradable": true, "marketable": true } ] }