Загрузка данных


local userInputService = game:GetService("UserInputService")
local player = game:GetService("Players").LocalPlayer
local camera = workspace.CurrentCamera

local isMouseFree = false
local isRightMouseDown = false

local function toggleMouse()
    isMouseFree = not isMouseFree
    
    if isMouseFree then
        -- Используем Classic, чтобы курсор свободно перемещался по экрану
        userInputService.MouseBehavior = Enum.MouseBehavior.Classic
        userInputService.MouseIconEnabled = true
        print("Мышь свободна!")
    else
        userInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
        userInputService.MouseIconEnabled = false
        isRightMouseDown = false
        print("Управление камерой возвращено")
    end
end

userInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    
    -- Переключение по клавише V
    if input.KeyCode == Enum.KeyCode.V then
        toggleMouse()
    end
    
    -- Если мышь свободна и зажали ПКМ — даем крутить камеру
    if input.UserInputType == Enum.UserInputType.MouseButton2 and isMouseFree then
        isRightMouseDown = true
        userInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
    end
end)

userInputService.InputEnded:Connect(function(input)
    -- Отпустили ПКМ — возвращаем свободный курсор
    if input.UserInputType == Enum.UserInputType.MouseButton2 and isMouseFree then
        isRightMouseDown = false
        userInputService.MouseBehavior = Enum.MouseBehavior.Classic
    end
end)