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


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)