Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Роблокс студио, обби , чек поинты

Программисты подскажите пж как сделать чтобы в роблокс студио в Обби когда выходиш из игры и заходиш снова ты появляешся на последнем чекпоинте до которого докасался

По дате
По рейтингу
Аватар пользователя
Мастер
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
 -- скрипт должен находиться в 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)