Steamworks-Dokumentation
TradeSetOwned/v0001
Wird aufgerufen, wenn der Steam-Economy-Server ein Element oder eine Währungsmenge, welche(s) bisher als „unowned“ gekennzeichnet war, in das Inventar eines Benutzers übertragen muss. Der Asset-Server muss nun entscheiden, ob diese Änderung zulässig ist. Er sollte überprüfen, dass das Element oder die Währungsmenge tatsächlich auf „unowned“ gesetzt ist sowie, dass es/sie handelbar und in der angeforderten Quantität vorhanden ist.

Bei stapelbaren Elementen und Währungsmengen ist es möglich, dass weniger als die vorhandene „unowned“-Anzahl bereitgestellt wird. In diesem Fall muss die Anzahl der als „unowned“ gekennzeichneten Elemente bzw. Währungsmengen reduziert und ein neues Element bzw. Währungsmenge erstellt werden.

Besonders häufig ist dies der Fall bei stapelbaren Gegenständen, die im Communitymarkt gelistet werden können. Wenn jemand beispielsweise einen großen Artikelstapel auflistet, kann es durchaus sein, dass die einzelnen Gegenstände in mehreren kleinen Transaktionen gekauft werden.

Der Asset-Server erhält bei Erstellung der Liste einen Aufruf von TradeSetUnowned und anschließend einen Aufruf von TradeSetOwned für jeden einzelnen Kauf. Beim ersten Kauf eines Gegenstands aus der Liste stimmt der Wert audit_reference im Aufruf TradeSetOwned mit dem Wert audit_reference aus dem Aufruf TradeSetUnowned überein. Bei darauffolgenden Käufen aus der Liste weist audit_reference jeweils unterschiedliche Werte auf, bezieht sich aber auf denselben assetid. Im Falle einer Stornierung der Liste, ist der Wert für audit_reference im resultierenden Aufruf von TradeSetOwned ein Wert, der bisher in keinem anderen Aufruf von TradeSetOwnedverwendet wurde und von dem daher nicht mit Sicherheit gesagt werden kann, dass er dem Wert entspricht, der im Aufruf TradeSetUnowned beim Erstellen der Liste verwendet wurde.

Aufgerufen von: Handelssystem

HTTP-Methode: POST

Parameter:

NameTypErforderlich?Beschreibung
keystringDies ist der „Asset-Server-Schlüssel“, den Sie in den Steam-Wirtschaftseinstellungen Ihrer Anwendung auf der Partnerseite angegeben haben.
appiduint32Die 32-Bit-App-ID der Anwendung, auf die sich das Element bezieht.
owneruint64Die 64-Bit-Steam-ID des neuen Eigentümers des Elements bzw. der Währungsmenge.
contextiduint64Die 64-Bit-ID des Kontexts, in dem das Element bzw. die Währungsmenge enthalten ist.
assetiduint64Die übertragene 64-Bit-Asset-ID. Es wird entweder die Element- oder die Währungs-ID eingestellt und angegeben, welche Art von Objekt als „owned“ markiert werden soll.
currencyiduint32Die 32-Bit-Währungs-ID, die entfernt wird. Es wird entweder die Element- oder die Währungs-ID eingestellt und angegeben, welche Art von Objekt als „owned“ markiert werden soll.
amountuint32Die Anzahl der Elemente bzw. Währungseinheiten, die übertragen werden sollen. Bei nicht stapelbaren Elementen ist diese Zahl immer 1.
Außerdem ist die Zahl immer kleiner als oder höchstens gleich der Menge, die nach Einschätzung des Steam-Economy-Servers für dieses Element bzw. diese Währung in diesem Kontext vorhanden ist. Standardwert: 1.
trade_start_timeuint32Der Zeitpunkt, zu dem die für diese Aktion verantwortliche Handelssitzung gestartet wurde, ausgedrückt in Sekunden seit dem 1. Januar 1970.
audit_actionuint32Eine 32-Bit-Zahl, die die Art der Aktion angibt, die das Element bzw. die Währungsmenge als „owned“ kennzeichnet.
audit_referenceuint64Eine 64-Bit-Zahl zur Identifizierung des Ereignisses, auf das sich die Aktion bezieht. Es wird empfohlen, diese Zahl zu Audit- und Debugging-Zwecken vom Asset-Server aufzeichnen zu lassen.
leave_originalboolWenn dieser Boolesche Parameter auf 1 gesetzt ist (= true), wird der Asset-Server aufgefordert, den Gegenstand zu duplizieren und eine als „owned“ gekennzeichnete Kopie des angegebenen Elements zu erstellen. Dies ist nur „true“ wenn ein Handelsgeschäft allein durch einen Supportmitarbeiter rückgängig gemacht wird. Standardwert: 0 (false).
request_repeatedboolWenn dies auf 1 gesetzt ist (= true), gibt der Steam-Economy-Server an, dass er bereits früher einmal eine identische Anfrage geschickt hat, aber keine eindeutige Erfolgs- oder Fehlermeldung zur Antwort bekommen hat. Wenn es den Anschein hat, dass dieses Element bzw. diese Währungsmenge für dieselbe audit_action und dieselbe audit_reference bereits auf „owned“ gesetzt wurde, sollte der Asset-Server eine Erfolgsmeldung zurückgeben und new_assetid sowie new_contextid auf den Wert setzen, der bei der ersten Anfrage zurückgegeben wurde.
is_marketboolWenn dies auf 1 gesetzt ist (= true), ist die Anfrage eine Antwort auf irgendeine Aktivität im Steam-Communitymarkt. Wenn audit_action 101 lautet (Handels-Abschluss), bedeutet das, dass der Benutzer den Gegenstand gekauft hat. Wenn audit_action 102 lautet, bedeutet das, dass der Benutzer seine Marktliste storniert oder dass der Gegenstand aufgrund eines Fehlers beim Erstellen der Liste an den Benutzer zurückgegeben wird.

Rückgabewert

Die Ausgabe dieser Methode sollte im JSON-Format kodiert sein.

Antwort:
  • result
    • success: Gibt den Wert „true“ aus, wenn die Methode erfolgreich war. Wenn der Asset-Server „false“ zurückgibt, sollte error auf einen String eingestellt werden, der den Grund dafür erklärt.
    • error: Dieser String beschreibt, warum dieser Aufruf fehlgeschlagen ist. Diese Nachricht wird im Fehlerprotokoll aufgezeichnet, das im Tab „Wirtschaft“ auf der Webseite von Steamworks verfügbar ist.
    • new_assetid (optional): Die 64-Bit-Element-ID der „unowned“-Version des Elements. Wird nur für Elementübertragungen eingestellt. Dies
      kann je nach Implementierung auf dem Asset-Server eine neue Element-ID oder die gleiche wie in der Anfrage sein.
      In der Standardeinstellung ist es die gleiche Element-ID wie in der ursprünglichen Anfrage.

      HINWEIS: Für Prüfungszwecke wird empfohlen, dass die Implementierungen auf dem Asset-Server eine Kopie des Elements erstellen und die neue Element-ID in der Antwort auf TradeSetOwned zurückgeben. Dies hilft unserer Erfahrung nach auch bei der Vermeidung von Fehlern, da ein einmal gelöschtes oder auf „unowned“ gesetztes Element für immer in diesem Status bleibt. Es kann auch hilfreich sein, eine Verbindung zwischen dem neuen und dem alten Element aufrechtzuerhalten (indem beispielsweise Teile der ursprünglichen Element-ID aus der ersten Erstellung des Elements in Ihrem Spiel beibehalten werden). Dies sind keine erforderlichen Maßnahmen, sondern lediglich Empfehlungen aus unserer Erfahrung.
    • new_contextid (optional): Die 64-Bit-Kontext-ID der neuen „owned“-Version des Elements oder der Währungsmenge. Kann je nach Implementierung auf dem Asset-Server eine neue Kontext-ID oder die gleiche wie in der Anfrage sein. In der Standardeinstellung ist es die gleiche Kontext-ID wie in der ursprünglichen Anfrage.

Audit-Aktionen

Das ist die aktuelle Liste der Audit-Aktionen, die mit dieser Methode übergeben werden können. Dieser Liste können jederzeit neue Audit-Typen hinzugefügt werden. Die Asset-Server sollten daher in der Lage sein, sämtliche 32-Bit-Zahlen ohne Vorzeichen als Audit-Aktionen zu interpretieren.
  • 101 – Handels-Abschluss: Diese Anfrage ist Teil des Prozesses zum Abschluss eines Handelsgeschäfts. audit_reference ist eine Handels-ID.
  • 102 – Handels-Rückabwicklung: Diese Anfrage ist Teil des Prozesses zur Rückabwicklung eines Handelsgeschäfts. audit_reference ist eine Handels-ID.