Documentazione di Steamworks
TradeSetOwned/v0001
Questa funzione viene chiamata quando il server dell'Economia di Steam deve trasferire all'inventario dell'utente una risorsa o un blocco di valuta precedentemente non in suo possesso. Il server della risorsa verifica la liceità della modifica da apportare alla risorsa o al tipo di valuta, controlla che la risorsa non sia effettivamente posseduta, che la risorsa o valuta sia scambiabile e che la quantità richiesta sia disponibile.

Per le risorse e le valute cumulabili, la richiesta può fornire una quantità inferiore a quella originariamente impostata su non posseduta. In questo caso è necessario diminuire la quantità della risorsa o valuta non possedute e creare una nuova risorsa.

Ciò accadrà se si dispone di un oggetto cumulabile che può essere messo in vendita sul Mercato della Comunità. Ad esempio, se viene pubblicata una singola inserzione sul Mercato per un gran numero di oggetti, potrebbero pervenire acquisti multipli di dimensioni ridotte.

Il server della risorsa riceverà una chiamata TradeSetUnowned quando viene creata l'inserzione e una chiamata TradeSetOwned per ogni acquisto. Quando un utente effettua il primo acquisto dell'inserzione sul Mercato, il valore audit_reference della chiamata TradeSetOwned corrisponderà al valore audit_reference della chiamata TradeSetUnowned. Tutti gli acquisti successivi da tale inserzione avranno valori diversi per audit_reference, ma continueranno a fare riferimento allo stesso assetid. Se l'inserzione viene annullata, il valore di audit_reference nella chiamata risultante TradeSetOwned sarà un valore che non è stato usato in precedenza in nessun'altra delle chiamate TradeSetOwned e che quindi non corrisponderà con certezza al valore utilizzato nella chiamata TradeSetUnowned al momento della creazione dell'inserzione.

Chiamata da: Sistema di scambio

Metodo HTTP: POST

Parametri:

NomeTipoNecessarioDescrizione
keystringaQuesto è il "codice del server delle risorse" che hai fornito nelle impostazioni Economia di Steam sul sito per i partner della tua applicazione.
appiduint32L'appID a 32 bit dell'applicazione associata alle risorse.
owneruint64Lo SteamID a 64 bit del nuovo proprietario della risorsa o valuta.
contextiduint64L'ID a 64 bit del contesto in cui la risorsa o valuta è disponibile.
assetiduint64L'ID a 64 bit della risorsa che viene trasferito. L'ID della risorsa o valuta verrà impostato a indicare il tipo di oggetto da impostare come in possesso.
currencyiduint32L'ID a 32 bit della valuta che viene rimosso. L'ID della risorsa o valuta verrà impostato a indicare il tipo di oggetto da impostare come in possesso.
amountuint32Il numero di unità della risorsa o valuta da trasferire. Questo numero sarà sempre pari a 1 per le risorse non impilabili.
Sarà sempre inferiore o uguale al numero di unità di risorsa o valuta ritenuto presente nel contesto dal server dell'Economia di Steam. L'impostazione predefinita è 1.
trade_start_timeuint32L'orario in cui la sessione di scambio responsabile dell'azione è stata avviata, espresso in secondi dall'1/1/1970.
audit_actionuint32Un numero a 32 bit che specifica il tipo di azione che determina l'impostazione della risorsa o valuta su in possesso.
audit_referenceuint64Un numero a 64 bit che identifica l'evento cui è associata l'azione. Il server della risorsa può registrare questo numero per scopi di controllo e di debug.
leave_originalboolSe questo parametro booleano è impostato su 1 (a indicare "true"), al server della risorsa viene chiesto di duplicare l'oggetto e di creare un nuovo oggetto posseduto che sia una copia della risorsa specificata. Restituirà "true" solo per gli annullamenti unilaterali di uno scambio effettuati da un agente di supporto. Il valore predefinito è 0 (false).
request_repeatedboolSe impostato su 1 (a indicare "true"), il server dell'Economia di Steam sta indicando che ha eseguito una richiesta identica a questo parametro in passato ma non ha ricevuto una restituzione di successo o fallimento. Se la risorsa o valuta sembra già essere impostata su posseduta per gli stessi parametri audit_action e audit_reference, il server della risorsa deve restituire "success" e impostare i parametri new_assetid e new_contextid sui risultati restituiti dalla prima richiesta.
is_marketboolSe impostato su 1 (a indicare "true"), la richiesta viene eseguita in risposta ad alcune attività sul Mercato della Comunità di Steam. Quando audit_action è 101 (commit di scambio), questo parametro indica che l'utente ha acquistato l'oggetto. Quando audit_action è 102, questo parametro indica che l'utente sta annullando l'inserzione del Mercato o che l'articolo è in fase di restituzione all'utente a causa di un errore nella creazione dell'inserzione.

Restituzioni

L'output di questo metodo deve essere codificato nel formato JSON.

Risposta:
  • result
    • success: se il metodo è riuscito, restituisce "true". Se il server della risorsa restituisce "false", imposta la stringa error che ne fornisce una spiegazione.
    • error: una stringa che descrive il motivo per cui la chiamata è fallita. Questo messaggio verrà incluso nel registro degli errori, disponibile alla scheda Economia del sito di Steamworks.
    • new_assetid (opzionale): l'ID a 64 bit della risorsa della versione non posseduta della risorsa. Viene impostata solo per il trasferimento della risorsa. In base all'implementazione del server delle risorse,
      potrebbe essere un nuovo ID della risorsa oppure può essere uguale all'ID specificato nella richiesta.
      Le impostazioni predefinite devono essere identiche a quelle dell'ID della risorsa inviata.
      NOTA: per scopi di auditing è consigliabile che le implementazioni nel server delle risorse creino una nuova copia della risorsa e restituiscano il nuovo ID nella risposta TradeSetOwned. Abbiamo notato che questa operazione aiuta a prevenire i bug: quando la risorsa viene eliminata o non è più in possesso dell'utente, rimane in tale stato per sempre. Può risultare utile verificare che ci sia un collegamento esistente tra la nuova e la vecchia risorsa (ad esempio, preservando l'ID originale della risorsa generato al momento della sua creazione nel gioco). Nessuno di questi parametri è strettamente necessario, ma potrebbero comunque essere utili.
    • new_contextid (opzionale): l'ID del contesto a 64 bit della nuova versione di proprietà della risorsa o valuta. A seconda dell'implementazione del server delle risorse, può essere un ID di contesto diverso o uguale a quello specificato nella richiesta. Il valore predefinito è uguale a quello dell'ID di contesto che è stato passato nel metodo.

Azioni di audit

Quello che segue è l'elenco delle azioni di audit che attualmente è possibile passare con questo metodo. I nuovi tipi di audit possono essere aggiunti a questo elenco in qualsiasi momento. Pertanto, i server della risorsa saranno pronti a ricevere qualsiasi numero non firmato a 32 bit come azione di audit.
  • 101 commit di scambio: la richiesta fa parte dell'esecuzione del commit di uno scambio. audit_reference è l'ID dello scambio.
  • 102 annullamento di scambio: la richiesta fa parte dell'annullamento di uno scambio. audit_reference è l'ID dello scambio.