3 sposoby pracy z magazynami danych w Roblox

Spisu treści:

3 sposoby pracy z magazynami danych w Roblox
3 sposoby pracy z magazynami danych w Roblox
Anonim

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

7815950 1
7815950 1

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.

7815950 2
7815950 2

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

7815950 3
7815950 3

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

7815950 4
7815950 4

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)

7815950 5
7815950 5

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)

  • Uwaga: to nie zadziała, chyba że masz włączony dostęp API. Aby to zrobić, przeczytaj pierwszą instrukcję tego przewodnika.
7815950 6
7815950 6

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)

  • W tym przypadku starą wartość nazwaliśmy „starą”. Wewnątrz tej funkcji będziemy musieli utworzyć zmienną, która będzie uwzględniać nasz zaktualizowany wynik, a następnie zwróci ją, aby mogła wyświetlić nasz nowy wynik.
  • 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)

  • Zauważ, że serwer zwróci zero, jeśli klucz nie istnieje lub nie jest poprawnie przypisany.
  • Jeśli funkcja nie istnieje, aktualizacja zostanie anulowana.
7815950 7
7815950 7

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

7815950 8
7815950 8

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)

  • Spowoduje to automatyczne utworzenie klucza, który jest unikalny tylko dla tego gracza, ponieważ każdy gracz będzie miał jeden unikalny identyfikator. „Użytkownik_” nie będzie miał znaczenia.
7815950 9
7815950 9

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)

  • W tej funkcji ustawiamy inną funkcję, starą. "stare" były naszymi wcześniej zapisanymi danymi. W tym scenariuszu za każdym razem, gdy gracz wchodził na serwer, serwer lokalizowałby swój klucz, który jest jego identyfikatorem użytkownika, i aktualizował dane o 50 punktów, zwracając i wyświetlając tę nową wartość.
7815950 10
7815950 10

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”.

Zalecana: