← Все практические скрипты
Мини-проекты · Начинающий · 25 мин

Мини-проект: безопасная зона и опасная зона

Опасная область отнимает здоровье, безопасная восстанавливает.

Иллюстрация: Мини-проект: безопасная зона и опасная зона
🎯 Что получится

Красная поверхность наносит 15 урона, зелёная лечит на 10 единиц не чаще раза в секунду.

1. Подготовьте объект

Где разместить: Несколько скриптов — смотрите инструкцию и отдельные блоки кода

В Workspace создайте Part DangerZone (красный) и Part SafeZone (зелёный). У обоих установите Anchored=true, CanTouch=true, CanCollide=true.
Поместите обычный Script DangerScript внутрь DangerZone и обычный Script HealScript внутрь SafeZone.
Нажмите Play и проверьте урон и восстановление. Два скрипта используют собственные задержки для каждого персонажа.

Карта файлов в Explorer

Это пути для скриптов из блоков кода ниже. Остальные объекты создайте по инструкции.

└── Workspace
    ├── DangerZone
    │   └── DangerScript (Script)
    └── SafeZone
        └── HealScript (Script)

2. Вставьте код

Workspace/DangerZone/DangerScript (Script)
local zone = script.Parent
local DAMAGE, COOLDOWN = 15, 1
local last = {}
zone.Touched:Connect(function(hit)
    local model = hit:FindFirstAncestorOfClass("Model")
    local hum = model and model:FindFirstChildOfClass("Humanoid")
    if not hum or hum.Health <= 0 then return end
    local now = os.clock()
    if now - (last[hum] or -math.huge) < COOLDOWN then return end
    last[hum] = now
    hum:TakeDamage(DAMAGE)
end)
Workspace/SafeZone/HealScript (Script)
local zone = script.Parent
local HEAL, COOLDOWN = 10, 1
local last = {}
zone.Touched:Connect(function(hit)
    local model = hit:FindFirstAncestorOfClass("Model")
    local hum = model and model:FindFirstChildOfClass("Humanoid")
    if not hum or hum.Health <= 0 then return end
    local now = os.clock()
    if now - (last[hum] or -math.huge) < COOLDOWN then return end
    last[hum] = now
    hum.Health = math.min(hum.MaxHealth, hum.Health + HEAL)
end)

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Измените значения DAMAGE и HEAL.

2. Улучшите

Поставьте между зонами препятствия.

3. Придумайте своё

Создайте уровень с опасными участками и лечебными островками.

4. Проверьте себя

Как отличается действие зелёной зоны от красной?

🛠 Если не работает

Поставьте Script именно внутрь нужного Part. Убедитесь, что CanTouch=true. При постоянном контакте Touched срабатывает не обязательно каждую секунду.