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

How to make a song end at the end of a cutscene?

Asked by 8 years ago

I'm sorry, I am very new to scripting and havent been able to figure this problem out, for my music, In workspace I have a sound instance with the id, and in the starter gui I have a script Which says

game.Workspace.Sound:play()

Which allows my song to play, how every I can't get it to stop at the end of the cut scene. Please help!

If you need the cutscene script, here you are-

repeat wait () until game.Workspace.CurrentCamera ~= nil

local c = game.Workspace.CurrentCamera
local data = LoadLibrary("RbxUtility").DecodeJSON(script.CutsceneData.Value)
local rs = game:GetService("RunService").RenderStepped

function tweenCam(c1,f1,time,fov,roll)
    local c0,f0,fv0,r0,frames = c.CoordinateFrame,c.Focus,c.FieldOfView,c:GetRoll(),time/0.015
    for i = 1,frames do
        c.CameraType = "Scriptable"
        c.CoordinateFrame = CFrame.new(c0.p:lerp(c1.p,i/frames),f0.p:lerp(f1.p,i/frames))
        c.FieldOfView = (fv0+(fov-fv0)*(i*(1/frames)))
        c:SetRoll(r0+(roll-r0)*(i*(1/frames)))
        rs:wait()
    end
end

print("Running")
c.CameraSubject = nil   
c.CameraType = "Scriptable"
c.CoordinateFrame = CFrame.new(unpack(data[1].c1))
c.Focus = CFrame.new(unpack(data[1].f1))
c.FieldOfView = data[1].FOV
c:SetRoll(data[1].Roll)
if script:findFirstChild("SkipCutsceneGuiValue") then
    local gui = script.SkipCutsceneGui:clone()
    gui.Parent = game.Players.LocalPlayer.PlayerGui
    gui.Cutscene.Value = script
    gui.Main.Debug.Disabled = false
    script.SkipCutsceneGuiValue.Value = gui
end
for i = 2,#data do
    tweenCam(CFrame.new(unpack(data[i].c1)),CFrame.new(unpack(data[i].f1)),data[i].step,data[i].FOV,data[i].Roll)
end
c.CameraSubject = game.Players.LocalPlayer.Character.Humanoid   
c.CameraType = "Custom"
c.FieldOfView = 70
if script:findFirstChild("SkipCutsceneGuiValue") then
    if script.SkipCutsceneGuiValue.Value ~= nil then
        script.SkipCutsceneGuiValue.Value:Destroy()
    end
end
script:Destroy()

1 answer

Log in to vote
0
Answered by
Scriptree 125
8 years ago

Just like the function that you used which is Play() to play the sound, there is also another function which is Stop(), to stop the sound.

That being said you can use:

game.Workspace.Sound:Stop()

Hope that helped!

0
Where do i put it, because i have tired putting it within the scipt of the cut scene, howeever it has not worked. oveechkin 15 — 8y
0
Put it when the cutscene ends, I would put it right after this line c.FieldOfView = 70. If this helped, please accept the answer :D Scriptree 125 — 8y
0
Thank you so much!!! oveechkin 15 — 8y
Ad

Answer this question