Android 台灣中文網

標題: FGO.Tweaks.Managed.dll是怎樣對遊戲進行修改的 [打印本頁]

作者: demos1029    時間: 2017-9-8 09:36
標題: FGO.Tweaks.Managed.dll是怎樣對遊戲進行修改的
本帖最後由 demos1029 於 2017-9-8 17:21 編輯

一直不明白FGO.Tweaks.Managed.dll是怎樣對遊戲進行修改的,Assembly-CSharp.dll和FGO.Tweaks.Managed.dll裏除了相互引用了一下,在檔案內並沒有引用相關類,像2個單獨的檔案一樣,有沒有大佬指點下思路。
有個想法是:戰鬥開始可能會有Notification,FGOTweak接受這個Notification開始工作,不過蒐索了並沒有Notification


作者: demos1029    時間: 2017-9-8 15:41
本帖最後由 demos1029 於 2017-9-8 15:57 編輯

大概知道是怎么回事了,有兴趣的可以看一看FGOPatcher的实现
作者新写了FGO.Tweaks.Managed.dll,FGOTweak是一个静态类,修改的方法都在这个dll里面,在Assembly-CSharp.dll里需要修改的方法的地方加上FGOTweak.xxx(),就实现了修改
FGOPatcher则用ReiPatch实现了自动对Assembly-CSharp.dll打补丁
只要FGOTweak方法未失效,实际情况可以手动对Assembly-CSharp.dll进行修改实现版本更新。

作者: zw1983527    時間: 2017-9-9 04:18
所以不用直接对Assembly-CSharp.dll进行修改了么?
作者: demos1029    時間: 2017-9-9 07:08
zw1983527 發表於 2017-9-9 04:18
所以不用直接对Assembly-CSharp.dll进行修改了么?

需要的,不让FGOTweak里的函数从哪执行
作者: hiersword    時間: 2017-9-9 12:48
demos1029 發表於 2017-9-9 07:08
需要的,不让FGOTweak里的函数从哪执行

是的,所以修復補丁可能比直接修改來的容易
只要補全並修正AB檔案缺失的部分

作者: demos1029    時間: 2017-9-9 13:22
hiersword 發表於 2017-9-9 12:48
是的,所以修復補丁可能比直接修改來的容易
只要補全並修正AB檔案缺失的部分
...

大大 能提示下FGOTewak是怎么修改ATK的吗? 从patch里看是把BattleServantData::getBaseATK()替换成FGOTweak.getBaseATK()。但是遍历整个Assembly-CSharp文件,都没有看到FGOTweak.getBaseATK()调用,也没有看到修改ATK的代码,然而确实倍攻生效了,就很迷。
作者: hiersword    時間: 2017-9-9 14:21
本帖最後由 hiersword 於 2017-9-9 14:24 編輯
demos1029 發表於 2017-9-9 13:22
大大 能提示下FGOTewak是怎么修改ATK的吗? 从patch里看是把BattleServantData::getBaseATK()替换成FGOTw ...

就算調用失敗了,代碼本身是系統可辨識的,所以即使替換失敗了也會發生效用,因為FGO.Tweaks那裡依然能正常引用,攻擊力修改失敗是因為最後的時候又回去引用BattleServantData::getBaseATK()的相關代碼,而這裡有反修改的部分,出錯了以後系統自行合理化的結果就是改10倍不會被檢測,而太高的倍數被這裡的代碼偵測,我想B站其實不是完全想找修改麻煩,但是太高調只好出手




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1