3 måder at arbejde med datalagre på Roblox

Indholdsfortegnelse:

3 måder at arbejde med datalagre på Roblox
3 måder at arbejde med datalagre på Roblox
Anonim

Har du alle lyst til at gemme data og indlæse dem igen, hver gang en spiller kommer ind i spillet igen? Lige siden Data Persistence er blevet forgæves, introducerer ROBLOX datalagre, der er meget mere fungerende. Følgende vejledning gør det muligt for dig at arbejde med datalagre til ROBLOX.

Trin

Metode 1 af 3: Indstilling af datalagret

7815950 1
7815950 1

Trin 1. Konfigurer API

Dette involverer ikke noget scripting, men for at aktivere alle datalagrings -API'erne skal du først aktivere API -adgangen. For at gøre dette skal du gå til fanen Udvikling og klikke på "Spil". Dette skulle lede dig til alle de aktuelle spilsteder, du ejer. Find dit spil, og klik på gearet. Der skal vises en rullemenu, og tryk blot på "Konfigurer". Markér afkrydsningsfeltet "Aktiver Studio -adgang til API -tjenester", og gem. Du skal nu have adgang til den komplette API.

7815950 2
7815950 2

Trin 2. Hent datalagret

Brug Data Store API til at ringe til datalagringen, da vi bliver nødt til at henvise til den. For at starte skal du åbne et script på ROBLOX og navngive en variabel, som vi gerne vil bruge til at kalde referencen.

    lokal datastore = spil: GetService ("DataStoreService"): GetDataStore ("navn")

7815950 3
7815950 3

Trin 3. Brug variablen efter behov

Du har med succes kaldt datalageret med variablen "datastore". Nu, når du skal hente datalagringen, kan du ganske enkelt navngive den med dens variabel.

Bemærk, at hvis der ikke er oprettet et datalager endnu, opretter det automatisk et nyt

Metode 2 af 3: Brug af datalagringsmetoder

7815950 4
7815950 4

Trin 1. GetAsync

Brug GetAsync til at returnere værdien af posten i datalagret med den givne nøgle. Sørg for at give hver spiller et unikt sæt nøgler, da indstilling af to spillere den samme nøgle tilsidesætter deres egne data i spillet, hvilket forårsager kaos mellem de to parter. Hvis du vil vide, hvordan du indstiller en unik nøgle, skal du læse videre.

  • Følgende kode udsender nul, fordi serveren ikke kunne finde nogen værdi, der linker til nøglen; det er vigtigt at vise serveren præcis, hvad vi forsøger at sende, så serveren ved, hvad der skal vises.
  • 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

Trin 2. SetAsync

Brug SetAsync til at angive værdien af nøglen og tilsidesætter alle eksisterende data, der er gemt for den unikke nøgle.

  • Hvis det tidligere informationssæt er vigtigt, kan du overveje at bruge UpdateAsync, som vil blive beskrevet nedenfor.
  • Følgende kode viser dig, hvordan du implementerer begge metoderne ": GetAsync ()" og ": SetAsync ()".
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: SetAsync (key, 90) - - indstiller nøglen til værdien, 90 lokale data_stored = datastore: GetAsync (key) - er i stand til at registrere værdiændringen print (data_stored) - udskriver outputenden)

  • Bemærk: Dette fungerer ikke, medmindre du har API -adgang aktiveret. For at gøre dette skal du læse den første vejledning i denne vejledning.
7815950 6
7815950 6

Trin 3. Brug UpdateAsync til at returnere værdien af nøglen, og opdater den med en ny værdi

Dette validerer data og må derfor vente, indtil serveren kan finde tid til at opdatere dem. For at dette kan fungere, skal du passere to parametre; den første er en streng, der tager den unikke nøgle, du har konfigureret: "'user_'.. player.userId", og den anden er en funktion, der tager den gamle værdi.

    local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) - gør ting slut) slut)

  • I dette tilfælde kaldte vi den gamle værdi for "gammel". Inde i denne funktion skal vi lave en variabel, der redegør for vores opdaterede score, og derefter returnere den, så den kan vise vores nye score.
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) lokal ny = gammel eller 0 - kan være nul ny = ny + 1 - tilføj 1 til den gamle værdi returner ny - returnerer den med den nye værdi slut) slut)

  • Bemærk, at serveren returnerer nul, hvis nøglen ikke findes eller ikke er tildelt korrekt.
  • Hvis funktionen ikke findes, annulleres opdateringen.
7815950 7
7815950 7

Trin 4. Brug IncrementAsync til at øge værdien for en nøgle og returnerer den øgede værdi

Denne metode fungerer kun på heltal.

Metode 3 af 3: Datalagringshændelser og opdatering af data

7815950 8
7815950 8

Trin 1. Indstil en unik nøgle

Det er ekstremt vigtigt, at hver spiller har en nøgle, der er unik for dem. De vil holde på den nøgle, som gemmer alle deres data. For at gøre dette bruger vi spillerens id. Når du har indstillet datalagret, skal du blot ringe til en funktion for at indlæse afspilleren og derefter finde spillerens ID. Koden skal se sådan ud:

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

  • Dette vil automatisk oprette en nøgle, der kun er unik for den pågældende spiller, for hver spiller vil have et unikt ID. "Bruger_" betyder ikke noget.
7815950 9
7815950 9

Trin 2. Opdater dataene

Nu hvor du har en unik nøgle til hver spiller, er du klar til at få datalagret til at opdatere og hente data. Under din nøgle vil du gerne tilføje en metode, der passer bedst til dine behov. I dette tilfælde bruger vi "UpdateAsync".

  • Start med en funktion, der hjælper serveren med at forstå, hvad du har tænkt dig at gøre.
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) lokal newValue = gammel eller 0 - kan være nul newValue = newValue + 50 return newValue end) end)

  • I denne funktion opretter vi en anden funktion, gammel. "gammel" var vores tidligere gemte data. I dette scenario, hver gang en spiller kom ind på serveren, ville serveren finde sin nøgle, som er deres userId, og den ville opdatere dataene med 50 point, returnere og vise den nye værdi.
7815950 10
7815950 10

Trin 3. Tillykke

Du har med succes gemt og opdateret en spillers data.

Advarsler

  • Første gang du opretter dit datalager, skal du sørge for at have "game: GetService (" DataStoreService ")" med den korrekte store bogstaver. Det vil ikke køre effektivt, hvis det kaldes forkert.
  • Sørg for at vide, hvornår du skal bruge "SetAsync" og "UpdateAsync", da brug af den forkerte kan gøre ting til et rod, når data hentes. I de fleste tilfælde vil udviklere bruge "UpdateAsync".

Anbefalede: