Como salvar no Data Store do Roblox
Quer saber como implementar um sistema de compras no seu jogo do Roblox? Neste post, você vai aprender passo a passo como criar uma GUI que permite aos jogadores comprar moedas com Robux. Além disso, vou te mostrar como salvar e recuperar essas informações no DataStore, garantindo que os dados dos jogadores estejam sempre seguros!
O que é uma GUI e por que usá-la?
GUI significa “Graphical User Interface” (Interface Gráfica do Usuário). No Roblox, ela permite criar botões, menus e interfaces interativas para melhorar a experiência dos jogadores. Neste tutorial, usaremos a GUI para oferecer a opção de compra de moedas usando Robux, deixando o jogo mais funcional e divertido.
O que você vai aprender neste post:
- Como criar uma interface gráfica para compras no Roblox Studio.
- Configurar o MarketplaceService para processar transações com Robux.
- Usar o DataStoreService para salvar e recuperar o saldo de moedas dos jogadores.
Passo a Passo em Video de como fazer a Gui, Monetização e Salvar no Data Store
Códigos utilizados em Aula
local MarketPlaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CompraMoedas = ReplicatedStorage:WaitForChild("CompraMoedas")
local DataStoreService= game:GetService("DataStoreService")
local coinsDataStore = DataStoreService:GetDataStore("PlayerCoins")
local valor_moedas=10
local playerCoins={}
local function salvarDados(player)
local userId = tostring(player.UserId)
local data = playerCoins[player.UserId]
coinsDataStore:SetAsync(userId, data)
print(data)
print(coinsDataStore)
print(playerCoins)
end
local function carregaDados(player)
local userId = tostring(player.UserId)
local data = coinsDataStore:GetAsync(userId)
playerCoins[player.UserId]= data
print(playerCoins)
CompraMoedas:FireClient(player, playerCoins[player.UserId])
end
MarketPlaceService.ProcessReceipt = function(receiptInfo)
print(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
return Enum.ProductPurchaseDecision.NotProcessedYet
end
playerCoins[player.UserId]= (playerCoins[player.UserId]or 0) + valor_moedas
CompraMoedas:FireClient(player, playerCoins[player.UserId])
print(playerCoins[player.UserId])
return Enum.ProductPurchaseDecision.PurchaseGranted
end
Players.PlayerAdded:Connect(function(player)
-- carregar os dados
carregaDados(player)
end)
Players.PlayerRemoving:Connect(function(player)
-- salvar os dados
salvarDados(player)
end);
local ScreenGui = script.Parent
local Frame = ScreenGui.Frame
local qtdMoedas = Frame.QtdMoedas
local buttonAdd = Frame.buttonAdd
local player = game.Players.LocalPlayer
local MarketPlaceService = game:GetService("MarketplaceService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CompraMoedas = ReplicatedStorage:WaitForChild("CompraMoedas")
local productId = 2661804884
buttonAdd.MouseButton1Click:Connect(function()
MarketPlaceService:PromptProductPurchase(player,productId)
end)
local function atualizaDados(data)
print("atualiza dados")
print(data)
qtdMoedas.Text= data
end
CompraMoedas.OnClientEvent:Connect(atualizaDados)
Com este sistema, você estará um passo mais perto de criar jogos no Roblox que não só divertem, mas também impressionam pela qualidade e funcionalidade. Experimente implementar este sistema e veja como ele pode transformar sua criação!
🌟 Quer aprender mais? Explore nossos cursos gratuitos de programação:
👉 https://programacaoforkids.com.br/cursos.