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

Can't save Credits on death?

Asked by
wrenzh 65
10 years ago

First, the code:

local lib = assert(LoadLibrary("RbxUtility"))

game.Players.PlayerAdded:connect(function(p)
    p.Character.Humanoid.Died:connect(function()
        local credittab = lib.DecodeJSON(p.PlayerGui.Creds.Value)
        p.CharacterAdded:connect(function(char)
            p.PlayerGui.Creds.Value = lib.EncodeJSON(credittab)
        end)
    end)
end)

Now let me explain what I am trying to do:

There is a value in PlayerGui called "Creds" which holds a JSON string indicating how many Credits a player has. However, whenever the player resets, this value is reset. I am trying to prevent that from happening.

I have previously (before the above version of the script) attempted this:

local lib = assert(LoadLibrary("RbxUtility"))

game.Players.PlayerAdded:connect(function(p)
    p.Character.Humanoid.Died:connect(function()
        local credittab = lib.DecodeJSON(p.PlayerGui.Creds.Value)
        repeat wait() until p.Character
        wait(1)
        p.PlayerGui.Creds.Value = lib.EncodeJSON(credittab)
    end)
end)

As well as this:

local lib = assert(LoadLibrary("RbxUtility"))

game.Players.PlayerAdded:connect(function(p)
    p.Character.Humanoid.Died:connect(function()
        local credittab = lib.DecodeJSON(p.PlayerGui.Creds.Value)
        repeat wait() until p.CharacterAdded
        wait(1)
        p.PlayerGui.Creds.Value = lib.EncodeJSON(credittab)
    end)
end)

I believe the problem may lie with my lack of understanding of .Died.

If you require any extra information to fully understand my question, please ask.

Answer this question