DQ3 ストーリー変更(ロマリア~ノアニール7)

さて、一連の変更の中でマップの追加と並んで一番時間をかけたイベントの実装を行います。ネタはだいたい揃っているので後はそれを組み合わせればいいわけですが、実はもう一山ありました。その説明はおいおいするとして、何をやりたいかというと「ロマリア王に話し掛けると橋の修復状態を兵士が修理失敗の旨を報告に来る」というだけなのですが、見かけによらず奥が深かったです。まずはカウンタと対応するアクションを決めます。カウンタに1000をセットするのはロマリア王に話し掛けたときです。

カウンタ処理
1000PCをダミー化? ロマリア王の前に整列させる
ロマリア王を下に向かせる
2000「おお○○よ! いいところに きた…」(ロマリア王のセリフ)
3000兵士出現 座標X=#$31 Y=#$2Aに移動
4000「して どうであった?」(ロマリア王のセリフ)
5000「は、残念ながら 今回も やはり…」(兵士のセリフ)
6000「やはり そうか…。下がってよい」(ロマリア王のセリフ)
7000兵士移動 座標X=#$31 Y=#$36に移動し消滅
8000PC表示
9000ダミーを消滅
10000「やはり ドン・ガアデに頼まんと…」(ロマリア王のセリフ)

PCはロマリア王の正面および右側から話し掛けることが出来ますが、兵士が報告に来るのに王がそっぽを向いたまま応対というのはあんまりなのと、PCの位置によっては兵士が座標X=#$31 Y=#$36から座標X=#$31 Y=#$2Aに移動する途中にかかってしまうこともあるため、イベント開始直後にPCは整列させ、王は下を向かせることにします。「PCを移動させる」処理はすごろく開始時に2人目以降のキャラクターが整列するのでその部分をパクリます。PC関連ではまだいろいろやらなくてはいけないことが多いのですが、後でまとめて説明します。

  • データ: $1A08DA NPC1(全部16進表示)
ID不明CGID向きXY階層レイヤーMoveSRTALKSR
56D2804000FF0FF00CCF1D7CDAC5E兵士のNPC
56E2800000FF0FF00CCF300CDAC5EPC1人目
56F2800000FF0FF00CCF390CDAC5EPC2人目
5702800000FF0FF00CCF400CDAC5EPC3人目
5712800000FF0FF00CCF480CDAC5EPC4人目
57228037203502500CCF280CB856Bロマリア王

  • SR: $0CC5C6 ロマリア城内2FNPC情報設定
0CC5EB-F4NOP
0CC5F5JSL $CBF0ADSR: $0BF0AD
0CC5F9JSL $CBF0D2SR: $0BF0D2

  • SR: $0BF190 主人公が即位していない場合のロマリア王配置(新SR)
0BF0ADLDA $354FA=$354Fフラグチェック
0BF0B0AND #$0002A&=#$0002
0BF0B3BNE #$1Cif(z==off) goto $0BF0D1
0BF0B5LDA $35B0A=$35B0フラグチェック
0BF0B8AND #$0004A&=#$0004
0BF0BBBEQ #$0Dif(z==on) goto $0BF0CA
0BF0BDLDA $35B0A=$35B0フラグチェック
0BF0C0AND #$0008A&=#$0008
0BF0C3BNE #$05if(z==off) goto $0BF0CA
0BF0C5LDA #$0572A=#$0572追加イベント用ロマリア王NPC
0BF0C8BRA #$03goto $0BF0CD
0BF0CALDA #$0346A=#$0346オリジナルロマリア王NPC
0BF0CDJSL $C75828SR: $075828NPC1配置
0BF0D1RTLreturn

  • SR: $0BF0D2 ロマリア城内2FNPC情報設定(サブ)(新SR)
0BF0D2LDA $35B0A=$35B0フラグチェック
0BF0D5AND #$0004A&=#$0004
0BF0D8BEQ #$32if(z==on) goto $0BF10C
0BF0DALDA $35B0A=$35B0フラグチェック
0BF0DDAND #$0008A&=#$0008
0BF0E0BNE #$2Aif(z==off) goto $0BF10C
0BF0E2LDA #$056DA=#$056D橋の修理状況を報告しに来る兵士NPC
0BF0E5JSL $C75828SR: $075828NPC1配置
0BF0E9LDA #$056EA=#$056E
0BF0ECJSL $C75828SR: $075828
0BF0F0LDA #$056FA=#$056F
0BF0F3JSL $C75828SR: $075828
0BF0F7LDA #$0570A=#$0570
0BF0FAJSL $C75828SR: $075828
0BF0FELDA #$0571A=#$0571
0BF101JSL $C75828SR: $075828
0BF105JSL $C7785FSR: $07785F 引数:1#$CBF10Dイベント設定
0BF10CRTLreturn

まずはイベント用のNPCを追加します。拡張パッチなので空き容量はたっぷりあります。ロマリア王は今回のイベント専用です。それ以外の時はオリジナルのままのNPCデータを使用します。

次にお約束の追加処理のSRをコールするためのスペース確保のためにSRを分割します。長くなったので一旦切ります。

コメント

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