Uma biblioteca para corrigir, substituir e decorar métodos .NET e Mono em tempo de execução. Destinada a garantir que todos os mods na lista de mods de um jogador estejam usando a versão mais recente do Harmony para minimizar conflitos. Também adicionamos uma interface de depuração! Disponível
NotasEsta é uma distribuição não oficial do
HarmoniaBiblioteca criada para facilitar o gerenciamento de dependências de bibliotecas externas.
O repositório do mod -
Bannerlord.Harmonia.
Anúncio do Bannerlord.Lib.Harmony para ModdersOriginal
Harmoniabiblioteca agora totalmente
apoia o netstandard2.0, então voltamos a usá-lo. Nosso
garfo A biblioteca agora está obsoleta.
InstalaçãoEste módulo deve ser o primeiro na ordem de carregamento. Qualquer outro módulo que precise ser colocado no topo (Better Exception Window, ButterLib, MCM, etc.) deve ser carregado depois deste.
Para jogadores
Este mod tem como objetivo garantir que todos os mods na lista de mods de um jogador estejam usando a versão mais recente do Harmony para minimizar conflitos.
Para ModdersAdicionamos uma interface de depuração! Disponível através de CTRL+ALT+H.Você ainda precisa referenciar o Harmony como um pacote NuGet; não é necessário incluir o arquivo 0Harmony.dll na pasta /bin final do seu módulo.
Você precisa adicionar isso ao seu
SubMódulo.xml <DependedModules>
<DependedModule Id="Bannerlord.Harmony" />
</DependedModules>Dessa forma, o jogo garantirá que a biblioteca Harmony seja carregada antes do seu mod.
Controle de versões
O módulo combina a versão do Harmony utilizada e o ID da compilação que publicou o módulo. O ID da compilação é simplesmente adicionado ao final.
2.0.2.22 indica que o Harmony 2.0.2.0 está sendo usado e 22 é o ID da versão (Build Id).
2.0.0.1025 indica que o Harmony 2.0.0.10 está sendo usado e 25 é o ID da versão (Build Id).
Consideramos usar a abordagem do Rimworld com a introdução do nosso próprio sistema de versões, mas isso não oferece uma maneira clara de detectar qual versão do Harmony o módulo contém. É mais fácil para o usuário informar a versão do módulo utilizada do que verificar a versão do assembly e enviá-la.
Solução de problemas* Está com dificuldades para extrair o arquivo? Instale via Vortex ou faça o download.
7-zip.
NÃO UTILIZE NADA DA LOJA DE APLICATIVOS DO WINDOWS.
Também adicionamos um artigo sobre Como instalar e usar o 7-Zip!* Se o jogo travar ao iniciar, é muito provável que você esteja usando ou tenha usado o Fixed Launcher. Ao ser instalado, ele copia o arquivo 0Harmony.dll, o que impede o funcionamento do Bannerlord.Harmony.
* Se o Fixed Launcher foi desinstalado ou nunca foi instalado, verifique se os seguintes arquivos não estão na pasta /bin principal do jogo (Mount & Blade II)
Bannerlord\bin\Win64_Shipping_Client)
- TaleWorlds.MountAndBlade.Launcher.exe.config
- 0Harmony.dll
- LauncherPatcher.dll
- LauncherPatcher.pdb
SobreHarmony oferece uma maneira elegante e de alto nível de alterar a funcionalidade em aplicativos escritos em C#. Funciona muito bem em jogos e está bem estabelecido em títulos como
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 e muito mais.
Também é utilizado em testes unitários de controles WFP e em muitas outras áreas.
Como funcionaSe você desenvolve em C# e seu código é carregado como um módulo/plugin em um aplicativo host, você pode usar o Harmony para alterar a funcionalidade de todos os assemblies disponíveis desse aplicativo. Enquanto outras bibliotecas de patch simplesmente permitem substituir o método original, o Harmony vai um passo além e oferece:
• Uma forma de manter o método original intacto
• Execute seu código antes e/ou depois do método original
• Modifique o original com processadores de código IL
• Vários patches do Harmony coexistem e não entram em conflito entre si.
• Funciona em tempo de execução e não altera nenhum arquivo.
DocumentaçãoPor favor, dê uma olhada no
documentação.
Contribuirpardeike Investimos milhares de horas neste projeto e em seu apoio. Portanto, cada pequena ação ajuda:
• Vote positivamente
resposta do stackoverflow• Divulgue em suas comunidades de desenvolvedores
• Torne-se um
Patrocinador do GitHub ou um
PatreonEste projeto utiliza o grande
MonoMod.Comum biblioteca por
0x0ade.