Achievement dbc

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

Таблица achievement_dbc

Таблица achievement_dbc из базы данных world хранит дополнительные серверные данные достижений, которых недостаточно в клиентском Achievement.db2. Ключ таблицы — поле ID (Achievement ID).

Field Type Attributes Key Null Default Extra
ID int UNSIGNED PRIMARY NO
requiredFaction int NO -1
mapID int NO -1
points int UNSIGNED NO 0
flags int UNSIGNED NO 0
count int UNSIGNED NO 0
refAchievement int UNSIGNED NO 0

ID

ID достижения (Achievement ID).

Пример: 2144

requiredFaction

Фракционное ограничение достижения.

Value Описание
-1 Достижение доступно обеим фракциям
0 Достижение только для Орды
1 Достижение только для Альянса

Пример: -1

mapID

Ограничение по карте: критерии/обновления достижений разрешены только если игрок находится на указанной карте.

Value Описание
-1 Ограничение не задано
>=0 MapID, на котором разрешены обновления критериев

Пример: 571

points

Количество achievement points за достижение.

Value Описание
0 Очки не начисляются
>0 Количество очков

Пример: 10

flags

Флаги достижения (битовая маска). Используются для серверной логики и отображения.

Flag (hex) Имя Описание
0x00000001 ACHIEVEMENT_FLAG_COUNTER Статистика-счётчик: только считает, не «завершается»
0x00000002 ACHIEVEMENT_FLAG_HIDDEN Скрытое достижение (не отправляется клиенту)
0x00000004 ACHIEVEMENT_FLAG_STORE_MAX_VALUE Хранить только максимальное значение (например, «достичь уровня»)
0x00000008 ACHIEVEMENT_FLAG_SUMM Суммировать значения нескольких требований
0x00000010 ACHIEVEMENT_FLAG_MAX_USED Показывать максимум/использовать максимум для расчётов
0x00000020 ACHIEVEMENT_FLAG_REQ_COUNT Использовать требуемое количество (req count), если оно не ноль
0x00000040 ACHIEVEMENT_FLAG_AVERAGE Показ как среднее значение (value / time_in_days) при соответствующей логике
0x00000080 ACHIEVEMENT_FLAG_BAR Показ как progress bar (value / max value)
0x00000100 ACHIEVEMENT_FLAG_REALM_FIRST_REACH «Realm First» (достижение типа reach)
0x00000200 ACHIEVEMENT_FLAG_REALM_FIRST_KILL «Realm First» (достижение типа kill)

Пример: 0x00000080

count

Служебное поле; для достижений должно быть равно 1.

Value Описание
1 Нормальное значение

Пример: 1

refAchievement

Служебное поле; для достижений должно быть равно 0.

Value Описание
0 Нормальное значение

Пример: 0