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

Состояния игры

Разделять ожидание, игру и финиш

Состояния игры
Иллюстрация к теме занятия

Цель урока

Разделить фазы ожидания, раунда и завершения; изучить серверные атрибуты.

Подготовка

ServerScriptService → Script RoundStates. В этом уроке не включай другие скрипты управления раундами.

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

  1. Создай Script RoundStates в ServerScriptService.
  2. Запусти Play; открой Output и проверь порядок смены фаз.
  3. Измени длительность раунда и повтори тест.

Код Luau

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

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local state = Instance.new("StringValue")
state.Name = "RoundState"
state.Value = "Waiting"
state.Parent = ReplicatedStorage

while true do
    state.Value = "Waiting"
    task.wait(10)
    state.Value = "Running"
    task.wait(60)
    state.Value = "Finished"
    task.wait(5)
end

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

Состояние последовательно меняется Waiting → Running → Finished; объект RoundState доступен клиенту.

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

Не создавай несколько скриптов RoundStates: они начнут конкурировать за одно значение.

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

Выведи текущую фазу в TextLabel через LocalScript, отслеживая Changed.

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

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

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

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

Проверь себя

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

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

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

1. Что означает состояние Waiting в игре?
2. Какое состояние следует установить после окончания таймера раунда?
3. Почему состояние раунда лучше хранить на сервере?
4. Что произойдёт при попытке начать второй раунд, пока идёт первый?
5. Какая проверка нужна перед выдачей награды победителю?