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

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

修改曉月圓舞曲怪物的攻擊屬性(以三種特殊狀態(tài)為主)

2023-08-26 11:30 作者:一個(gè)_B站_用戶  | 我要投稿

在dsvania_editor中我們可以輕易地勾選人物武器、紅魂、裝備的屬性和抗性。但是對(duì)于怪物,卻沒(méi)有復(fù)選框供人修改。因?yàn)楣治锏墓魧傩圆⒉缓?jiǎn)單。持有武器、或者發(fā)射投射物的怪物,身體和武器算作不同的物體,攻擊力和屬性也不相同。蝎尾獅蝎尾有毒但身體無(wú)毒。石化牛/石化雞本體不石化,但是他們的霧和激光會(huì)石化。所以屬性不能簡(jiǎn)單的修改。

此方法可能產(chǎn)生無(wú)法估計(jì)的后果。為了減少bug對(duì)您的rom產(chǎn)生的不可逆轉(zhuǎn)的破壞,先備份再修改。修改需要能看內(nèi)存的gba模擬器,這里我用VisualBoyAdvance(vba)。no$gba也行,順便可以自己設(shè)置中斷或者修改指令看看會(huì)發(fā)生什么。還需要一個(gè)16進(jìn)制編輯器,我用的是crystaltile2(ct2)。再準(zhǔn)備一份曉月圓舞曲rom,我用美版,漢化版同理。

從dsv的文檔,可以知道一些重要信息。

=== 020004E4-02007863: Entity memory. Each entity is 0x84 bytes long. Entities range from 00-DF.

What each range of entity slots is for:

00,4: Pointer to update code。實(shí)體的updatecode(似乎是每幀要執(zhí)行的東西)

。。。。。。

1B-48? 020012D0-02002A87? Room entities, including enemies and special objects.

房間內(nèi)的實(shí)體,敵人/特殊物品

。。。。。。

敵人的數(shù)據(jù)就在加粗的位置了。


Memory used for entities in AoS is 020004E4 - 02007863. Each entity is 0x84 bytes long. They range from 0-DF.

。。。。。。

40,4: X pos on the screen in subpixels.

? In the GBA games, each pixel is 0x10000 subpixels.

? Note that unlike the DSVanias, there is no X/Y pos in the room. Only on the screen.

44,4: Y pos on the screen in subpixels.

? In the GBA games, each pixel is 0x10000 subpixels.

? Note that unlike the DSVanias, there is no X/Y pos in the room. Only on the screen.

這兩個(gè)是橫縱坐標(biāo),可以改動(dòng)這兩個(gè)的值,然后看有什么實(shí)體發(fā)生了移動(dòng),從而確定這段內(nèi)存是哪個(gè)實(shí)體的。

。。。。。。

7C,4: On-hurt-player callback.

? This function pointer is called when the entity collides with the player.

擊中玩家時(shí)調(diào)用的函數(shù)指針

80,4: On-damaged callback.

? This function pointer is called when the entity collides with a player weapon.

? It calculates the damage that should be done and kills the enemy if its HP is 0 or below.被玩家擊中時(shí)調(diào)用的函數(shù)指針,關(guān)系到怪物的死亡,不要亂改,但是在這方法里有其他用途。

。。。。。。

這函數(shù)關(guān)系到傷害計(jì)算和屬性了。所以要改屬性就從這里下手。

打開(kāi)gba模擬器,打開(kāi)曉月圓舞曲。進(jìn)入一個(gè)你要改/用的怪的房間。比如我現(xiàn)在要史萊姆的毒。

這是個(gè)好地方,不過(guò)也有背景特效的干擾。更好的方法是用dsv建一個(gè)只有這怪的房間

用dsv看到史萊姆的updatecode是080C1349(49 13 0C 08),打開(kāi)內(nèi)存查看器。每0x84字節(jié)是一只怪的數(shù)據(jù)。轉(zhuǎn)到020012d0。找到49130c08.

每種怪的updatecode是不同的,可以用來(lái)確定是什么怪

打敗史萊姆,這一段全變成00了,說(shuō)明這里就是史萊姆的數(shù)據(jù)。從這里開(kāi)始,地址往后0x7c就是攻擊代碼了。

經(jīng)過(guò)測(cè)試,得到一些重要的攻擊函數(shù)指針(以小端模式記錄)。

319B0908????????詛咒魔

DD130C08???????史萊姆

CDE30A08???????毒蟲(chóng)

CD990808???????牛的霧

牛的霧是重點(diǎn),因?yàn)檫@個(gè)是牛生成后會(huì)自動(dòng)消失的,也找不到updatecode,只能看這段內(nèi)存有沒(méi)有哪里會(huì)突然隨著霧出現(xiàn)又隨著霧消失了。其他投射物同理。在消失之前趕緊暫停然后查看。

接下來(lái)是修改。這里找到了史萊姆,試著把它改成詛咒屬性。把上面圖中的dd 13 0c 08改成31 9b 09 08,結(jié)果如下。

詛咒屬性史萊姆

成功,也沒(méi)有什么異常,那就可以這么改了?,F(xiàn)在我只改了內(nèi)存,所以只影響這一只史萊姆。要改動(dòng)rom才行。幸運(yùn)的是,怪物受擊代碼和攻擊代碼存放在一塊。攻擊代碼有復(fù)用,受擊代碼的復(fù)用可能沒(méi)那么多。而兩個(gè)代碼都符合的就更少了。打開(kāi)ct2,打開(kāi)曉月,搜索dd130c080d140308。

找到了,把它改掉

dd130c08改成詛咒魔(還是叫外質(zhì)?太久不看中文版,忘了)的攻擊指針319b0908,保存,重新打開(kāi)rom,找史萊姆看看效果。

成功

改成石化霧的CD990808試試。

成功

大致就是這樣了。敵人的投射物也可以這么改。比如讓飛刀鬼的刀帶毒。

在飛刀出現(xiàn)時(shí),找到它在內(nèi)存上的位置,可以通過(guò)修改坐標(biāo)確定是不是這刀的內(nèi)存

原理就是改變怪打中人調(diào)用的函數(shù),因?yàn)閷傩允苓@個(gè)函數(shù)控制。大致如此,可能有未發(fā)現(xiàn)的不明后果,謹(jǐn)慎使用。比如改換皮怪,改了藍(lán)色米諾陶斯,紅色的也跟著變了。美杜莎頭的函數(shù)別的怪用了沒(méi)反應(yīng)。也許存在很多我沒(méi)發(fā)現(xiàn)的問(wèn)題和錯(cuò)誤。

修改曉月圓舞曲怪物的攻擊屬性(以三種特殊狀態(tài)為主)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
玉树县| 青阳县| 永春县| 大足县| 霍林郭勒市| 曲阜市| 盘锦市| 东阳市| 商丘市| 卢氏县| 邻水| 邯郸市| 大余县| 仙游县| 安义县| 南皮县| 崇信县| 乌拉特后旗| 河北区| 长白| 江山市| 金塔县| 黄冈市| 农安县| 靖州| 阜新| 汝阳县| 丰城市| 韩城市| 汉阴县| 鹤庆县| 龙门县| 井研县| 莱州市| 南丹县| 麦盖提县| 桑日县| 隆回县| 阳谷县| 安国市| 富源县|