3 способа работы с хранилищами данных в Roblox

Оглавление:

3 способа работы с хранилищами данных в Roblox
3 способа работы с хранилищами данных в Roblox
Anonim

Каждый хотел сохранить данные и загружать их каждый раз, когда игрок снова входит в игру? С тех пор, как сохранение данных стало бесполезным, ROBLOX вводит гораздо более функциональные хранилища данных. Следующее руководство поможет вам работать с хранилищами данных для ROBLOX.

Шаги

Метод 1 из 3: настройка хранилища данных

7815950 1
7815950 1

Шаг 1. Настройте API

Это не требует какого-либо сценария, но для того, чтобы активировать весь API хранилища данных, вы должны сначала включить доступ API. Для этого перейдите на вкладку «Разработка» и нажмите «Игры». Это должно направить вас ко всем текущим игровым местам, которыми вы владеете. Найдите свою игру и нажмите на шестеренку. Должно появиться выпадающее меню, и просто нажмите «Настроить». Установите флажок «Включить доступ Studio к службам API» и сохраните. Теперь у вас должен быть доступ к полному API.

7815950 2
7815950 2

Шаг 2. Получите хранилище данных

Используйте API хранилища данных для вызова хранилища данных, так как нам нужно будет ссылаться на него. Для начала откройте сценарий в ROBLOX и назовите переменную, которую мы хотели бы использовать для вызова ссылки.

    локальное хранилище данных = игра: GetService ("DataStoreService"): GetDataStore ("имя")

7815950 3
7815950 3

Шаг 3. Используйте переменную по мере необходимости

Вы успешно вызвали хранилище данных с переменной «хранилище данных». Теперь, когда вам нужно получить хранилище данных, вы можете просто назвать его по его переменной.

Обратите внимание, что если хранилище данных еще не было создано, оно автоматически создаст новое

Метод 2 из 3: Использование методов хранилища данных

7815950 4
7815950 4

Шаг 1. GetAsync

Используйте GetAsync, чтобы вернуть значение записи в хранилище данных с заданным ключом. Обязательно дайте каждому игроку уникальный набор ключей, поскольку установка одного и того же ключа для двух игроков переопределит их собственные внутриигровые данные, вызывая хаос между двумя сторонами. Если вы хотите узнать, как установить уникальный ключ, читайте дальше.

  • Следующий код выведет nil, потому что сервер не может найти никакого значения, связанного с ключом; важно показать серверу именно то, что мы пытаемся вывести, чтобы сервер знал, что нужно отображать.
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: GetAsync (key) end)

7815950 5
7815950 5

Шаг 2. SetAsync

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

  • Если предыдущий набор информации важен, рассмотрите возможность использования UpdateAsync, о чем будет рассказано ниже.
  • В следующем коде показано, как реализовать оба метода: «: GetAsync ()» и «: SetAsync ()».
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: SetAsync (key, 90) - - устанавливает ключ в значение, 90 local data_stored = datastore: GetAsync (key) - может определять изменение значения print (data_stored) - выводит конец вывода)

  • Примечание. Это не сработает, если у вас не включен доступ к API. Для этого прочтите первую инструкцию этого руководства.
7815950 6
7815950 6

Шаг 3. Используйте UpdateAsync, чтобы вернуть значение ключа и обновить его новым значением

Это проверяет данные и, следовательно, должно ждать, пока сервер найдет время для их обновления. Чтобы это сработало, вам нужно будет передать два параметра; первая - это строка, которая принимает уникальный ключ, который вы установили: «'user_'.. player.userId», а вторая - функция, которая будет принимать старое значение.

    local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) - делать вещи конец) конец)

  • В этом случае мы назвали старое значение «старым». Внутри этой функции нам нужно будет создать переменную, которая будет учитывать нашу обновленную оценку, а затем вернуть ее, чтобы она могла отображать нашу новую оценку.
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) local new = old или 0 - может быть nil new = new + 1 - добавить 1 к старому значению return new - вернуть его с новым значением end) end)

  • Обратите внимание, что сервер вернет nil, если ключ не существует или назначен неправильно.
  • Если функция не существует, обновление будет отменено.
7815950 7
7815950 7

Шаг 4. Используйте IncrementAsync, чтобы увеличить значение ключа, и возвращает увеличенное значение

Этот метод работает только с целыми числами.

Метод 3 из 3: События хранилища данных и обновление данных

7815950 8
7815950 8

Шаг 1. Установите уникальный ключ

Чрезвычайно важно, чтобы у каждого игрока был уникальный ключ. Они будут удерживать этот ключ, в котором будут храниться все их данные. Для этого мы используем ID игрока. После того, как вы настроили хранилище данных, просто вызовите функцию для загрузки плеера, а затем найдите его ID. Код должен выглядеть следующим образом:

    local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId end)

  • Это автоматически создаст ключ, уникальный только для этого игрока, для каждого игрока будет один уникальный идентификатор. "User_" значения не имеет.
7815950 9
7815950 9

Шаг 2. Обновите данные

Теперь, когда у вас есть уникальный ключ для каждого игрока, вы настроены на обновление хранилища данных и получение данных. Под ключом вы захотите добавить метод, наиболее подходящий для ваших нужд. В этом случае мы будем использовать UpdateAsync.

  • Начните с функции, которая поможет серверу понять, что вы собираетесь делать.
  • local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) local newValue = old или 0 - может быть nil newValue = newValue + 50 return newValue end) end)

  • В этой функции мы настраиваем еще одну функцию, старую. "old" были нашими ранее сохраненными данными. В этом сценарии каждый раз, когда игрок заходил на сервер, сервер находил свой ключ, который является их идентификатором пользователя, и обновлял данные на 50 пунктов, возвращая и отображая это новое значение.
7815950 10
7815950 10

Шаг 3. Поздравляем

Вы успешно сохранили и обновили данные игрока.

Предупреждения

  • При первом создании хранилища данных убедитесь, что у вас есть "game: GetService (" DataStoreService ")" с правильными заглавными буквами. При неправильном вызове он не будет работать эффективно.
  • Убедитесь, что вы знаете, когда использовать «SetAsync» и «UpdateAsync», поскольку неправильное использование может привести к беспорядку при извлечении данных. В большинстве случаев разработчики будут использовать UpdateAsync.

Рекомендуемые: