Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Made by Tweakified, Neonblox Games
- -- Video: https://www.youtube.com/watch?v=Ov-M41E5Nd0
- local OrderedDataStore = game:GetService("DataStoreService"):GetOrderedDataStore("WinsOrderedDataStore")
- local Players = game:GetService("Players")
- local WinsLeaderboard = workspace:WaitForChild("Wins Leaderboard")
- local ScrollingFrame = WinsLeaderboard:WaitForChild("Main"):WaitForChild("SurfaceGui"):WaitForChild("Frame"):WaitForChild("ScrollingFrame")
- local UIGridLayout = ScrollingFrame:WaitForChild("UIGridLayout")
- local ToClone = script:WaitForChild("Temp")
- local inGameStartupPlayers = {}
- local function UpdateGuiLeaderboard()
- local Pages
- pcall(function()
- Pages = OrderedDataStore:GetSortedAsync(false, 10)
- end)
- if Pages ~= nil then
- local CurrentPage = Pages:GetCurrentPage()
- for i,v in pairs(ScrollingFrame:GetChildren()) do
- if v:IsA("Frame") then
- v:Destroy()
- end
- end
- for i,data in ipairs(CurrentPage) do
- local Username
- pcall(function()
- Username = Players:GetNameFromUserIdAsync(data["key"])
- end)
- if Username ~= nil then
- local TempFrame = ToClone:Clone()
- TempFrame.Parent = ScrollingFrame
- TempFrame:WaitForChild("Position").Text = "[".. i.. "]"
- TempFrame:WaitForChild("Username").Text = Username
- TempFrame:WaitForChild("Value").Text = data["value"]
- end
- end
- local ScrollSize = Vector2.new(1, 0.1) * ScrollingFrame.AbsoluteSize
- UIGridLayout.CellSize = UDim2.new(0, ScrollSize.X, 0, ScrollSize.Y)
- ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, UIGridLayout.AbsoluteContentSize.Y)
- end
- end
- local function NewPlayer(player)
- local leaderstats = Instance.new("Folder", player)
- leaderstats.Name = "leaderstats"
- local Wins = Instance.new("IntValue", leaderstats)
- Wins.Name = "Wins"
- local WinsData
- pcall(function()
- WinsData = OrderedDataStore:GetAsync(player.UserId)
- end)
- if WinsData ~= nil then
- Wins.Value = WinsData
- end
- end
- local function PlayerLeaving(player)
- inGameStartupPlayers[player] = nil
- pcall(function()
- local TempWins = player:WaitForChild("leaderstats"):WaitForChild("Wins").Value
- if TempWins >= 1 then
- OrderedDataStore:SetAsync(player.UserId, TempWins)
- UpdateGuiLeaderboard()
- end
- end)
- end
- Players.PlayerAdded:Connect(function(player)
- if inGameStartupPlayers[player] == nil then
- NewPlayer(player)
- end
- end)
- inGameStartupPlayers = Players:GetPlayers()
- for i,v in pairs(inGameStartupPlayers) do
- NewPlayer()
- end
- Players.PlayerRemoving:Connect(PlayerLeaving)
- UpdateGuiLeaderboard()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement