Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local DataStoreService = game:GetService("DataStoreService")
- local StageDataStore = DataStoreService:GetDataStore("StageData")
- local function TouchedPart(part, touchedPart)
- local ply = game.Players:GetPlayerFromCharacter(touchedPart.Parent)
- if ply then
- if ply.leaderstats.Stage.Value < tonumber(part.Name) then
- ply.leaderstats.Stage.Value = tonumber(part.Name)
- end
- end
- end
- local function AddTouchStageGiver()
- local stageNum = 1
- while true do
- local part = game.Workspace:FindFirstChild(tostring(stageNum))
- if part then
- part.Touched:connect(function (touchedPart)
- TouchedPart(part, touchedPart)
- end)
- else
- break
- end
- stageNum = stageNum + 1
- wait()
- end
- end
- local function GetSavedStage(ply)
- return StageDataStore:GetAsync(tostring(ply.UserId)) or 1
- end
- local function SaveCurrentStage(ply)
- StageDataStore:SetAsync(tostring(ply.UserId), ply.leaderstats.Stage.Value)
- end
- local SPAWN_OFFSET = Vector3.new(0, 5, 0)
- local function GetStageSpawnCFrames(stage)
- local stageSpawnPart = game.Workspace:FindFirstChild(tostring(stage))
- if not stageSpawnPart then
- return game.Workspace:FindFirstChild("1").CFrame + SPAWN_OFFSET
- end
- return stageSpawnPart.CFrame + SPAWN_OFFSET
- end
- local stageValues = {}
- local function CharacterAdded(ply, char)
- repeat wait() until stageValues[ply]
- char:SetPrimaryPartCFrame(GetStageSpawnCFrames(stageValues[ply].Value))
- end
- game.Players.PlayerAdded:connect(function (ply)
- local leaderstats = Instance.new("ObjectValue", ply)
- leaderstats.Name = "leaderstats"
- ply.CharacterAdded:connect(function (char)
- CharacterAdded(ply, char)
- end)
- local stage = Instance.new("IntValue", leaderstats)
- stage.Name = "Stage"
- stage.Value = GetSavedStage(ply)
- stageValues[ply] = stage
- end)
- game.Players.PlayerRemoving:connect(function (ply)
- SaveCurrentStage(ply)
- end)
- wait(1)
- AddTouchStageGiver()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement