Build Blizzard-derived sky assets only from the user's own CASC install, merge lighting DBCs from mounted winners, and pack a preserved patch-Z candidate. Include bilingual install and recovery guidance plus project-owned grading data. Verified all 46 default stage payloads byte-identical to the reviewed stage; moderated WoW Forever LightIntBand byte-identical; band and mounted-chain checks pass on a hard-linked client copy. No Cargo command run. Co-Authored-By: GPT-5.6 Sol (Codex)
9.4 KiB
Дополнительные небеса и цветокоррекция
Этот комплект без игровых ресурсов собирает MPQ локально. Он добавляет небеса
зон для Burning Steppes, Blasted Lands и Mount Hyjal, собственную
цветокоррекцию benilla для Elwynn Forest, Duskwood, Westfall и Redridge, а с
ключом --wf-colours — умеренно смешанные ночные цвета из вашей установки WoW
Forever.
В репозитории находятся только скрипты и созданные проектом LUT/таблица. Модели, текстуры и исходные DBC Blizzard читаются из ваших установок и записываются только во внешний каталог сборки.
Требования
- Windows и Python 3.8 или новее.
- Клиент World of Warcraft 1.12.1 и его каталог
Data. - Для небес — локальная установка WoW Forever
_classic_beta_либо retail. - Git и внешний
wowdev/pywowlibточной ревизии ниже. - 64-битный StormLib 9.40 (
StormLib.dll) из официальных релизов StormLib. Скачайтеstormlib_dll.zipи используйте x64 DLL. - Интернет при первом запуске для публичного listfile и списка публичных TACT
ключей, либо локальные файлы через
--listfileи--tact-keys.
Установка — одна команда на шаг
Команды выполняются в PowerShell; замените пути на свои.
-
Клонируйте pywowlib.
git clone https://github.com/wowdev/pywowlib.git C:\Tools\pywowlib -
Выберите проверенную ревизию.
git -C C:\Tools\pywowlib checkout 55276dc5c2195da7fe136638a2a59716622f8c65 -
Установите зависимости Python. Сам pywowlib остаётся внешним checkout.
py -3 -m pip install bidict==0.23.1 multimethod numpy -
Скачайте
stormlib_dll.zipверсии 9.40 по ссылке выше и распакуйте x64StormLib.dllвC:\Tools\StormLib\StormLib.dll. -
Закройте игру и соберите кандидат. Скрипт не пишет в исходные установки.
py -3 .\tools\build_sky_patch.py --wow-forever "C:\Games\World of Warcraft" --client-data "C:\Games\WoW-1.12.1\Data" --pywowlib "C:\Tools\pywowlib" --stormlib "C:\Tools\StormLib\StormLib.dll" --out "C:\Temp\benilla-sky" -
Сначала проверьте изолированную копию
Data. Все файлы можно сделать жёсткими ссылками, ноpatch-Z.mpqдолжен быть обычной копией; замените его собранным кандидатом и выполните:py -3 .\tools\verify_client_chain.py "C:\Temp\WoW-test\Data" --stage "C:\Temp\benilla-sky\stage" --stormlib "C:\Tools\StormLib\StormLib.dll" -
Если живой
patch-Z.mpqуже есть, создайте резервную копию.Copy-Item "C:\Games\WoW-1.12.1\Data\patch-Z.mpq" "C:\Games\WoW-1.12.1\Data\patch-Z.before-benilla.mpq.bak" -
Установите проверенный кандидат.
Copy-Item -Force "C:\Temp\benilla-sky\patch-Z.MPQ" "C:\Games\WoW-1.12.1\Data\patch-Z.mpq"
Если patch-Z раньше не существовал, пропустите шаг 7. Поле archive_base в
build-report.json показывает, был ли старый архив сохранён внутри кандидата.
Варианты
Только собственная цветокоррекция, без современной установки и pywowlib:
py -3 .\tools\build_sky_patch.py --grading-only --client-data "C:\Games\WoW-1.12.1\Data" --stormlib "C:\Tools\StormLib\StormLib.dll" --out "C:\Temp\benilla-grading"
Небеса и умеренные ночные цвета WoW Forever, извлечённые из вашей LightData:
py -3 .\tools\build_sky_patch.py --wow-forever "C:\Games\World of Warcraft" --client-data "C:\Games\WoW-1.12.1\Data" --pywowlib "C:\Tools\pywowlib" --stormlib "C:\Tools\StormLib\StormLib.dll" --wf-colours --out "C:\Temp\benilla-sky-wf"
Включение в игре
Включите Zone Skyboxes и Colour Grading в Options → Advanced Graphics. Те же настройки через консоль:
/console zoneSkyboxes 1
/console colorGrading 1
Значение 0 отключает эффект без удаления MPQ.
Порядок загрузки MPQ
Все пять связанных DBC освещения должны загружаться из одного самого старшего
буквенного патча, который содержит любой из них. По умолчанию это
patch-Z.mpq. Если он уже существует, сборщик копирует его и накладывает новые
файлы, сохраняя постороннее содержимое; результат устанавливается вместо
старого архива.
Не переименовывайте результат вслепую. Более поздний архив с Light.dbc,
LightParams.dbc, LightIntBand.dbc, LightFloatBand.dbc или
LightSkybox.dbc разделит согласованный набор. Некоторые кастомные клиенты
используют символы, сортирующиеся после букв. Тогда объедините stage с
реально последним патчем либо удалите конфликтующие DBC и проверьте цепочку с
--require-winner ANY. Для обычного patch-Z оставьте строгую проверку.
Расширенный четырёхполевой LightSkybox.dbc предназначен для benilla. Не
используйте его с неизменённым оригинальным exe 1.12, ожидающим два поля.
Удаление
Закройте игру. Если patch-Z существовал ранее, восстановите резервную копию:
Move-Item -Force "C:\Games\WoW-1.12.1\Data\patch-Z.before-benilla.mpq.bak" "C:\Games\WoW-1.12.1\Data\patch-Z.mpq"
Если архив был создан этим комплектом с нуля, удалите только его:
Remove-Item -LiteralPath "C:\Games\WoW-1.12.1\Data\patch-Z.mpq"
Удаление старого patch-Z уничтожит другое пользовательское содержимое.
Проверяйте archive_base и сохраняйте резервную копию.
Решение проблем
- Неверная ревизия pywowlib: повторите шаг 2; сборщик намеренно не принимает другую ревизию.
- StormLib не найден: укажите
--stormlibлибоSTORMLIB_PATH; DLL должна быть 64-битной для 64-битного Python. - CASC build/config не найден: укажите корень World of Warcraft с
.build.infoиDataлибо его дочерний_classic_beta_. - Зашифрованный/отсутствующий блок: обновите публичный список TACT ключей. Приватные ключи не используются.
- Неожиданная схема или номер клона: другой аддон уже изменил выигрывающие DBC. Уберите конфликт или выполните осознанное объединение.
- Небо не видно: включите
zoneSkyboxes, полностью перезапустите клиент и запуститеverify_client_chain.pyна его настоящемData. - Ошибка band rows: запустите
check_bands.py <Data> --stormlib <DLL>. Правильные ключи:(P-1)*18+b+1и(P-1)*6+b+1. - Выходной архив уже существует: выберите новый
--outлибо используйте--forceтолько для намеренной замены кандидата.
Авторы и права
Графика небес WoW Forever/retail принадлежит © Blizzard Entertainment и извлекается пользователем локально из собственной установки. Репозиторий не распространяет графику Blizzard или DBC клиента.
Метод цветокоррекции основан на wxl-retail-grading проекта WarcraftXL автора
iThorgrim и используется с указанием авторства. LUT и MonkeyZoneGrade.dbc в
data/ созданы проектом benilla и лицензированы MIT OR Apache-2.0.