-- Получаем текущего игрока и его персонажа local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") -- Временная переменная для хранения информации о том, нужно ли продолжать выполнение local continueLoop = true -- Флаг, указывающий, нажата ли клавиша E local ePressed = false -- Список собранных объектов local collectedObjects = {} -- Функция, которая будет выполняться при нажатии клавиш local userInputService = game:GetService("UserInputService") -- Обработчик нажатия клавиш userInputService.InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.Six then continueLoop = false -- Если нажата клавиша 6, прекращаем выполнение elseif input.KeyCode == Enum.KeyCode.Seven then -- Обнуляем список собранных объектов при нажатии клавиши 7 collectedObjects = {} print("Список собранных объектов обнулён") elseif input.KeyCode == Enum.KeyCode.E then ePressed = true -- Отмечаем, что клавиша E была нажата end end) -- Проверка, был ли объект уже собран local function isObjectCollected(object) return collectedObjects[object] == true end -- Добавление объекта в список собранных local function collectObject(object) collectedObjects[object] = true end -- Проверка на наличие дочернего элемента Difficulty и его значения local function isExclusive(object) local difficulty = object:FindFirstChild("Difficulty") if difficulty and difficulty:IsA("StringValue") then -- Если содержимое Difficulty = "Exclusive", объект пропускается return difficulty.Value == "Exclusive" end return false end -- Телепортируемся по очереди к каждому объекту в Workspace for _, object in ipairs(workspace:GetDescendants()) do -- Проверяем, является ли объект частью модели, которую можно телепортировать (например, BasePart) if object:IsA("BasePart") and not isObjectCollected(object) then if not continueLoop then break end -- Прерываем цикл, если нажата клавиша 6 -- Проверяем наличие Difficulty и его значение if isExclusive(object) then print("Объект пропущен из-за Difficulty = Exclusive: ", object.Name) continue -- Пропускаем объект, если он имеет Difficulty = "Exclusive" end -- Телепортируем персонажа игрока к объекту humanoidRootPart.CFrame = object.CFrame print("Телепортировались к объекту: ", object.Name) -- Сброс флага для нажатия E ePressed = false local timer = 0 local collected = false -- Ждем, пока игрок нажмет E или пройдет 5 секунд repeat wait(0.1) -- Задержка для плавного цикла timer = timer + 0.1 if ePressed then -- Объект собран collected = true collectObject(object) print("Объект собран: ", object.Name) object:Destroy() -- Удаляем объект end until collected or timer >= 5 or not continueLoop -- Либо объект собран, либо прошло 5 секунд, либо завершение цикла if not collected then print("Объект не собран в течение 5 секунд, перемещаемся к следующему") end -- Добавляем задержку перед телепортом к следующему объекту wait(1) -- Задержка между телепортами для плавного перемещения end end print("Цикл завершен или был прерван.")