• Страница 1 из 1
  • 1
Разбор структуры баз SkyFire[auth]
ph3n
Developer
Ну что ж, начнем! Сегодня буду описывать вам самую простую из баз данных для SkyFire, а именно auth.


В базе auth 8 таблиц:
1. account - по названию всё понятно, данная таблица содержит информацию об учетных записях пользователей/игроков.
2. account_access - данная таблица отвечает за доступ на сервере.
3. account_banned - по названию понятно, что данная таблица отвечает за информацию о заблокированных учетных записях.
4. ip_banned - таблица отвечающая за информацию о заблокированных IP-адресах.
5. realmcharacters - данная таблица содержит информацию о количестве персонажей каждого аккаунта на каждом реалме.
6. logs - в данной таблице содержаться логи сервера, если EnableLogDB в конфигах(authserver.conf) включен.
7. realmlist - в данной таблице содержится вся необходимая информация о реалмах.
8. uptime - данная таблица содержит время работы всех реалмов.


account

Структура

Описание полей:
id
Уникальный идентификатор аккаунта.
username
Название аккаунта.
sha_pass_hash
Это поле содержит зашифрованную методом SHA1 пару «логин, пароль». Хеш создается методом конкатенации логина и пароля в верхнем регистре, используя двоеточие как разделитель.. Запрос, создающий логин и пароль:
Code
SELECT SHA1(CONCAT(UPPER(`username`), ':', UPPER(<pass>)));

v
Это серверный верификатор пароля, используемый в SRP во время авторизации клиента. Если вы хотите сменить пароль аккаунта, вы должны установить пустое значение или ноль в это поле.
s
Это серверная «соль» пароля, используемая в SRP во время авторизации клиента. Если вы хотите сменить пароль аккаунта, вы должны установить пустое значение или ноль в это поле.
email
e-mail, присвоеный учетной записи при регистрации.
joindate
Дата регистрации (создания аккаунта).
last_ip
IP адрес, с которого последний раз заходили на данный аккаунт
failed_logins
Количество неверных попыток ввода аккаунта.
locked
Логическое значение 0 или 1 устанавливающее или снимающее блокировку аккаунта. (.account lock on\off в игре).
last_login
Дата последнего входа.
online
Логическое значение 0 или 1 которое показывает, находятся ли персонажи на данном аккаунте в игре.
expansion
Логическое значение 0 или 0 показывающее тип дополнения (для Skyfire значение должно быть 3)
mutetime
Время, в Unix-формате, когда с аккаунта будет снят mute (лишение всех персонажей на аккаунте возможности печатать сообщения и клиентские команды во всех чатах, активируется через .mute в игре). Чтобы посмотреть, сколько осталось времени до снятия блокировки чата выполните запрос:
Code
SELECT FROM_UNIXTIME(`mutetime`);

locale
Язык игрового клиента, используемого при входе на этот Аккаунт. Если указано несколько языков, будет выбираться язык клиента.


account_access

Структура

Описание полей
id
Идентификатор аккаунта из таблице account поле ID.
gmlevel
Уровень доступа учетной записи. Различные уровни имеют доступ к различным командам. Уровни для команд задаются в таблице command(описание будет чуть позже), которая для каждого реалма отдельная.
RealmID
Номер реалма, на котором будет действовать данный уровень доступа(если -1 то для всех). Смотрите в таблице realmlist поле ID.


account_banned

Структура

Описание полей
id
Идентификатор аккаунта. Смотрите в таблице account поле id.
bandate
Дата выдачи бана аккаунту, в Unix-формате.
unbandate
ата снятия бана с аккаунта в Unix-формате. Если в этом поле значение меньше даты выдачи - бан выдается перманентно(навсегда).
bannedby
Ник забанившего аккаунт. Персонаж должен иметь аккаунт с правами на команду .ban в игре.
banreason
Причина, по которой забанен аккаунт.
active
Логическое значение 0 или 1 устанавливающее активен бан или нет.


ip_banned

Структура

Описание полей
ip

Забаненный IP адрес.
bandate
Дата выдачи бана IP адресу, в Unix-формате.
unbandate
Дата снятия бана с IP адреса в Unix-формате. Если в этом поле значение меньше даты выдачи - бан выдается перманентно(навсегда).
bannedby
ик забанившего IP адрес. Персонаж должен иметь аккаунт с правами на комманду .ban в игре.
banreason
Причина, по которой забанен IP адрес.


logs

Структура

Описание полей
time

Дата в Unix-формате, когда произошла запись в базу данных.
realm
Номер реалма, для которого будут сохранятся логи. Смотрите в таблице Realmlist поле ID.
type
Тип логов выглядит так:
Code
LOG_TYPE_STRING = 0 --- нормальные информативные строки
LOG_TYPE_ERROR  = 1 --- какая-то ошибка
LOG_TYPE_BASIC  = 2 --- основная информация
LOG_TYPE_DETAIL = 3 --- подробная информация
LOG_TYPE_DEBUG  = 4 --- отладочная информация
LOG_TYPE_CHAR   = 5 --- информация о персонаже
LOG_TYPE_WORLD  = 6 --- дамп пакетов
LOG_TYPE_RA     = 7 --- удаленный доступ к логам
LOG_TYPE_GM     = 8 --- логи Гм команд
LOG_TYPE_CRASH  = 9 --- логи крашей
LOG_TYPE_CHAT   = 10 -- логи чата



realmcharacters

Структура

realmid
Идентификатор реалма. Смотрите в таблице realmlist поле id
acctid
Идентификатор аккаунта. Смотрите в таблице account поле id
numchars
Количество персонажей данного аккаунта на данном реалме.


realmlist

Структура

Description of the fields
id
Идентификатор реалма. Этот номер является уникальным для каждого реалма и он должен соотноситься со значением RealmID в worldserver.conf.
name
Название реалма. Это название появится в списке выбора миров, а также в окне выбора персонажа.
address
IP адрес для подключения клиентов из сети. Значение 127.0.0.1 по-умолчанию делает доступным сервер только локально (с той же машины).
port
Порт для подключения к серверу. Если все сервера(будь то Fun\High Rate\Blizzlike или же сервера для различных версий клиента) находятся на одной машине, они должны иметь разные порты.
icon
Иконка реалма. Значение:
0 - Normal; 1 - PvP; 4 - Normal; 6 - RP; 8 - RP PvP
color
Цвет обозначает как "полный", который будет отображаться при выборе реалма.
timezone
Часовой пояс реалма. Если в реалмлисте присутствуют реалмы с различными timezone, они будут отображаться в разных вкладках, а при первом входе на сервер клиенту будет предложена выбрать один из доступных часовых поясов.
allowedSecurityLevel
Минимальный gmlevel необходимый для вход в мир.
population
Нынешняя населенность мира, обновляется автоматически. Формула для вычисления значения в этой области: "КоличествоИгроков" / "МаксимальноеКоличествоИгроков" * 2.
gamebuild
Позволяет отображать реалмы различных версий клиента в одном реалмлисте. Для SkyFire все билды катаклизма.


uptime

Структура

Описание полей
realmid

Идентификатор реалма. Смотрите в таблице realmlist поле id
starttime
ремя, когда сервер был запущен: в Unix формате.
startstring
Время, когда сервер был запущен: в формате читаемой строки.
uptime
Время работы сервера, в секундах.
maxplayers
Максимальный онлайн.
revision
Ревизия ядра.


Благодарю за помощь и предоставленную информацию: Dimitro
Обсуждение данного вики SkyFire[DB]
Сообщение # 1 отредактировано ph3n - Понедельник, 09.01.2012, 13:45
  • Страница 1 из 1
  • 1
Поиск: