Account last played character

Материал из World of WarCraft Developers Wiki
Перейти к навигации Перейти к поиску

Таблица account_last_played_character

Таблица account_last_played_character из базы данных auth хранит сведения о последнем персонаже, на котором играл аккаунт, с привязкой к параметрам Battle.net-окружения (region/battlegroup) и реалму. Используется как служебная таблица для восстановления “последнего выбранного персонажа” и связанных данных при входе/выборе мира.

Структура таблицы

Field Type Attributes Key Null Default Extra
accountId int UNSIGNED PRIMARY (accountId, region, battlegroup) NO
region tinyint UNSIGNED PRIMARY (accountId, region, battlegroup) NO
battlegroup tinyint UNSIGNED PRIMARY (accountId, region, battlegroup) NO
realmId int UNSIGNED YES NULL
characterName varchar(12) CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci YES NULL
characterGUID bigint UNSIGNED YES NULL
lastPlayedTime int UNSIGNED YES NULL

accountId

ID аккаунта, к которому относится запись. Обычно соответствует `account.id`.

Пример: 42

region

Идентификатор региона Battle.net/портала (служебное значение, используемое для разделения окружений). Это не “география игрока”, а код региона инфраструктуры/портала, с которым работает клиент/логин-часть.

Возможные значения (общеизвестные идентификаторы регионов в WoW-клиенте):

Value Region Примечание
1 US США (включая Brazil и Oceania)
2 Korea Южная Корея
3 Europe Европа (включая Россию)
4 Taiwan Тайвань
5 China Китай

Пример: 3

battlegroup

Идентификатор “батлгруппы/подрегиона” внутри выбранного `region` (служебное значение). Исторически использовалось для разделения внутри региона (например, разные “subregion/realm group”).

Важно:

  • Во многих сборках/ядрах поле может практически не влиять на логику и часто остаётся значением по умолчанию (например, `1`), но структура таблицы всё равно хранит его как часть составного ключа.

Типовой пример “подрегионов” (как подмножества внутри региона), встречающийся в Blizzard API (legacy-схемах):

Region (пример) battlegroup Значение
US/AMERICAS 1 US
US/AMERICAS 2 Latin America
EU 1 Europe
EU 2 Russia
KR/TW 1 Korea
KR/TW 2 Taiwan

Пример: 1

realmId

ID реалма, на котором находился последний персонаж (или реалм, к которому относится запись). Может быть NULL, если данные ещё не заполнены.

Пример: 1

characterName

Имя последнего персонажа, на котором играл аккаунт. Может быть NULL.

Примечание: `varchar(12)` соответствует типовой максимальной длине имени персонажа в схемах ядра.

Пример: Thrall

characterGUID

GUID (уникальный идентификатор) последнего персонажа. Может быть NULL.

Пример: 123456789

lastPlayedTime

Время последней игры на этом персонаже в виде целого числа (как правило, Unix timestamp в секундах). Может быть NULL.

Пример: 1700000000