バグ: バトル時、カードの使用時イベント中に強制ロードを行ったとき、直後の行動でカードの使用時イベントが重なるとCWPyが異常な状態になる事がある
Issue #393
resolved
説明が難しいですが、例えば、メッセージコンテント「あ」がひとつだけ設定された召喚獣カードを2枚所有するキャストとバトルを行い 1枚目のメッセージ表示中に強制ロードを行うと 1枚目を処理を中断するも 2枚目のメッセージを表示してしまい、そのまま異常な状態でロードされてしまいます。エラーログはその条件の時に出力された物です。
- 最終セーブが拠点だった場合、メッセージが表示されたまま拠点へ戻る。PCなどの各カードを選択する事が可能だが、メッセージ送りをするとフリーズ。
- 最終セーブがシナリオ内だった場合、やはりメッセージが表示されたまま戻る。拠点の時とほぼ同じ状態。
- 展開されたXML形式のシナリオにて確認。
- 二枚目のイベントを効果コンテントひとつに変更した場合は異常は発生しなかったが、使用時イベントの内容次第(検証用として新たに用意できないほど複雑なもの)では処理もロードもできずにフリーズしてしまうことがあった。
- 例に出したようにメッセージコンテントが 2枚連続する場合は、確定で異常が発生した。
- 召喚獣カード 2枚といわず、召喚獣カードから技能またはアイテムカードの流れでも可。
- 複数キャストを用いた検証は行っていない。
cardwirthpy_20160714
Version : 1.0 Beta 3 / 2016-07-14 23:04:57
DateTime: 2016-07-22 21:09:03
Traceback (most recent call last):
File "cw\thread.pyo", line 683, in run
File "cw\thread.pyo", line 713, in _run
File "cw\thread.pyo", line 722, in main_loop
File "cw\eventhandler.pyo", line 100, in run
File "cw\eventhandler.pyo", line 309, in rclick_event
File "cw\eventhandler.pyo", line 364, in background_event
File "cw\thread.pyo", line 1290, in call_modaldlg
File "cw\thread.pyo", line 722, in main_loop
File "cw\eventhandler.pyo", line 113, in run
File "cw\eventhandler.pyo", line 618, in executing_event
File "cw\battle.pyo", line 84, in start
File "cw\battle.pyo", line 147, in run
File "cw\character.pyo", line 878, in action
File "cw\character.pyo", line 824, in use_card
File "cw\event.pyo", line 1031, in start
File "cw\event.pyo", line 714, in start
File "cw\event.pyo", line 766, in run
File "cw\event.pyo", line 874, in action
File "cw\content.pyo", line 3204, in action
File "cw\thread.pyo", line 1453, in show_message
File "cw\thread.pyo", line 935, in update
File "cw\thread.pyo", line 938, in update_groups
File "pygame\sprite.pyo", line 399, in update
File "cw\sprite\message.pyo", line 649, in update
ValueError: <SelectionBar DirtySprite(in 1 groups)> is not in list
Comments (6)
-
repo owner -
reporter 残念ながら、召喚獣やアクションの割り込みを確認しました。 確認方法は最初の報告の時と同じです。 異常な状態になったり、フリーズしてしまいました。
cardwirthpy_20160723 CardWirthPy 1.0 Beta 3 Build: 2016-07-23 16:51:48
-
repo owner pull request #1513
PCの行動でテストしたのが間違いだったようです。敵とおそらくNPCの行動で問題が起きます。
今度はそちらも修正できたと思います。いかがでしょうか。
-
reporter PCや敵やNPCの行動が割り込むことなく強制ロードに成功することを確認しました。 三者全てでテストしましたが特に問題なく、正常に動作しました。
- 確認方法は、メッセージコンテントひとつが設定された召喚獣カード2枚所有の同一PC/敵/NPCによる方法。最初の報告時と同じ方法です。
cardwirthpy_20160724 CardWirthPy 1.0 Beta 3 Build: 2016-07-24 01:42:08
-
reporter それでは、この Issueの resolvedを押させていただきます。
- 報告者側で完了したか判断してしまっていいのかと考えてしまいますが、メールでこちらの報告内容も届いているはずですし、それほど重く考える必要もないはず……。
-
reporter - changed status to resolved
- Log in to comment
ありがとうございます。pull request #1511で修正できたと思います。
宿の強制ロード処理はいくつかの段階に分けて行うのですが、その段階の隙間(最初の処理と戦闘の強制終了処理の間)に次の召喚獣やアクションが割り込んで動き出してしまっていました。