Creature loot template

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

Таблица creature_loot_template

Таблица creature_loot_template из базы данных world — часть **Loot System** и задаёт предметы/ссылки/валюту, которые могут выпасть с существ. Записи группируются по Entry (ID шаблона лута). Для одного Entry может быть много строк — каждая строка описывает один возможный дроп (или ссылку на reference-шаблон).

Ключевой момент схемы: пара (Entry, ItemType, Item) идентифицирует строку (в таблице есть индекс idx_primary по этим полям).

Field Type Attributes Key Null Default Extra
Entry int UNSIGNED NO 0
ItemType tinyint NO 0
Item int UNSIGNED NO 0
Chance float NO 100
QuestRequired tinyint(1) NO 0
LootMode smallint UNSIGNED NO 1
GroupId tinyint UNSIGNED NO 0
MinCount tinyint UNSIGNED NO 1
MaxCount tinyint UNSIGNED NO 1
Comment varchar(255) YES NULL

Entry

ID шаблона лута (loot template). Все строки с одинаковым Entry образуют единый набор возможных выпадений. Связь с существом обычно идёт через поле lootid в creature_template (конкретное поле-связка зависит от схемы TrinityCore, но логика одна: у существа есть ссылка на ID лута).

Пример: 12345

ItemType

Определяет, **что означает поле Item**.

Value Что означает Item Описание
0 Item ID Выпадает предмет (ID предмета)
1 Reference ID Ссылка на reference-лут (ID “вставляемого” шаблона)
2 Currency ID Выпадает валюта (ID валюты)

Пример: 0

Item

Значение зависит от ItemType:

  • ItemType = 0Item = ID предмета (item entry / ItemSparse ID / item_template entry — в зависимости от ветки/данных).
  • ItemType = 1Item = ID reference-шаблона (как правило, это Entry в таблице reference_loot_template).
  • ItemType = 2Item = ID валюты (CurrencyTypes ID).

Пример: 6948

Chance

Шанс выпадения в процентах (float). Общие правила:

  • Chance > 0 — вероятность выпадения (значения > 100 эквивалентны 100).
  • Chance = 0 — допустимо **только в группах** (см. GroupId) для “равновероятных” записей.
  • Для ItemType = 1 (reference) шанс означает вероятность того, что reference будет обработан и “вставит” свой лут в текущий.

Пример: 12.5

QuestRequired

Флаг (0/1), указывает, что лут является **квестовым/условным**: предмет (или запись) должен показываться/быть доступен только игрокам, у которых есть соответствующий квест и есть реальная потребность в этом предмете (не собран нужный счётчик и т.п.).

Value Описание
0 Обычный лут
1 Квестовый/условный лут

Пример: 1

LootMode

Битовая маска режимов лута (используется для разделения “условного” лута: hard mode, разные режимы боя и т.д.). Практика:

  • 0 — запись фактически отключена (ролл всегда “провален”).
  • 1 — режим по умолчанию (как правило, оставляют именно так).
  • Можно комбинировать значения как биты: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 16384, 32768.

Пример: 1

GroupId

Группа внутри одного Entry. Логика групп:

  • Все строки с одинаковыми Entry и GroupId образуют **группу**.
  • За одно событие лута из группы может выпасть **не более одного** элемента (или ни одного).
  • Группа может содержать:
 * “явно шансованные” строки (Chance > 0)
 * “равновероятные” строки (Chance = 0) — тогда ядро выбирает одну строку из списка равновероятных

Примечание по практике: смешивать в одной группе квестовый и не-квестовый лут не рекомендуется.

Пример: 2

MinCount

Минимальное количество единиц, которое может выпасть по данной строке за одно событие лута. Для большинства предметов это 1.

Пример: 1

MaxCount

Максимальное количество единиц, которое может выпасть по данной строке за одно событие лута.

Важное правило для ItemType = 1 (reference): MaxCount используется как **множитель (repetition factor)** — reference может быть обработан несколько раз, тем самым добавляя в итоговый лут содержимое reference-шаблона несколько раз.

Пример: 3

Comment

Комментарий (необязательный), обычно используется для удобства сопровождения (название существа/предмета/группы и т.п.).

Пример: "Boss loot - weapon group"