Перейти к содержанию

MCP 2025 (мой неофициальный форк)


Рекомендуемые сообщения

И снова здравствуйте уважаемые форумчане! Спешу вам сообщить, что проведя несколько бессонных ночей я таки примирил версию MCP 2.5 Beta 7 (исходник взят с https://www.nexusmods.com/morrowind/mods/19510?tab=files mcp-python-version (огромная благодарность пользователю EJ-12 за помощь в поиске и предоставленную ссылку)) со своей версией text.dll (ОБРАЩАЮ ВАШЕ ВНИМАНИЕ, ЭТО ПРЕДРЕЛИЗНЫЙ ФОРК, РАЗРАБОТАННЫЙ ОТДЕЛЬНО НА БАЗЕ MCP Beta 7): 

Данная версия MCP совместима с версиями text.dll, которые НЕ СТАРЕЕ МОЕЙ ИЛИ ТОЙ ЧТО В FULLREST REPACK (внимательно следите за тем, какую версию text.dll вы используете! Если не знаете - сверяйте хэш оригинальных text.dll (с моей темы, или сборки FullRest Repack) с той, что находится в вашей папке Morrowind!!!) Естественно данный MCP поддерживает оригинальный text.dll самой игры. ВНИМАНИЕ! Т.к. данный MCP (как и мой text.dll) универсален! он показывает АБСОЛЮТНО ВСЕ ИМЕЮЩИЕСЯ У НЕГО ПАТЧИ ! Т.е. он может показывать новые патчи И ДЛЯ СТАРЫХ НЕ ПОДХОДЯЩИХ DLL! БУДЬТЕ ВНИМАТЕЛЬНЫ! НЕ СТАВЬТЕ НОВЫЕ ПАТЧИ НА СТАРЫЕ TEXT.DLL, КОТОРЫЕ НЕ ПРЕДНАЗНАЧЕНЫ ДЛЯ СТАРЫХ TEXT.DLL - сломаете либо сам длл файл, либо morrowind.exe, получите надпись "Живите в проклятом мире, который сами и создали". Я предупредил.

Ну с инструкажом закончил, перехожу к наглядным объяснениям:

1. Внешний вид подредактированного MCP.

1.1 Окно приветствия (сердечно прошу не думать про какое-то моё чувство нарциссизма, моё упоминание внесено ТОЛЬКО и ИСКЛЮЧИТЕЛЬНО для того, чтобы убрать путаницу в версиях MCP):image.png.629ce847c240ea4b8e38c8d5cf1000eb.png

1.2 Окно выбора исправлений (фиксов) изменено отображение (не по моему хотению, а из-за обновленной версии wxPython):  

image.png.afc24671dd887d3393dcb4edc248d384.png 

пояснения:

  • темная полоса в имени исправления — фикс уже установлен,
  • синяя полоса в имени исправления — фикс выбран для установки,
  • наименование исправления без выделения — фикс не установлен и не выбран в качестве установки.

1.3 Лог после установки:image.png.b48c75e1bc6057301c67e57e9b3af110.png 

Если в процессе установки отображена эта надпись, значит моё обновление прошло успешно (Еще раз упомяну - используйте верную версию text.dll!!!)

Итак, что было сделано:

  1. Обнаружил метод patch_ru - ядро системы валидации text.dll.

  2. Нашёл механизм хеш-проверки SHA256  "d = os.path.join(patchdir, hashlib.sha256(o).hexdigest())"

  3. Сохранил обратную совместимость с оригинальными патчами

  4. Добавил поддержку кастомных TEXT.DLL через white-list хешей.

  5. Создал список allowed_hashes c хешем моего text.dll

  6. Сохранил логику backup\restore text.dll (как и обычно ваш оригинальный text.dll будет переименован в Text.Original.dll)

  7. Ввёл задел на будущее - добавил автосоздание недостающих структур папок.

  8. Обновил все команды в mcp.py в соответствии с последней на данный момент версией wxPython.

  9. Перевёл на современный API - "EnableCheckBoxes(True)" вместо "CheckListCtrlMixin", добавил "SetItemState()", таким образом получив современные чекбоксы.

  10. Провёл полную инвентаризацию и удалил всё "ручное" управление чекбоксами - удалил все вызовы: "self.CheckItem(listidx) из AddItems" и "self.CheckItem(i, False) из UncheckAll"

  11. Изменил StaticBitmap в соответствии с новой версией wxPython:image.png.b238a712cbfff894c347b176b90052a5.png

  12. С нуля пересобрал SelectListBox, теперь он выглядит так:
    image.png.74b318ec87108c093bdb49a8d06057e8.png

  13. Ввёл задел на будущее - добавил debug сообщения в "on_select_category" (для логирования требуется запускать mcp.py через PowerShell):
    image.png.28f36f2fc6b6a580fd72d77c63a1e358.png

  14. Главное - ввёл универсальность MCP:
    image.png.00e9120eef885db3703d025d1ea10812.png

  15. Провёл API модернизацию: заменил все "fromstring()" на "frombytes() (было 5 штук)":
    image.png.93478aef10bddfef5330a8f3e0bd314e.png
     

Прикладываю исходники с готовым собранным mcp.exe, всем спасибо за внимание!

MCP_Python_Version-19510-2-4_Universal_06_10_2025.zip

Изменено пользователем ksteel
дал пояснение и определение, что это форк
Ссылка на комментарий
Поделиться на другие сайты

  • ksteel изменил название на MCP 2025 (мой неофициальный форк)
10 минут назад, Марк К. Марцелл сказал:

Проведённая работа впечатляет! :dunmer:

спасибо! всё на благо моддинга 😄

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   1 пользователь онлайн

×
×
  • Создать...