Все фиксы аддитивные, обратимые и размещены на пустых/кастомных
ID-бандах, поэтому не конфликтуют со стоковой установкой TrinityCore. Файлы —
в ../../sql/.
Файл: sql/01_quest_earthen_intro_fix.sql
Симптом: свежий персонаж Earthen (союзная раса) завершает первый квест интро «Пробуждение» на Isle of Dorn, после чего ни один NPC ничего не даёт — интро линейное и фазовое, игрок оказывается заперт.
Причина: цепочка
79200 «Who am I?» → 79201 «The Analysis Interface» → 83328 «The Analysis Interface».
Квест 79201 — устаревший дубликат (то же название, что у 83328) без
дающего и без принимающего — его нельзя ни взять, ни сдать. Но 83328 (бригадир
Uzjax) требует завершения 79201 (PrevQuestID = 79201), поэтому цепочка встаёт
намертво.
Фикс: обходим фантом → цепочка идёт 79200 → 83328 напрямую.
Применяется вживую через reload quest_template (без рестарта).
Класс бага: реальный, но без дающего/принимающего квест, назначенный в
PrevQuestID другого квеста, жёстко блокирует цепочку. Внимание: значения-
маркеры PrevQuestID (999999, 99999, …) — это не этот баг: таких ID не
существует, движок пропускает проверку. Блокируют только пререквизиты, которые
существуют, но недостижимы.
Файл: sql/02_quest_gameobject_unblock.sql
+28 gameobject_template и +89 спавнов gameobject (банда guid 8500000+) для
объектов, нужных квестам, но отсутствовавших в базе — разблокирует ~10 квестов.
DisplayID взяты аутентично; координаты сконвертированы из map% в мировые через
UiMapAssignment для билда 68275, Z/ориентация — от ближайшего существующего
спавна на той же карте. Нужен рестарт worldserver.
Файл: sql/03_raid_instance_bindings.sql
Привязывает 5 рейдов — Dragon Soul (967), End Time (938), Hour of Twilight (940), Well of Eternity (939), Throne of the Four Winds (754) — к их скомпилированному скрипту инстанса. Это включает лок-аут, завершение журнала DungeonEncounter и персистентность состояния боссов (трекинг/сброс).
Ограничение: эти скрипты инстансов — заглушки; они не добавляют боевой
ИИ боссов (нет boss_*.cpp). Боссы остаются на дефолтном ИИ. Нужен рестарт.
Файл: sql/04_harandar_graveyards.sql
12 world_safe_locs + 12 связок graveyard_zone + 12 Духов-целителей (банда
guid существ 11000773+) для Harandar (карта 2694), одной из новейших зон,
чтобы смерть/воскрешение там работали. Взято как самодостаточный аддитивный
файл. Нужен рестарт.
Применить всё: scripts/apply_fixes.sh. В каждом SQL-файле есть блок отката в
комментариях. Всегда делай бэкап базы world перед применением.