Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local dss = game:GetService("DataStoreService")
- local ds = dss:GetDataStore("TrickOrTreat")
- local playersHouses = {}
- function saveData(p)
- local candy = p.leaderstats.Candy.Value
- local houses = playersHouses[p]
- pcall(function()
- ds:SetAsync(p.UserId, {candy, houses})
- end)
- end
- game.Players.PlayerAdded:Connect(function(p)
- local ls = Instance.new("Folder", p)
- ls.Name = "leaderstats"
- local candy = Instance.new("IntValue", ls)
- candy.Name = "Candy"
- local candyData = 0
- local housesData = {}
- pcall(function()
- local data = ds:GetAsync(p.UserId)
- candyData = data[1]
- housesData = data[2]
- end)
- playersHouses[p] = housesData
- candy.Value = candyData
- end)
- game.Players.PlayerRemoving:Connect(saveData)
- game:BindToClose(function()
- for i, p in pairs(game.Players:GetPlayers()) do
- spawn(saveData(p))
- end
- end)
- for i, house in pairs(script.Parent:GetChildren()) do
- if house:IsA("Model") and house:FindFirstChild("Doorbell") then
- local doorOpen = false
- local cd = house.Doorbell.ClickDetector
- cd.MouseClick:Connect(function(p)
- if not table.find(playersHouses[p], house.Name) and not doorOpen then
- doorOpen = true
- local character = game.Players:GetPlayers()[math.random(1, #game.Players:GetPlayers())].Character
- character.Archivable = true
- character = character:Clone()
- character:SetPrimaryPartCFrame(house.Door.CFrame - house.Door.CFrame.LookVector * 2)
- wait(math.random(1, 3))
- character.Parent = workspace
- local cf = house.Door.CFrame
- house.Door.CFrame = cf * CFrame.Angles(0, math.rad(90), 0) + (cf.LookVector * house.Door.Size.X/2) + (cf.RightVector * house.Door.Size.X/2)
- p.leaderstats.Candy.Value += 1
- wait(5)
- house.Door.CFrame = cf
- character:Destroy()
- table.insert(playersHouses[p], house.Name)
- doorOpen = false
- end
- end)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement