Урок Roblox StudioЗанятие 6 / 8

Сложность на выбор

Изменять правила уровня

Сложность на выбор
Иллюстрация к теме занятия

Цель урока

Настраивать параметры испытания отдельно для каждого игрока.

Подготовка

Workspace → Parts EasyZone и HardZone. ServerScriptService → Script DifficultyZones.

Пошаговая работа

  1. Создай две зоны выбора сложности.
  2. Коснись каждой зоны и прочитай атрибут Difficulty.
  3. Проверь двух игроков: выбор независим.

Код Luau

В примерах с двумя скриптами помести части кода в указанные разные объекты.

local Players = game:GetService("Players")
local modes = {EasyZone = "Easy", HardZone = "Hard"}
for zoneName, mode in pairs(modes) do
    workspace:WaitForChild(zoneName).Touched:Connect(function(hit)
        local model = hit:FindFirstAncestorOfClass("Model")
        local player = model and Players:GetPlayerFromCharacter(model)
        if player then player:SetAttribute("Difficulty", mode) end
    end)
end
local function damageFor(player)
    return player:GetAttribute("Difficulty") == "Hard" and 20 or 8
end
-- В следующем уроке передавай player в damageFor(player),
-- а не меняй общую величину урона для всех.

Проверяем результат

Игроки могут выбрать разные режимы; их атрибуты не конфликтуют.

Типичная ошибка

Не меняй глобальную переменную DAMAGE для всех — это повлияет на чужую сессию.

Дополнительное задание

Добавь среднюю сложность с уроном 12.

Перед публикацией: протестируй код в Roblox Studio с двумя игроками и добавь собственные скриншоты редактора.

Проверь свою работу

Перед тестом убедись, что ты выполнил практику самостоятельно.

Эти отметки — личная памятка, они не влияют на звёзды.

Проверь себя

Ответь на вопросы урока. Успешный тест даёт одну звезду в личном кабинете.

⭐ Проверь свои знания

5 вопросов по теме урока. За 4 правильных ответа получишь звезду. Повторные попытки разрешены.

1. Где хранить выбранную сложность для конкретного игрока?
2. Игрок А выбрал Easy, игрок Б — Hard. Что должно случиться?
3. Что должен сделать сервер при выборе неизвестной сложности "Extreme"?
4. Как безопасно проверить присланное клиентом название сложности?
5. Чем хороший сложный маршрут отличается от невозможного?