天地を喰らうシリーズは策略を使うにあたって「軍師」に任命された武将がいないと使用不能になるのですが、軍師に任命された武将は戦闘が開始されると隊列の一番後ろに配置され、隊列が6人以上になると直接戦闘に参加できなくなるというシステムになっています。これがいわゆる文官タイプ(武力や兵士数が低く知力が高い傾向の武将)であればまだいいのですが、劉備や馬謖や姜維のように文武両道の武将を軍師に任命する必要がある場合は事情が変わってきます。そこで、軍師に任命した武将がどのような処理で隊列の一番後ろに回されてしまうのか調べてみました。その結果、大まかに言うと「戦闘開始時にまず隊列の人数をチェックし、6人未満である場合は各武将の状態をチェックし、正常であれば隊列の位置そのまま、それ以外の状態の武将は隊列の最後尾に変更する。6人以上の場合は軍師を隊列の最後尾に移動させるが、負傷中の武将がいる場合は更に軍師の後ろに配置する」という処理内容でした。ここで言う武将の状態は「00=負傷中(戦闘不能)、40=軍師、80=正常、C0=正常かつ軍師」の4種類で、この処理内容を変更すれば軍師に任命した武将も隊列の変更がないまま戦闘に参加できそうです。つまり「隊列が6人以上でも6人未満でも武将が正常な状態であれば隊列の位置そのままを維持し、負傷中の武将のみ隊列の最後尾に変更する」とすればよいのではないでしょうか。この仮説を基に改変を行い、成功すればパッチとして公開する予定です。
初期ROM版紋章の謎のバグ修正の進捗ですが、とりあえず「隠れた財宝の入手時にコントローラーのボタンを押すと使用回数がおかしくなるバグ」は修正できました。
バグの原因を簡単に説明しますと、隠れた財宝を入手する際には財宝のある場所に待機したユニットのクラスが盗賊かどうか判定し、盗賊であれば財宝を入手、そうでない場合は運のよさの確率で財宝を入手するというプログラムが組まれています。この時、財宝を発見すると「かくれたざいほうを はっけんした!」というウィンドウを表示するためのサブルーチンが展開するのですが、その際に一旦RAMの上位と下位を入れ替え、更にコントロールを制御するサブルーチンに飛んでいます。このサブルーチン内でアイテムの使用回数を一時的にRAMに読み込み、サブルーチンから戻る際に再びRAMの上位と下位を入れ替えてコントローラー制御を解除、そして元の状態に戻せばRAMに読み込んだ入手アイテムの使用回数が正常に書き込まれるのですが、この命令が記述されていないためにアイテムの使用回数ではなくコントローラーのボタンを押した数値が読み込まれてしまい、そのままサブルーチンが終了するのでアイテムの使用回数がおかしくなるというものでした。
バグの修正方法としてはこのRAMの上位と下位を入れ替えるコマンドを挿入すればいいのですが、挿入する余地がないので空きスペースにジャンプ処理をしてそこでRAMの上位と下位を入れ替えて再びジャンプで元の位置に戻ってくるという方法を採用しました(サブルーチン処理化すると何故かフリーズしてしまうのです)。この修正分だけをパッチ化してもいいのですが、さすがにこれ一つだけではほぼ需要がないと思われますので、もう幾つか不具合を修正するパッチとセットにしてから公開する予定です。
さて、バグの修正だけではつまらないので何かしらの改変要素を追加できるパッチを作ろうと思っているのですが、例えばホースメンが下馬するとスナイパーになる(=ハンターがホースメンにクラスチェンジ後に下馬するとスナイパーとして使える)というものや、以前も少し触れましたシューターを自軍で使用可能にする要素などはいかがでしょうか。シューターは戦士からオリオンの矢でクラスチェンジ可能なクラス(戦士ならば力があるのでバリスタを運べそうですし…)とし、通常は移動不能(その場で攻撃するしかない)ですが「おりる」で再び戦士として移動や斧による攻撃が可能というものです。またはSナイトやパラディンの下馬状態をソルジャーにすればナイトのクラスが余りますので、これをシューターの下馬(?)状態のクラスにするというのもいいかもしれません。何か面白そうなアイデアがあればご意見を頂けますと幸いです。
コメント
コメントを投稿