修正案:@効果対象の残留

Issue #460 resolved
Former user created an issue

カード使用中に以下の事を行うと@効果対象が残留 ・バトル開始 ・エリア移動 ・敗北・ゲームオーバー その後シナリオクリアで持ち込めました パーティから外したり中断しないかぎり次のシナリオに持ち込めます(セーブ終了後再開時は消滅)

Comments (2)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。

    調べてみたのですが、実際には問題の称号が持ち帰れる事は無いようです。

    これは推測なのですが、おそらく、Data/Temp内に生成されるキャラクターの一時ファイルの内容を見て、「持ち帰れている」と判断されたのではないでしょうか。

    実はTemp以下に一時ファイルが生成されるのにはタイミングがあって、キャラクターのデータが変更されるたびに毎回ファイルが書かれるわけではありません(パフォーマンスが悪化するため)。ほとんどの場合は、「このキャラクターは変更された」というフラグだけ立てて、一時ファイルは生成せずにおきます。シナリオの終了やセーブ直前などのタイミングで、始めて一時ファイルにデータが書き込まれます。

    今回の問題の流れを見ると、次のようになっていました:

    1. シナリオが終わる
    2. 終了処理の中でPCが一時ファイルに書き込まれる
    3. イベント中止処理が走る
    4. @効果対象などが取り除かれる

    こうして、一時ファイルには@効果対象が残っているが実際には取り除かれている、という状態が発生します。メモリ上では取り除かれているので、処理上で問題になる事はありません。実際、使用時イベントからエリア移動して、移動先のエリアで@効果対象の有無をチェックしても、見つかる事はありません。

    セーブをすると、その直前に一時ファイルも更新されるので、やはり問題なく@効果対象などが取り除かれたデータが書き込まれます。

    それにしてもこのような状況にはData/Tempの内容を日常的に見ていないと気づかないはずです。細かいところまでチェックしていただいてありがとうございます。


    ここまで書いて全然違う現象だったらどうしよう。

    その場合はまたお伝えください。

  2. Log in to comment