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
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.
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")
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
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)
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)
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)
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)
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
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)
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)
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".