Roblox 中的数据问题

我在 Roblox 中尝试保存数据,但不幸的是,它并不起作用,你能帮帮我吗? 以下是我的代码:

local ds = game:GetService("DataStoreService"):GetDataStore("Data")

game.Players.PlayerAdded:Connect(function(player)
    local leaderstats = Instance.new("Model")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player

    local hidden = Instance.new("Model")
    hidden.Name = "hidden"
    hidden.Parent = player

    local coins = Instance.new("IntValue")
    coins.Name = "Coins"
    coins.Parent = leaderstats
    coins.Value = ds:GetAsync(player.UserId.."-coins") or 0
    ds:SetAsync(player.UserId.."-coins", coins.Value)
    coins.Changed:Connect(function()
        ds:SetAsync(player.UserId.."-coins", coins.Value)
    end)

    local gems = Instance.new("IntValue")
    gems.Name = "Gems"
    gems.Parent = leaderstats
    gems.Value = ds:GetAsync(player.UserId.."-gems") or 0
    ds:SetAsync(player.UserId.."-gems", gems.Value)
    gems.Changed:Connect(function()
        ds:SetAsync(player.UserId.."-gems", gems.Value)
    end)

    local level = Instance.new("IntValue")
    level.Name = "Level"
    level.Parent = leaderstats
    level.Value = ds:GetAsync(player.UserId.."-level") or 1
    ds:SetAsync(player.UserId.."-level", level.Value)
    level.Changed:Connect(function()
        ds:SetAsync(player.UserId.."-level", level.Value)
    end)

    local xp = Instance.new("IntValue")
    xp.Name = "XP"
    xp.Parent = hidden
    xp.Value = ds:GetAsync(player.UserId.."-xp") or 0
    ds:SetAsync(player.UserId.."-xp", xp.Value)
    xp.Changed:Connect(function()
        ds:SetAsync(player.UserId.."-xp", xp.Value)
    end)

    local maxstamina = Instance.new("IntValue")
    maxstamina.Name = "MaxStamina"
    maxstamina.Parent = hidden
    maxstamina.Value = ds:GetAsync(player.UserId.."-maxstamina") or 100
    ds:SetAsync(player.UserId.."-maxstamina", maxstamina.Value)
    maxstamina.Changed:Connect(function()
        ds:SetAsync(player.UserId.."-maxstamina", maxstamina.Value)
    end)

    local maxmagic = Instance.new("IntValue")
    maxmagic.Name = "MaxMagic"
    maxmagic.Parent = hidden
    maxmagic.Value = ds:GetAsync(player.UserId.."-maxmagic") or 100
    ds:SetAsync(player.UserId.."-maxmagic", maxmagic.Value)
    maxmagic.Changed:Connect(function()
        ds:SetAsync(player.UserId.."-maxmagic", maxmagic.Value)
    end)

    local stamina = Instance.new("IntValue")
    stamina.Name = "Stamina"
    stamina.Parent = hidden
    stamina.Value = maxstamina.value

    local magic = Instance.new("IntValue")
    magic.Name = "Magic"
    magic.Parent = hidden
    magic.Value = maxmagic.value

end)

game.Players.PlayerRemoving:Connect(function(player)
    ds:setAsync(player.UserId.."-coins", player.leaderstats.Coins.Value)
    ds:setAsync(player.UserId.."-gems", player.leaderstats.Gems.Value)
    ds:setAsync(player.UserId.."-xp", player.hidden.XP.Value)
    ds:setAsync(player.UserId.."-level", player.leaderstats.Level.Value)
    ds:setAsync(player.UserId.."-maxstamina", player.hidden.MaxStamina.Value)
    ds:setAsync(player.UserId.."-maxmagic", player.hidden.MaxMagic.Value)
end)

谢谢您的帮助! 此外,没有错误代码,但当我测试时,我的数据没有保存。 我已经启用了 Studio Access to API Services。 我真的不知道发生了什么,我已经花了很多时间搜索如何解决这个问题,但没有找到答案。

点赞