← Все практические скрипты
Большие проекты · Уверенный · 35 мин

Остров звёзд: интерфейс и финальная проверка

Покажите монеты, победы и статус сохранения; проверьте готовую игру вдвоём.

Иллюстрация: Остров звёзд: интерфейс и финальная проверка
🎯 Что получится

Завершённая учебная игра с экранным счётом, магазином, препятствиями и понятным состоянием сохранения.

1. Подготовьте объект

Где разместить: StarterPlayer → StarterPlayerScripts → IslandHUD (LocalScript)

Структура в Explorer
ServerScriptService
  IslandWorldBuilder (Script из урока 96)
  IslandGameServer (Script из урока 97)
StarterPlayer
  StarterPlayerScripts
    IslandHUD (LocalScript)
  1. Сохраните скрипты из уроков 96 и 97.
  2. В StarterPlayer → StarterPlayerScripts добавьте LocalScript IslandHUD.
  3. Вставьте код ниже, нажмите Play. Слева появятся монеты, победы и статус сохранения.
  4. Соберите четыре звезды, купите ускорение, дождитесь завершения эффекта.
  5. Пройдите лаву, коснитесь чекпоинта, погибните и проверьте точку возрождения.
  6. Дойдите до финиша: начислится одна победа и 30 монет. Повторное касание не даёт вторую награду в той же сессии.
  7. В Roblox Studio запустите Test → 2 Players. Монеты и покупки должны быть раздельными, звезда должна доставаться только одному игроку за цикл.
  8. Проверку сохранения выполняйте в отдельной опубликованной тестовой игре с разрешённым API Services; при ошибке смотрите статус «Только эта сессия» или «Ошибка сохранения».

2. Вставьте код

LocalScript
-- LocalScript: StarterPlayer/StarterPlayerScripts/IslandHUD
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local stats = player:WaitForChild("leaderstats")
local coins = stats:WaitForChild("Coins")
local wins = stats:WaitForChild("Wins")
local gui = Instance.new("ScreenGui")
gui.Name = "IslandHUD"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local function label(name, y, height, color)
    local item = Instance.new("TextLabel")
    item.Name = name
    item.Size = UDim2.new(0, 290, 0, height)
    item.Position = UDim2.new(0, 16, 0, y)
    item.BackgroundColor3 = Color3.fromRGB(24, 41, 69)
    item.BackgroundTransparency = 0.12
    item.TextColor3 = color
    item.TextScaled = true
    item.Font = Enum.Font.GothamBold
    item.Parent = gui
    return item
end
local score = label("Score", 16, 45, Color3.fromRGB(255, 224, 121))
local save = label("SaveStatus", 66, 32, Color3.fromRGB(205, 235, 255))
local notice = label("Notice", 105, 40, Color3.fromRGB(147, 255, 197))
notice.Visible = false

local function refreshScore()
    score.Text = "Монеты: " .. coins.Value .. "   Победы: " .. wins.Value
end
local function refreshSave()
    save.Text = "Данные: " .. tostring(player:GetAttribute("IslandSaveStatus") or "Загрузка")
end
local noticeId = 0
local function refreshNotice()
    noticeId += 1
    local thisNotice = noticeId
    notice.Text = tostring(player:GetAttribute("IslandNotice") or "")
    notice.Visible = notice.Text ~= ""
    task.delay(3.5, function()
        if thisNotice == noticeId then notice.Visible = false end
    end)
end
coins.Changed:Connect(refreshScore)
wins.Changed:Connect(refreshScore)
player:GetAttributeChangedSignal("IslandSaveStatus"):Connect(refreshSave)
player:GetAttributeChangedSignal("IslandNoticeNumber"):Connect(refreshNotice)
refreshScore()
refreshSave()

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Измените цвета и положение интерфейса.

2. Улучшите

Добавьте сообщение о том, сколько монет осталось до покупки.

3. Придумайте своё

Создайте собственную тематическую карту с теми же тремя скриптами.

4. Проверьте себя

Что означает статус «Только эта сессия»?

🛠 Если не работает

HUD — именно LocalScript в StarterPlayerScripts. Если счётчик не появился, проверьте leaderstats и Output. Два скрипта с названием IslandHUD создадут два интерфейса. Для сохранения нужна опубликованная тестовая игра с доступом к DataStore.