バトル中に内部エラー発生

Issue #1002 resolved
ルンバ created an issue

素の4.3では発生せず前回#1001のバグ修正以後のデイリービルドで発生するようです

Version : 4.3 (64-bit) / 2020-12-30 15:45:22
DateTime: 2021-01-06 11:24:33
Traceback (most recent call last):
File ".\cw\thread.py", line 955, in run
File ".\cw\thread.py", line 1007, in _run
File ".\cw\thread.py", line 1023, in main_loop
File ".\cw\eventhandler.py", line 114, in run
File ".\cw\eventhandler.py", line 399, in lclick_event
File ".\cw\sprite\statusbar.py", line 1259, in lclick_event
File ".\cw\battle.py", line 102, in start
File ".\cw\battle.py", line 173, in run
File ".\cw\character.py", line 1154, in action
File ".\cw\deck.py", line 371, in use
AssertionError

バトル中に内部エラー発生 同じツリー位置で再現します。
停止時点のデバッガのツリー位置はエネミーのカード使用イベント内での選択者エネミーでの称号所持分岐コンテント上です
再現率は100%ではないですが、同じツリー上の同じ称号所持分岐で高い確率で再現します

Comments (7)

  1. k4nagatsuki repo owner

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

    手許で単純な称号所持分岐を入れた使用時イベントを組んだ限りでは再現できないのですが(また使用した特殊技能カードの参照先が消えているというエラー内容からして称号所持分岐が問題とは考えづらい)、問題を再現する単純なシナリオやイベントツリーを示していただけるとありがたいです。

  2. k4nagatsuki repo owner

    pull request #184

    カードを喪失した際に山札から取り除く処理に問題がありました。おそらく称号所持分岐の直後にその処理があったのではないでしょうか。

  3. ルンバ reporter

    すみません、デバッガのウエイトを遅くして確認しなおしたら、特定パッケージの処理終了時点で発生でした。そのパケ内にはカード消去も含まれていたと思います。

    cardwirthpy_20210107e_x64を今試したところ、とりあえず以前のエラーログは出なくなりましたが、別のエラーが出ました。

    取り急ぎのログだけの報告で発生条件などはこれから確認して再報告します。


    Version : 4.3 (64-bit) / 2021-01-07 22:55:38
    DateTime: 2021-01-07 23:11:36
    Traceback (most recent call last):
    File ".\cw\thread.py", line 964, in run
    File ".\cw\thread.py", line 1016, in _run
    File ".\cw\thread.py", line 1032, in main_loop
    File ".\cw\eventhandler.py", line 114, in run
    File ".\cw\eventhandler.py", line 399, in lclick_event
    File ".\cw\sprite\statusbar.py", line 1267, in lclick_event
    File ".\cw\battle.py", line 103, in start
    File ".\cw\battle.py", line 174, in run
    File ".\cw\character.py", line 1152, in action
    File ".\cw\character.py", line 1069, in use_card
    File ".\cw\event.py", line 1462, in start
    File ".\cw\event.py", line 890, in start
    File ".\cw\event.py", line 964, in run
    File ".\cw\event.py", line 1491, in run_exit
    File ".\cw\event.py", line 1752, in effect_cardmotion
    File ".\cw\effectmotion.py", line 205, in apply
    File ".\cw\effectmotion.py", line 323, in apply_charactercard
    File ".\cw\thread.py", line 4885, in set_guardcardimg
    File ".\cw\sprite\background.py", line 1567, in init
    File ".\cw\sprite\background.py", line 1584, in update_scale
    File ".\cw\header.py", line 370, in get_cardimg
    File ".\cw\image.py", line 442, in get_cardimg
    AssertionError

  4. ルンバ reporter

    今度はエネミーのアイテムカード使用で発火した他エネミーのキーコードイベントの処理終了時点で発生みたいです。やはり再現率はかなり高いです。

    キーコード使用イベント → キーコード失敗✕イベント(パケ呼び出すがその中は空かメッセージコンテンツだけ)

    の間というか、キーコード使用イベント終了時に発生しているようです。

    キーコードイベントの流れは、まず使用されたエネミーを称号所持分岐で選択者にしてから、情報カード所持分岐パケを呼び出し情報カード非所持で処理終了 → 異常発生

    しかしキーコード成功○イベント が続く場合は正常進行のようでエラーは起こりません

  5. ルンバ reporter

    しかし同じシナリオのヴァージョン違いでテストすると上記の条件でもエラーは起きないのでちょっと正確な条件がわかりません

  6. k4nagatsuki repo owner

    pull request #185

    issue #969で余計なアサーションが入っていました。おそらく回避・抵抗修正のあるカードが使用中で、かつそのカードがラウンド中に消滅しており、かつキャラクターの手前に表示された場合にエラーになるはずです。

  7. ルンバ reporter

    たしかに停止時以外でPCもエネミーもカードの入れ替えを多々行っていました。 (停止タイミング以外なので原因に想定していませんでした) 最新版で正常動作確認しました。ありがとうございます。

  8. Log in to comment