Пожалуйста, сообщите любым разработчикам модов, которые все еще используют эту старую версию для обновления своих модов.
«Рецепт» крючков для террарии, что приводит к модуру TML, от которого могут зависеть другие моды.
Построен с мономодом.
Этот мод является помощником для других модов. Просто установите его, если мод нужен, он не изменит террарию самостоятельно.
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 ;
}
Для расширенного примера взгляните на эту суть.
Используйте «крючки», чтобы обнаружить, когда метод работает, измените, как он работает или даже замените его.
«Крюки» автоматически отменены при выгрузке вашего мода. Это обрабатывается Terrariahooks для вас.
Манипулировать любым методом во время выполнения через IL ... += (...) => {...} Использование CECIL и многих помощников.
Особая благодарность куриным костям за отличные идеи и отзывы на этом пути!
Используйте runtimedetour, чтобы быстро перенести свой существующий код «обмена методом».
Обратите внимание, что это требует от вас отменить обходные пути на выгрузке.
Если вам нужна дополнительная информация, прочитайте Monomod Runtimedetour Readme.
Если вы хотите использовать 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 (со всеми присутствующими зависимостями) он генерирует TerrariaHooks.dll
для вашей Terraria.exe
.
Единственной целью этого репозитория является полностью автоматизировать процесс и разрешить публикации TerrariaHooks.dll
как мод TML.