Цель урока
Разыграй один из трёх призов, не доверяя выбор клиенту.
Подготовка в Explorer
Part PrizeStand → ProximityPrompt → Script; призы в виде сообщений Output
Пошаговая практика
- Создай объекты, соблюдая имена из схемы подготовки.
- Добавь обычный Script в указанный объект и вставь код.
- Нажми Play, открой Output и проверь поведение в одиночной игре.
- Проверь повторное взаимодействие и исправь ошибки в именах или структуре.
Пример Luau
local stand = script.Parent
local prompt = stand:WaitForChild("ProximityPrompt")
local random = Random.new()
local busyByPlayer = {}
local prizes = {"Золотая звезда", "Синий кристалл", "Серебряный ключ"}
prompt.Triggered:Connect(function(player)
if busyByPlayer[player] then return end
busyByPlayer[player] = true
local index = random:NextInteger(1, #prizes)
print(player.Name .. " получил приз: " .. prizes[index])
task.delay(3, function()
busyByPlayer[player] = nil
end)
end)Что должно получиться
При взаимодействии сервер выбирает одну из трёх строк и выводит результат в Output. Настоящая выдача предмета — отдельная задача.
Если не работает
Output доступен при тестировании в Studio, но сам по себе не показывает награду игроку на экране.
Задание со звёздочкой
Создай ScreenGui и RemoteEvent для сообщения о призе; сам выбор оставь на сервере.
Покажи преподавателю
Продемонстрируй механику в Play, объясни, какая часть кода запускает действие, и покажи Output без ошибок.
Материал перед публикацией нуждается в проверке в Roblox Studio и учебных скриншотах.
