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

How do I shut down a function if the function is used again?

Asked by 5 years ago
Edited 5 years ago

I'm attempting to make a gui that shows different sets of tips that are sectioned off and are chosen based on the players choice. The gui seems to be functioning well, the button for opening up the thing works well, the section opens the respective tips, but when I close out of one section and decide to click on the other section, when I click the button that takes me to the next page or that takes me back, the display may show the text that is stored from the other dictionary. I'm pretty sure the problem is that when I switch to the other section, the previous function is still active since the output shows the Page number/All pages ratio (Line 100/118)print("Next "..Page.."/"..#TypeOfHelp)for both section selected. Is it possible to shut down one function, preferably via the exit button function (Line 91)

ExitButton.MouseButton1Down:Connect(function()
    Exit = true print(Exit)
end),

to stop conflicting actions?

Local Script:

HelpGui = script.Parent.Parent
TutorialGui = script.Parent
DecisionGui = HelpGui.DecisionScreen
Open = false
KillerHelp = {
[1] = "The killer will receive an axe to kill anyone that is found. Only 15 minutes are given to hunt down everyone. When chasing a person, it\
is important to know that you are slower than the survivors, though there are powers that will help make up for that setback.",
[2] = "Sense - You will be able to go into 3rd person for 10 seconds, allowing you to stalk without the risk of being spotted.",
[3] = "Reform - A map will appear with blue spots that can be clicked on. You will be teleported to the spot.",
[4] = "Spirit Walk - You become invisible for 5 seconds and have your speed tremendously increased. You may press the sprint to slow back down\
to running speed.",
[5] = "Sense - You will be able to go into 3rd person for 10 seconds, allowing you to stalk without the risk of being spotted.",
[6] = "Reform - A map will appear with blue spots that can be clicked on. You will be teleported to the spot."
}
SurvivorHelp = {
[1] = "Your role as a survivor will have you survive a roaming killer until a 15 minute timer runs out. Run and hide from the murderer as he\
chases you.",
[2] = "You will be given a flashlight that will make it easier to traverse the map. When using the flashlight you are more susceptible to be\
caught, during chase when you are already spotted, this will not matter as much.",
[3] = "It is useful to know that the killer is slower than you. Despite that, the one chasing you has access to powers that can aid them and\
make up for their sluggish speed.",
}
RInt = script.R
GInt = script.G
BInt = script.B
Next = DecisionGui.Next
Back = DecisionGui.Back
KillerBox = DecisionGui.Killer
SurvivorBox = DecisionGui.Survivor
ExitButton = DecisionGui.ExitButton
Event = game.ReplicatedStorage.TutorialEvent
local Exit = false

Event.OnClientEvent:Connect(function(Status)
TutorialGui.Visible = false
if Status == 'Off' then
DecisionGui.Visible = false
for i,v in pairs(DecisionGui:GetChildren()) do
v.Visible = false
end
end
end)

function RGBChange(R,G,B)
    RInt.Value = R
    GInt.Value = G
    BInt.Value = B
end

TutorialGui.MouseButton1Down:connect(function()
    --Open Shop
    print(TutorialGui.Name.. "Clicked")
    if Open == false then
        print("Open == false")
        DecisionGui.Visible = true
        for i, TextBox in pairs(DecisionGui:GetChildren()) do
            print("Going through".. DecisionGui.Name)
            if TextBox.ClassName == 'TextBox' then
                TextBox.Visible = true
                Open = true
            end
        end
        Open = true
        elseif Open == true then
        print("Open == true")
        DecisionGui.Visible = false
        Open = false
    end
end)

SectionOpen = false
function SetionOpener(TextBox, TypeOfHelp, BaseColorR, BaseColorG, BaseColorB)
    --Open Section
    print(Exit)
    local HelpDisplayer = DecisionGui.HelpDisplayer
    if Exit ~= true then
        print(TextBox.Name.. "Clicked")
        local Help = TypeOfHelp
        local MaxPage = #TypeOfHelp
        if SectionOpen == false then
            local Exit = false
            print("SectionOpen == false")
            HelpDisplayer.Visible = true
            Next.Visible = true
            Back.Visible = true
            HelpDisplayer.Text = TypeOfHelp[1]
            local Page = 1
            RGBChange(BaseColorR, BaseColorG, BaseColorB)
            ExitButton.Visible = true
            local Exit = false
            ExitButton.MouseButton1Down:Connect(function()
                Exit = true
                print(Exit)
            end)
            Next.MouseButton1Down:Connect(function()
                local TypeOfHelp = TypeOfHelp
                local MaxPage = #TypeOfHelp
                if Page < MaxPage and TypeOfHelp == Help then
                    Page = Page + 1
                    print("Next "..Page.."/"..#TypeOfHelp)
                    --Killer
                    HelpDisplayer.Text = TypeOfHelp[Page]
                    if TypeOfHelp == KillerHelp then
                        GInt.Value = GInt.Value - 10
                        BInt.Value = BInt.Value - 10
                        --Survivor
                        elseif TypeOfHelp == SurvivorHelp then
                        RInt.Value = RInt.Value - 10
                        BInt.Value = BInt.Value - 10
                    end
                end
            end)
            Back.MouseButton1Down:Connect(function()
                local TypeOfHelp = TypeOfHelp
                local MaxPage = #TypeOfHelp
                if (Page - 1) > 0 and TypeOfHelp == Help then
                    Page = Page - 1
                    print("Back "..Page.."/"..MaxPage)
                    HelpDisplayer.Text = TypeOfHelp[Page]
                    --Killer
                    if TypeOfHelp == KillerHelp then
                        GInt.Value = GInt.Value + 10
                        BInt.Value = BInt.Value + 10
                        --Survivor
                        elseif TypeOfHelp == SurvivorHelp then
                        GInt.Value = GInt.Value + 10
                        BInt.Value = BInt.Value + 10
                    end
                end
            end)
        end
        else
    end
end


--Activate SectionOpener
KillerBox.MouseButton1Down:Connect(function()
SectionOpener(KillerBox, KillerHelp, 255, 100, 100)
end)

SurvivorBox.MouseButton1Down:Connect(function()
SectionOpener(SurvivorBox,SurvivorHelp, 100, 255, 100)
end)

Answer this question