Creature formations

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

Таблица creature_formations

Таблица creature_formations из базы данных world задаёт «связки» существ в группы (formations): кто является лидером, кто участником, как участники располагаются относительно лидера, и как они помогают друг другу в бою.

Запись создаётся на каждого участника, поэтому первичный ключ — memberGUID (один member может быть только в одной formation).

Field Type Attributes Key Null Default Extra
leaderGUID bigint UNSIGNED NO 0
memberGUID bigint UNSIGNED PRIMARY NO 0
dist float NO
angle float NO
groupAI int UNSIGNED NO
point_1 smallint UNSIGNED NO 0
point_2 smallint UNSIGNED NO 0

leaderGUID

GUID существа-лидера группы. Ссылка на creatureguid.

Обычно сам лидер тоже присутствует как участник (строка, где memberGUID = leaderGUID), тогда dist/angle часто равны 0.

Пример: 9000123

memberGUID

GUID существа-участника группы. Ссылка на creatureguid.

Это PRIMARY KEY: один memberGUID может состоять только в одной formation-записи.

Пример: 9000124

dist

Максимальная дистанция между лидером и участником (в игровых единицах расстояния, обычно ярды), которую участник будет стараться сохранять, следуя за лидером.

Value Описание
0 Обычно используется для лидера (memberGUID = leaderGUID)
>0 Дистанция следования/расположения относительно лидера

Пример: 3

angle

Угол между лидером и участником. Важно: используются градусы (не радианы). Значения должны быть в диапазоне 0..360.

Угол задаёт, где относительно лидера находится участник при движении в formation (например, 90 — справа, 270 — слева при стандартной интерпретации движения).

Пример: 45

groupAI

Режим поведения группы (как участники ассистят друг другу и следуют ли за лидером).

Value Поведение
0 Если кто-то из группы атакован, участники не помогают
1 Участники помогают только лидеру, если атакован лидер
2 Участники помогают всем членам группы
3 Все помогают всем, и участники не следуют за лидером
512 Никто никому не помогает, и участники следуют за лидером
515 Все помогают всем, и участники следуют за лидером

Пример: 2

point_1

point_2

Дополнительные параметры для случая, когда лидер движется по маршруту (waypoints) и при развороте участники не должны «пересекаться» через лидера на другую сторону.

Эти значения задают «пограничные точки» пути лидера, между которыми применяется особая логика разворота угла. Если у лидера путь «вперёд до точки 5, затем обратно до 1», и участники должны оставаться на своей стороне, то point_1/point_2 помогают переключать angle (например, с 90 на 270) на обратном ходе.

Если у лидера нет такого сценария (участники идут прямо за лидером или лидер движется по кругу), значения можно оставить 0.

Value Описание
0 Не используется
>0 Индексы/точки, задающие диапазон разворота (см. описание выше)

Пример: point_1 = 4, point_2 = 8