DQ3 ストーリー変更(光の鎧入手9)

残っている追加フロアとガライ離脱部分を実装します。追加フロア自体はイシスのほしふるうでわのあるフロアをそのまま使いまわします。また、ガライの離脱ですが、まあ普通に考えればDQ4のパノン離脱時のように「フィールドに出たら離脱」が自然なのですが、フィールド上のイベント処理のSRがいまいち理解できない(ほかにも処理が存在したのでどう間にはさめばいいかよくわからない)ため、やむを得ず光の鎧を入手直後に離脱するようにしました。敵地でひとりで出歩くなんて根性ありますねw。イベントは光の鎧入手直後、所定座標にPCが到達したときに発生させるようにします。当然ながらルーラ、リレミトは使用禁止です。

  • SR: $0DF255 バラモス城B2F進入時初期化処理(新SR)
0DF255LDA #$00ADA=#$00AD
0DF258JSL $C77365SR: $077365サブマップ画像情報取得
0DF25CJSL $CC997CSR: $0C997C
0DF260JSL $CADEB9SR: $0ADEB9フロア階層設定(B2F)
0DF264JSL $CADE4FSR: $0ADE4Fルーラ・キメラの翼使用不可(封印)設定
0DF268JSL $C77843SR: $077843 引数:1#$CDF28C移動・宝箱・ドア・NPC情報設定用SRアドレス設定
0DF26FJSL $C7785FSR: $07785F 引数:1#$CDF2A2イベント設定
0DF276JSL $C7787BSR: $07787B 引数:1#$CDE326特殊効果設定?
0DF27DJSL $C77889SR: $077889 引数:1#$CAE51B特殊効果設定?
0DF284RTLreturn

  • SR: $0DF28C バラモス城B2F移動・宝箱・ドア・NPC情報設定
0DF28CLDX #$01B5X=#$01B5
0DF28FJSL $C614BBSR: $0614BB階段移動データ設定
0DF293LDX #$014BX=#$014B中身:光の鎧
0DF296JSL $C66696SR: $066696宝箱アイテム設定
0DF29ALDA #$05A3A=#$05A3ガライ離脱時のNPC
0DF29DJSL $C75828SR: $075828NPC1設定
0DF2A1RTLreturn

準備は出来たのでイベントの設計を行います。トリガーはPCが指定座標に到達したらセットされます。

カウンタ処理
1000ガライのNPC表示
2000PC再描画し、5人目を透明表示にする
3000ガライを階段に移動させ、消滅させる
4000イベント終了処理

  • SR: $0DF2A2 バラモス城B2Fイベント処理
0DF2A2LDA $35B4A=$35B4
0DF2A5AND #$0008A&=#$0008ガライと別れた
0DF2A8BEQ #$06if(z==on) goto $0DF2B0
0DF2AAJSL $CCD298SR: $0CD298イベント終了時処理?
0DF2AEBRA #$2Cgoto $0DF2DC
0DF2B0COPgoto $00FFE4
0DF2B1JSL $CCD276SR: $0CD276
0DF2B5LDA #$08B0A=#$08B0
0DF2B8LDX #$08D0X=#$08D0
0DF2BBLDY #$08F0Y=#$08F0
0DF2BEJSL $C75365SR: $075365PCが指定座標(X座標は範囲指定)に到達しているか?(しているc=on)
0DF2C2BCS #$02if(c==on) goto $0DF2C6
0DF2C4BRA #$EBgoto $0DF2B1
0DF2C6JSL $CDE6E1SR: $0DE6E1光の鎧を入手しているか(該当c=on)
0DF2CABCC #$E5if(c==off) goto $0DF2B1
0DF2CCJSL $CDADD8SR: $0DADD8カウンタに1000をセット
0DF2D0JSL $CDAED1SR: $0DAED1カウンタが2000になるまで待機
0DF2D4JSL $CDD682SR: $0DD682PC再描画?
0DF2D8JSL $CDADEDSR: $0DADEDカウンタに3000をセット
0DF2DCJSL $CDAEF1SR: $0DAEF1カウンタが4000になるまで待機
0DF2E0JSL $CCD298SR: $0CD298イベント終了時処理?
0DF2E4RTLreturn

  • SR: $0DF546 NPC1_MoveSR_05A3(ガライのNPC)(新SR)
0DF546COPgoto $00FFE4
0DF547JSL $CCD392SR: $0CD392キャラクターイベント中移動フラグON?
0DF54BJSL $CDAEB1SR: $0DAEB1カウンタが1000になるまで待機
0DF54FJSL $C4297CSR: $04297C 引数:1#$01 引数:2#$FFパーティ人数取得
0DF555ASLA<<1
0DF556TAYY=A
0DF557LDA $C5E5,YA=$C5E5+Y
0DF55APHAPush A
0DF55BLDX $C625,YX=$C625+Y
0DF55EPHXPush X
0DF55FJSL $C7C85BSR: $07C85B出現先座標をWX,WYで指定
0DF563JSL $CCD847SR: $0CD847キャラクターを下に向かせる
0DF567BRK $1055 ($0D1055)goto $00FFE6(メッセージ表示) #$1055
0DF56AJSL $CDACD2SR: $0DACD2キー入力でメッセージウィンドウを閉じる
0DF56ELDA #$0008A=#$0008
0DF571TSB $35B4A or $35B4
0DF574JSL $CDADE6SR: $0DADE6カウンタに2000をセット
0DF578JSL $CDAEE1SR: $0DAEE1カウンタが3000になるまで待機
0DF57CPLXPull X
0DF57DPLAPull A
0DF57ECPX #$08F0X>=#$08F0?
0DF581BCS #$0Eif(c==on) goto $0DF591
0DF583LDX #$0018X=#$0018
0DF586LDA #$001DA=#$001D
0DF589JSL $C75474SR: $075474キャラクター移動先座標指定
0DF58DJSL $CCD59DSR: $0CD59D指定座標にY軸→X軸の順でキャラクター移動
0DF591LDX #$0018X=#$0018
0DF594LDA #$0025A=#$0025
0DF597JSL $C75474SR: $075474キャラクター移動先座標指定
0DF59BJSL $CCD59DSR: $0CD59D指定座標にY軸→X軸の順でキャラクター移動
0DF59FJSL $C1E32ESR: $01E32E 引数:1#$0053再生BGM設定?
0DF5A5JSL $C75930SR: $075930キャラクター消滅
0DF5A9JSL $CDADF4SR: $0DADF4カウンタに4000をセット
0DF5ADRTLreturn

20100328104559.jpg

処理自体は特にこれといって特筆する点はありません。今まで説明したエッセンスの組み合わせで実装できます。これで光の鎧入手がらみの追加イベントは終わりです。実装は大変でしたが概ね事前の構想通り実現できました。

コメント

タイトルとURLをコピーしました