3 manieren om met gegevensopslag op Roblox te werken

Inhoudsopgave:

3 manieren om met gegevensopslag op Roblox te werken
3 manieren om met gegevensopslag op Roblox te werken
Anonim

Iedereen wilde gegevens opslaan en ze opnieuw laden elke keer dat een speler het spel opnieuw betreedt? Sinds Data Persistence zinloos is geworden, introduceert ROBLOX datastores die veel beter functioneren. Met de volgende handleiding kunt u werken met datastores voor ROBLOX.

Stappen

Methode 1 van 3: De gegevensopslag instellen

7815950 1
7815950 1

Stap 1. Configureer de API

Dit vereist geen scripting, maar om alle API's voor gegevensopslag te activeren, moet u eerst de API-toegang inschakelen. Ga hiervoor naar het tabblad Ontwikkelen en klik op "Games". Dit zou je naar alle huidige spelplaatsen moeten leiden die je bezit. Zoek je spel en klik op het tandwiel. Er zou een vervolgkeuzemenu moeten verschijnen en druk eenvoudig op "Configureren". Vink het vakje "Enable Studio Access to API Services" aan en sla op. U zou nu toegang moeten hebben tot de volledige API.

7815950 2
7815950 2

Stap 2. Haal het gegevensarchief op

Gebruik de Data Store API om de datastore aan te roepen, aangezien we ernaar moeten verwijzen. Open om te beginnen een script op ROBLOX en noem een variabele die we willen gebruiken om de referentie op te roepen.

    local datastore = game:GetService("DataStoreService"):GetDataStore("name")

7815950 3
7815950 3

Stap 3. Gebruik de variabele indien nodig

U hebt de datastore met succes aangeroepen met de variabele "datastore". Nu, wanneer u de datastore moet ophalen, kunt u deze eenvoudig een naam geven met zijn variabele.

Houd er rekening mee dat als er nog geen gegevensopslag is gemaakt, deze automatisch een nieuwe zal maken

Methode 2 van 3: Gegevensopslagmethoden gebruiken

7815950 4
7815950 4

Stap 1. GetAsync

Gebruik GetAsync om de waarde van het item in het gegevensarchief met de opgegeven sleutel te retourneren. Zorg ervoor dat je elke speler een unieke set sleutels geeft, want als je twee spelers dezelfde sleutel geeft, worden hun eigen in-game gegevens overschreven, waardoor chaos tussen de twee partijen ontstaat. Wil je weten hoe je een unieke sleutel instelt, lees dan verder.

  • De volgende code zal nul opleveren, omdat de server geen waarde kon vinden die naar de sleutel linkt; het is belangrijk om de server precies te laten zien wat we proberen uit te voeren, zodat de server weet wat er moet worden weergegeven.
  • 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

Stap 2. StelAsync in

Gebruik SetAsync om de waarde van de sleutel in te stellen en overschrijft alle bestaande gegevens die zijn opgeslagen voor de unieke sleutel.

  • Als de vorige set informatie belangrijk is, overweeg dan om UpdateAsync te gebruiken, wat hieronder wordt uitgelegd.
  • De volgende code laat zien hoe u zowel de ":GetAsync()"- als de ":SetAsync()"-methoden implementeert.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:SetAsync(key, 90) - - stelt de sleutel in op de waarde, 90 lokale data_stored = datastore:GetAsync(key) -- kan de waardeverandering detecteren print (data_stored) -- drukt het uitvoereinde af)

  • Opmerking: dit werkt niet, tenzij u de API-toegang hebt ingeschakeld. Lees hiervoor de eerste instructie van deze handleiding.
7815950 6
7815950 6

Stap 3. Gebruik UpdateAsync om de waarde van de sleutel te retourneren en deze bij te werken met een nieuwe waarde

Dit valideert gegevens en moet daarom wachten tot de server de tijd kan vinden om deze bij te werken. Om dit te laten werken, moet u twee parameters doorgeven; de eerste is een string die de unieke sleutel nodig heeft die je hebt ingesteld: "'user_'.. player.userId", en de tweede is een functie die de oude waarde overneemt.

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

  • In dit geval noemden we de oude waarde "oud". Binnen deze functie moeten we een variabele maken die rekening houdt met onze bijgewerkte score, en die vervolgens retourneren zodat deze onze nieuwe score kan weergeven.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old)) lokaal nieuw = oud of 0 -- zou nul kunnen zijn nieuw = nieuw + 1 -- voeg 1 toe aan de oude waarde return new -- retourneert deze met de nieuwe waarde end) end)

  • Merk op dat de server nul retourneert als de sleutel niet bestaat of niet correct is toegewezen.
  • Als de functie niet bestaat, wordt de update geannuleerd.
7815950 7
7815950 7

Stap 4. Gebruik IncrementAsync om de waarde voor een sleutel te verhogen en retourneert de verhoogde waarde

Deze methode werkt alleen op gehele getallen.

Methode 3 van 3: Gegevensopslaggebeurtenissen en gegevens bijwerken

7815950 8
7815950 8

Stap 1. Stel een unieke sleutel in

Het is uiterst belangrijk dat elke speler een sleutel heeft die uniek is voor hem. Ze houden die sleutel vast, waarin al hun gegevens worden opgeslagen. Hiervoor gebruiken we de spelers-ID. Nadat u de gegevensopslag hebt ingesteld, roept u gewoon een functie aan om de speler te laden en zoekt u vervolgens de ID van de speler. De code moet er als volgt uitzien:

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

  • Hiermee wordt automatisch een sleutel gemaakt die alleen voor die speler uniek is, want elke speler heeft één unieke ID. De "gebruiker_" doet er niet toe.
7815950 9
7815950 9

Stap 2. Werk de gegevens bij

Nu je voor elke speler een unieke sleutel hebt, ben je klaar om de gegevensopslag te updaten en gegevens op te halen. Onder uw sleutel wilt u een methode toevoegen die het meest geschikt is voor uw behoeften. In dit geval gebruiken we "UpdateAsync".

  • Begin met een functie om de server te helpen begrijpen wat u van plan bent te doen.
  • 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 of 0 -- kan nul zijn newValue = newValue + 50 return newValue end) end)

  • In deze functie hebben we een andere functie ingesteld, oud. "oud" waren onze eerder opgeslagen gegevens. In dit scenario zou elke keer dat een speler de server betrad, de server zijn sleutel vinden, dat is hun gebruikers-ID, en de gegevens bijwerken met 50 punten, terugkerend en die nieuwe waarde weergeven.
7815950 10
7815950 10

Stap 3. Gefeliciteerd

Je hebt met succes de gegevens van een speler opgeslagen en bijgewerkt.

Waarschuwingen

  • Zorg er bij het maken van uw gegevensopslag voor dat u "game:GetService("DataStoreService")" met het juiste hoofdlettergebruik gebruikt. Het zal niet efficiënt werken als het verkeerd wordt aangeroepen.
  • Zorg ervoor dat u weet wanneer u "SetAsync" en "UpdateAsync" moet gebruiken, omdat het gebruik van de verkeerde kan leiden tot een rommeltje bij het ophalen van gegevens. In de meeste gevallen zullen ontwikkelaars "UpdateAsync" gebruiken.

Aanbevolen: