DQ3 シャナクの効果変更2

前回は講釈をたれただけで終わってしまったので実装に取り掛かることにします。気をつける点は「はんにゃのめんを装備している場合は混乱ステータスは解除しない」くらいです。DQバイナリ改造Wikiに各種ステータス異常のビットの情報が公開されているので、いてつく波動の実装を見ながら実装していきます。

  • SR: $02D474 シャナク
02D474 LDX $23E8 X=$23E8
02D477 STX $2428 $2428=X
02D47A LDA #$0000 A=#$0000
02D47D JSL $C2CB70 SR: $02CB70 引数:1#$2047 引数:2#$00FF
02D485 JSL $C2CB70 SR: $02CB70 引数:1#$2051 引数:2#$0002
02D48D JSL $C2CB70 SR: $02CB70 引数:1#$2051 引数:2#$0004
02D495 JSL $C2CB2B SR: $02CB2B 引数:1#$2050 引数:2#$0002
02D49D BEQ #$0C if(z==on) goto $02D4AB
02D49F LDA #$0078 A=#$0078
02D4A2 STA $242C $242C=A
02D4A5 JSL $C2B87A SR: $02B87A
02D4A9 BVS #$08 if(v==on) goto $02D4B3
02D4AB JSL $C2CB70 SR: $02CB70 引数:1#$2050 引数:2#$0010
02D4B3 JSL $C1A867 SR: $01A867 引数:1#$017A
02D4B9 LDX $23E8 X=$23E8
02D4BC JSL $C2CAD9 SR: $02CAD9 引数:1#$203C 引数:2#$00FF
02D4C4 CMP #$0005 A>=#$0005?
02D4C7 BCC #$04 if(c==off) goto $02D4CD
02D4C9 JSL $C2B977 SR: $02B977
02D4CD JSL $C1E32E SR: $01E32E 引数:1#$00C4
02D4D3 SEC c=on
02D4D4 RTL return

$02D47D-$02D494では、行動対象者($7E23E8)のそれぞれ、ねむり、マホトーン、マヌーサの状態フラグをOFFにしています。次に敵味方の状態を調べて敵であればすぐさま混乱回復処理($02D4AB)に処理を飛ばし、味方であれば、はんにゃのめん(#$78)の装備状態をチェックし、装備していなければ混乱回復処理($02D4AB)に処理を飛ばし、メッセージ「○○のステータスいじょうが かいふくした!」を表示します。最後に味方であればウィンドウの再描画処理を行ってSEを鳴らして終わりです。

あとは呪文表示位置や習得可能職業などをいじって終わりです。それから、全員マホトーン状態になった場合にどうしようもないのでぎんのロザリオにもシャナクの効果をもたせることにします(こちらは設定変更だけで対応できます)。消耗品として設定しなおし、とりあえずランシールのきえさりそうを売っている道具屋で300Gで売るようにしました。