Bitte teilen Sie allen Mod -Entwicklern mit, die diese alte Version immer noch verwenden, um ihre Mods zu aktualisieren.
Das Haken -Rezept für Terrarie, was zu einem TML -Mod führt, von dem andere Mods abhängen können.
Mit Monomod gebaut.
Dieser Mod ist ein Helfer für andere Mods. Installieren Sie es einfach, wenn ein Mod es braucht, es wird die Terrarie nicht selbst ändern.
On . Terraria . Player . CheckMana += ( orig , player , amount , pay , blockQuickMana ) => {
// We can either make this act as a method replacement
// or just call our code around the original code.
// Let's double the mana cost of everything.
// We can pass on custom values.
bool spendable = orig ( player , amount * 2 , pay , blockQuickMana ) ;
// ... but give back half of it if it was spent.
if ( spendable && pay ) {
player . statMana += amount / 2 ;
}
// We can return custom values.
return spendable ;
}
Schauen Sie sich diesen Kern für ein erweitertes Beispiel an.
Verwenden Sie "Hooks", um zu erkennen, wann eine Methode ausgeführt wird, ändern Sie die Art und Weise, wie sie ausgeführt wird, oder ersetzen Sie sie sogar.
"Hooks" werden automatisch rückgängig gemacht, wenn Ihr Mod entlädt. Dies wird von Terrariahooks für Sie behandelt.
Manipulieren Sie jede Methode zur Laufzeit über IL ... += (...) => {...} Verwenden Sie Cecil und viele Helfer.
Besonderer Dank geht an Hühnerknochen für die tollen Ideen und das Feedback auf dem Weg!
Verwenden Sie RunTimedetour, um Ihren vorhandenen "Methoden -Swapping" -Code schnell zu portieren.
Beachten Sie, dass Sie Ihre Umwege beim Entladen rückgängig machen müssen.
Wenn Sie weitere Informationen benötigen, lesen Sie die Monomod Runimedetour Readme.
Wenn Sie Terrariahooks in Ihrem Mod verwenden möchten:
TerrariaHooks.dll
von der neuesten Veröffentlichung herunter.lib
-Ordner.build.txt
modReferences = TerrariaHooks
hinzuLoad
hinzu.git clone --recursive https://github.com/0x0ade/TerrariaHookGen.git
_input
./TerrariaHookGen/bin/Debug/TerrariaHookGen.exe _input .
./tModLoaderServer.exe -build 'path/to/TerrariaHooks' -eac
Dieses Repository überkomert die gesamte Prozedur. Es läuft auf:
./MonoMod.RuntimeDetour.HookGen.exe --private Terraria.exe TerrariaHooksPre.dll
./ILRepack.exe /out:TerrariaHooks.dll TerrariaHooksPre.dll MonoMod. * .dll MonoMod.exe
Wenn Sie die beiden oben genannten Zeilen im Terraria -Verzeichnis (mit allen vorhandenen Abhängigkeiten) durchführen, erzeugt es TerrariaHooks.dll
für Ihre Terraria.exe
.
Der einzige Zweck dieses Repositorys besteht darin, den Prozess vollständig zu automatisieren und die Veröffentlichung TerrariaHooks.dll
als TML -Mod zu ermöglichen.