搜尋


返回清單
切換到指定樓層
通知這文章過時或找檔案 發表主題

【轉貼】白貓修改交流 完整討論筆記

[複製連結]
1
J73452134 ( Lv.50 智天使 ) 發表於 2016-2-15 02:30:00 | 只看該作者 回覆獎勵 |升序瀏覽 |閱讀模式


人物六圍和跑速基本那篇有教了
工具也是用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
自己小心用





所有站內附件皆會附上安全掃描報告
請會員查看純淨度百分比後判斷使用



相關檔案須知:
取得檔案前,請先詳細閱讀文章內容
避免不必要錯誤與誤會發生。
也可多參考文章討論樓層內容
了解附件檔案相關討論資訊。










大家正在看啥


收藏收藏 分享文章到FB上分享
回覆 使用道具 檢舉
複製專屬你的推廣連結:發至FB與各論壇宣傳:累積點數換GP商品 & 藍鑽
每五點閱率就可以兌換藍鑽積分或遊戲點卡 夢遊推廣文章換GP商品

你需要登入後才可以回覆 登入 | 加入會員

本版積分規則

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單