← Все вопросы

Как сделать, чтобы при наступании на деталь что-то происходило (.Touched)?

Задан 17 месяцев назад707 просмотров2 ответа
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(), чтобы урон шёл не чаще раза в секунду.

Ваш ответ

Войдите, чтобы ответить на вопрос.