События: деталь, которая реагирует на игрока
Используй Touched, найди персонажа и защити обработчик от слишком частых срабатываний.
Подготовь деталь
Добавь Part в Workspace, включи Anchored и вставь в него Script. В этом примере скрипт находится внутри детали, поэтому script.Parent — сама деталь.
Обработай касание
local part = script.Parent
local cooldown = {}
part.Touched:Connect(function(hit)
local character = hit.Parent
local humanoid = character:FindFirstChild("Humanoid")
if not humanoid or cooldown[humanoid] then
return
end
cooldown[humanoid] = true
humanoid.Health = math.min(humanoid.MaxHealth, humanoid.Health + 10)
wait(2)
cooldown[humanoid] = nil
end)
При касании деталь восстанавливает до 10 единиц здоровья. math.min не даёт превысить максимальное здоровье.
Зачем нужна задержка
Событие Touched может сработать несколько раз подряд, в том числе от разных частей тела. Таблица cooldown ограничивает частоту отдельно для каждого Humanoid.
Проверь результат
Запусти Play и коснись детали персонажем с неполным здоровьем. Проверь, что здоровье увеличивается и повторное касание сразу после первого не даёт ещё одну награду.
Доверяй серверу
Награды, урон, покупки и другие важные изменения проверяй серверным Script. Данные от клиента могут быть подделаны: проверяй расстояние, допустимые значения и частоту запросов.
