Files
benilla-octo/Optional/sky-and-grading/README.ru.md
T
pkuzicandGPT-5.6 Sol (Codex) 67388625ec MONKEY (optional): add local sky and grading patch builder
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)
2026-09-26 15:19:25 +01:00

9.4 KiB
Raw Blame History

Дополнительные небеса и цветокоррекция

Этот комплект без игровых ресурсов собирает 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; замените пути на свои.

  1. Клонируйте pywowlib.

    git clone https://github.com/wowdev/pywowlib.git C:\Tools\pywowlib
    
  2. Выберите проверенную ревизию.

    git -C C:\Tools\pywowlib checkout 55276dc5c2195da7fe136638a2a59716622f8c65
    
  3. Установите зависимости Python. Сам pywowlib остаётся внешним checkout.

    py -3 -m pip install bidict==0.23.1 multimethod numpy
    
  4. Скачайте stormlib_dll.zip версии 9.40 по ссылке выше и распакуйте x64 StormLib.dll в C:\Tools\StormLib\StormLib.dll.

  5. Закройте игру и соберите кандидат. Скрипт не пишет в исходные установки.

    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"
    
  6. Сначала проверьте изолированную копию 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"
    
  7. Если живой 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"
    
  8. Установите проверенный кандидат.

    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.