Мини-проект: безопасная зона и опасная зона
Опасная область отнимает здоровье, безопасная восстанавливает.
Красная поверхность наносит 15 урона, зелёная лечит на 10 единиц не чаще раза в секунду.
1. Подготовьте объект
Где разместить: Несколько скриптов — смотрите инструкцию и отдельные блоки кода
В Workspace создайте Part DangerZone (красный) и Part SafeZone (зелёный). У обоих установите Anchored=true, CanTouch=true, CanCollide=true.
Поместите обычный Script DangerScript внутрь DangerZone и обычный Script HealScript внутрь SafeZone.
Нажмите Play и проверьте урон и восстановление. Два скрипта используют собственные задержки для каждого персонажа.
Это пути для скриптов из блоков кода ниже. Остальные объекты создайте по инструкции.
└── Workspace
├── DangerZone
│ └── DangerScript (Script)
└── SafeZone
└── HealScript (Script)2. Вставьте код
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)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, прыжок или освещение, могут влиять друг на друга.
Измените значения DAMAGE и HEAL.
Поставьте между зонами препятствия.
Создайте уровень с опасными участками и лечебными островками.
4. Проверьте себя
Как отличается действие зелёной зоны от красной?
Поставьте Script именно внутрь нужного Part. Убедитесь, что CanTouch=true. При постоянном контакте Touched срабатывает не обязательно каждую секунду.