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

Экран победы

Показать итоги завершения уровня

Экран победы
Иллюстрация к теме занятия

Цель

Показать экран завершения, когда сервер подтвердил финиш.

Подготовка и расположение объектов

ReplicatedStorage → RemoteEvent FinishNotice; StarterGui → ScreenGui → Frame WinPanel (Visible=false), TextLabel ResultLabel; LocalScript внутри ScreenGui. ServerScript должен сам проверять достижение финиша.

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

  1. Создай RemoteEvent с именем FinishNotice.
  2. Собери WinPanel и ResultLabel, затем добавь LocalScript.
  3. В серверном скрипте после проверки финиша вызови FinishNotice:FireClient(player, finishTime).

Код Luau

-- LocalScript внутри ScreenGui
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local event = ReplicatedStorage:WaitForChild("FinishNotice")
local panel = script.Parent:WaitForChild("WinPanel")
local result = panel:WaitForChild("ResultLabel")
panel.Visible = false

event.OnClientEvent:Connect(function(seconds)
    if typeof(seconds) ~= "number" then return end
    result.Text = string.format("Финиш! Время: %.1f с", seconds)
    panel.Visible = true
end)

-- В СУЩЕСТВУЮЩЕМ СЕРВЕРНОМ скрипте, после проверки маршрута:
-- ReplicatedStorage.FinishNotice:FireClient(player, finishTime)

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

Экран победы появляется только после сообщения от сервера.

Частая ошибка

Отправка FinishNotice с клиента не должна означать победу: сервер сам проверяет прохождение.

Усложнение

Добавь кнопку, скрывающую окно, и анимацию медали.

Для преподавателя

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

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

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

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

Проверь себя

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

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

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

1. Кто должен подтверждать факт победы в многопользовательской игре?
2. Какой объект удобно использовать, чтобы сервер сообщил клиенту о победе?
3. Игрок коснулся финиша дважды подряд. Как избежать двух экранов победы?
4. Что должна делать кнопка «Играть снова»?
5. Почему медаль по времени нужно рассчитывать на основании проверенного результата?