Roblox · Обби · урок 2

Скрипты: убивающий и ускоряющий блоки

Первые скрипты: блок, который убивает при касании, и блок, который разгоняет игрока. Это основа почти всех ловушек в обби.

Структура

Синим — что добавляем на этом уроке.

Workspace
├─ KillBrick (Part) — красный, Material Neon
│  └─ KillScript (Script)
├─ SpeedBrick (Part) — зелёный
│  └─ SpeedScript (Script)
└─ NormalBrick (Part) — возвращает скорость
   └─ NormalSpeedScript (Script)

Шаги

  1. Деталь «KillBrick»: красная, Material Neon — игроки сразу понимают, что это опасно. Anchored вкл.
  2. Наведи на KillBrick → «+» → Script, назови «KillScript». Script внутри детали работает с ней через script.Parent.
  3. Touched — событие касания: срабатывает, когда деталь задевает что угодно. У персонажа есть Humanoid — по нему отличаем игрока от других деталей.
  4. Деталь «SpeedBrick» (зелёная) со скриптом «SpeedScript»: WalkSpeed — скорость ходьбы, обычная 16.
  5. Домашнее задание из методички: «NormalBrick» возвращает скорость 16. Это тот же скрипт с другим числом.
  6. Расставь убивающие блоки на полосе: полоски поперёк платформы, через которые надо перепрыгнуть.

Скрипты

KillScript

Где: Workspace → KillBrick · Script
Зачем: Убивает игрока при касании.

-- деталь, в которой лежит скрипт
local part = script.Parent

-- когда что-то касается детали
part.Touched:Connect(function(hit)
    -- Humanoid есть только у персонажей
    local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
    -- коснулся персонаж
    if humanoid then
        -- здоровье в ноль — игрок погибает
        humanoid.Health = 0
    -- конец проверки
    end
-- конец функции
end)

SpeedScript

Где: Workspace → SpeedBrick · Script
Зачем: Разгоняет игрока до 25.

-- деталь со скриптом
local part = script.Parent
-- новая скорость; обычная — 16
local SPEED = 25

-- касание
part.Touched:Connect(function(hit)
    -- ищем Humanoid
    local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
    -- это персонаж
    if humanoid then
        -- меняем скорость ходьбы
        humanoid.WalkSpeed = SPEED
    -- конец проверки
    end
-- конец функции
end)

NormalSpeedScript

Где: Workspace → NormalBrick · Script
Зачем: Возвращает обычную скорость 16.

-- деталь со скриптом
local part = script.Parent
-- обычная скорость Roblox
local SPEED = 16

-- касание
part.Touched:Connect(function(hit)
    -- ищем Humanoid
    local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
    -- это персонаж
    if humanoid then
        -- меняем скорость ходьбы
        humanoid.WalkSpeed = SPEED
    -- конец проверки
    end
-- конец функции
end)

Проверка

Запусти Play (или Run) и убедись: