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?
