最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

從CE入手,研究女神異聞錄5皇家版(P5R)的暴擊機(jī)制

2023-02-22 15:13 作者:geleisisisi  | 我要投稿

前言

最近想要研究下P5R的暴擊機(jī)制,翻遍全網(wǎng)都沒找到統(tǒng)一的說法,可謂是眾說紛紜一團(tuán)亂麻。所以我就想做個研究暴擊的專題,但是苦于不會解包。

不過尺有所短寸有所長,最近正好在研究P5R的修改,那干脆用CE,從匯編入手,用笨辦法一點(diǎn)點(diǎn)實(shí)驗(yàn)出來好了。

本文的主旨意在分享一些尋找切入口的思路,希望能起到拋磚引玉的效果。對匯編不感興趣的同學(xué)可以直接搜索并跳轉(zhuǎn)到“省流”部分,查看結(jié)論。

研究問題如下

  1. 暴擊的輔助buff:反叛(Rebellion)、革命(Revolution)、勇氣步伐(Brave Step)、斗志營養(yǎng)品(Hustle S),具體暴率為多少,是否可以疊加?

  2. 暴擊的被動buff:建言(Apt Pupil)、儀式護(hù)手-飾品(Gauntlet)、槍彈狂熱(Trigger Happy),高壓電流(Fortified Moxy),逆境的覺悟(Adverse Resolve),具體暴率為多少,是否可以疊加?

  3. 敵我雙方運(yùn)氣對暴擊率的影響。

通過以上三點(diǎn)的研究,最終推導(dǎo)出整個暴擊率的公式是如何計(jì)算的。

研究的過程(以下的地址基于steam1.03版本,所有測試基于Challenge模式

1.顯示暴擊率的切入口

首先我們需要梳理代碼邏輯,找到顯示暴擊率的切入口。

從常理上說,每當(dāng)使用可以觸發(fā)暴擊的技能時,程序應(yīng)該會讀取儲存是否存在暴擊buff的地址數(shù)值,如果存在暴擊buff,不管是加法還是乘法,總之會使得暴擊率上升。

所以儲存暴擊buff的地址就是一個很好的切入點(diǎn)。

在這里感謝下那位寫CT表的外國大佬,節(jié)省了我很多時間。

以Mona為測試對象,已知Mona的暴擊率buff地址是[P5R.exe+29E940E]。

對該地址下斷,查找什么訪問了該地址,然后使用一次奇跡拳,發(fā)現(xiàn)只有一個地方讀取了該地址的值:

跟過去,發(fā)現(xiàn)這里代碼是讀取了地址,然后進(jìn)行一些計(jì)算和判斷(我沒仔細(xì)看,但用腳趾頭想都知道一定是讀取暴擊buff數(shù)據(jù)啊,暴擊buff是否存在等操作),直到:

這里是一個非常重要的關(guān)鍵點(diǎn)(簡稱關(guān)鍵點(diǎn)1),因?yàn)樗旧洗_定了,暴擊的輔助buff是加法。

接著往下走,直到:

這里同樣是個很重要的關(guān)鍵點(diǎn),具體的匯編邏輯就是,計(jì)算后的暴擊率如果大于60那么取60,如果小于60那么不變。說明暴擊率的上限不是網(wǎng)傳的70或者67,而是60。

繼續(xù)往下走,直到:

中間一群shr mul的運(yùn)算看的我腦仁疼,我也沒有認(rèn)真去追。

但是我猜啊,如果我是程序員,肯定Random一個100以內(nèi)的隨機(jī)數(shù),用該隨機(jī)數(shù)和暴擊率比大小,最終決定是否暴擊。

所以如果想要寫百分百暴擊的腳本,直接把jnl nop掉即可成功,即:

至此,先總結(jié)下代碼邏輯:

那么關(guān)鍵點(diǎn)1(P5R.exe+E14BFE)

則是一個很好的切入口,因?yàn)榭梢酝ㄟ^它得知暴擊基礎(chǔ)幾率和buff附帶的暴擊幾率分別為多少。

2.記錄數(shù)據(jù)

找到了顯示幾率的切入口,那么接下來就是實(shí)驗(yàn)記錄數(shù)據(jù)了

先以Mona奇跡拳為例子,反復(fù)攻擊同一小怪。得出如下數(shù)據(jù)(0x表示16進(jìn)制,即0xA=10):

從上述數(shù)據(jù)可以得出結(jié)論1:

  • 反叛(Rebellion)、勇氣步伐(Brave Step)、斗志營養(yǎng)品(Hustle S)不可疊加,且暴擊率+=7

  • 革命(Revolution)可與上述buff疊加,且暴擊率+=15

接下來以Mona至高魔彈為例子,反復(fù)攻擊同一小怪。得出如下數(shù)據(jù):

從上述數(shù)據(jù)可以得出結(jié)論2:

  • 儀式護(hù)手-飾品(Gauntlet)、建言(Apt Pupil)不可疊加,且暴擊率=基礎(chǔ)暴擊率x2

繼續(xù):

從上述數(shù)據(jù)可以得出結(jié)論3:

  • 槍彈狂熱(Trigger Happy)與其余所有buff都可疊加,且暴擊率+=25

逆境覺悟和高壓電流我就偷懶直接上結(jié)論了

至此,我們就可以總結(jié)出目前得到的結(jié)論了:

  • 暴擊率=基礎(chǔ)暴擊率+buff附帶的暴擊率,且上限為60。

  • 基礎(chǔ)暴擊率指的是技能自帶的暴擊率,外加雙方運(yùn)差的計(jì)算,最終得出的幾率。

  • 如果帶有建言(Apt Pupil)或者儀式護(hù)手-飾品(Gauntlet),那么基礎(chǔ)暴擊率會翻倍。兩者擇其一即可,不可疊加。

  • 其余所有的暴擊算法都是在建言計(jì)算后,進(jìn)行加法,具體為:

    • 槍彈狂熱(Trigger Happy):+25

    • 反叛(Rebellion)、勇氣步伐(Brave Step)、斗志營養(yǎng)品(Hustle S):+7,且三者互相不可疊加

    • 革命(Revolution):+15

    • 高壓電流(Fortified Moxy):+15

    • 逆境的覺悟(Adverse Resolve):+20

3.運(yùn)差對基礎(chǔ)暴擊率的影響

當(dāng)下我們已經(jīng)得到了buff附帶的暴擊幾率,以及它們之間是否疊加的結(jié)論,只剩下研究敵我雙方的運(yùn)氣對于暴擊率的影響了。

先準(zhǔn)備一只Mona,屬性如下:

力=20 魔=40 耐=60?速=80 運(yùn)=50

然后對同一小怪使用奇跡拳,已知該技能命中=75,暴擊率=45。

已知Mona敏的地址是[P5R.exe+29E9444],對該地址查找訪問,獲取讀取地址

及其Return Address

分別對返回地址進(jìn)行追蹤,發(fā)現(xiàn)

返回rax=0x32=50=己方運(yùn)

返回rax=0x32=50=己方運(yùn)

返回xmm0=(float)50.00=己方運(yùn),儲存在xmm7

不必跳出函數(shù),繼續(xù)跟蹤此段代碼

返回xmm0=(float)36.00=猜測為敵方運(yùn),儲存在xmm6

返回xmm0=(float)45.00=猜測為技能暴擊率,儲存在xmm0

然后往下走

這段代碼已經(jīng)是明示了

(%E5%B7%B1%E6%96%B9%E8%BF%90%2B50)%2F(%E6%95%8C%E6%96%B9%E8%BF%90%2B50)*%E6%8A%80%E8%83%BD%E6%9A%B4%E5%87%BB%E7%8E%87%3D(50%2B50)%2F(36%2B50)*45%3D52.32

向下取整得基礎(chǔ)暴擊率=52

研究的結(jié)論(省流)

  • %E5%9F%BA%E7%A1%80%E6%9A%B4%E5%87%BB%E7%8E%87%3D%5Cfrac%7B(%E5%B7%B1%E6%96%B9%E8%BF%90%E6%B0%94%2B50)%7D%7B(%E6%95%8C%E6%96%B9%E8%BF%90%E6%B0%94%2B50)%7D%20%5Ctimes%20%E6%8A%80%E8%83%BD%E6%9A%B4%E5%87%BB%E7%8E%87

  • 最終暴擊率=基礎(chǔ)暴擊率(小數(shù)點(diǎn)向下取整)+buff附帶的暴擊率,且上限為60。

  • 如果帶有建言(Apt Pupil)或者儀式護(hù)手-飾品(Gauntlet),那么基礎(chǔ)暴擊率會翻倍。兩者擇其一即可,不可疊加。

  • 其余所有的暴擊算法都是在建言計(jì)算完成后,進(jìn)行加法,具體為:

    • 槍彈狂熱(Trigger Happy):+25

    • 反叛(Rebellion)、勇氣步伐(Brave Step)、斗志營養(yǎng)品(Hustle S):+7,且三者互相不可疊加

    • 革命(Revolution):+15

    • 高壓電流(Fortified Moxy):+15

    • 逆境的覺悟(Adverse Resolve):+20

舉例1:

????義經(jīng):運(yùn)=80

????拉雯妲:運(yùn)=75

????用義經(jīng)使用八艘跳,那么最大化暴擊率的方式是:

????帶建言+逆境的覺悟(配合松的生命力)+反叛+革命

????基礎(chǔ)暴擊率=(80+50)/(75+50)*5=5

????最終暴擊率=5*2+20+7+15=52

舉例2:

????Mona:運(yùn)=99

????拉雯妲:運(yùn)=75

????那么Mona對拉雯妲用奇跡拳,

????基礎(chǔ)暴擊率=(99+50)/(75+50)*45=53

????也就是說99運(yùn)的Mona只需要一個反叛暴擊buff(+7)即可拉滿暴擊率,前提是得命中


從CE入手,研究女神異聞錄5皇家版(P5R)的暴擊機(jī)制的評論 (共 條)

分享到微博請遵守國家法律
怀远县| 城市| 淄博市| 广安市| 汨罗市| 广灵县| 临西县| 西和县| 昌江| 汽车| 定襄县| 安达市| 南通市| 蒲城县| 九台市| 青海省| 神农架林区| 海口市| 阳泉市| 炎陵县| 进贤县| 哈尔滨市| 江永县| 铜梁县| 临洮县| 康平县| 长泰县| 吉安市| 镇康县| 秀山| 大荔县| 准格尔旗| 石嘴山市| 宁阳县| 正宁县| 顺昌县| 岳普湖县| 盐城市| 临洮县| 高邮市| 南宫市|