본문 바로가기

Roblox Script

#8: Data Store - 서버에 값 저장하기

최고점수라던가,
이미 구매한 아이템 처럼, 사용자가 종료를 해도 데이터를 저장해야할 때가 있어요. 

이때 Data Store 라는 것을 사용하는데
플레이어의 값을 저장하고, 다시 게임 할 때 불러오는 예제입니다.

local dataStoreService = game:GetService("DataStoreService")
local playerDataStore = dataStoreService:GetDataStore("PlayerDataStore")

game.Players.PlayerAdded:Connect(function(player)
   local leaderstats = Instance.new("Folder")
   leaderstats.Name = "leaderstats"
   leaderstats.Parent = player
   local score = Instance.new("IntValue")
   score.Name = "Score"
   score.Parent = leaderstats
   local l_score
   local success,errMsg = pcall (function()
       l_score = playerDataStore:GetAsync(player.UserId.."-Score")
   end)
   if success then
      score.Value = l_score
   else
     warn ("Failed to read score:"..errMsg)
   end
end)

game.Players.PlayerRemoving:Connect(function(player)
   local success, errMsg = pcall (function() playerDataStore:SetAsync(player.UserId.."-Score", player.leaderstats.Score.Value) end)
   if success then
      print ("Success to save score")
   else
     warn ("Failed to save score:"..errMsg)
   end
end)