3 modi per lavorare con gli archivi dati su Roblox

Sommario:

3 modi per lavorare con gli archivi dati su Roblox
3 modi per lavorare con gli archivi dati su Roblox
Anonim

Tutti volevano salvare i dati e caricarli di nuovo ogni volta che un giocatore entra di nuovo in gioco? Da quando la persistenza dei dati è diventata inutile, ROBLOX introduce archivi di dati molto più funzionanti. La seguente guida ti consentirà di lavorare con i datastore per ROBLOX.

Passi

Metodo 1 di 3: impostazione dell'archivio dati

7815950 1
7815950 1

Passaggio 1. Configurare l'API

Ciò non comporta alcun tipo di script, ma per attivare tutte le API dell'archivio dati, è necessario prima abilitare l'accesso API. Per fare ciò, vai alla scheda Sviluppo e fai clic su "Giochi". Questo dovrebbe indirizzarti a tutti i luoghi di gioco attuali che possiedi. Trova il tuo gioco e fai clic sull'ingranaggio. Dovrebbe apparire un menu a discesa e premere semplicemente "Configura". Seleziona la casella abilitata "Abilita l'accesso di Studio ai servizi API" e salva. Ora dovresti avere accesso all'API completa.

7815950 2
7815950 2

Passaggio 2. Recuperare l'archivio dati

Utilizzare l'API Data Store per chiamare l'archivio dati, poiché sarà necessario farvi riferimento. Per iniziare, apri uno script su ROBLOX e nomina una variabile che vorremmo usare per chiamare il riferimento.

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

7815950 3
7815950 3

Passaggio 3. Utilizzare la variabile secondo necessità

Hai chiamato correttamente il datastore con la variabile "datastore". Ora, ogni volta che devi recuperare il datastore, puoi semplicemente nominarlo con la sua variabile.

Tieni presente che se un datastore non è stato ancora creato, ne creerà automaticamente uno nuovo

Metodo 2 di 3: utilizzo dei metodi di archiviazione dati

7815950 4
7815950 4

Passaggio 1. OttieniAsync

Utilizzare GetAsync per restituire il valore della voce nell'archivio dati con la chiave specificata. Assicurati di dare a ogni giocatore un set di chiavi unico, poiché l'impostazione della stessa chiave a due giocatori sovrascriverà i propri dati di gioco, causando il caos tra le due parti. Se vuoi sapere come impostare una chiave univoca, continua a leggere.

  • Il codice seguente produrrà nil, perché il server non è riuscito a trovare alcun valore collegato alla chiave; è importante mostrare al server esattamente cosa stiamo cercando di produrre, in modo che il server sappia cosa deve essere visualizzato.
  • 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

Passaggio 2. ImpostaAsync

Usa SetAsync per impostare il valore della chiave e sovrascrive tutti i dati esistenti archiviati per la chiave univoca.

  • Se il precedente set di informazioni è importante, prendi in considerazione l'utilizzo di UpdateAsync, che verrà illustrato di seguito.
  • Il codice seguente mostra come implementare entrambi i metodi ":GetAsync()" e ":SetAsync()".
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:SetAsync(key, 90) - - imposta la chiave sul valore, 90 local data_stored = datastore:GetAsync(key) -- è in grado di rilevare la modifica del valore print(data_stored) -- stampa la fine dell'output)

  • Nota: questo non funzionerà, a meno che tu non abbia abilitato l'accesso API. Per fare ciò, leggi le prime istruzioni di questa guida.
7815950 6
7815950 6

Passaggio 3. Utilizzare UpdateAsync per restituire il valore della chiave e aggiornarlo con un nuovo valore

Questo convalida i dati e deve quindi attendere che il server trovi il tempo per aggiornarli. Perché funzioni, dovrai passare due parametri; la prima è una stringa che prende la chiave univoca che hai impostato: "'user_'.. player.userId", e la seconda è una funzione che prenderà il vecchio valore.

    local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) -- fai le cose fine) fine)

  • In questo caso, abbiamo chiamato il vecchio valore "vecchio". All'interno di questa funzione, dovremo creare una variabile che tenga conto del nostro punteggio aggiornato, quindi restituirla in modo che possa visualizzare il nostro nuovo punteggio.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) local new = old o 0 -- potrebbe essere nil new = new + 1 -- aggiungi 1 al vecchio valore return new -- lo restituisce con il nuovo valore end) end)

  • Nota che il server restituirà nil se la chiave non esiste o non è assegnata correttamente.
  • Se la funzione non esiste, l'aggiornamento verrà annullato.
7815950 7
7815950 7

Passaggio 4. Utilizzare IncrementAsync per incrementare il valore di una chiave e restituire il valore incrementato

Questo metodo funziona solo su numeri interi.

Metodo 3 di 3: Eventi dell'archivio dati e aggiornamento dei dati

7815950 8
7815950 8

Passaggio 1. Imposta una chiave univoca

È estremamente vitale che ogni giocatore abbia una chiave che sia unica per lui. Conserveranno quella chiave, che memorizzerà tutti i loro dati. Per fare ciò, utilizziamo l'ID del giocatore. Una volta impostato l'archivio dati, è sufficiente richiamare una funzione per caricare il lettore, quindi trovare l'ID del lettore. Il codice dovrebbe essere il seguente:

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

  • Questo creerà automaticamente una chiave univoca solo per quel giocatore, poiché ogni giocatore avrà un ID univoco. L'"utente_" non avrà importanza.
7815950 9
7815950 9

Passaggio 2. Aggiorna i dati

Ora che hai una chiave univoca per ogni giocatore, sei pronto per aggiornare l'archivio dati e recuperare i dati. Sotto la tua chiave, vorrai aggiungere un metodo più adatto alle tue esigenze. In questo caso, utilizzeremo "UpdateAsync".

  • Inizia con una funzione per aiutare il server a capire cosa intendi fare.
  • 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 o 0 -- potrebbe essere nil newValue = newValue + 50 return newValue end) end)

  • In questa funzione, impostiamo un'altra funzione, old. "vecchio" erano i nostri dati precedentemente salvati. In questo scenario, ogni volta che un giocatore entra nel server, il server localizzerà la sua chiave, che è il suo userId, e aggiornerà i dati di 50 punti, restituendo e visualizzando quel nuovo valore.
7815950 10
7815950 10

Passaggio 3. Congratulazioni

Hai archiviato e aggiornato correttamente i dati di un giocatore.

Avvertenze

  • Quando crei per la prima volta il tuo datastore, assicurati di avere "game:GetService("DataStoreService")", con le maiuscole corrette. Non funzionerà in modo efficiente, se viene chiamato in modo errato.
  • Assicurati di sapere quando usare "SetAsync" e "UpdateAsync", poiché l'utilizzo di quello sbagliato può trasformare le cose in un disastro durante il recupero dei dati. Nella maggior parte dei casi, gli sviluppatori utilizzeranno "UpdateAsync".

Consigliato: