現在リリースしているDQ3 K.Mix 1.5.2でも発生する問題の指摘を頂きました。現象としては「まんたんコマンドで毒・麻痺を直しているのにその後歩くと状態異常状態が継続する」というものです。解決策として一度メニューを開けばステータスはリセットされます。また、そのまま戦闘に突入した場合もステータスは正しい状態です。この問題の原因はプレイヤーキャラクター(以下PC)のステータス情報(7E3925-)とは別に移動中のPCのステータスを保持している場所があるため、まんたんなどの処理を行った後この場所のフラグ状態もリセットする必要があった、ということです。お手本にしている移動中メインメニュー処理を呼び出している周辺を見てみます。
- SR: $076689 移動中入力処理_SR_0000
略 | |||
---|---|---|---|
0766A3 | JSL $C3AC8A | SR: $03AC8A | 移動中メインメニュー処理 |
0766A7 | JSL $C62DD5 | SR: $062DD5 | PC再描画+ステータスリセット |
略 |
このSR: $062DD5の中でPCのキャラクターグラフィックIDのセット・切り替え(水着装備時など)を行う他、移動中のHPMP減少増加フラグの再設定を行っています。移動中にいちいち大元のステータス情報にアクセスするのは無駄が多いから簡単にアクセスする別領域に情報をコピーして持っているということなのだと思います。というわけで、単純にこのSRをショートカット実行の後に呼んでやればいいということになります。
- SR: $07CF00 ショートカット実行処理
略 | |||
---|---|---|---|
07CF2B | JSL $C7D100 | SR: $07D100 | ショートカット用呪文実行処理 |
07CF2F | LDA $7F70 | A=$7F70 | |
07CF32 | STY $20C4 | $20C4=Y | |
07CF35 | JSL $C31EE4 | SR: $031EE4 | フィールド画面復帰? |
07CF39 | JSL $C62DD5 | SR: $062DD5 | PC再描画+ステータスリセット |
07CF3D | SEC | c=on | |
07CF3E | RTS | return |
SR: $076689の移動中メインメニュー処理のSRをコールしている前後では他のSRもコールしている部分があるのですが、中を覗いてもRAMの初期化をしているだけで意味がわからなかったので余計なSRはとりあえずコールしないことにします(また問題が見つかったらもう少し深く掘ってみます)。
未だにちょこちょことバグが見つかっている状態ですが、何度も書いている通り、別のでかい変更の作業中のため、すぐにリリースはしません(これもちゃんとリリースできるかはまだ不明ですが)。もう2,3個バグが見つかった場合には先にこれらのバグのみの修正版をリリースするかもしれません。
コメント
初めまして。
今、K.mixを楽しくプレーさせて頂いています。
オリジナルを忘れてしまっているので仕様でしたら申し訳ないのですが、3点気になった事がありました。
1.初めてバハラタに着いた時に、夜でも昼と同じように動いていました(風景は夜でした)。
2.船乗りの骨を手に入れた直後に道具として使用せずにそのままロマリアにルーラをに、船に乗って幽霊船が出現するポイントに行っても幽霊船が現れなかったです。その場で船乗りの骨を使用したところ、透明の幽霊船がアリアハン大陸の陸の上にありました。
3.過去のテドンでのイベントのカコデーモンが「時間稼ぎをしてくれ」と言った時、武器屋の二階に行き、戻ってくると本人がおらずフリーズをしました。
以上です。パソコンが古いのでたまたま起こっってしまっただけかもしれませんが、コメントさせて頂きます。
お手数をお掛け致しますがご検討の程、宜しくお願い致します。
プレイしていただきありがとうございます。
3はバグなので何らか対処します。
1については、意味がよくわからないのですが、「夜になってもグプタと老人がバハラタマップ下部にいる」ということならオリジナルからの仕様です。
2については、「船乗りの骨を不正に入手した場合」にはオリジナルから同様の現象が起きます。船乗りの骨を通常の手段(变化老人の家で変化の杖と交換)で入手した場合には交換の申し出に「はい」と返事をした段階で幽霊船出現フラグが立ち、規定の場所(ロマリア南部の海)に幽霊船が出現します。この処理をすっ飛ばして船乗りの骨を入手し、使用すると船乗りの骨の指す先はアリアハン東部になります。通常のプレイで再現させる方法が不明なので対処しません。