人物六圍和跑速基本那篇有教了
工具也是用AdvancedApkTool_v4.1.0_i-mobi_CHT_v1.1解包和打包
ILSpy_Master_2.3.1.1855_Binaries配Reflexil修改
Reflexil改完按左側項目右鍵 > updateXXX...
看C#能不能呈現
能呈現就是半成功
實際如何我還是會去遊戲裡測試才能曉得
基本操作
在一行指令上方加入新的一行指令
右鍵 > create new > 輸入完成後insert before selection
想在最底行新增就按append
編輯一行指令按右鍵 > edit
刪除特定複數指令可按ctrl選取再行delete
拖曳一行指令至另一行指令可將指令移至該指令上方或下方
修改位置可用Ctrl+F搜尋
例搜尋catchitem
search for改成Member可搜到
部分type說明
int32 = 整數如10
single = 有小數點的數字如7.5
instruction reference = 指令位置
type reference = 變數,想成數學的算數前假設x
落物100倍
在InGameManage>catchitem
variables新增變數1
variables標籤頁右鍵create new
name隨便打
type scope選type reference
type選mscorlib > commenXXX... > system > 選int32按ok > Append
IL_0000: ldc.i4.0
IL_0001: stloc.s 1 ///放在最上方或以下的ldarg.0上方都行,這行記得type選type reference
IL_019b: call instance void InGameManager::AddItemGetLog(string)
// loop start (head: IL_01a0)
IL_01a0: ldarg.0
IL_01a1: ldfld class InGameManager/Result InGameManager::result
IL_01a6: ldfld class [mscorlib]System.Collections.Generic.List`1<class XorInt> InGameManager/Result::itemIds
IL_01ab: ldarg.1
IL_01ac: ldfld int32 Item::id
IL_01b1: call class XorInt XorInt:p_Implicit(int32)
IL_01b6: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class XorInt>::Add(!0)
IL_01bb: ldloc.s 1
IL_01bd: ldc.i4.1
IL_01be: add
IL_01bf: stloc.s 1
IL_01c1: ldloc.s 1
IL_01c3: ldc.i4 100
IL_01c8: blt.s IL_01a0 ///這種抓指令位置的type選instruction reference, 這行記得抓到ldfld class InGameManager/Result InGameManager::result上方的ldarg.0
// end loop
IL_01ca: call !0 class Singleton`1<class SoundManager>::get_I()
////InGameManage>catchitem_do while循環,落物100倍
總之重點在
callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class XorInt>::Add(!0)
call !0 class Singleton`1<class SoundManager>::get_I()
的中間插入
ldloc.s 1
ldc.i4.1
add
stloc.s 1
ldloc.s 1
ldc.i4 100 ///依需求更改數量
blt.s IL_01a0
金魂修改
在QuestCompleteSendParam > .ctor
IL_00a3: ldarg.0
IL_00a4: call instance void [mscorlib]System.Object::.ctor()
IL_00a9: ldarg.0
IL_00aa: ldc.i4 329
IL_00af: ldc.i4 14752
IL_00b4: call int32 [UnityEngine]UnityEngine.Random::Range(int32, int32)
IL_00b9: stfld int32 QuestCompleteSendParam::gold
IL_00be: ldarg.0
IL_00bf: ldc.i4 97
IL_00c4: ldc.i4 1248
IL_00c9: call int32 [UnityEngine]UnityEngine.Random::Range(int32, int32)
IL_00ce: stfld int32 QuestCompleteSendParam::soul
////QuestCompleteSendParam > .ctor 金魂固定區間,金329~14752,魂97~1248
ldarg.1
ldfld class XorInt InGameManager/Result::gold
call int32 XorInt:p_Implicit(class XorInt)
stfld int32 QuestCompleteSendParam::gold
刪除call和ldfld兩行
ldarg.1編輯
要固定就改成
ldc.i4 14752
QuestCompleteSendParam > .ctor其他修改
例最下方的
ldarg.1
callvirt instance class XorInt InGameManager/Result::get_RestTime()
call int32 XorInt:p_Implicit(class XorInt)
stfld int32 QuestCompleteSendParam::restTime
callvirt call兩行刪除
ldarg.1改成ldc.i4.0
可讓restTime=0
即是剩餘時間0
改成idc.i4、type int32、數字100000
可讓restTime=100000微秒=100秒鐘=1:40
神速破關成績會固定1:40
自己小心用
所有站內附件皆會附上安全掃描報告 請會員查看純淨度百分比後判斷使用
相關檔案須知: 取得檔案前,請先詳細閱讀文章內容 避免不必要錯誤與誤會發生。 也可多參考文章討論樓層內容 了解附件檔案相關討論資訊。
|