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

Function doesn't pause script?

Asked by
Turgon 80
8 years ago

I like how functions pause my scripts when i don't want them to, but they don't pause my scripts when i do want them to. Anyway, i have a script below and the function im calling is supposed to return values (and it does), but the script goes on before the values are even returned. I tried adding a repeat wait() so that it wait's until the values actually exists but it still doesn't work. Please help?

local function ChangeCrewDetails() --The function im calling
    local gui = guis.crewdetails
    gui.Visible = true
    gui.Finish.MouseButton1Click:connect(function() --Since this only runs when the player clicks a button, the script goes on.
        local name = gui.NameBar.Text
        local desc = gui.Description.Text
        local decal = gui.Flag.Text
        CheckArgs(name,desc)
        gui.Visible = false
        ClearDetailScreen()
        print(name,desc,decal)
        return true,name,desc,decal
    end)
end
--....
--....Other stuff here
--....
yes.MouseButton1Down:connect(function()
        gui.Visible = false
        local bool, name, desc, decal;
        bool, name, desc, decal = ChangeCrewDetails()
        repeat wait() until bool --This will wait the script forever, without it the script goes on before the values come back.
        print("yay it worked")
        mycrew = modules.crew:InvokeServer(name,desc,decal,(game:GetService("Players").LocalPlayer),{})
        AddCrewStats()
        UpdateCrewScreen()
        ShowCrew(true)
    end)

How am i supposed to pause it?

Answer this question