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

Why isn't my GUI updating?

Asked by 8 years ago

@Marios2 gave me a sprinting script, which I slightly modified to this..

local stamina = game.Workspace.Config:WaitForChild("Stamina")
local maxStamina = game.Workspace.Config:WaitForChild("MaxStamina")
local sprint = false

function onSprint(_,state)
    if state == Enum.UserInputState.Begin then
        if stamina.Value < 3 then return end
        sprint = true
        stamina.Value = stamina.Value - 3
        game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 32
        repeat
            if stamina.Value > 0 then
                stamina.Value = stamina.Value - 1
            end
            wait(0.15)
        until (sprint == false or stamina.Value == 0)
    else
                sprint = false
        game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 16
        repeat
            wait(0.25)
            if stamina.Value < maxStamina.Value then
                stamina.Value = stamina.Value + 1
            end
        until (sprint == true or stamina.Value >= maxStamina.Value)
        if stamina.Value > maxStamina.Value then stamina.Value = maxStamina.Value end
    end
end

game:GetService("ContextActionService"):BindAction("Sprint", onSprint, false, Enum.KeyCode.LeftShift)

My problem here is that a GUI I made (uses the same IntValues for stamina and maxStamina) doesn't update. I checked the IntValues in Studio and they do update

local text = script.Parent:WaitForChild("HealthText")
local frame = script.Parent:WaitForChild("ColorFrame")
local config = game.Workspace:WaitForChild("Config")
local stamina = config:WaitForChild("Stamina")
local maxStamina = config:WaitForChild("MaxStamina")

text.Text = ""..stamina.value.." / "..maxStamina.value

stamina.Changed:connect(function()
    frame:TweenSize(UDim2.new(stamina.value/maxStamina.value,0,1,0),"Out","Quad",0.5)
    text.Text = ""..math.floor(stamina.value).." / "..maxStamina.value
    if stamina.value == 0 then
        frame:TweenSize(UDim2.new(0,0,1,0),"Out","Quad",0.5)
        text.Text = "0 / "..maxStamina.value
    end
end)

Thanks in advance, jakei181

Answer this question