反撃命令による武器選択の基準がよく分からないと言われているSFC版第3次スーパーロボット大戦ですが、反撃命令の設定箇所をざっと解析してみたところ、それぞれの命令で使用武器の選択基準が違っている事が分かりました。大まかな内容ですが、基本的には以下のような基準で反撃武器や行動を選択しています(なお、原則として敵軍やNPCのパイロットは「必ず反撃せよ!」に設定されています)。 「必ず反撃せよ!」は、残弾や残りENにかかわらず命中率が1%以上ある最強の武器を選択。その武器の命中率がゼロになる場合は、次に威力が高く命中率が1%以上ある武器を選択するという思考を繰り返す。どうしようもない場合は命中率がゼロでもとにかく現状で使用可能な最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる。弾切れや射程外からの攻撃には何もしない。先攻側の攻撃でHPがゼロになると判断しても反撃を試み、それができない場合は反撃不能扱いとなる。原則として武器選択の際に相手の残りHPは考慮しないため、反撃相手のHPが仮に残り1であろうとも最強の武器で反撃する。前述の通り、敵軍やNPCは原則としてこの命令が設定されているため、回避力(=パイロットの反応と操縦と直感の総和に機体のサイズ補正を適用した数値)が低いユニットは威力重視の武器で反撃される事が多い。残弾やEN消費も気になるところだが、分身持ちであるゲッター2系やF91であればこの命令を活用できるかもしれない。 「積極的にいけ!」は、相手が一撃で倒せる場合は命中率が1%以上ある最強の武器を選択。但し、その武器の残弾が残り1だったり、その武器を使用してもう一度使用できるだけの残りENがなくなる場合は使わず、次に威力が高く命中率が1%以上あり、かつ残弾が残り2以上か現在のENで二回以上使用できるEN消費武器を選択するという思考を繰り返す(EN消費武器に関してはたまに例外あり)。どうしようもない場合は弾切れ、またはEN枯渇にならない命中率がゼロの現在選択できる最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる(そのため、条件を成立させれば弾切れでなくともパイロットが弾切れの台詞を吐く姿を拝める)弾切れや射程外からの攻撃には何もしない。。相手を一撃で倒せない場合の思考も同様。やはり原則として武器選択の際に反撃相手...
初期ROM版紋章の謎のバグ修正の進捗ですが、とりあえず「隠れた財宝の入手時にコントローラーのボタンを押すと使用回数がおかしくなるバグ」は修正できました。
バグの原因を簡単に説明しますと、隠れた財宝を入手する際には財宝のある場所に待機したユニットのクラスが盗賊かどうか判定し、盗賊であれば財宝を入手、そうでない場合は運のよさの確率で財宝を入手するというプログラムが組まれています。この時、財宝を発見すると「かくれたざいほうを はっけんした!」というウィンドウを表示するためのサブルーチンが展開するのですが、その際に一旦RAMの上位と下位を入れ替え、更にコントロールを制御するサブルーチンに飛んでいます。このサブルーチン内でアイテムの使用回数を一時的にRAMに読み込み、サブルーチンから戻る際に再びRAMの上位と下位を入れ替えてコントローラー制御を解除、そして元の状態に戻せばRAMに読み込んだ入手アイテムの使用回数が正常に書き込まれるのですが、この命令が記述されていないためにアイテムの使用回数ではなくコントローラーのボタンを押した数値が読み込まれてしまい、そのままサブルーチンが終了するのでアイテムの使用回数がおかしくなるというものでした。
バグの修正方法としてはこのRAMの上位と下位を入れ替えるコマンドを挿入すればいいのですが、挿入する余地がないので空きスペースにジャンプ処理をしてそこでRAMの上位と下位を入れ替えて再びジャンプで元の位置に戻ってくるという方法を採用しました(サブルーチン処理化すると何故かフリーズしてしまうのです)。この修正分だけをパッチ化してもいいのですが、さすがにこれ一つだけではほぼ需要がないと思われますので、もう幾つか不具合を修正するパッチとセットにしてから公開する予定です。
さて、バグの修正だけではつまらないので何かしらの改変要素を追加できるパッチを作ろうと思っているのですが、例えばホースメンが下馬するとスナイパーになる(=ハンターがホースメンにクラスチェンジ後に下馬するとスナイパーとして使える)というものや、以前も少し触れましたシューターを自軍で使用可能にする要素などはいかがでしょうか。シューターは戦士からオリオンの矢でクラスチェンジ可能なクラス(戦士ならば力があるのでバリスタを運べそうですし…)とし、通常は移動不能(その場で攻撃するしかない)ですが「おりる」で再び戦士として移動や斧による攻撃が可能というものです。またはSナイトやパラディンの下馬状態をソルジャーにすればナイトのクラスが余りますので、これをシューターの下馬(?)状態のクラスにするというのもいいかもしれません。何か面白そうなアイデアがあればご意見を頂けますと幸いです。
コメント
コメントを投稿