Freigeben über


Schnellstart zum Trading

Notiz

In dieser Schnellstartanleitung wird davon ausgegangen, dass Sie bereits mit Katalogen und Bestandselementen vertraut sind. Der Beispielspieler muss bereits die Inventarelemente besitzen, die er abtauschen möchte.

Der erste Schritt besteht darin, die OpenTrade API aufzurufen, um einen Handel für einen anderen Spieler verfügbar zu machen. Sie benötigen einen playfabId , um den Geschenkempfänger zu identifizieren, und den ItemInstanceID für den Spieler, der den Artikel derzeit in ihrem Bestand hat.

secondPlayerId: Dies ist die eindeutige Zeichenfolge, die den Geschenkempfänger identifiziert (PlayFabId).

myItemInstanceId: Dies ist die eindeutige Zeichenfolge, die ein Element instance identifiziert, das dem aktuellen Spieler gehört (InstanceID).

void GiveItemTo(string secondPlayerId, string myItemInstanceId) {
    PlayFabClientAPI.OpenTrade(new OpenTradeRequest {
        AllowedPlayerIds = new List<string> { secondPlayerId }, // PlayFab ID for the friend who will receive your gift
        OfferedInventoryInstanceIds = new List<string> { myItemInstanceId } // The item instanceId fetched from GetUserInventory()
    }, LogSuccess, LogFailure);
}

Notiz

Alle Gewerke sind öffentliche Informationen. Jeder Spieler kann sich die offenen Trades eines anderen Spielers sowie die Handelsgeschichte eines anderen Spielers ansehen (wenn er den playFabId von diesem Spieler kennt).

In diesem Snip muss der LogSuccess Rückruf auch auswerten result.Trade.TradeIdund sowohl als auch firstPlayFabId auf den tradeId zweiten Spieler übertragen. Wenn sie nicht gespeichert werden, ist es nicht möglich, dass der zweite Spieler den Handel auswertet oder akzeptiert.

Notiz

In der aktuellen Vorschau müssen Sie sicherstellen, dass Ihre Trades threadsicher vor gleichzeitigen Aktionen sind. Threadsichere Optionen umfassen benutzerdefinierte Spielserver und Webhookaufrufe über CloudScript an eine externe Datenbank/ein externes System. Thread-Unsafe Optionen können mit CloudScript erstellt werden, das einen Player-Datenschlüssel direkt ändert. Die letztere Option weist Parallelitätsprobleme auf, bei denen gleichzeitige Trade-List-Updates möglicherweise nicht ordnungsgemäß verarbeitet werden.

Sobald der erste Spieler den Handel erstellt und seine playFabId und auf tradeId den zweiten Spieler übertragen hat, kann der zweite Spieler die Handelsanforderungen überprüfen (überprüfen, ob es sich um ein Geschenk handelt), indem er eine GetTradeStatus Anfrage stellt.

Notiz

Die relevantesten TradeStatus-Werte sind Open, Filled und Canceled. Alle anderen Zustände sind Zwischenzustände. Trades können in diesen Zwischenzuständen für einen spürbaren Zeitraum zwischen den Aufrufen verbleiben. Ein kürzlich geänderter Handel ist möglicherweise nicht sofort verfügbar.

void ExamineTrade(string firstPlayFabId, string tradeId) {
    PlayFabClientAPI.GetTradeStatus(new GetTradeStatusRequest {
        OfferingPlayerId = firstPlayFabId,
        TradeId = tradeId
    }, LogSuccess, LogFailure);
}

If the requirements of that trade are acceptable, the gift can be accepted using AcceptTrade
C# snip
void AcceptGiftFrom(string firstPlayFabId, string tradeId) {
    PlayFabClientAPI.AcceptTrade(new AcceptTradeRequest {
        OfferingPlayerId = firstPlayFabId,
        TradeId = tradeId
    }, LogSuccess, LogFailure);
}

Nach Abschluss der Ausführung überträgt die AcceptGiftFrom obige Funktion die begabten Gegenstände aus dem Inventar des ersten Spielers in den zweiten.