Quest template addon

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

Таблица 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

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"