Kas kõik tahtsid andmeid salvestada ja neid uuesti laadida iga kord, kui mängija uuesti mängu siseneb? Alates sellest, kui andmete püsivus on muutunud mõttetuks, tutvustab ROBLOX andmesalve, mis on palju toimivamad. Järgmine juhend võimaldab teil töötada ROBLOXi andmesalvedega.
1
Seadistage API. See ei hõlma skriptimist, kuid kogu andmesalve API aktiveerimiseks peate esmalt lubama API juurdepääsu. Selleks minge vahekaardile Arendamine ja klõpsake nuppu “Mängud”. See peaks suunama teid kõikidesse praegustesse mängukohtadesse, mis teile kuuluvad. Otsige üles oma mäng ja klõpsake hammasrattal. Ilmuma peaks rippmenüü ja klõpsake lihtsalt nuppu “Seadista”. Märkige ruut “Luba stuudio juurdepääs API teenustele” ja salvestage. Nüüd peaks teil olema juurdepääs kogu API-le.
2
Andmesalvesti toomine. Andmesalve kutsumiseks kasutage Data Store API-t, kuna peame sellele viitama. Alustuseks avage ROBLOXis skript ja nimetage muutuja, mida sooviksime kasutada viite kutsumiseks.local datastore = game:GetService(“DataStoreService”):GetDataStore(“nimi”)
3
Kasutage muutujat vastavalt vajadusele. Olete edukalt helistanud andmesalve muutujaga “datastore”. Nüüd, kui teil on vaja andmesallu alla laadida, saate sellele lihtsalt muutuja järgi anda nime. Pange tähele, et kui andmesallu pole veel loodud, loob see automaatselt uue.
4
GetAsync. Kasutage GetAsynci, et tagastada antud võtmega andmesalves kirje väärtus. Andke igale mängijale ainulaadne võtmete komplekt, kuna kahele mängijale sama võtme määramine tühistab nende endi mängusisesed andmed, põhjustades kahe osapoole vahel kaose. Kui soovite teada, kuidas unikaalset võtit määrata, lugege edasi. Järgmine kood väljastab nulli, kuna server ei leidnud võtmega linkivat väärtust; oluline on näidata serverile täpselt seda, mida me üritame väljastada, et server teaks, mida tuleb kuvada.local datastore = game:GetService(“DataStoreService”):GetDataStore(“name”)game.Players.PlayerAdded :connect(function(player) local key = “user_” .. player.userId datastore:GetAsync(key)end)
5
SetAsync. Kasutage SetAsynci võtme väärtuse määramiseks ja alistab kõik olemasolevad unikaalse võtme jaoks salvestatud andmed.Kui eelmine teabekomplekt on oluline, kaaluge UpdateAsynci kasutamist, mida õpetatakse allpool.Järgmine kood näitab, kuidas rakendada mõlemat, “:GetAsync()” ja “:SetAsync()”, method.local datastore = game:GetService(“DataStoreService”):GetDataStore(“nimi”)game.Players.PlayerAdded:connect(function(player) local key = “user_” .. player.userId datastore:SetAsync(key, 90) — määrab võtme väärtusele, 90 local data_stored = datastore:GetAsync(key) — suudab tuvastada väärtuse muutuse print(data_stored) — prindib väljundi lõpu) Märkus. See ei tööta, kui teil pole API-juurdepääsu lubatud. Selleks lugege selle juhendi esimest juhist.
6
Võtme väärtuse tagastamiseks kasutage UpdateAsynci ja värskendage seda uue väärtusega. See kinnitab andmed ja peab seetõttu ootama, kuni server leiab aja nende värskendamiseks. Selle toimimiseks peate edastama kaks parameetrit; esimene on string, mis võtab teie seadistatud kordumatu võtme: “user_’ .. player.userId” ja teine on funktsioon, mis võtab enda alla vana väärtus.local datastore = game:GetService(“DataStoreService” ):GetDataStore(“nimi”)game.Players.PlayerAdded:connect(function(player) local key = “user_” .. player.userId datastore:UpdateAsync(võti, funktsioon(vana) — do stuff end)end)In sel juhul nimetasime vana väärtust “vanaks”. Selle funktsiooni sees peame tegema muutuja, mis arvestab meie värskendatud skoori, ja seejärel tagastama selle, et see saaks kuvada meie uue score.local datastore = game:GetService(“DataStoreService”):GetDataStore(“name”)game .Players.PlayerAdded:connect(function(player) local key = “user_” .. player.userId datastore:UpdateAsync(key, function(vana) local new = vana või 0 — võib olla null new = new + 1 — lisage vanale väärtusele 1 return new — tagastab selle uue väärtusega end)end)Pange tähele, et server tagastab nulli, kui võtit pole olemas või see pole õigesti määratud.Kui funktsiooni pole olemas, värskendatakse tühistatud.
7
Võtme väärtuse suurendamiseks kasutage funktsiooni IncrementAsync ja tagastab suurendatud väärtuse. See meetod töötab ainult täisarvude puhul.
8
Määrake unikaalne võti. On äärmiselt oluline, et igal mängijal oleks talle ainulaadne võti. Nad hoiavad seda võtit, mis salvestab kõik nende andmed. Selleks kasutame mängija ID-d. Kui olete andmesalve seadistanud, helistage lihtsalt pleieri laadimiseks funktsiooni ja leidke seejärel mängija ID. Kood peaks välja nägema järgmine:local datastore = game:GetService(“DataStoreService”):GetDataStore(“nimi”)game.Players.PlayerAdded:connect(function(player) local key = “user_” .. player.userIdend)See loob automaatselt võtme, mis on unikaalne ainult sellele mängijale, sest igal mängijal on üks kordumatu ID. “Kasutaja_” ei oma tähtsust.
9
Värskendage andmeid. Nüüd, kui teil on iga mängija jaoks unikaalne võti, olete valmis andmesalve värskendama ja andmeid hankima. Võtme alla soovite lisada meetodi, mis on teie vajadustele kõige sobivam. Sel juhul kasutame funktsiooni “UpdateAsync”. Alustage funktsiooniga, mis aitab serveril mõista, mida kavatsete teha.local datastore = game:GetService(“DataStoreService”):GetDataStore(“nimi”)game.Players. PlayerAdded:connect(function(player) local key = “user_” .. player.userId datastore:UpdateAsync(key, function(vana) local newValue = vana või 0 — võib olla null newValue = newValue + 50 return newValue end)end )Selles funktsioonis seadistame teise funktsiooni, vana. “vana” olid meie varem salvestatud andmed. Selle stsenaariumi korral otsib server iga kord, kui mängija serverisse siseneb, oma võtme, mis on nende kasutaja ID, ja värskendab andmeid 50 punkti võrra, tagastades ja kuvades selle uue väärtuse.
10
Palju õnne! Olete mängija andmed edukalt salvestanud ja värskendanud.