HyTari Studios · Официальное руководство

Server Inventory Sync

Синхронизируйте инвентари между серверами без зависимости от runtime-индексов.

Базовое руководство описывает уже задокументированное поведение: общий инвентарь, профиль игрока, anti-dupe locking и семантическое сохранение ItemQuality между разными registries.

ПЕРЕД НАЧАЛОМ

Начало работы

ШАГ 01

Установите на участвующих серверах

Используйте одну версию на узлах, которые должны делить профиль.

ШАГ 02

Подключите общее хранилище

Участвующие серверы должны использовать один data backend, ожидаемый релизом.

ШАГ 03

Проверьте полный transfer

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

Базовое руководство намеренно не придумывает названия полей конфигурации: текущий репозиторий мода пуст, поэтому точные JSON-поля будут добавлены только после проверки source/release-build.

ГЛАВА 01 · 1 ПРИМЕРЫ

Что синхронизируется

Инвентарь, броня, backpack, дополнительные слоты и совместимые данные профиля.

01ПОТОК

Общий профиль между серверами

Мод поддерживает синхронизацию поддерживаемых элементов профиля между участвующими серверами.

ПОТОК
Сервер A
  ↓ сохранить профиль
Общая база данных
  ↓ загрузить профиль
Сервер B

Поведение мода

ЧТО ЭТО ДЕЛАЕТ

Мод поддерживает синхронизацию поддерживаемых элементов профиля между участвующими серверами.

ВАЖНОЕ ПОВЕДЕНИЕ

  • Цель — непрерывность инвентаря между hub, survival, dungeon, аренами и другими серверами.
  • Поддерживаются инвентарь, броня, backpacks и совместимые дополнительные слоты.
  • Данные профиля совместимых модов могут синхронизироваться при наличии интеграции.

ГЛАВА 02 · 1 ПРИМЕРЫ

Поток синхронизации

Загрузка, сохранение и transfers проходят защищенный цикл.

01ПОСЛЕДОВАТЕЛЬНОСТЬ

Защищенная загрузка и сохранение

Профиль загружается и сохраняется в контролируемых точках, чтобы избежать конкурентных перезаписей.

ПОСЛЕДОВАТЕЛЬНОСТЬ
JOIN / TRANSFER
→ получить lock
→ загрузить профиль
→ игра
→ autosave / финальное сохранение
→ освободить lock

Runtime-поведение

ЧТО ЭТО ДЕЛАЕТ

Профиль загружается и сохраняется в контролируемых точках, чтобы избежать конкурентных перезаписей.

ВАЖНОЕ ПОВЕДЕНИЕ

  • Система не должна мешать обычной внутренней смене world.
  • Autosave сокращает окно возможной потери данных.
  • Сообщения loading/lock могут информировать игрока, пока профиль еще недоступен.

ГЛАВА 03 · 1 ПРИМЕРЫ

Locks и anti-dupe

Профиль защищается от одновременного доступа на критических этапах.

01ПРАВИЛО

Lock от одновременного доступа

Один профиль не должен изменяться двумя серверами одновременно.

ПРАВИЛО
1 UUID игрока
→ 1 активный профиль
→ 1 действующий lock
→ нет одновременного доступа

Внутренняя безопасность

ЧТО ЭТО ДЕЛАЕТ

Один профиль не должен изменяться двумя серверами одновременно.

ВАЖНОЕ ПОВЕДЕНИЕ

  • Locking защищает от дюпов и race conditions между серверами.
  • Логика transfer должна завершить save и handoff до использования профиля другим сервером.
  • Истекшие locks и ошибки считаются условиями безопасности, а не поводом загрузить две копии.

ГЛАВА 04 · 1 ПРИМЕРЫ

Безопасный ItemQuality

Качества определяются семантически, а не только по runtime-индексам.

01ПРИМЕР

Семантическое сохранение ItemQuality

Одно качество может иметь разные runtime-индексы на серверах с разными модами или registries.

ПРИМЕР
Сервер A: CustomEpic = runtime index 12
Сервер B: CustomEpic = runtime index 27

Sync использует идентичность качества, а не только 12/27.

ItemQuality mapping

ЧТО ЭТО ДЕЛАЕТ

Одно качество может иметь разные runtime-индексы на серверах с разными модами или registries.

ВАЖНОЕ ПОВЕДЕНИЕ

  • Если сервер назначения знает исходное качество, оно восстанавливается корректно.
  • Если разрешить качество нельзя, используется безопасный Common fallback с сохранением исходной идентичности, когда возможно.
  • Когда качество снова становится доступно, оно может быть восстановлено.

ГЛАВА 05 · 1 ПРИМЕРЫ

Диагностика

ItemQuality mapping можно журналировать, если два сервера по-разному разрешают качества.

01ИСПОЛЬЗОВАНИЕ

Диагностика mapping

При разных registries mapping-логи помогают сравнивать имена и индексы ItemQuality.

ИСПОЛЬЗОВАНИЕ
Диагностика ItemQuality mapping
→ включать только для расследования
→ сравнить сервер A / сервер B
→ выключить после теста

Дополнительная диагностика

ЧТО ЭТО ДЕЛАЕТ

При разных registries mapping-логи помогают сравнивать имена и индексы ItemQuality.

ВАЖНОЕ ПОВЕДЕНИЕ

  • Диагностика помогает понять различия registries и не нужна в обычной работе.
  • Не оставляйте подробное логирование включенным без причины.
  • Точные поля конфигурации будут добавлены после выравнивания репозитория мода.

Перед использованием примера

Главная цель — безопасность профиля, а не простое копирование слотов.

Сохранение ItemQuality специально рассчитано на сети с разными registries.

Описательные схемы будут заменены реальной конфигурацией после выравнивания репозитория мода.

НАВЕРХ