local TweenService = game:GetService("TweenService")
local prompt = script.Parent
local door = prompt.Parent -- Наша дверь, внутри которой лежит кнопка
local isOpen = false
-- Запоминаем закрытую позицию и вычисляем открытую (сдвиг вбок)
local closedPosition = door.CFrame
local openPosition = door.CFrame * CFrame.new(door.Size.X, 0, 0)
-- Настраиваем плавность анимации (длится 1 секунду)
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
-- Создаем анимации
local openTween = TweenService:Create(door, tweenInfo, {CFrame = openPosition})
local closeTween = TweenService:Create(door, tweenInfo, {CFrame = closedPosition})
-- Это событие срабатывает только тогда, когда игрок успешно удержал "E" все 3 секунды
prompt.Triggered:Connect(function(player)
-- Если дверь закрыта, начинаем взлом
if not isOpen then
isOpen = true
-- 1. Отключаем кнопку, чтобы ее нельзя было нажать во время анимации
prompt.Enabled = false
-- 2. Открываем дверь
openTween:Play()
-- 3. Даем игроку 5 секунд, чтобы забежать в камеру
task.wait(5)
-- 4. Закрываем дверь обратно
closeTween:Play()
-- 5. Ждем 1 секунду (пока идет анимация закрытия), прежде чем разрешить новый взлом
task.wait(1)
isOpen = false
prompt.Enabled = true -- Снова включаем кнопку
end
end)