Este artigo está desatualizado e não é mais a maneira correta de usar os Datastores. Veja o artigo de Roblox sobre Datastores para obter mais informações.
(Por Kitrank Vopafal)
Neste tutorial, demonstrarei como usar armazenamentos de dados para salvar valores para o seu jogo:
Primeiramente, insira um Script dentro de ServerScriptService. Em seguida, insira a seguinte linha:
DSS local = jogo: GetService ("DataStoreService")
Temos que obter o DataStoreService antes de podermos chamá-lo. Então, criamos uma variável chamada DSS, abreviação de DataStoreService, que é o que queremos, algo curto para fazer referência, em vez de ter que dizer jogo: GetService ("DataStoreService") todas as vezes.
DSS local = jogo: GetService ("DataStoreService") game.Players.PlayerAdded: Connect (function (Player) Player.CharacterAdded: Connect (function (Character) end) end)
A seguir, inserimos este bloco de código, que é executado quando o Jogador e o Personagem do Jogador são adicionados. Basicamente, quando alguém entra no jogo pela primeira vez, ele executará qualquer código que colocarmos nele e isso acontecerá com todos os jogadores.
DSS local = jogo: GetService ("DataStoreService") game.Players.PlayerAdded: Connect (function (Player) Player.CharacterAdded: Connect (function (Character) local Folder = Instance.new ("Folder") Folder.Name = "Data "Folder.Parent = Player end) end)
Estamos criando um novo Pasta objeto, nomeando-o Dados (onde vamos armazenar nossos valores de dados), e colocá-lo dentro do jogador. Se você fez tudo corretamente até agora, seu explorador deve ficar assim:
- Jogadores
- Kitrank
- Dados
- Mochila
- StarterGear
- PlayerGui
- PlayerScripts
- Kitrank
Agora iremos instanciar / criar um IntValue, chame-o dinheiro, defina o valor padrão como 0 e coloque-o dentro do Dados pasta.
DSS local = jogo: GetService ("DataStoreService") game.Players.PlayerAdded: Connect (function (Player) Player.CharacterAdded: Connect (function (Character) local Folder = Instance.new ("Folder") Folder.Name = "Data "Folder.Parent = Jogador local Cash = Instance.new (" IntValue ") Cash.Name =" Cash "Cash.Parent = Jogador.Data Cash.Value = 0 fim) fim)
Esta é a aparência que seu explorador deve ter agora:
- Jogadores
- Kitrank
- Dados
- dinheiro
- Mochila
- StarterGear
- PlayerGui
- PlayerScripts
- Dados
- Kitrank
Agora vamos voltar perto do início do script, onde criamos a variável DSS e criar o armazenamento de dados para nosso dinheiro:
DSS local = jogo: GetService ("DataStoreService") PlayerCash local = DSS: GetDataStore ("Cash") game.Players.PlayerAdded: Conectar (função (Jogador) Player.CharacterAdded: Conectar (função (Personagem) Pasta local = Instância.new ("Folder") Folder.Name = "Dados" Folder.Parent = Jogador local Cash = Instance.new ("IntValue") Cash.Name = "Dinheiro" Cash.Parent = Player.Data Cash.Value = 0 final) fim )
Acabamos de criar um armazenamento de dados, mas ainda precisamos fazer com que ele carregue e salve. Você pode alterar a variável PlayerCash e o "Dinheiro" texto entre aspas. Agora vamos carregar o Data Store sempre que o jogador entra no jogo:
DSS local = jogo: GetService ("DataStoreService") PlayerCash local = DSS: GetDataStore ("Cash") game.Players.PlayerAdded: Conectar (função (Jogador) Player.CharacterAdded: Conectar (função (Personagem) Pasta local = Instância.new ("Folder") Folder.Name = "Data" Folder.Parent = Player local Cash = Instance.new ("IntValue") Cash.Name = "Cash" Cash.Parent = Player.Data Cash.Value = PlayerCash: GetAsync ( Player.userId) ou 0 end) end)
Agora, onde ele define nosso valor em dinheiro como 0 por padrão, faremos com que ele carregue nosso dinheiro OR defina-o como 0 por padrão. Se o player não tiver salvado, ele carregará o que ele tinha antes, caso contrário, iniciará em 0 (ou o que você preferir). Agora para salvar:
DSS local = jogo: GetService ("DataStoreService") PlayerCash local = DSS: GetDataStore ("Cash") game.Players.PlayerAdded: Conectar (função (Jogador) Player.CharacterAdded: Conectar (função (Personagem) Pasta local = Instância.new ("Folder") Folder.Name = "Data" Folder.Parent = Player local Cash = Instance.new ("IntValue") Cash.Name = "Cash" Cash.Parent = Player.Data Cash.Value = PlayerCash: GetAsync ( Player.userId) ou 0 game.Players.PlayerRemoving: conectar (função (Player) end)
Primeiro, vamos adicionar outra função na parte inferior (dentro da função de jogador / personagem adicionado) que será executada automaticamente antes que o jogador saia do jogo e salve nosso dinheiro. Então:
DSS local = jogo: GetService ("DataStoreService") PlayerCash local = DSS: GetDataStore ("Cash") game.Players.PlayerAdded: Conectar (função (Jogador) Player.CharacterAdded: Conectar (função (Personagem) Pasta local = Instância.new ("Folder") Folder.Name = "Data" Folder.Parent = Player local Cash = Instance.new ("IntValue") Cash.Name = "Cash" Cash.Parent = Player.Data Cash.Value = PlayerCash: GetAsync ( Player.userId) ou 0 game.Players.PlayerRemoving: conectar (função (Player) PlayerCash: SetAsync (Player.userId, Cash.Value) end) end) end)
Você criou com sucesso um valor para salvar e fez com que ele fosse salvo / carregado sempre que o jogador ingressasse / saísse. Parabéns! Além disso, se quiser que seus dados sejam salvos automaticamente a cada intervalo definido, você pode fazer o seguinte:
DSS local = jogo: GetService ("DataStoreService") PlayerCash local = DSS: GetDataStore ("Cash") game.Players.PlayerAdded: Conectar (função (Jogador) Player.CharacterAdded: Conectar (função (Personagem) Pasta local = Instância.new ("Folder") Folder.Name = "Data" Folder.Parent = Player local Cash = Instance.new ("IntValue") Cash.Name = "Cash" Cash.Parent = Player.Data Cash.Value = PlayerCash: GetAsync ( Player.userId) ou 0 game.Players.PlayerRemoving: connect (function (Player) PlayerCash: SetAsync (Player.userId, Cash.Value) end) enquanto true do wait (300) PlayerCash: SetAsync (Player.userId, Cash.Value ) fim fim) fim)
Substitua o número dentro do esperar() com o tempo que você deseja (em segundos) entre cada salvamento automático. Nota: Existem limites para a frequência com que você pode fazer solicitações de armazenamento de dados (link aqui para limitações específicas), portanto, não salve automaticamente muito rápido.
Para testar o Armazenamento de Dados, execute um teste de jogo no Stuido e, em seguida, altere manualmente o valor do seu Dinheiro no seu Jogador. Interrompa a execução do teste depois de alterar o valor você mesmo e, em seguida, teste a execução novamente para ver se salvou o valor para o qual você o alterou. É isso para este tutorial, espero que tenha ajudado!