スキップしてメイン コンテンツに移動

最新の投稿

ファミコン版天地を喰らう 軍師キャラの隊列変更阻止について

 天地を喰らうシリーズは策略を使うにあたって「軍師」に任命された武将がいないと使用不能になるのですが、軍師に任命された武将は戦闘が開始されると隊列の一番後ろに配置され、隊列が6人以上になると直接戦闘に参加できなくなるというシステムになっています。これがいわゆる文官タイプ(武力や兵士数が低く知力が高い傾向の武将)であればまだいいのですが、劉備や馬謖や姜維のように文武両道の武将を軍師に任命する必要がある場合は事情が変わってきます。そこで、軍師に任命した武将がどのような処理で隊列の一番後ろに回されてしまうのか調べてみました。その結果、大まかに言うと「戦闘開始時にまず隊列の人数をチェックし、6人未満である場合は各武将の状態をチェックし、正常であれば隊列の位置そのまま、それ以外の状態の武将は隊列の最後尾に変更する。6人以上の場合は軍師を隊列の最後尾に移動させるが、負傷中の武将がいる場合は更に軍師の後ろに配置する」という処理内容でした。ここで言う武将の状態は「00=負傷中(戦闘不能)、40=軍師、80=正常、C0=正常かつ軍師」の4種類で、この処理内容を変更すれば軍師に任命した武将も隊列の変更がないまま戦闘に参加できそうです。つまり「隊列が6人以上でも6人未満でも武将が正常な状態であれば隊列の位置そのままを維持し、負傷中の武将のみ隊列の最後尾に変更する」とすればよいのではないでしょうか。この仮説を基に改変を行い、成功すればパッチとして公開する予定です。

レナス〜古代機械の記憶〜(Paladin's Quest) 続々・戦闘中の気絶状態からの復帰処理追加の計画

 前回の記事の仮説に従ってHP回復と同時にパーティーの状態フラグとステータス異常フラグを同時に書き換えるという処理(厳密にはHPが0の状態に専用の回復処理ルーチンに遷移する処理)を組み込んでみたところ、確かにボトルによる回復行動で気絶状態からの復帰ができるようになりましたが、その過程で問題が発生しています。

 回復行動の判定には「パーティーの状態フラグ(7E19ED)をチェックして気絶状態、または存在しないキャラクターを判定対象から外す」という前提を経て「回復対象者の現在HPが0だったら回復ルーチンをパスする」という処理に進むのですが、前段階の「パーティーの状態フラグをチェックして気絶状態、または存在しないキャラクターを判定対象から外す」という部分を変更してしまう(変更しないと回復対象にできない)と、エネミーが既に気絶状態にあるメンバーを攻撃してしまうという不具合が発生するようになる(詳しく調べていませんが、どうやら「残りHPが0かどうか」ではなく「パーティーの状態フラグに攻撃対象が存在しているかどうか」で攻撃対象を判定している模様)のです。これにより「攻撃された気絶メンバーの現在HPが負のオーバーフローを起こす」というような致命的な問題はないのですが、既に気絶して行動できないメンバーを狙って攻撃してくるという事はそれだけ戦闘中の残りメンバーの危機が少なくなってしまう=戦いの緊張感がなくなるという事になってしまいますので、この部分を何とか改善したいところです。

 改善案としては「行動IDが回復系行動だったらパーティーの状態フラグを無視して判定対象にする」というのが簡単そうなのですが、生憎と行動内容の定義処理は行動判定処理の後に始まるようになっていますのでそうもいきません。とりあえず考えられる事を色々と試してみて、上手く行けば改善できたものを、改善できなければ不本意ですがエネミーが気絶したメンバーを攻撃するバージョンのまま公開する予定ですが、いずれにせよさほど時間はかからないと思います。問題はメカニードスが破壊された際の処理でしょうか。ご存じの通りメカニードスにはボトルが使用できず、戦闘中にHPが0になると永久離脱してしまうので、戦闘中に限りボトルで復活が可能にするか、またはHPが0の状態で戦闘を終了しても離脱しないように処理するかのどちらにするかですね。もちろんそのままの処理にしておくという考え方もありますが、最後までメカニードスを使っていきたいという方もいらっしゃるかと思いますので、この辺りに関してもフォローしていきたいと思います。

コメント

人気の投稿

キャプテン翼4 ファンベルグの「光るシュート」とオルミーガの「吹っ飛ばし補正」について

第4次スーパーロボット大戦 初期型ROMと後期型ROMの物理的な見分け方と入手方法

第4次スーパーロボット大戦 改造コスト&改造数値分岐パッチを公開しました