Цель урока
Настраивать параметры испытания отдельно для каждого игрока.
Подготовка
Workspace → Parts EasyZone и HardZone. ServerScriptService → Script DifficultyZones.
Пошаговая работа
- Создай две зоны выбора сложности.
- Коснись каждой зоны и прочитай атрибут Difficulty.
- Проверь двух игроков: выбор независим.
Код 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 с двумя игроками и добавь собственные скриншоты редактора.
