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

Основы DataStore

Сохранить простое значение

Основы DataStore
Иллюстрация к теме занятия

Цель

Сохранить простое значение

Подготовка

Опубликованная тестовая игра; ServerScriptService → Script WinsData; включён API Services для тестовой игры.

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

  1. Создай отдельную копию проекта для урока №76.
  2. Опубликованная тестовая игра; ServerScriptService → Script WinsData; включён API Services для тестовой игры.
  3. Сделай отдельный тестовый place
  4. Сохраняй число побед
  5. Обрабатывай ошибки pcall
  6. Запусти Play и проверь результат по контрольным условиям.

Пример Luau

local Players = game:GetService("Players")
local store = game:GetService("DataStoreService"):GetDataStore("WinsLessonV1")
Players.PlayerAdded:Connect(function(player)
    local wins = Instance.new("IntValue")
    wins.Name = "Wins"
    wins.Parent = player
    local ok, value = pcall(function()
        return store:GetAsync(tostring(player.UserId))
    end)
    if ok and type(value) == "number" then wins.Value = value end
    if not ok then warn("Загрузка не удалась") end
end)
Players.PlayerRemoving:Connect(function(player)
    local wins = player:FindFirstChild("Wins")
    if not wins then return end
    local ok = pcall(function()
        store:SetAsync(tostring(player.UserId), wins.Value)
    end)
    if not ok then warn("Сохранение не удалось") end
end)

Проверка

После повторного входа восстанавливается счёт

После нового входа число Wins восстанавливается, если запросы DataStore успешны.

Ошибка и ограничения

Два скрипта перезаписывают одну запись. Учебный SetAsync не защищает от конфликта параллельных серверов и не гарантирует сохранение при аварии.

Усложнение

Добавь отметку времени сохранения

Проверь пример в тестовой Roblox Studio перед публикацией. Используй отдельные копии проектов и не подключай два конкурирующих сохранения одновременно.

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

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

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

Проверь себя

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

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

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

1. Для чего используется DataStoreService?
2. Что делать, если вызов GetAsync завершился ошибкой?
3. Какие данные можно сохранять в DataStore?
4. Игрок набрал 7 побед и зашёл снова. Что должна показать проверка сохранения?
5. Где безопаснее выполнять операции записи игрового прогресса?