3 Möglichkeiten, mit Datenspeichern auf Roblox zu arbeiten

Inhaltsverzeichnis:

3 Möglichkeiten, mit Datenspeichern auf Roblox zu arbeiten
3 Möglichkeiten, mit Datenspeichern auf Roblox zu arbeiten
Anonim

Jeder wollte Daten speichern und jedes Mal neu laden, wenn ein Spieler das Spiel erneut betritt? Seitdem Data Persistence nutzlos geworden ist, führt ROBLOX viel funktionsfähigere Datenspeicher ein. Die folgende Anleitung ermöglicht Ihnen, mit Datenspeichern für ROBLOX zu arbeiten.

Schritte

Methode 1 von 3: Einstellen des Datenspeichers

7815950 1
7815950 1

Schritt 1. Konfigurieren Sie die API

Dies erfordert keine Skripterstellung, aber um die gesamte Datenspeicher-API zu aktivieren, müssen Sie zuerst den API-Zugriff aktivieren. Gehen Sie dazu auf die Registerkarte "Entwickeln" und klicken Sie auf "Spiele". Dies sollte Sie zu allen aktuellen Spielplätzen führen, die Sie besitzen. Suchen Sie Ihr Spiel und klicken Sie auf das Zahnrad. Es sollte ein Dropdown-Menü erscheinen, und klicken Sie einfach auf "Konfigurieren". Aktivieren Sie das Kontrollkästchen "Studio-Zugriff auf API-Dienste aktivieren" und speichern Sie. Sie sollten nun Zugriff auf die vollständige API haben.

7815950 2
7815950 2

Schritt 2. Rufen Sie den Datenspeicher ab

Verwenden Sie die Data Store API, um den Data Store aufzurufen, da wir darauf verweisen müssen. Öffnen Sie zunächst ein Skript auf ROBLOX und benennen Sie eine Variable, die wir zum Aufrufen der Referenz verwenden möchten.

    lokaler Datenspeicher = game:GetService("DataStoreService"):GetDataStore("name")

7815950 3
7815950 3

Schritt 3. Verwenden Sie die Variable nach Bedarf

Sie haben den Datastore erfolgreich mit der Variablen "datastore" aufgerufen. Wenn Sie den Datenspeicher jetzt abrufen müssen, können Sie ihn einfach nach seiner Variablen benennen.

Bitte beachten Sie, dass, wenn noch kein Datenspeicher erstellt wurde, automatisch ein neuer erstellt wird

Methode 2 von 3: Verwenden von Datenspeichermethoden

7815950 4
7815950 4

Schritt 1. GetAsync

Verwenden Sie GetAsync, um den Wert des Eintrags im Datenspeicher mit dem angegebenen Schlüssel zurückzugeben. Stellen Sie sicher, dass Sie jedem Spieler einen einzigartigen Schlüsselsatz geben, da die Einstellung zweier Spieler mit demselben Schlüssel ihre eigenen Spieldaten überschreibt und Chaos zwischen den beiden Parteien verursacht. Wenn Sie wissen möchten, wie Sie einen eindeutigen Schlüssel festlegen, lesen Sie weiter.

  • Der folgende Code gibt nil aus, da der Server keinen Wert finden konnte, der mit dem Schlüssel verknüpft ist; Es ist wichtig, dem Server genau zu zeigen, was wir ausgeben möchten, damit der Server weiß, was angezeigt werden muss.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:GetAsync(key) end)

7815950 5
7815950 5

Schritt 2. SetAsync

Verwenden Sie SetAsync, um den Wert des Schlüssels festzulegen, und überschreibt alle vorhandenen Daten, die für den eindeutigen Schlüssel gespeichert sind.

  • Wenn die vorherigen Informationen wichtig sind, ziehen Sie die Verwendung von UpdateAsync in Betracht, das weiter unten erläutert wird.
  • Der folgende Code zeigt Ihnen, wie Sie die beiden Methoden ":GetAsync()" und ":SetAsync()" implementieren.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:SetAsync(key, 90) - - setzt den Schlüssel auf den Wert, 90 local data_stored = datastore:GetAsync(key) -- kann die Wertänderung erkennen print(data_stored) -- druckt das Ausgabeende)

  • Hinweis: Dies funktioniert nur, wenn Sie den API-Zugriff aktiviert haben. Lesen Sie dazu die erste Anweisung dieser Anleitung.
7815950 6
7815950 6

Schritt 3. Verwenden Sie UpdateAsync, um den Wert des Schlüssels zurückzugeben, und aktualisieren Sie ihn mit einem neuen Wert

Dies validiert die Daten und muss daher warten, bis der Server die Zeit findet, sie zu aktualisieren. Damit dies funktioniert, müssen Sie zwei Parameter übergeben; die erste ist eine Zeichenfolge, die den von Ihnen eingerichteten eindeutigen Schlüssel verwendet: "'user_'.. player.userId", und die zweite ist eine Funktion, die den alten Wert übernimmt.

    local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) -- Sachen machen Ende) Ende)

  • In diesem Fall haben wir den alten Wert "alt" genannt. In dieser Funktion müssen wir eine Variable erstellen, die unsere aktualisierte Punktzahl berücksichtigt, und diese dann zurückgeben, damit sie unsere neue Punktzahl anzeigen kann.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) local new = alt oder 0 -- könnte nil sein new = new + 1 -- addiere 1 zum alten Wert return new -- liefert ihn mit dem neuen Wert end) end)

  • Beachten Sie, dass der Server nil zurückgibt, wenn der Schlüssel nicht existiert oder nicht richtig zugewiesen wurde.
  • Ist die Funktion nicht vorhanden, wird das Update abgebrochen.
7815950 7
7815950 7

Schritt 4. Verwenden Sie IncrementAsync, um den Wert für einen Schlüssel zu erhöhen, und geben Sie den erhöhten Wert zurück

Diese Methode funktioniert nur bei Ganzzahlen.

Methode 3 von 3: Datenspeicherereignisse und Aktualisierung von Daten

7815950 8
7815950 8

Schritt 1. Legen Sie einen eindeutigen Schlüssel fest

Es ist äußerst wichtig, dass jeder Spieler einen einzigartigen Schlüssel hat. Sie behalten diesen Schlüssel, der alle ihre Daten speichert. Dazu verwenden wir die Spieler-ID. Nachdem Sie den Datenspeicher eingerichtet haben, rufen Sie einfach eine Funktion zum Laden des Players auf und suchen dann die ID des Players. Der Code sollte wie folgt aussehen:

    local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId end)

  • Dadurch wird automatisch ein Schlüssel erstellt, der nur für diesen Spieler eindeutig ist, da jeder Spieler eine eindeutige ID hat. Der "user_" spielt keine Rolle.
7815950 9
7815950 9

Schritt 2. Aktualisieren Sie die Daten

Da Sie nun für jeden Spieler einen eindeutigen Schlüssel haben, können Sie den Datenspeicher aktualisieren und Daten abrufen. Unter Ihrem Schlüssel möchten Sie eine Methode hinzufügen, die Ihren Anforderungen am besten entspricht. In diesem Fall verwenden wir "UpdateAsync".

  • Beginnen Sie mit einer Funktion, die dem Server hilft, zu verstehen, was Sie tun möchten.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) local newValue = old oder 0 -- könnte nil sein newValue = newValue + 50 return newValue end) end)

  • In dieser Funktion richten wir eine weitere Funktion ein, alt. "alt" waren unsere zuvor gespeicherten Daten. In diesem Szenario würde der Server jedes Mal, wenn ein Spieler den Server betrat, seinen Schlüssel finden, der seine Benutzer-ID ist, und er würde die Daten um 50 Punkte aktualisieren, diesen neuen Wert zurückgeben und anzeigen.
7815950 10
7815950 10

Schritt 3. Herzlichen Glückwunsch

Sie haben die Daten eines Spielers erfolgreich gespeichert und aktualisiert.

Warnungen

  • Stellen Sie beim ersten Erstellen Ihres Datenspeichers sicher, dass "game:GetService("DataStoreService")" mit der richtigen Großschreibung verwendet wird. Es wird nicht effizient ausgeführt, wenn es falsch aufgerufen wird.
  • Stellen Sie sicher, dass Sie wissen, wann Sie "SetAsync" und "UpdateAsync" verwenden, da die Verwendung der falschen Daten beim Abrufen von Daten zu einem Chaos führen kann. In den meisten Fällen verwenden Entwickler "UpdateAsync".

Empfohlen: