TerrariaHooks
v0.19 - Update MonoMod
この古いバージョンを使用しているMOD開発者に、MODを更新してください。
TerrariaのHookgen「レシピ」は、他のMODが依存できるTML modをもたらします。
Monomodで構築されています。
このMODは、他のMODのヘルパーです。 MODが必要な場合は、インストールするだけで、テラリア自体が変更されません。
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 ;
}
拡張された例については、この要点を見てください。
「フック」を使用して、メソッドが実行されたときに検出し、実行方法を変更したり、交換したりします。
「フック」は、modがアンロードするたびに自動的に元に戻されます。これはあなたのためにTerrariahooksによって処理されます。
CECILと多くのヘルパーを使用して、IL ... +=(...)=> {...}を介して実行時に任意の方法を操作します。
途中で素晴らしいアイデアとフィードバックをしてくれたチキンボーンに感謝します!
runtimedetourを使用して、既存の「メソッドスワッピング」コードをすばやくポートします。
これには、アンロードで迂回を元に戻す必要があることに注意してください。
詳細が必要な場合は、Monomod runtimedetour readmeをお読みください。
modでTerrariahooksを使用したい場合:
TerrariaHooks.dll
をダウンロードしてください。lib
フォルダーに入れます。build.txt
で、 modReferences = TerrariaHooks
を追加しますLoad
メソッドにフックを追加します。git clone --recursive https://github.com/0x0ade/TerrariaHookGen.git
_input
でファイルを更新します./TerrariaHookGen/bin/Debug/TerrariaHookGen.exe _input .
./tModLoaderServer.exe -build 'path/to/TerrariaHooks' -eac
このリポジトリは、手順全体を補償します。要するに:
./MonoMod.RuntimeDetour.HookGen.exe --private Terraria.exe TerrariaHooksPre.dll
./ILRepack.exe /out:TerrariaHooks.dll TerrariaHooksPre.dll MonoMod. * .dll MonoMod.exe
Terraria Directoryで上記の2行を実行すると(すべての依存関係が存在します)、 Terraria.exe
のTerrariaHooks.dll
を生成します。
このリポジトリの唯一の目的は、プロセスを完全に自動化し、 TerrariaHooks.dll
TML modとして公開することです。