Una libreria per applicare patch, sostituire e decorare metodi .NET e Mono durante l'esecuzione. Destinata a garantire che tutte le mod nell'elenco mod di un giocatore utilizzino l'ultima versione di Harmony per ridurre al minimo i conflitti. Abbiamo anche aggiunto un'interfaccia utente di debug! Disponibile
NoteQuesta è una distribuzione non ufficiale del
Armonialibreria creata per semplificare la gestione delle dipendenze delle librerie esterne.
Il repository della mod -
Bannerlord.Harmony.
Annuncio di Bannerlord.Lib.Harmony per i modderOriginale
Armoniabiblioteca ora completamente
supporta netstandard2.0, quindi siamo tornati ad esso. Il nostro
forchetta della libreria è ora obsoleta.
InstallazioneQuesto modulo dovrebbe essere il più in alto nell'ordine di caricamento. Qualsiasi altro modulo che richieda di essere impostato in cima (Better Exception Window, ButterLib, MCM, ecc.) dovrebbe essere caricato dopo questo.
Per i giocatori
Questa mod ha lo scopo di garantire che tutte le mod nell'elenco di un giocatore utilizzino la versione più recente di Harmony per ridurre al minimo i conflitti.
Per i modderAbbiamo aggiunto un'interfaccia utente di debug! Disponibile tramite CTRL+ALT+H.È comunque necessario fare riferimento ad Harmony come pacchetto NuGet; non è obbligatorio includere 0Harmony.dll nell'output /bin finale del modulo.
Devi aggiungerlo al tuo
Sottomodulo.xml <DependedModules>
<DependedModule Id="Bannerlord.Harmony" />
</DependedModules>In questo modo il gioco si assicurerà che la libreria Harmony venga caricata prima della tua mod.
Controllo delle versioni
Il modulo combina la versione di Harmony utilizzata e l'ID build che ha pubblicato il modulo. L'ID build viene semplicemente aggiunto alla fine.
2.0.2.22 indica che viene utilizzato Harmony 2.0.2.0 e 22 è l'ID build.
2.0.0.1025 indica che viene utilizzato Harmony 2.0.0.10 e 25 è l'ID build.
Abbiamo preso in considerazione l'approccio Rimworld per l'introduzione del nostro sistema di controllo delle versioni, ma non fornirà un modo chiaro per individuare la versione di Harmony contenuta nel modulo. È più facile per l'utente segnalare la versione del modulo utilizzata piuttosto che controllare la versione dell'assembly/inviarla.
Risoluzione dei problemi* Hai problemi con l'estrazione dell'archivio? Installa tramite Vortex o scarica
7-zip.
NON USARE NULLA DALL'APP STORE DI WINDOWS.
Abbiamo anche aggiunto un articolo su come installare e utilizzare 7-zip!* Se il gioco si blocca all'avvio, molto probabilmente stai utilizzando o stavi utilizzando Fixed Launcher. Una volta installato, copia 0Harmony.dll, impedendo a Bannerlord.Harmony di funzionare.
* Se Fixed Launcher è stato disinstallato o non è mai stato installato, controlla che i seguenti file non siano nella cartella principale /bin del gioco (Mount & Blade II
Bannerlord\bin\Win64_Shipping_Client)
- TaleWorlds.MountAndBlade.Launcher.exe.config
- 0Harmony.dll
- LauncherPatcher.dll
- LauncherPatcher.pdb
DiHarmony offre un modo elegante e di alto livello per modificare la funzionalità nelle applicazioni scritte in C#. Funziona alla grande nei giochi ed è ben consolidato in titoli come
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 molti altri.
Viene utilizzato anche nei test unitari dei controlli WFP e in molti altri ambiti.
Come funzionaSe sviluppi in C# e il tuo codice viene caricato come modulo/plugin in un'applicazione host, puoi usare Harmony per modificare la funzionalità di tutti gli assembly disponibili in quell'applicazione. Mentre altre librerie di patch consentono semplicemente di sostituire il metodo originale, Harmony fa un ulteriore passo avanti e offre:
• Un modo per mantenere intatto il metodo originale
• Esegui il tuo codice prima e/o dopo il metodo originale
• Modificare l'originale con processori di codice IL
• Più patch Harmony coesistono e non sono in conflitto tra loro
• Funziona in fase di esecuzione e non tocca alcun file
DocumentazioneSi prega di controllare il
documentazione.
Contribuirepardeike Abbiamo dedicato migliaia di ore a questo progetto e al suo supporto. Quindi ogni piccola azione è utile:
• Vota questo
risposta di StackOverflow• Diffondi la notizia nelle tue community di sviluppatori
• Diventa un
Sponsor di GitHub o un
PatreonQuesto progetto utilizza il grande
MonoMod.Common biblioteca di
0x0ade.