DQ3 ひとさらいのアジトイベント解析
今回も改造無しで解析のみ行います。
前回の解析でキャラクターの動かし方は大体わかりましたが、「はじめはいなかったキャラクターが後からマップに登場する」やり方がまだわかりません。そういう条件に該当するイベントがないか調べてみると、「ひとさらいのアジトB2F」のイベントが思い当たりました。このイベントは、最初はマップにはいなかったカンダタ(2回目)と子分二人がグプタとタニアを牢から出した後マップに現れます。というわけでこの部分を真似ればよさそうです。
イベント実装一覧
今回も改造無しで解析のみ行います。
前回の解析でキャラクターの動かし方は大体わかりましたが、「はじめはいなかったキャラクターが後からマップに登場する」やり方がまだわかりません。そういう条件に該当するイベントがないか調べてみると、「ひとさらいのアジトB2F」のイベントが思い当たりました。このイベントは、最初はマップにはいなかったカンダタ(2回目)と子分二人がグプタとタニアを牢から出した後マップに現れます。というわけでこの部分を真似ればよさそうです。
今回は改造無しで解析のみ行います。また、今回の内容は「どうやらそうらしい」というだけで正しいかどうかについては確証が持てないということに注意してください。
さて、関係するのは
です。1,2,3はマップ進入時の初期化処理中のNPCの部分で呼び出されます。4は$0A49C9-でSR: $07785Fの引数として呼び出されているようです。SR: $07785Fはおそらくイベント登録用のSRと思われます。さて、イベントの中でよく出てくるのが、$0DADBB~$0DB091のSR群です。現在公開しているDQ3SFCEditorに付属しているRommap.xmlでは「フェードインまでxxxms?」としていますが、大嘘でした。これらのSRの中をよく見るとわかりますが、$7E3434をカウンタとして、$0DADBB~$DAEAAまではカウンタに特定の値をセットするSRで、$0DAEB1~$0DB091まではカウンタが特定の値になるまで処理を待つ、という機能のようです。いまいちはっきりしたイメージが持てないのですが、イベントは複数のスレッドのようなものが同時に走っていて、カウンタの値が変わるなどの条件で何らかのアクションを起こす、という仕組みになっているようです。