Quest poi

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

Таблица quest_poi

Таблица quest_poi из базы данных world управляет **POI-маркерами квестов** на карте: “области” (blob) и их привязка к целям/условиям, карте и навигации. Координаты точек обычно лежат в связанной таблице quest_poi_points.

Field Type Attributes Key Null Default Extra
QuestID int PRIMARY NO 0
BlobIndex int PRIMARY NO 0
Idx1 int PRIMARY NO 0
ObjectiveIndex int NO 0
QuestObjectiveID int NO 0
QuestObjectID int NO 0
MapID int NO 0
UiMapID int NO 0
Priority int NO 0
Flags int NO 0
WorldEffectID int NO 0
PlayerConditionID int NO 0
NavigationPlayerConditionID int NO 0
SpawnTrackingID int NO 0
AlwaysAllowMergingBlobs tinyint UNSIGNED NO 0
VerifiedBuild int NO 0

QuestID

ID квеста (ссылка на quest_template.ID).

Пример: 38819

BlobIndex

Индекс “области” (blob) POI для квеста QuestID — используется для группировки связанных точек в quest_poi_points.

Пример: 0

Idx1

Под-индекс записи внутри пары (QuestID, BlobIndex). Нужен, чтобы для одной области хранить несколько строк POI (например, разные привязки к целям/условиям).

Пример: 0

ObjectiveIndex

Индекс цели квеста, к которой относится POI (логика зависит от ядра/клиента). Из практики: значение -1 может означать позицию NPC, у которого квест завершается (turn-in).

Пример: 1

QuestObjectiveID

ID цели/объектива, к которому относится POI. В разных реализациях может соответствовать:

Если не используется — обычно 0.

Пример: 900001

QuestObjectID

ID “объекта” для POI (что именно подсвечивать/к чему привязать) — зависит от клиента и типа цели. Часто коррелирует с тем, что используется в целях квеста (например, creature/gameobject entry), но точная трактовка зависит от реализации.

Пример: 12345

MapID

MapID карты, на которой показывать POI.

Пример: 0

UiMapID

UiMapID (карта интерфейса, куда привязывается отображение POI). Обычно это ID из клиентских данных UI Map (DB2). Если не используется — 0.

Пример: 84

Priority

Приоритет/важность POI. Часто “просто отправляется клиенту”, конкретная семантика зависит от версии.

Пример: 0

Flags

Флаги POI (битовая маска). Точные значения зависят от клиента/версии; если вы не используете специфичные флаги — обычно ставят 0.

Value Описание
0 Без флагов / значение по умолчанию

Пример: 0

WorldEffectID

ID world effect (визуальный/мировой эффект), связанный с POI. Обычно это ID из клиентских данных (WorldEffect). Если не используется — 0.

Пример: 0

PlayerConditionID

Условие видимости POI для игрока (PlayerCondition).

  • 0 — показывать без условия (если так реализовано в ядре);
  • > 0 — показывать только при выполнении условия.

Пример: 0

Отдельное PlayerCondition для навигации (например, для “стрелки/маршрута”), если ядро/клиент это различает. Если не используется — 0.

Пример: 0

SpawnTrackingID

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

Пример: 0

AlwaysAllowMergingBlobs

Флаг, разрешающий “мерджить” (объединять) области POI даже при условиях, когда объединение обычно запрещено.

Value Описание
0 По умолчанию (как решит клиент/ядро)
1 Всегда разрешать объединение blobs

Пример: 0

VerifiedBuild

Служебное поле верификации (номер билда).

  • 0 — не заполнено/не верифицировано;
  • > 0 — подтверждено конкретным билдом;
  • -1 — плейсхолдер;
  • -ClientBuild — подтверждено билдом и затем правилось вручную.

Пример: 0