Por favor, diga a todos os desenvolvedores de mod que ainda usam esta versão antiga para atualizar seus mods.
"Receita" Hookgen para Terraria, resultando em um mod da TML da qual outros mods podem depender.
Construído com monomod.
Este mod é um ajudante para outros mods. Basta instalá -lo se um mod precisar, ele não mudará a Terraria por conta própria.
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 ;
}
Para um exemplo estendido, dê uma olhada nessa essência.
Use "ganchos" para detectar quando um método é executado, altere como ele é executado ou até substitui -o.
Os "ganchos" são automaticamente desfeitos sempre que o seu mod descarrega. Isso é tratado por terrariahooks para você.
Manipular qualquer método no tempo de execução via IL ... += (...) => {...} usando o Cecil e muitos ajudantes.
Agradecimentos especiais aos ossos de galinha pelas ótimas idéias e feedback ao longo do caminho!
Use o RunTimedETour para portar rapidamente o código "Método de troca" existente.
Observe que isso exige que você desfaça seus desvios na descarga.
Se você precisar de mais informações, leia o Monomod RunTimedETour ReadMe.
Se você quiser usar terrariahooks em seu mod:
TerrariaHooks.dll
do último lançamento.lib
.build.txt
, adicione modReferences = TerrariaHooks
Load
mod.git clone --recursive https://github.com/0x0ade/TerrariaHookGen.git
_input
./TerrariaHookGen/bin/Debug/TerrariaHookGen.exe _input .
./tModLoaderServer.exe -build 'path/to/TerrariaHooks' -eac
Esse repositório supercomplica todo o procedimento. Tudo se resume a:
./MonoMod.RuntimeDetour.HookGen.exe --private Terraria.exe TerrariaHooksPre.dll
./ILRepack.exe /out:TerrariaHooks.dll TerrariaHooksPre.dll MonoMod. * .dll MonoMod.exe
Ao executar as duas linhas acima no diretório Terraria (com todas as dependências presentes), ele gera TerrariaHooks.dll
para o seu Terraria.exe
.
O único objetivo deste repositório é automatizar completamente o processo e permitir a publicação TerrariaHooks.dll
como um mod da TML.