-- LocalScript (в StarterPlayerScripts) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local GuiService = game:GetService("GuiService") local player = Players.LocalPlayer local stickPart = nil local endPart = nil local weldStick = nil local weldEnd = nil -- Слайдер 1: длина палки 3–100 local lengthValue = 3 -- Слайдер 2: прозрачность 0–1 local transparencyValue = 0.8 local function createUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "StickLengthUI" screenGui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(240, 140) frame.BackgroundTransparency = 0.4 frame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1) frame.Position = UDim2.fromOffset(20, 20) frame.Parent = screenGui -- Лейбл длины local labelLength = Instance.new("TextLabel") labelLength.Size = UDim2.new(1, 0, 0.2, 0) labelLength.Text = "Длина палки: "..lengthValue labelLength.TextColor3 = Color3.new(1, 1, 1) labelLength.BackgroundTransparency = 1 labelLength.Parent = frame -- Слайдер длины local sliderFrameLength = Instance.new("Frame") sliderFrameLength.Size = UDim2.new(1, 0, 0.2, 0) sliderFrameLength.Position = UDim2.new(0, 0, 0.2, 0) sliderFrameLength.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3) sliderFrameLength.Parent = frame local sliderBgLength = Instance.new("Frame") sliderBgLength.Name = "SliderBgLength" sliderBgLength.Size = UDim2.new(1, 0, 0.5, 0) sliderBgLength.Position = UDim2.new(0, 0, 0.25, 0) sliderBgLength.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2) sliderBgLength.Parent = sliderFrameLength local handleLength = Instance.new("Frame") handleLength.Size = UDim2.new(0, 12, 1, 0) handleLength.BackgroundColor3 = Color3.new(0, 0.6, 1) handleLength.Parent = sliderBgLength -- Лейбл прозрачности local labelTransp = Instance.new("TextLabel") labelTransp.Size = UDim2.new(1, 0, 0.2, 0) labelTransp.Position = UDim2.new(0, 0, 0.5, 0) labelTransp.Text = "Прозрачность: "..string.format("%.2f", transparencyValue) labelTransp.TextColor3 = Color3.new(1, 1, 1) labelTransp.BackgroundTransparency = 1 labelTransp.Parent = frame -- Слайдер прозрачности local sliderFrameTransp = Instance.new("Frame") sliderFrameTransp.Size = UDim2.new(1, 0, 0.2, 0) sliderFrameTransp.Position = UDim2.new(0, 0, 0.7, 0) sliderFrameTransp.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3) sliderFrameTransp.Parent = frame local sliderBgTransp = Instance.new("Frame") sliderBgTransp.Name = "SliderBgTransp" sliderBgTransp.Size = UDim2.new(1, 0, 0.5, 0) sliderBgTransp.Position = UDim2.new(0, 0, 0.25, 0) sliderBgTransp.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2) sliderBgTransp.Parent = sliderFrameTransp local handleTransp = Instance.new("Frame") handleTransp.Size = UDim2.new(0, 12, 1, 0) handleTransp.BackgroundColor3 = Color3.new(0, 0.6, 1) handleTransp.Parent = sliderBgTransp ---------------------------- -- Логика слайдера ДЛИНЫ ---------------------------- local draggingLength = false handleLength.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingLength = true end end) handleLength.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingLength = false end end) RunService.Heartbeat:Connect(function() if draggingLength then local mouse = player:GetMouse() local x = mouse.X - sliderBgLength.AbsolutePosition.X local xClamped = math.clamp(x, 0, sliderBgLength.AbsoluteSize.X) local pct = xClamped / sliderBgLength.AbsoluteSize.X lengthValue = math.clamp(math.floor(100 * pct + 0.5), 3, 100) -- 3–100 handleLength.Position = UDim2.new(pct, 0, handleLength.Position.Y.Scale, 0) labelLength.Text = "Длина палки: "..lengthValue updateStick() end end) ------------------------------- -- Логика слайдера ПРОЗРАЧНОСТИ ------------------------------- local draggingTransp = false handleTransp.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingTransp = true end end) handleTransp.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingTransp = false end end) RunService.Heartbeat:Connect(function() if draggingTransp then local mouse = player:GetMouse() local x = mouse.X - sliderBgTransp.AbsolutePosition.X local xClamped = math.clamp(x, 0, sliderBgTransp.AbsoluteSize.X) local pct = xClamped / sliderBgTransp.AbsoluteSize.X transparencyValue = math.clamp(pct, 0, 1) -- 0–1 handleTransp.Position = UDim2.new(pct, 0, handleTransp.Position.Y.Scale, 0) labelTransp.Text = "Прозрачность: "..string.format("%.2f", transparencyValue) updateStickTransparency() end end) end local function updateStickTransparency() if stickPart then stickPart.Transparency = transparencyValue end if endPart then endPart.Transparency = transparencyValue end end local function clearStick() if stickPart then stickPart:Destroy() stickPart = nil end if endPart then endPart:Destroy() endPart = nil end if weldStick then weldStick:Destroy() weldStick = nil end if weldEnd then weldEnd:Destroy() weldEnd = nil end end local function updateStick() if not stickPart or not endPart then return end local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if not root then return end -- Обновляем палку по длине 3–100 stickPart.Size = Vector3.new(lengthValue, 0.2, 0.2) stickPart.CFrame = root.CFrame * CFrame.new(lengthValue / 2, 0, 0) -- Обновляем конец (вертикальный 2×7×2) endPart.CFrame = root.CFrame * CFrame.new(lengthValue, 0, 0) end local function createStick(character) clearStick() local rootPart = character:WaitForChild("HumanoidRootPart") -- Основная палка stickPart = Instance.new("Part") stickPart.Name = "Stick" stickPart.Size = Vector3.new(lengthValue, 0.2, 0.2) stickPart.Material = Enum.Material.Metal stickPart.Transparency = transparencyValue stickPart.CanCollide = false stickPart.Anchored = false stickPart.CFrame = rootPart.CFrame * CFrame.new(lengthValue / 2, 0, 0) stickPart.Parent = Workspace -- Weld палки к RootPart weldStick = Instance.new("WeldConstraint") weldStick.Part0 = rootPart weldStick.Part1 = stickPart weldStick.Parent = stickPart -- Конечная часть: 7 в высоту, 2×2 в ширину endPart = Instance.new("Part") endPart.Name = "StickEnd" endPart.Size = Vector3.new(2, 7, 2) endPart.Material = Enum.Material.Metal endPart.Transparency = transparencyValue endPart.CanCollide = false endPart.Anchored = false endPart.CFrame = rootPart.CFrame * CFrame.new(lengthValue, 0, 0) -- на конце палки endPart.Parent = Workspace -- Weld конечной части к палке weldEnd = Instance.new("WeldConstraint") weldEnd.Part0 = stickPart weldEnd.Part1 = endPart weldEnd.Parent = endPart -- Применяем стартовую прозрачность updateStickTransparency() end -- Отключаем GamePaused уведомление GuiService:SetGameplayPausedNotificationEnabled(false) -- Запуск player.CharacterAdded:Connect(function(character) task.wait(0.1) createStick(character) createUI() end) if player.Character then createStick(player.Character) createStick(character) end