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

[Solved]Why is this Touched event not firing more than once or twice?

Asked by 6 years ago
Edited 5 years ago

Here is the code:

function itemPurchasingManager(tycoonBaseplate, serverBaseplate, tycoon)

    for i,v in pairs(tycoonBaseplate.Buttons:GetChildren()) do

        v.Head.Touched:Connect(function(hit)
            print("Button was touched")
-- there are more if statements and things here but the print above only fires once or twice so I know that they are not the problem

Here is when I call the function:

script.Parent.Touched:Connect(function(hit)

    if hit.Parent:FindFirstChild("Humanoid") then

        local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
        local plrName = plr.Name
        local plrInfo = game.ServerStorage:FindFirstChild(plrName):WaitForChild("PlayerInfo")
        local specialKey = "User_"..plr.UserId
        local tycoon = script.Parent.Parent.Parent.Parent
        local tycoonName = tycoon.Name
        local savedPurchasedItemsTable  
        local buildLevel = plrInfo.BuildLevel.Value 
        local serverTycoon = game.ServerStorage:FindFirstChild("Model"..tycoon.Color.Value.."Tycoon")
        local baseplate = findBaseplate(buildLevel, serverTycoon)
        local baseplateName = baseplate.Name
        local tycoonBaseplate = tycoon:FindFirstChild("Baseplates"):WaitForChild(baseplateName)
        local serverBaseplate = serverTycoon:WaitForChild(baseplateName)

        if not plrInfo.OwnsTycoon.Value then
            if not tycoon.IsOwned.Value then
                if hit.Parent.Humanoid.Health > 0 then

                    tycoon.IsOwned.Value = true
                    tycoon.Owner.Value = plrName
                    plrInfo.OwnedTycoon.Value = tycoon.Name
                    plrInfo.OwnsTycoon.Value = true

                    local success, message = pcall(function()
                        print("Hello")
                        savedPurchasedItemsTable = purchasedItemsDataStore:GetAsync(specialKey) or nil
                        print("Hello2")
                    end)

                    if success then

                        print("Player Data Loaded Successfully")

                        local copy = baseplate.Essentials:Clone()
                        copy.Parent = tycoon.Baseplates:FindFirstChild(baseplateName)

                        if savedPurchasedItemsTable then

                            print("This Player Has Saved Items")
                            createButtonsAndItems(serverBaseplate, tycoonBaseplate, savedPurchasedItemsTable)
                            wait(.5)
                            itemPurchasingManager(tycoonBaseplate, serverBaseplate, tycoon)

                        else

                            print("This Player Has No Purchased Items In This Baseplate")
                            createButtonsAndItems(serverBaseplate, tycoonBaseplate, savedPurchasedItemsTable)
                            wait(.5)
                            itemPurchasingManager(tycoonBaseplate, serverBaseplate, tycoon)

                        end

                        script.Parent.Transparency = 1
                        script.Parent.CanCollide = false

                    else

                        print("Player Data Failed To Load Successfully")
                        plr.CanSave = false
                        plr:Kick("Your Data Failed To Load Successfully Please Rejoin")

                    end
                end
            end
        end
    end
end)                    

can anyone please help me. (by the way this is not a free model I wrote it myself) if there are any problems in the code that are irrelevant to the problem please ignore them. I just want to fix this one bug for now. This is all one script. If that is a problem please tell me.

0
Does it have anything to do with the for loop? Or am I using Touched incorrectly(I dont think so)? And why does it work a few times but not any more? User#21908 42 — 6y
0
it says solved because I took another approach not because it was solved in any way shape or form User#21908 42 — 5y

Answer this question