Każdy chciał zapisać dane i wczytać je ponownie za każdym razem, gdy gracz ponownie wejdzie do gry? Odkąd trwałość danych stała się bezcelowa, ROBLOX wprowadza magazyny danych, które są znacznie bardziej funkcjonalne. Poniższy poradnik pozwoli Ci pracować z datastorem dla ROBLOX.
Kroki
Metoda 1 z 3: Ustawianie magazynu danych
Krok 1. Skonfiguruj API
Nie wymaga to żadnych skryptów, ale aby aktywować wszystkie API magazynu danych, musisz najpierw włączyć dostęp API. Aby to zrobić, przejdź do zakładki Rozwijaj i kliknij „Gry”. Powinno to skierować Cię do wszystkich posiadanych aktualnie miejsc w grze. Znajdź swoją grę i kliknij koło zębate. Powinno pojawić się rozwijane menu i po prostu naciśnij "Konfiguruj". Zaznacz pole „Włącz dostęp Studio do usług API” i zapisz. Powinieneś mieć teraz dostęp do pełnego interfejsu API.
Krok 2. Pobierz magazyn danych
Użyj interfejsu API magazynu danych, aby wywołać magazyn danych, ponieważ będziemy musieli się do niego odwołać. Aby rozpocząć, otwórz skrypt na ROBLOX i nazwij zmienną, której chcielibyśmy użyć do wywołania odniesienia.
lokalny magazyn danych = gra:GetService("DataStoreService"):GetDataStore("nazwa")
Krok 3. Użyj zmiennej w razie potrzeby
Udało Ci się nazwać magazyn danych ze zmienną „datastore”. Teraz, gdy potrzebujesz pobrać magazyn danych, możesz po prostu nazwać go za pomocą jego zmiennej.
Należy pamiętać, że jeśli magazyn danych nie został jeszcze utworzony, automatycznie utworzy nowy
Metoda 2 z 3: Korzystanie z metod przechowywania danych
Krok 1. GetAsync
Użyj GetAsync, aby zwrócić wartość wpisu w magazynie danych z podanym kluczem. Pamiętaj, aby dać każdemu graczowi unikalny zestaw kluczy, ponieważ ustawienie dwóch graczy tego samego klucza spowoduje nadpisanie ich własnych danych w grze, powodując chaos między obiema stronami. Jeśli chcesz wiedzieć, jak ustawić unikalny klucz, czytaj dalej.
- Poniższy kod zwróci zero, ponieważ serwer nie mógł znaleźć żadnej wartości łączącej się z kluczem; ważne jest, aby pokazać serwerowi dokładnie to, co próbujemy wyprowadzić, aby serwer wiedział, co ma zostać wyświetlone.
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:GetAsync(key) end)
Krok 2. Ustaw Async
Użyj SetAsync, aby ustawić wartość klucza i zastąp wszystkie istniejące dane przechowywane dla unikatowego klucza.
- Jeśli poprzedni zestaw informacji jest ważny, rozważ użycie funkcji UpdateAsync, która zostanie opisana poniżej.
- Poniższy kod pokazuje, jak zaimplementować zarówno metody „:GetAsync()”, jak i „:SetAsync()”.
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:SetAsync(key, 90) - - ustawia klucz na wartość 90 local data_stored = datastore:GetAsync(key) -- jest w stanie wykryć zmianę wartości print(data_stored) -- drukuje koniec wyjścia)
Krok 3. Użyj UpdateAsync, aby zwrócić wartość klucza i zaktualizuj ją o nową wartość
To sprawdza poprawność danych i dlatego musi czekać, aż serwer znajdzie czas na ich aktualizację. Aby to zadziałało, musisz przekazać dwa parametry; pierwszy to ciąg, który przyjmuje unikalny klucz, który ustawiłeś: "'user_'.. player.userId", a drugi to funkcja, która przyjmie starą wartość.
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) -- koniec rzeczy) koniec)
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) lokalna nowa = stara lub 0 -- może być zero nowa = nowa + 1 -- dodaj 1 do starej wartości return nowa -- zwraca ją z nową wartością end) end)
Krok 4. Użyj IncrementAsync, aby zwiększyć wartość klucza i zwróci zwiększoną wartość
Ta metoda działa tylko na liczbach całkowitych.
Metoda 3 z 3: Zdarzenia w magazynie danych i aktualizacja danych
Krok 1. Ustaw unikalny klucz
Niezwykle ważne jest, aby każdy gracz miał klucz, który jest dla niego unikalny. Będą trzymać ten klucz, w którym będą przechowywane wszystkie ich dane. W tym celu wykorzystujemy identyfikator gracza. Po ustawieniu magazynu danych wystarczy wywołać funkcję, aby załadować odtwarzacz, a następnie znaleźć identyfikator odtwarzacza. Kod powinien wyglądać następująco:
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId end)
Krok 2. Zaktualizuj dane
Teraz, gdy masz unikalny klucz dla każdego odtwarzacza, możesz aktualizować magazyn danych i pobierać dane. Pod kluczem będziesz chciał dodać metodę, która najbardziej odpowiada Twoim potrzebom. W takim przypadku użyjemy „UpdateAsync”.
- Zacznij od funkcji, która pomoże serwerowi zrozumieć, co zamierzasz zrobić.
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) lokalna nowaWartość = stara lub 0 -- może być zero nowaWartość = nowaWartość + 50 return nowaWartość end) end)
Krok 3. Gratulacje
Pomyślnie zapisałeś i zaktualizowałeś dane gracza.
Ostrzeżenia
- Podczas tworzenia magazynu danych po raz pierwszy upewnij się, że ciąg „game:GetService("DataStoreService")” zawiera poprawną wielkość liter. Nie będzie działał wydajnie, jeśli zostanie wywołany niepoprawnie.
- Upewnij się, kiedy użyć funkcji „SetAsync” i „UpdateAsync”, ponieważ użycie niewłaściwego może spowodować bałagan podczas pobierania danych. W większości przypadków programiści będą używać „UpdateAsync”.