โปรดบอกนักพัฒนา MOD ที่ยังคงใช้เวอร์ชันเก่านี้เพื่ออัปเดต mods ของพวกเขา
hookgen "สูตร" สำหรับ terraria ส่งผลให้ TML mod ที่ mods อื่น ๆ สามารถขึ้นอยู่กับ
สร้างด้วย Monomod
mod นี้เป็นตัวช่วยสำหรับ mods อื่น ๆ เพียงติดตั้งถ้า mod ต้องการมันจะไม่เปลี่ยน Terraria ด้วยตัวเอง
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 ;
}
สำหรับตัวอย่างเพิ่มเติมลองดูที่ส่วนสำคัญนี้
ใช้ "hooks" เพื่อตรวจจับเมื่อวิธีการทำงานเปลี่ยนวิธีการทำงานหรือแม้แต่แทนที่
"hooks" จะถูกยกเลิกโดยอัตโนมัติเมื่อใดก็ตามที่ mod ของคุณจะไม่โหลด สิ่งนี้ได้รับการจัดการโดย Terrariahooks สำหรับคุณ
จัดการวิธีการใด ๆ ที่รันไทม์ผ่านทาง IL ... += (... ) => {... } โดยใช้ Cecil และผู้ช่วยจำนวนมาก
ขอขอบคุณเป็นพิเศษสำหรับกระดูกไก่สำหรับความคิดและข้อเสนอแนะที่ยอดเยี่ยมตลอดทาง!
ใช้ runtimedetour เพื่อพอร์ตรหัส "วิธีการสลับ" ที่มีอยู่ของคุณอย่างรวดเร็ว
โปรดทราบว่าสิ่งนี้ต้องการให้คุณยกเลิกการออกนอกบ้านในการขนถ่าย
หากคุณต้องการข้อมูลเพิ่มเติมให้อ่าน readme monomod runtimedetour
หากคุณต้องการใช้ terrariahooks ใน mod ของคุณ:
TerrariaHooks.dll
จากรุ่นล่าสุดlib
ของคุณbuild.txt
ของคุณเพิ่ม 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
พื้นที่เก็บข้อมูลนี้ overcomplicates ขั้นตอนทั้งหมด มันเดือดลงไปที่:
./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 mod