Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

[PRO NEEDED] OrderedDataBase not working?

Asked by
vkax 85
5 years ago

I'm not sure why, no output or anything but ordereddatabase won't work, even in real servers, here is my code:

[game.ServerScriptService.serverScripts.globalLeaderboard]

local ds1 = game:GetService("DataStoreService"):GetOrderedDataStore("Points")
local clientFireEvent = game.ReplicatedStorage.remoteEvents.updateLeaderboard

while true do
    success,fail=pcall(function()
        local ConvertedPointsData = {}
        local ds2 = ds1:GetSortedAsync(false,100)
        local ds3 = ds2:GetCurrentPage()
        for i,v in pairs(ds3) do
            local playerName
            local s,fail=pcall(function() playerName = game.Players:GetNameFromUserIdAsync(v.Key) end)
            if s then
                local dataToPass = {
                        key="",
                        value=0,
                        id=0                        
                    }
                dataToPass.key=playerName
                dataToPass.value=v.Value
                dataToPass.value=v.Key
                ConvertedPointsData[#ConvertedPointsData+1]=dataToPass
            else
                print(fail)
            end
        end
        clientFireEvent:FireAllClients(ConvertedPointsData)
    end)
    if fail then
        print(fail)
    end
    wait(60)
end

[game.StarterGui.Menu.Frame.LocalScript]

local updateLeaderboard = game:GetService("ReplicatedStorage").remoteEvents.updateLeaderboard

function addComas(str)
        return #str % 3 == 0 and str:reverse():gsub("(%d%d%d)", "%1,"):reverse():sub(2) or str:reverse():gsub("(%d%d%d)", "%1,"):reverse()
    end

updateLeaderboard.OnClientEvent:connect(function(data)
    for i,v in pairs(script.Parent.ScrollingFrame:GetChildren()) do
        if v.Name=="leaderstatTemplate" then
        v:Destroy()
        end
    end
    for i,v in pairs(data) do
        local template = game.Players.LocalPlayer.PlayerGui.leaderstatTemplate
        template.image.Image = "https://www.roblox.com/headshot-thumbnail/image?userId="..v.id.."&width=150&height=150&format=png"
        template.amount.Text = addComas(tostring(v.value))
        template.name.Text = v.key
        template.rank.Text = "#"..i
        template.Position = UDim2.new(0,0,0.1,0) + UDim2.new(0,0,.1*i,0)
        template.Parent = script.Parent.ScrollingFrame
    end
end)

Answer this question