Daten speichern

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Spiele müssen oft eine bestimmte Menge an persistenten Daten zwischen Sitzungen wie dem Stufeeines Spieler:in, Erfahrungspunkten, Inventar-Items, Gold/Bargeld und mehr speichern.

Dieses Tutorial zeigt Ihnen, wie Sie einen grundlegenden Datenspeicher erstellen, Beispieldaten speichern und die Daten in eine Sitzungzurücklesen.

Studio-Zugriff aktivieren

Standardmäßig können Spiele in Studio keine Daten-Stores zugreifen, du musst sie zuerst aktivieren.

  1. Stellen Sie sicher, dass Ihr Spiel veröffentlicht (Datei > Veröffentlichen in Roblox) ist, um Studio-Zugriff zu aktivieren.

  2. Von der Registerkarte "Home" öffnen Sie das Game-Einstellungen -Fenster.

  3. In der Sicherheits-Sektion aktivieren Sie Studio-Zugriff auf API-Dienste aktivieren.

  4. Klicken Sie auf Speichern , um Ihre Änderungen zu registrieren.

Erstellen eines Datenspeichers

Datenspeicherungen werden durch ein einzigartiges Name identifiziert. In diesem Beispiel speichert ein PlayerGold -Datenspeicher jedes Spieler:inGold in persistenter Lagerung.

  1. Erstellen Sie ein neues Script innerhalb von ServerScriptService mit dem Namen GoldManager .

  2. Datenspeicherung wird von DataStoreService verwaltet, so dass Sie den Service in der ersten Zeile erhalten.


    local DataStoreService = game:GetService("DataStoreService")
  3. Rufen Sie DataStoreService:GetDataStore() mit der Strings "PlayerGold" auf. Dies wird auf den PlayerGold-Datenspeicher zugreifen, wenn er bereits existiert, oder erstellen Sie ihn anders.


    local DataStoreService = game:GetService("DataStoreService")
    local goldStore = DataStoreService:GetDataStore("PlayerGold")

Die Daten speichern

Ein Daten-Store ist im Grunde ein Wörterbuch, wie eine Lua-Tabelle. Jeder Wert im Daten-Store wird von einem einzigartigen Schlüssel indexiert, zum Beispiel der einzigartige UserId oder einfach ein benanntes Strings für eine Spiel-Werbung.

Spielerdatenbeispiel

SchlüsselWert

31250608

50

351675979

20

505306092

78.000

Promo-Beispiele

SchlüsselWert

Aktives Spezialereignis

SommerParty2

Aktiver Promo-Code

BONUS123

KannZugangspartyOrt

wahr

Um Spielerdaten im Daten-Store zu speichern:

  1. Erstellen Sie eine Variable namens playerUserID für den Daten-Store-Schlüssel. Dann verwenden Sie playerGold, um die Startmenge eines Spieler:inzu speichern.


    local DataStoreService = game:GetService("DataStoreService")
    local goldStore = DataStoreService:GetDataStore("PlayerGold")
    -- Datenspeicher-Schlüssel und Wert
    local playerUserID = 505306092
    local playerGold = 250
  2. Um Daten in den PlayerGold Daten-Store zu speichern, rufen Sie SetAsync innerhalb eines geschützten Aufrufs auf, indem Sie den Schlüssel und die Werte variablen vorher erstellt haben.


    local DataStoreService = game:GetService("DataStoreService")
    local goldStore = DataStoreService:GetDataStore("PlayerGold")
    -- Datenspeicher-Schlüssel und Wert
    local playerUserID = 505306092
    local playerGold = 250
    -- Datenspeicher-Schlüssel einstellen
    local setSuccess, errorMessage = pcall(function()
    goldStore:SetAsync(playerUserID, playerGold)
    end)
    if not setSuccess then
    warn(errorMessage)
    end

Funktionen wie SetAsync() sind Netzwerk-Aufrufe, die gelegentlich fehlgeschlagen sein können. Wie oben gezeigt, wird pcall() verwendet, um solche Fehler zu erkennen und zu behandeln, wenn solche Fehler auftreten.

In seiner grundlegendsten Form akzeptiert pcall() eine Funktion und gibt zwei Werte zurück:

  • Der Status ( boolean); Dies wird wahr sein, wenn die Funktion ohne Fehler ausgeführt wird, oder falsch anders.
  • Die Rückgabe des Rückwertwertes der Funktion oder eines Nachricht.

In der folgenden Ansammlung wird der Status ( setSuccess ) auf Zeile 12 getestet, und wenn SetAsync() aus irgendeinem Grund fehlgeschlagen ist, wird errorMessage im Ausgabefenster angezeigt.

Lesen von Daten

  1. Um Daten aus einer Datenbank zu lesen, rufe GetAsync() mit dem gewünschten Schlüsselnamen auf.


    local setSuccess, errorMessage = pcall(function()
    goldStore:SetAsync(playerUserID, playerGold)
    end)
    if not setSuccess then
    warn(errorMessage)
    end
    -- Lesen Sie den Daten-Store-Schlüssel
    local getSuccess, currentGold = pcall(function()
    return goldStore:GetAsync(playerUserID)
    end)
    if getSuccess then
    print(currentGold)
    end
  2. Um das Skript, das. PL: die Skriptszu testen, klicken Sie auf Run und beachten Sie den currentGold Wert, der in das Ausgabe-Fenster gedruckt wird. Beachten Sie, dass dies einige Sekunden dauern kann, da die Funktionen sich mit Daten-Speicher-Servern verbinden müssen.

Beispielprojekt

Jetzt, da Sie die grundlegende Verwendung von Daten-Store verstanden haben, testen Sie es in einem Beispiel-Spiel.

Goldrausch Sammle so viele Gold-Klumpen wie möglich, um eine persistierende persönliche Rekord aufzustellen, die zwischen Spielsitzungen besteht.

Sie können auch das Spiel in Studio bearbeiten und das verbesserte GoldManager -Skript erkunden, das Daten automatisch speichert und mehr enthält.

Edit in Studio option from the experience's main page