3 maneiras de trabalhar com armazenamentos de dados no Roblox

Índice:

3 maneiras de trabalhar com armazenamentos de dados no Roblox
3 maneiras de trabalhar com armazenamentos de dados no Roblox
Anonim

Cada queria salvar dados e carregá-los novamente toda vez que um jogador entrar no jogo novamente? Desde que a persistência de dados se tornou inútil, o ROBLOX apresenta armazenamentos de dados que são muito mais funcionais. O seguinte guia prático permitirá que você trabalhe com datastores para ROBLOX.

Passos

Método 1 de 3: Configurando o Armazenamento de Dados

7815950 1
7815950 1

Etapa 1. Configure a API

Isso não envolve nenhum script, mas para ativar toda a API do armazenamento de dados, você deve primeiro habilitar o acesso à API. Para fazer isso, vá até a guia Desenvolver e clique em "Jogos". Isso deve direcioná-lo a todos os locais de jogo atuais que você possui. Encontre seu jogo e clique na engrenagem. Deve aparecer um menu suspenso e simplesmente clicar em "Configurar". Marque a caixa habilitada "Habilitar acesso do Studio a serviços de API" e salve. Agora você deve ter acesso à API completa.

7815950 2
7815950 2

Etapa 2. Recupere o armazenamento de dados

Use a API de armazenamento de dados para chamar o armazenamento de dados, pois precisaremos fazer referência a ele. Para começar, abra um script no ROBLOX e nomeie uma variável que gostaríamos de usar para chamar a referência.

    local datastore = jogo: GetService ("DataStoreService"): GetDataStore ("nome")

7815950 3
7815950 3

Etapa 3. Use a variável conforme necessário

Você chamou com sucesso o armazenamento de dados com a variável "armazenamento de dados". Agora, sempre que precisar recuperar o armazenamento de dados, você pode simplesmente nomeá-lo por sua variável.

Observe que se um armazenamento de dados ainda não tiver sido criado, ele criará automaticamente um novo

Método 2 de 3: usando métodos de armazenamento de dados

7815950 4
7815950 4

Etapa 1. GetAsync

Use GetAsync para retornar o valor da entrada no armazenamento de dados com a chave fornecida. Certifique-se de dar a cada jogador um conjunto exclusivo de chaves, pois definir a mesma chave para dois jogadores substituirá seus próprios dados do jogo, causando o caos entre as duas partes. Se você quiser saber como definir uma chave exclusiva, continue lendo.

  • O código a seguir produzirá nil, porque o servidor não conseguiu encontrar nenhum valor vinculado à chave; é importante mostrar ao servidor exatamente o que estamos tentando produzir, para que o servidor saiba o que precisa ser exibido.
  • 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

Etapa 2. SetAsync

Use SetAsync para definir o valor da chave e substitui todos os dados existentes armazenados para a chave exclusiva.

  • Se o conjunto de informações anterior for importante, considere o uso de UpdateAsync, que será ensinado a seguir.
  • O código a seguir mostra como implementar os métodos ": 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) - - define a chave para o valor, 90 local data_stored = datastore: GetAsync (key) - é capaz de detectar a alteração do valor print (data_stored) - imprime o final da saída)

  • Nota: Isso não funcionará, a menos que você tenha o acesso à API habilitado. Para fazer isso, leia as primeiras instruções deste guia.
7815950 6
7815950 6

Etapa 3. Use UpdateAsync para retornar o valor da chave e o atualiza com um novo valor

Isso valida os dados e, portanto, deve esperar até que o servidor encontre tempo para atualizá-los. Para que isso funcione, você precisará passar dois parâmetros; a primeira é uma string que recebe a chave exclusiva que você configurou: "'user_'.. player.userId", e a segunda é uma função que receberá o valor antigo.

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

  • Nesse caso, chamamos o valor antigo de "antigo". Dentro desta função, precisaremos fazer uma variável que levará em conta nossa pontuação atualizada e, em seguida, retorná-la para que possamos exibir nossa nova pontuação.
  • 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 or 0 - pode ser nil new = new + 1 - add 1 to the old value return new - retorna com o novo valor end) end)

  • Observe que o servidor retornará nil se a chave não existir ou não for atribuída corretamente.
  • Se a função não existir, a atualização será cancelada.
7815950 7
7815950 7

Etapa 4. Use IncrementAsync para incrementar o valor de uma chave e retorna o valor incrementado

Este método funciona apenas em números inteiros.

Método 3 de 3: eventos de armazenamento de dados e atualização de dados

7815950 8
7815950 8

Etapa 1. Defina uma chave exclusiva

É extremamente vital que cada jogador tenha uma chave que é única para eles. Eles manterão essa chave, que armazenará todos os seus dados. Para fazer isso, usamos o ID do jogador. Depois de definir o armazenamento de dados, basta chamar uma função para carregar o player e, em seguida, encontrar a ID do jogador. O código deve ser o seguinte:

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

  • Isso criará automaticamente uma chave única para aquele jogador, pois cada jogador terá um ID exclusivo. O "user_" não importa.
7815950 9
7815950 9

Etapa 2. Atualize os dados

Agora que você tem uma chave exclusiva para cada jogador, está pronto para fazer a atualização do armazenamento de dados e recuperar os dados. Abaixo da sua chave, você desejará adicionar um método que seja mais adequado às suas necessidades. Nesse caso, usaremos "UpdateAsync".

  • Comece com uma função para ajudar o servidor a entender o que você pretende fazer.
  • 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 ou 0 - pode ser nil newValue = newValue + 50 return newValue end) end)

  • Nesta função, configuramos outra função, a antiga. "antigo" eram nossos dados salvos anteriormente. Nesse cenário, cada vez que um jogador entrava no servidor, o servidor localizava sua chave, que é seu userId, e atualizava os dados em 50 pontos, retornando e exibindo esse novo valor.
7815950 10
7815950 10

Etapa 3. Parabéns

Você armazenou e atualizou com sucesso os dados de um jogador.

Avisos

  • Ao criar seu armazenamento de dados pela primeira vez, certifique-se de ter "game: GetService (" DataStoreService ")", com a capitalização correta. Ele não será executado de forma eficiente se for chamado incorretamente.
  • Certifique-se de saber quando usar "SetAsync" e "UpdateAsync", pois usar o errado pode transformar as coisas em uma bagunça ao recuperar dados. Na maioria dos casos, os desenvolvedores usarão "UpdateAsync".

Recomendado: