Quest template addon
Таблица quest_template_addon
Таблица quest_template_addon из базы данных world хранит **дополнительные серверные настройки квеста**: зависимости (prev/next), эксклюзивные группы, «breadcrumb», требования по классам/профессии/репутации, а также серверные SpecialFlags и ScriptName.
| Field | Type | Attributes | Key | Null | Default | Extra |
|---|---|---|---|---|---|---|
| ID | int | UNSIGNED | PRIMARY | NO | 0 | |
| MaxLevel | tinyint | UNSIGNED | NO | 0 | ||
| AllowableClasses | int | UNSIGNED | NO | 0 | ||
| SourceSpellID | int | UNSIGNED | NO | 0 | ||
| PrevQuestID | int | NO | 0 | |||
| NextQuestID | int | UNSIGNED | NO | 0 | ||
| ExclusiveGroup | int | NO | 0 | |||
| BreadcrumbForQuestId | int | NO | 0 | |||
| RewardMailTemplateID | int | UNSIGNED | NO | 0 | ||
| RewardMailDelay | int | UNSIGNED | NO | 0 | ||
| RequiredSkillID | smallint | UNSIGNED | NO | 0 | ||
| RequiredSkillPoints | smallint | UNSIGNED | NO | 0 | ||
| RequiredMinRepFaction | smallint | UNSIGNED | NO | 0 | ||
| RequiredMaxRepFaction | smallint | UNSIGNED | NO | 0 | ||
| RequiredMinRepValue | int | NO | 0 | |||
| RequiredMaxRepValue | int | NO | 0 | |||
| ProvidedItemCount | tinyint | UNSIGNED | NO | 0 | ||
| SpecialFlags | tinyint | UNSIGNED | NO | 0 | ||
| ScriptName | varchar(64) | utf8mb4_unicode_ci | NO |
ID
ID квеста (ссылка на quest_template.ID).
Пример: 12345
MaxLevel
Максимальный уровень игрока, при котором квест можно взять.
0— без ограничения.
Пример: 70
AllowableClasses
Маска классов, которым доступен квест.
0— всем классам.
Примечание: значения суммируются как битовая маска.
| Value | Class |
|---|---|
| 1 | Warrior |
| 2 | Paladin |
| 4 | Hunter |
| 8 | Rogue |
| 16 | Priest |
| 32 | Death Knight |
| 64 | Shaman |
| 128 | Mage |
| 256 | Warlock |
| 512 | Monk |
| 1024 | Druid |
| 2048 | Demon Hunter |
| 4096 | Evoker |
Пример: 1
SourceSpellID
Spell ID, который кастуется на игрока при старте квеста (может быть баффом или «learn spell»).
0— не кастовать.
Пример: 0
PrevQuestID
Зависимость «предыдущий квест»:
> 0— этот квест можно взять только после завершения указанного квеста;< 0— этот квест можно взять только если «родительский» квест активен (в логике некоторых ядер).
Пример: 1200
NextQuestID
«Следующий квест» (используется для цепочек, когда одного PrevQuestID недостаточно).
- Обычно
0— если не нужно.
Пример: 1201
ExclusiveGroup
Группа взаимоисключения/зависимости:
> 0— из квестов с одинаковым ExclusiveGroup можно выбрать/закрыть только один;< 0— квесты с одинаковым отрицательным ExclusiveGroup должны быть выполнены все (логика зависит от ядра).
Пример: 500
BreadcrumbForQuestId
ID «follow-up» квеста, для которого текущий квест является breadcrumb (наводящий/приглашающий в зону). Обычно breadcrumb квесты взаимно исключаются между собой.
Пример: 1300
RewardMailTemplateID
Если квест награждает предметом(ами) через почту из лут-таблицы — здесь ID шаблона (loot template), по которому формируется письмо.
0— не использовать почтовую награду.
Пример: 0
RewardMailDelay
Задержка отправки письма с наградой (в секундах).
0— без задержки.
Пример: 3600
RequiredSkillID
SkillLine ID профессии/умения, требуемой для взятия квеста.
0— без требования.
Пример: 0
RequiredSkillPoints
Сколько skill points нужно иметь в RequiredSkillID.
Пример: 150
RequiredMinRepFaction
Faction ID минимального требования репутации.
0— нет требования.
Пример: 72
RequiredMaxRepFaction
Faction ID максимального порога репутации (если игрок имеет больше — квест не выдаётся).
0— нет требования.
Пример: 0
RequiredMinRepValue
Минимальное значение репутации для RequiredMinRepFaction.
Пример: 3000
RequiredMaxRepValue
Максимальное значение репутации для RequiredMaxRepFaction.
Пример: 0
ProvidedItemCount
Сколько штук quest_template.StartItem выдать при принятии.
0— не выдавать/не используется.
Пример: 1
SpecialFlags
Серверные спец-флаги квеста (битовая маска). Значения суммируются.
| Value | Name | Описание |
|---|---|---|
| 0 | QUEST_SPECIAL_FLAGS_NONE | Нет спец-логики |
| 1 | QUEST_SPECIAL_FLAGS_REPEATABLE | Повторяемый (repeatable) |
| 2 | QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT | Завершается внешним событием/исследованием/скриптом |
| 4 | QUEST_SPECIAL_FLAGS_AUTO_ACCEPT | Автопринятие (часто для стартовых зон) |
| 8 | QUEST_SPECIAL_FLAGS_DF_QUEST | Dungeon Finder квест |
| 16 | QUEST_SPECIAL_FLAGS_MONTHLY | Ежемесячный |
| 32 | QUEST_SPECIAL_FLAGS_CAST | Засчитывается через «cast/killcredit», а не реальный килл (логика зависит от ядра) |
| 64 | QUEST_SPECIAL_FLAGS_NO_REP_SPILLOVER | Не разливать репутацию на союзные фракции |
| 128 | QUEST_SPECIAL_FLAGS_CAN_FAIL_IN_ANY_STATE | Разрешить провал в любом состоянии (например, для таймера) |
| 256 | QUEST_SPECIAL_FLAGS_NO_LOREMASTER_COUNT | Не считать в Loremaster |
Пример: 1
ScriptName
Имя скрипта (C++/ScriptMgr), привязанного к квесту.
- Пустая строка
— без скрипта.
Пример: "quest_custom_chain_01"