Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local sliderBG = script.Parent
- local slider = sliderBG:WaitForChild("Slider")
- local sliderBox = sliderBG:WaitForChild("SliderInput")
- local music = sliderBG:WaitForChild("Music")
- music:Play()
- local mouse = game.Players.LocalPlayer:GetMouse()
- local snapAmount = 100
- local pixelsFromEdge = 10
- local movingSlider = false
- slider.MouseButton1Down:Connect(function()
- movingSlider = true
- end)
- slider.MouseButton1Up:Connect(function()
- movingSlider = false
- end)
- mouse.Button1Up:Connect(function()
- movingSlider = false
- end)
- mouse.Move:Connect(function()
- if movingSlider then
- local xOffset = math.floor((mouse.X - sliderBG.AbsolutePosition.X) / snapAmount + 0.5) * snapAmount
- local xOffsetClamped = math.clamp(xOffset, pixelsFromEdge, sliderBG.AbsoluteSize.X - pixelsFromEdge)
- local sliderPosNew = UDim2.new(0, xOffsetClamped, slider.Position.Y)
- slider.Position = sliderPosNew
- local roundedAbsSize = math.floor(sliderBG.AbsoluteSize.X / snapAmount + 0.5) * snapAmount
- local roundedOffsetClamped = math.floor(xOffsetClamped / snapAmount + 0.5) * snapAmount
- local sliderValue = roundedOffsetClamped / roundedAbsSize
- music.Volume = sliderValue
- end
- end)
- sliderBox.FocusLost:Connect(function(enterPressed)
- if not enterPressed then return end
- local input = tonumber(sliderBox.Text)
- if input then
- local inputClamped = math.clamp(input, 0, 1)
- music.Volume = inputClamped
- local xOffset = inputClamped * math.floor(sliderBG.AbsoluteSize.X / snapAmount + 0.5) * snapAmount
- local xOffsetRounded = math.floor(xOffset / snapAmount + 0.5) * snapAmount
- local xOffsetClamped = math.clamp(xOffsetRounded, pixelsFromEdge, sliderBG.AbsoluteSize.X - pixelsFromEdge)
- local sliderPosNew = UDim2.new(0, xOffsetClamped, slider.Position.Y)
- slider.Position = sliderPosNew
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement