Библиотека для исправления, замены и декорирования методов .NET и Mono во время выполнения. Предназначена для обеспечения использования всеми модами в списке модов игрока последней версии Harmony для минимизации конфликтов. Мы также добавили отладочный пользовательский интерфейс! Доступно
ПримечанияЭто неофициальное распространение
Гармониябиблиотека создана для упрощения управления зависимостями внешней библиотеки.
Репозиторий мода -
Bannerlord.Harmony.
Объявление Bannerlord.Lib.Harmony для моддеровОригинал
Гармониябиблиотека теперь полностью
поддерживает netstandard2.0, поэтому мы вернулись к нему. Наш
вилка библиотеки в настоящее время устарело.
УстановкаЭтот модуль должен быть самым верхним в порядке загрузки. Любые другие модули, которые необходимо установить первыми (Better Exception Window, ButterLib, MCM и т. д.), следует загружать после этого модуля.
Для игроков
Этот мод предназначен для того, чтобы все моды в списке модов игрока использовали последнюю версию Harmony для минимизации конфликтов.
Для моддеровМы добавили интерфейс отладки! Доступно сочетанием клавиш CTRL+ALT+H.Вам по-прежнему необходимо ссылаться на Harmony как на пакет NuGet, включать 0Harmony.dll в конечный вывод /bin вашего модуля не обязательно.
Вам необходимо добавить это в свой
Подмодуль.xml <DependedModules>
<DependedModule Id="Bannerlord.Harmony" />
</DependedModules>Таким образом, игра обеспечит загрузку библиотеки Harmony перед вашим модом.
Версионирование
Модуль объединяет используемую версию Harmony и идентификатор сборки, опубликовавшей модуль. Идентификатор сборки просто добавляется в конец.
2.0.2.22 указывает на то, что используется Harmony 2.0.2.0, а 22 — это идентификатор сборки.
2.0.0.1025 указывает, что используется Harmony 2.0.0.10, а 25 — это идентификатор сборки.
Мы рассматривали вариант Rimworld с внедрением собственной системы версий, но это не позволит однозначно определить, какую версию Harmony содержит модуль. Пользователю проще сообщить версию используемого модуля, чем проверять и отправлять версию сборки.
Поиск неисправностей* Возникли проблемы с распаковкой архива? Установите через Vortex или скачайте.
7-молния.
НЕ ИСПОЛЬЗУЙТЕ НИЧЕГО ИЗ МАГАЗИНА ПРИЛОЖЕНИЙ WINDOWS.
Мы также добавили статью о как установить и использовать 7-zip!* Если игра вылетает при запуске, скорее всего, вы используете или использовали Fixed Launcher. При установке он копирует 0Harmony.dll, что препятствует работе Bannerlord.Harmony.
* Если Fixed Launcher был удален или никогда не устанавливался, проверьте, что в основной папке игры /bin (Mount & Blade II) отсутствуют следующие файлы
Bannerlord\bin\Win64_Shipping_Client)
- TaleWorlds.MountAndBlade.Launcher.exe.config
- 0Harmony.dll
- LauncherPatcher.dll
- LauncherPatcher.pdb
ОHarmony предоставляет элегантный и высокоуровневый способ изменения функциональности приложений, написанных на C#. Он отлично работает в играх и хорошо зарекомендовал себя в таких проектах, как
7 Days To Die, BattleTech, Besiege, Cities:Skylines, Kerbal Space Program, Oxygen Not Included, Ravenfield, Rimworld, Sheltered, Stardew Valley, Staxel, Subnautica, The Ultimate Nerd Game, Total Miner, Unturned и многое другое.
Он также используется при модульном тестировании средств управления WFP и во многих других областях.
Как это работаетЕсли вы разрабатываете на C# и ваш код загружается как модуль/плагин в хост-приложение, вы можете использовать Harmony для изменения функциональности всех доступных сборок этого приложения. В то время как другие библиотеки патчей позволяют просто заменить исходный метод, Harmony идёт дальше и предоставляет:
• Способ сохранить оригинальный метод нетронутым
• Выполнять код до и/или после исходного метода
• Измените оригинал с помощью процессоров IL-кода
• Несколько патчей Harmony сосуществуют и не конфликтуют друг с другом.
• Работает во время выполнения и не затрагивает никакие файлы.
ДокументацияПожалуйста, проверьте
документация.
Способствоватьпардейке В этот проект и его поддержку вложены тысячи часов. Поэтому каждое маленькое действие помогает:
• Оцените это
ответ на stackoverflow• Распространите информацию в своих сообществах разработчиков
• Станьте
Спонсор GitHub или
ПатреонЭтот проект использует большой
MonoMod.Common библиотека от
0x0ade.