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

Can you help me with Sound?

Asked by 8 years ago

Hello, I currently have this script that plays Sound that is in its parent.

script.Parent.Sound2:Play()
                                                                wait(2)     

I was wondering how I could make this only play once through a script instead of repeating as the WHOLE repeats when the function is activated?

Script I have it in: ~~~~~~~~~~~~~~~~~ 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 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
                                    script.Parent.Sound1:Play()
                                     wait(1)    
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end)

end

end

~~~~~~~~~~~~~~~~~

0
I'm still not sure what you mean.. Do you want it to loop, do you want to stop it a certain TimePosition? Nickoakz 231 — 8y

1 answer

Log in to vote
0
Answered by 8 years ago

You should have the Sounds out of the script and where you activate the functions.

0
It is.. TixyScripter 115 — 8y
0
no. the function holds the player. this is the only thing i can think of also :c connieoop 10 — 8y
Ad

Answer this question