como salvar no data store do roblox studio

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.

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *