-- скрипт должен находиться в ServerScriptStorage, это обычный скрипт!
local service = game:GetService("DataStoreService")
local lastcheckpoint = service:GetDataStore("Checkpoint")
game.Players.PlayerAdded:Connect(function(plr)
--если вам нужны статы лидеров
local leaderstats = Instance.new("Folder",plr)
leaderstats.Name = "leaderstats"
local value = Instance.new("IntValue",leaderstats)
value.Name = "CheckPoint"
--основной скрипт : получаем дату
local sucess,currentcheckpoint = pcall(function()
return lastcheckpoint:GetAsync(plr)
end)
if currentcheckpoint == nil then -- если у нас нет даты то мы закинем 0 игроку
local sucess,currentcheckpoint = pcall(function()
return lastcheckpoint:SetAsync(plr,0)
end)
if sucess then
value.Value = currentcheckpoint
end
end
if sucess then
value.Value = currentcheckpoint
end
end)
game.Players.PlayerRemoving:Connect(function(plr)
local leaderstats = game.Players:FindFirstChild(plr):FindFirstChild("leaderstats")
local value = leaderstats:FindFirstChild("CheckPoint")
local sucess,currentcheckpoint = pcall(function()
return lastcheckpoint:SetAsync(plr,value.Value)
end)
if sucess then
-- у нас все сохранено.
-- print("sucess")
end
end)
--сохранение чекпоинта . Скрипт должен находиться под партом!!!
local checkpoint = script.Parent
checkpoint.Touched:Connect(function(plr)
if plr.Parent:FindFirstChild("Humanoid") then
local leaderstats = plr:FindFirstChild("leaderstats")
local value = leaderstats:FindFirstChild("CheckPoint")
checkpoint.Value = 1 -- устанавливаем какой это этап. напрмер 1
end
end)