先日公開した、ドラゴンクエスト2のふっかつのじゅもん仕組み解説記事について、
船入手のフラグが間違っているのではないか?というご指摘を受けたので、それを確認してみました。
結論
記事の内容は正しくなかったようなので、修正しました。
検証の結果わかったことは、
- 船の入手イベントはフラグが 0 → 1 → 3 と推移し、通常プレイでは 2 にならない
- フラグ 2 はフラグ 3 と同じ状況
フラグ (カッコ内は2進数) | 状況 |
---|---|
0 (00) | 何もしていない |
1 (01) | 女の子を助けた |
2 (10) | 船をもらった |
3 (11) | 船をもらった |
フラグ 2 と 3 が同じ状況というのは違和感があります。もしかしたら、発見できなかった違いなどがあるのかもしれません。
ご指摘前の私の解釈(正しくない)
ルプガナの街における、船の入手イベントについて、
- 船入手イベントのフラグは 00, 01, 10, 11 の 2 bit で表現される。すなわち、10進数でいうと 0 ~ 3 の 4 状態がある
- それぞれは次のように対応している
フラグ (カッコ内は2進数) | 状況 |
---|---|
0 (00) | 何もしていない |
1 (01) | 女の子を助けた |
2 (10) | 船をもらった |
3 (11) | --- |
- フラグが 3 のときは不正な状態であり、仮にそのじゅもんを作成できたとしても、「じゅもんがちがいます」と表示される
本当に上記のフラグが正しいのか、実際に確認してみました。
検証方法
Pythonプログラムを使い、じゅもんの生成・解析を行います。
ドラクエ2 ステータス→じゅもん
ドラクエ2 じゅもん→ステータス
キャラのステータスは以下の通り。
不正な呪文です
ローレシア なまえ ゆうてい
ローレシア どうぐ ['ロトのつるぎ(E)', 'ロトのよろい(E)', 'ぎんのかぎ', 'きんのかぎ', 'かぜのマント(E)']
ローレシア 経験値 1000000
サマルトリア王子が 仲間になっている
サマルトリアなまえ クッキー
サマルトリアどうぐ []
サマルトリア経験値 1000000
ムーンブルク王女が 仲間になっている
ムーンブルクなまえ マリア
ムーンブルクどうぐ []
ムーンブルク経験値 1000000
ゴールド 65535
復活場所 ムーンペタ
月のかけらを 使っていない
テパの村の水門を 開けていない
みずのはごろもを 織ってもらっていない
船のフラグ 何もしていない ← 今回の検証内容
サマル王子探索フラグ 見つけた
命の紋章 なし
水の紋章 なし
月の紋章 なし
星の紋章 なし
太陽の紋章 なし
パターン 0
ドラクエの25周年記念に Wii ソフトとして販売された移植版のDQ2で検証しています。ファミコン版と同等の内容のはずです。
結果
フラグ 0 でスタート
ルプガナ初訪問時、フラグは0です。
- 女の子がグレムリンに襲われている
- 船は未入手
[使用呪文]
ぱゆれ ろねけ きみめと
にとよ しちく ごるめら
くらぶ まやに ぽとぬち
て
グレムリンを倒した。フラグは 1 に。
グレムリンに襲われている女の子を助けることで、フラグが一つ進みました。
下の画像は、一度ゲームをやめ、再びルプガナの街に戻ってきた状態です。
- 女の子と、そのおじいさんのセリフが変わる
- 船は未入手
[この状態で聞ける呪文]
ぱゆれ ろねけ きみめと
にとよ しちく ごるめら
くらぶ まやに ぽとぬち
て
船を入手した。フラグは 3 に。
女の子を助けたお礼に、おじいさんから船をもらえます。
- 女の子とおじいさんのセリフは、フラグ 1 のときと同じ
- ルーラをすると、船も一緒についてくる状態
[この状態で聞ける呪文]
ぱゆれ ろねけ きみめと
にとよ しちく ごるめら
くらぶ まやに ぽとぬち
て
フラグ 2 がない?
以上から、フラグ 2 を経由していないことが分かります。
フラグ 1 → 3 に移る過程で、2bit目(2進数の右から2ケタ目)しか変化していないので、次のような仮説が立てられそうです。
【仮説】
フラグの 1 bit目は、女の子を助けたかどうか
フラグの 2 bit目は、船を入手したかどうか
をそれぞれ表す
つまり、「女の子を助けたかどうか」と「船を入手したかどうか」が別のフラグで管理されているという説です。
この仮説が正しければ、フラグが 2 (10) のときは、「女の子はまだ助けていない」かつ「船は入手済み」という、通常プレイではありえない状態になるはずです。
すなわち、フラグが 2 となる呪文を入力すると、不正な状態とみなされ、「じゅもんがちがいます」と表示されることが予想されます。
フラグ 2 で試してみる
呪文作成プログラムで、フラグを 2 とした呪文を作りました。
[使用呪文]
めこせ せべれ らぺいじ
ずにら したか ぎゆへむ
あまげ なのこ じかくあ
い
入力してみます。
通りました。
状況を確認すると、
- グレムリンは既に倒されている
- 船は入手済み
これはフラグが3のときと同じ状態です。
すなわち、女の子を助けた後の状態でしたので、仮説は正しくなかったようです。
まとめ
- 船の入手イベントはフラグが 0 → 1 → 3 と推移し、通常プレイでは 2 にならない
- フラグ 2 はフラグ 3 と同じ状況
もしお詳しい方がいれば、コメントいただけると幸いです。
クレジット
このページで利用している株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像の転載・配布は禁止いたします。
© 1987 ARMOR PROJECT/BIRD STUDIO/SPIKE CHUNSOFT/SQUARE ENIX All Rights Reserved.