Hey, I have a cutscene with music, but if someone joins, you hear the music. It's ugly. How do I make it only for the guy who's ment to? Cutscene script:
repeat wait () until game.Workspace.CurrentCamera ~= nil game.Workspace.Sound:Play(148206769) 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 game.Workspace.Sound:Stop(148206769) script:Destroy()
I'd also like to know when I have a skip button, how to let the music stop when the skip button is pushed?
The Cutscene script:
repeat wait () until game.Workspace.CurrentCamera ~= nil Sound=game.Workspace.Sound SoundC=Sound:clone() SoundC.Parent=game.Players.LocalPlayer.PlayerGui SoundC:Play() 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 SoundC:remove() script:Destroy()
The "Main" script:
repeat wait () until script.Parent.Cutscene.Value ~= nil script.Parent.Skip.Visible = true function onClicked() script.Parent.Cutscene.Value:Destroy() game.Workspace.CurrentCamera.CameraType = "Custom" game.Workspace.CurrentCamera.CameraSubject = game.Players.LocalPlayer.Character.Humanoid game.Workspace.CurrentCamera.FieldOfView = 70 script.Parent:Destroy() game.Players.LocalPlayer.PlayerGui.Sound:remove() end script.Parent.Skip.MouseButton1Down:connect(onClicked)
This should all work now...I tested it and it worked for me so...