Часові капсули

Інструкція, як створити Часові капсули, які додають +10 секунд до таймера рівня:


Що ми створимо:

  • Об’єкт TimeCapsule з ProximityPrompt

  • Таймер, який відображається на екрані

  • Скрипт, який додає 10 секунд при зборі капсули

🔧 КРОК 1: Створення Часової Капсули

  1. У Workspace додай Part, назви його TimeCapsule

  2. Зміни вигляд (наприклад, Ball, Transparency = 0.3, Color = Yellow)

  3. Встанови Anchored = true, CanCollide = false

  4. Додай до TimeCapsule об’єкт ProximityPrompt

    • ActionText = "Pick Up"

    • ObjectText = "Time Capsule"

    • HoldDuration = 0

  5. Всередину TimeCapsule додай Script:

local prompt = script.Parent:FindFirstChild("ProximityPrompt")

prompt.Triggered:Connect(function(player)
local timer = player:FindFirstChild("TimerValue")
if timer then
timer.Value += 10 -- додаємо 10 секунд
end
script.Parent:Destroy()
end)

🕒 КРОК 2: Створення змінної таймера

  1. У ServerScriptService, додай скрипт:

game.Players.PlayerAdded:Connect(function(player) local timer = Instance.new("IntValue") timer.Name = "TimerValue" timer.Value = 60 -- стартовий час (60 сек) timer.Parent = player end)

📺 КРОК 3: Відображення таймера на екрані (UI)

  1. У StarterGui додай ScreenGui, назви TimerGui

  2. Всередину — додай TextLabel, налаштуй стиль (центр екрана)

  3. Усередину TimerGui додай LocalScript:

local player = game.Players.LocalPlayer
local timer = player:WaitForChild("TimerValue")
local label = script.Parent:WaitForChild("TextLabel")

timer:GetPropertyChangedSignal("Value"):Connect(function()
label.Text = "Time left: " .. tostring(timer.Value)
end)

-- Зменшення таймера щосекунди
while true do
wait(1)
if timer.Value > 0 then
timer.Value -= 1
else
label.Text = "Time's up!"
break
end
end

🧪 Перевірка:

  • Запусти гру (Play)

  • Таймер повинен зменшуватись щосекунди

  • При зборі капсули додається 10 сек


🔄 Порада:

Можна також створити:

  • Звуковий ефект при зборі (Sound)

  • Ефект частинок (ParticleEmitter)

  • Анімацію для зникнення капсули