Spell area

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

Таблица spell_area

Таблица spell_area из базы данных world используется для применения/снятия ауры (заклинания) у игрока в определённой зоне/area при выполнении условий (квесты/статусы квестов, раса, пол, наличие/отсутствие другой ауры).

Field Type Attributes Key Null Default Extra
spell int UNSIGNED PRIMARY NO
area int UNSIGNED PRIMARY NO
quest_start int UNSIGNED PRIMARY NO
quest_end int UNSIGNED NO 0
aura_spell int PRIMARY NO
racemask int UNSIGNED PRIMARY NO
gender tinyint UNSIGNED PRIMARY NO 2
flags tinyint UNSIGNED NO 3
quest_start_status int UNSIGNED NO 64
quest_end_status int UNSIGNED NO 11

spell

Spell ID ауры, которая должна применяться/контролироваться в заданных условиях.

Пример: 92237

area

AreaTable ID (AreaID/ZoneID). Если 0 — ограничение по зоне/area не применяется.

Пример: 1519

quest_start

Quest ID, который должен быть у игрока в состоянии, подходящем под quest_start_status. Если 0 — условие по стартовому квесту не применяется.

Пример: 28725

quest_end

Quest ID, который используется как «ограничитель» по состоянию, заданному quest_end_status (типичный кейс — убрать/не давать ауру после завершения/награды квеста). Если 0 — условие по конечному квесту не применяется.

Пример: 28727

aura_spell

Дополнительное условие по ауре:

  • 0 — условие игнорируется;
  • > 0 — у игрока должна быть аура с указанным Spell ID;
  • < 0 — у игрока НЕ должно быть ауры с Spell ID равным -aura_spell.

Пример: -500

racemask

Маска рас, для которых действует запись.

  • 0 — для всех рас;
  • иначе — битовая маска рас (как правило, бит = 1 << (RaceId - 1)).

Пример: 1

gender

Ограничение по полу:

Value Name Описание
0 GENDER_MALE Только мужской
1 GENDER_FEMALE Только женский
2 GENDER_NONE Любой (без ограничения)

Пример: 2

flags

Битовая маска поведения применения/снятия ауры:

Value Name Описание
0 (нет) Не автокастится при входе; не автоснимается по апдейтам квеста (но снимается при выходе из зоны)
1 SPELL_AREA_FLAG_AUTOCAST Автоматически применить при входе в зону (и не давать снять вручную)
2 SPELL_AREA_FLAG_AUTOREMOVE Автоматически снять при обновлении квестовых условий (работает в связке с квестами)
3 AUTOCAST + AUTOREMOVE Оба флага одновременно (значение по умолчанию)

Примечание: значения суммируются как битовая маска (например, 1 + 2 = 3).

Пример: 3

quest_start_status

Маска состояний квеста quest_start, при которых запись считается подходящей.

Value Name Описание
1 QUEST_STATUS_NONE Квест отсутствует у игрока
2 QUEST_STATUS_COMPLETE Квест выполнен (Complete)
8 QUEST_STATUS_INCOMPLETE Квест активен/в процессе (Incomplete)
32 QUEST_STATUS_FAILED Квест провален (Failed)
64 QUEST_STATUS_REWARDED Квест сдан/получена награда (Rewarded)

Примечание: маска собирается суммой значений (например, 8 — только активный квест; 2 + 64 — выполнен или сдан).

Пример: 8

quest_end_status

Маска состояний квеста quest_end, при которых запись считается подходящей (типично исключают REWARDED, чтобы аура не действовала после сдачи).

Value Name Описание
1 QUEST_STATUS_NONE Квест отсутствует у игрока
2 QUEST_STATUS_COMPLETE Квест выполнен (Complete)
8 QUEST_STATUS_INCOMPLETE Квест активен/в процессе (Incomplete)
32 QUEST_STATUS_FAILED Квест провален (Failed)
64 QUEST_STATUS_REWARDED Квест сдан/получена награда (Rewarded)

Пример: 11