Creature formations
Таблица 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 существа-лидера группы. Ссылка на creature → guid.
Обычно сам лидер тоже присутствует как участник (строка, где memberGUID = leaderGUID), тогда dist/angle часто равны 0.
Пример: 9000123
memberGUID
GUID существа-участника группы. Ссылка на creature → guid.
Это 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