重裝機(jī)兵4--戰(zhàn)斗類道具與裝備的連通及人類裝備的復(fù)制(B篇:詳解)

? ? ? ? 本文根據(jù)站中重裝機(jī)兵4(Metal Max 4, mm4)的“道具欄40頁bug”視頻抽象出游戲中物品類道具和回復(fù)類道具的數(shù)據(jù)結(jié)構(gòu)及關(guān)聯(lián)。本文首先對戰(zhàn)斗類道具與裝備的連通進(jìn)行說明,然后從數(shù)據(jù)的角度對裝備復(fù)制操作進(jìn)行詳解。本操作可以用于復(fù)制所有已有人類裝備。??
1.?? 戰(zhàn)斗類道具與裝備的連通
? ? ? ? 我們還是需要從數(shù)據(jù)長度的角度入手。戰(zhàn)斗類道具和回復(fù)類道具一樣,每種戰(zhàn)斗類道具需要2字節(jié),這里分為名稱位和數(shù)量位,分別用于表示道具的名稱和數(shù)量;每種裝備需要4個字節(jié)表示,這里把他們命名為名稱低位、名稱高位、數(shù)量低位和數(shù)量高位,前兩個字節(jié)表示名稱,名稱低位表示數(shù)量,名稱高位是無效字節(jié)。
? ? ? ? 因?yàn)閼?zhàn)斗類道具和裝備數(shù)據(jù)長度不同(戰(zhàn)斗類2字節(jié),裝備4字節(jié)),再加上我們只能夠從戰(zhàn)斗類道具欄延申到裝備欄,所以,戰(zhàn)斗欄種的兩個欄才能對應(yīng)到裝備的一個欄。這兩個欄就是戰(zhàn)斗類道具的7頁第6欄和第7欄,共同對應(yīng)到裝備的1頁第1欄。圖1為戰(zhàn)斗類道具與裝備的連通示意圖。戰(zhàn)斗類道具的7頁第6欄對應(yīng)裝備的名稱高位和低位,具體為名稱位對應(yīng)名稱低位,數(shù)量位對應(yīng)名稱高位;戰(zhàn)斗類道具的7頁第7欄對應(yīng)裝備的數(shù)量高位和低位,具體為名稱位對應(yīng)數(shù)量低位,數(shù)量位對應(yīng)數(shù)量高位。此外,戰(zhàn)斗類道具的7頁第8,9欄對應(yīng)著裝備的1頁第2欄。

? ? ? ? 最后,這里還總結(jié)了物品、回復(fù)、戰(zhàn)斗和裝備四類道具的連通。正是由于這種“兩端四字節(jié),中間二字節(jié)”的結(jié):1.? 可以使我們實(shí)現(xiàn)每兩字節(jié)的移動;2. 可以用出售操作改變道具數(shù)量,實(shí)現(xiàn)了對數(shù)量低位數(shù)據(jù)的更改; 3. 綜合前兩種操作就是整個“道具欄連通bug”的完全利用,也是本系列作品的核心所在。

2.? 需要的道具
? ? ?這里還是提供了一些道具的名稱高位和名稱低位信息,有利于幫助理解下面的步驟。前面說到戰(zhàn)斗了道具和回復(fù)類道具的名稱不分高位和低位,這是因?yàn)樗鼈兊目倲?shù)加起來較少,用一個字節(jié)足以表示。其實(shí)這也是默認(rèn)高位為0的特殊情況。

3.? 復(fù)制人類裝備詳解
? ? ? ? 相比于復(fù)制物品類道具和無中生有操作來說,復(fù)制人類裝備的操作是最簡單的。由于戰(zhàn)斗類道具占用兩字節(jié),裝備占用四字節(jié),因此可以單獨(dú)改變裝備的數(shù)量。只需將道具直接放到對應(yīng)的裝備數(shù)量低位即可。



4.? 此操作的局限性
? ? ? ? 此操作可以用于所有已有人類裝備的復(fù)制,但是沒有的裝備用這個方法是行不通的。下一期將為大家詳解,如何通過道具欄的連通bug得到?jīng)]有的裝備。有興趣的小伙伴可以提前嘗試一下,綜合這四期的方法完全可以搞定。
5.??致謝
????感謝“孫dark眉”提供的封面。