【バグ情報】CW1.50:バトル開始イベントのバグ
CW本体更新関連メモ@各バージョン変更点まとめ
概要
バトル開始イベントの中でシナリオクリアコンテントを使用すると、戦闘終了の処理が正しく行われないまま宿に帰還する。その結果、PCのアイテム欄に戦闘時に配布されたアクションカードが残り、プレイヤーが対策を取らずにセーブして宿を出ると、次回からその宿をロードできなくなる。
公式エンジンにおいてはCW1.50特有の現象で、CW1.20~1.30ではバトル開始イベントが無視されるため影響を受けない。
私家版では、CardWirthNextで、v.1.6.0.14までCW1.50と同じ現象が発生する。
[▲上へ]
何が起きるか
以下は、バトル開始イベントの中でパーティーが宿に戻された直後にPCの手札欄を開けてみたところです。「傷薬」と「コカの葉」各1個は元々このPCが持っていたもので、戦闘時の手札欄の中身が、そのままアイテム欄に残る模様です。
戦闘の手札として技能カードが配布されていると、技能もアイテム欄に残ります。
これらPCのアイテム欄にあるアイテム以外のもの、アクションカードや技能が不具合の原因となります。
なお、技能と召喚獣の所持欄には異常は発生していませんでした。
すぐに影響があるわけではない
PCのアイテム欄がおかしくなったからと言って、すぐに不都合が生じるわけではありません。この状態でセーブしてしまっても、その時点では特に何もなく、普通に動けます。
手札欄がおかしいままなのでお勧めはしませんが、そのまま再びシナリオをプレイすることもできます。
効果系カード入手・所持分岐・喪失の各コンテントも、(アイテムは見た目がおかしいですが、実態としては)問題なく動いているようです。
いつ問題が発生するのか
問題発生を確認できたのは、以下の4つの場合です(今のところ)。(1)セーブして、対策を取らずに宿から出る→以降、その宿をロードしようとしたとき
- 「範囲チェックエラー」または「ストリームからの読み取りエラー」が発生し、ロードに失敗します。
(2)PCのアイテム欄にあるアクションカードや技能カードを、荷物袋やカード置き場に移動させたとき
- 荷物袋やカード置き場に入った時点で見えなくなり、移動や削除ができなくなります。
見えないカードが生じると、ユーティリティモードでカードの更新を行う際、エラーが出るようになります。
(3)PCのアイテム欄にアイテム以外のものが存在する状態で冒険を中断したとき
- 該当するパーティーを選択して冒険を再開しようとするとエラーが発生します。
(4)PCのアイテム欄にアイテム以外のものが存在する状態でパーティーから外す or パーティーを解散したとき
- 該当するPCを宿帳からパーティーに加入させようとするとエラーが発生します。
対策
戦闘開始直後に宿に戻るという稀なパターンであること、知っていれば簡単に回避可能なことから、影響はごく限定的と考えられます。ただし、結果が重大なので、シナリオを作る際には十分な配慮が必要です。
シナリオを作る場合は……
- とにかく、不具合が発生する構造を避けることが重要です。
バトル開始イベントの中で、シナリオクリアコンテントを使わないようにします。 - 戦闘開始と同時にパーティーを宿に戻したい場合は、1ラウンド目のラウンドイベントを使うか、エリア上のイベントで戦闘を表現するなど、他の方法を選ぶと安心です。
シナリオを遊んでいて、この不具合に遭遇した場合は……
- PCのアイテム欄に「カード交換」や「攻撃」「防御」などの明らかに戦闘中しか見ないカード(アクションカード)や技能カードが入っていたら、すぐにそれらのカードをごみ箱に送り、破棄してください。
全てのパーティーメンバーのアイテム欄からアイテム以外のものを残らず破棄すれば、正常に戻ります。- 不具合で生じたカードは、キャラクター情報の「アイテム」タブに表示されません。
どれを削除すべきか分からないときは、キャラクター情報を参考にしてください。
- 不具合で生じたカードは、キャラクター情報の「アイテム」タブに表示されません。
- シナリオ内で一度戦闘して正常に終了すると、アイテム欄の余分なカードが回収され、正常に戻ります。
手作業で1つずつ削除するのが面倒なら、簡単な戦闘シナリオを用いて解決を試みても良いでしょう。
- <注意1>
-
一度でもセーブした場合、宿を出てしまうとロードができなくなるので、破棄は宿を出る前に実行する必要があります。
- 逆に言えば、セーブしてしまっても、宿を出るまでは大丈夫です。
落ち着いてパーティー全員のアイテム欄を確認し、そこにあるはずがないカードを破棄してください。 - 慌てて宿を出たり、CardWirthを終了させないようにすることが、何よりも大事です。
- 逆に言えば、セーブしてしまっても、宿を出るまでは大丈夫です。
- <注意2>
-
PCのアイテム欄にあるアイテム以外のものを、荷物袋やカード置き場に移動させないでください。
また、アイテム欄にあるアイテム以外のものを持つPCをパーティーから外したり、破棄前にパーティーの解散や冒険の中断をしないでください。
上の注意書きのどれかを実行して戻せなくなったとき
- バグで生じたカードを荷物袋やカード置き場に移動させていなければ、バグったパーティーのファイルをWPLとWPTセットで削除すれば回復します。
そのかわり、削除したパーティーは復活できません。 - パーティーを失いたくないとき、バグで生じたカードを移動させてしまったときは、バイナリエディタで問題部分を削除するしかありません。
バグで生じたカードを宿内から完全に除去すれば、元通り読み込めるようになります。
なお、編集を間違うと宿が完全に使い物にならなくなります。自己責任でお願いします。
バグで生じたカードについて
効果系カードに似ているが……
バグによってアイテム欄に生成されたアクションカードや技能カードの中身を覗くと、- エディタで作成した効果系カードに存在する設定項目のうち、先頭からホールド状況までの各種共通部分のデータを持っています。
これはバグで生じた技能カードも同じで、通常なら末尾にある技能レベルと使用回数の情報が存在しません。 - 荷物袋やカード置き場に移動した際、Environment.wydに記載されるカードの種類を表す番号は「0」です。
→通常:技能=1、アイテム=2、召喚獣=3 - 内容情報の先頭に存在するカードの種類番号は、PC所持欄にあるとき、荷物袋やカード置き場にあるとき共に「0」です。
→通常:技能=5、アイテム=3、召喚獣=6(CW1.50のみ/CW1.20~1.30ではカードの種類に関わらず全て0) - PCのアイテム欄にあるときは画像が見えていますが、宿データには画像は書き込まれていません。
アイテム欄にあっても、アイテムとしてカウントされない
アイテム欄がバグったところへ、さらにアイテムカードを配布すると、元々あったカードのうちアクションカードや技能を除くアイテムのみの枚数+追加配布したアイテムカード枚数が所持上限に達したとき、カードの配布先が荷物袋に変わります。(※CW1.28以降では、PCのアイテム欄にアイテムを配布したとき、入らない分は荷物袋に入る。)
バグで生成されたカードは、やはりアイテムとして数えられていないようです。
一方、アイテム所持欄に存在するカード数には含まれ、所持上限よりも所持数の方が多くなることがあります。
- 例:以下は、元々アイテム欄に空き枠が1つあった場合。
追加配布したアイテム「確認用I」は、1つ目がアイテム欄の空き枠に収まり、2つ目以降は荷物袋に配布されます。
その他
- バグでアイテム欄に生成されたアクションカードや技能カードを荷物袋やカード置き場に移動させたとき、パーティーのWPTファイルやEnvironment.wydに書き込まれるカードの情報は、データ長や保存項目など形式的には問題ないようです。
- 荷物袋やカード置き場内のカードの具体的内容を保存する (カード名).wid も、問題なく生成されます。
PCが所持していたときの内容がそのまま書き込まれていて、何か増えたり減ったりはありません。 - バグで生成されたカードをPCの所持欄から他に動かさなければ、カードの更新を行ってもエラーは発生しません。
(オマケ:私家版での挙動)
CardWirthNext
不具合修正版(v.1.6.0.15)が公開済みです。v.1.6.0.14まではCW1.50と同じ症状が出ますので、シナリオ作成の際には過去バージョンを利用している人のために対策をした方が無難です。
CardWirthPy(Reboot)
v.0.12.2の時点で、特に不都合は起こりません。宿に帰還後PCの手札欄にアクションカードが残ることはないし、次回以降も正常にロードできます。
ただ、宿に戻った直後にPCにカーソルを合わせると、下のような戦闘時の表示と思われるものが消えずに残っているのが確認できました。この表示は一旦宿を出て戻ると消えており、その後に影響を及ぼす事もないようです。
なお、この戦闘の表示が残る現象はv.0.12.3β1で修正され、それ以降のバージョンでは発生しません。
[▲上へ]