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

Can you help me with a Tycoon Purchase Script? [EDITED]

Asked by 8 years ago

Hello guys, I have this purchase script for my Tycoon. It all works fine but I wanted to add a sound when you buy the product. I tried this and this is what came out.

 objects = {}
teamcolor = BrickColor.new(script.Parent.Name)
config = script.Parent.Parent.Parent.Configuration
wait(1)

script.Parent.Essentials.Spawn.TeamColor = teamcolor
script.Parent.Essentials.Spawn.BrickColor = teamcolor

script.Parent.Essentials.Collector.Touched:connect(function(hit)
    if hit:FindFirstChild("Cash") then
        script.Parent.Cash.Value = script.Parent.Cash.Value + hit.Cash.Value
        Instance.new("Sparkles",hit).Color=Color3.new(math.random(1,255)/255,math.random(1,255)/255,math.random(1,255)/255)
        game.Debris:AddItem(hit,0.1)
    end
end)


script.Parent.Essentials.Giver.Touched:connect(function(hit)
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)
    if player ~= nil then
        if script.Parent.Owner.Value == player then
            if hit.Parent:FindFirstChild("Humanoid") then
                if hit.Parent.Humanoid.Health > 0 then
                    local cashmoney = game.ServerStorage.MoneyStorage:FindFirstChild(player.Name)
                    if cashmoney ~= nil then 
                        cashmoney.Value = cashmoney.Value + script.Parent.Cash.Value
                        script.Parent.Cash.Value = 0
                        then
                        script.Parent.Sound:Play()
                                         wait(0.6)    
                    end
                end
            end
        end
    end
end)

script.Parent:WaitForChild("Buttons")
for i,v in pairs(script.Parent.Buttons:GetChildren()) do
    if v:FindFirstChild("Head") then

        local object = script.Parent.Purchases:FindFirstChild(v.Object.Value)
        if object ~= nil then
            objects[object.Name] = object:Clone()
            object:Destroy()
        else
            print("Button: "..v.Name.." is missing its object and has been removed.")
            v.Head.CanCollide = false
            v.Head.Transparency = 1
        end

        if v:FindFirstChild("Dependency") then
            v.Head.CanCollide = false
            v.Head.Transparency = 1
            coroutine.resume(coroutine.create(function()
                if script.Parent.PurchasedObjects:WaitForChild(v.Dependency.Value) then
                    if config.ButtonFadeInDependency.Value == true then
                        for i=1,20 do
                            wait(config.ButtonFadeInTime.Value/20)
                            v.Head.Transparency = v.Head.Transparency - 0.05
                        end
                    end
                    v.Head.CanCollide = true
                    v.Head.Transparency = 0
                end
            end))
        end

        v.Head.Touched:connect(function(hit)
            local player = game.Players:GetPlayerFromCharacter(hit.Parent)
            if v.Head.CanCollide == true then
                if player ~= nil then
                    if script.Parent.Owner.Value == player then
                        if hit.Parent:FindFirstChild("Humanoid") then
                            if hit.Parent.Humanoid.Health > 0 then
                                local cashmoney = game.ServerStorage.MoneyStorage:FindFirstChild(player.Name)
                                if cashmoney ~= nil then
                                    if cashmoney.Value >= v.Price.Value then
                                        cashmoney.Value = cashmoney.Value - v.Price.Value
                                        objects[v.Object.Value].Parent = script.Parent.PurchasedObjects
                                        if config.ButtonExplodeOnBuy.Value == true then
                                            local explosion = Instance.new("Explosion",workspace)
                                            explosion.Position = v.Head.Position
                                            explosion.DestroyJointRadiusPercent = 0
                                            explosion.BlastPressure = 0
                                        end
                                        if config.ButtonFadeOutOnBuy.Value == true then
                                            v.Head.CanCollide = false
                                            coroutine.resume(coroutine.create(function()
                                                for i=1,20 do
                                                    wait(config.ButtonFadeOutTime.Value/20)
                                                    v.Head.Transparency = v.Head.Transparency + 0.05
                                                end
                                            end))
                                        else
                                            v.Head.CanCollide = false
                                            v.Head.Transparency = 1
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end)

    end
end

The normal buy works but as you see at the start I added this part

then
                        script.Parent.Sound:Play()
                                         wait(0.6)    
                    end

There is an error at the "then" part. The sound still doesn't play, Please help..?

0
There is nothing such as: "script.Parent:connect(function()" remove that, and the end, but leave the line that plays the sound. AbsoluteAxiom 175 — 8y
0
@AbsoluteAxiom I edited can you look at it now? TixyScripter 115 — 8y

Answer this question