← Все вопросы
Как сделать, чтобы при наступании на деталь что-то происходило (.Touched)?
8
Хочу сделать ловушку: игрок наступает на красную плиту и его выкидывает / он получает урон. Слышал про .Touched, но не понимаю, как это записать в скрипте.
2 ответа
12
✓ Принятый ответ — помог автору
.Touched — это событие: оно срабатывает, когда что-то коснулось детали. Ты подписываешься на него функцией:
local trap = workspace.TrapPart -- твоя плита
trap.Touched:Connect(function(hit)
-- hit — это деталь, которая коснулась (например, нога игрока)
local humanoid = hit.Parent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = humanoid.Health - 20 -- урон
end
end)
Ключевые моменты:
Touched:Connect(function(hit) ... end)— "когда коснулись, выполни это".- В
Humanoidхранится здоровье игрока. Проверкаif humanoid thenнужна, потому что коснуться могло что угодно (другой кубик, листик), а не обязательно игрок.
Положи этот код в обычный Script (не LocalScript), чтобы урон был на сервере и его видели все.
5
Осторожно: .Touched срабатывает ОЧЕНЬ часто (десятки раз за касание). Если ставишь урон — без защиты игрок потеряет всё здоровье за миг. Для ловушки добавь "кулдаун" через переменную или task.wait(), чтобы урон шёл не чаще раза в секунду.
Ваш ответ
Войдите, чтобы ответить на вопрос.