バグ:wsn形式専用の機能を使ったメニューが表示されている状態で対象を選択しようとするとエラーが発生する?

Issue #1006 resolved
木綿豆腐怪獣 created an issue

はじめまして。バグ報告が初めてなのでテンプレートをそのままはりつけさせていただいていますが、使い方が誤っていたらすみません。また、私はデイリービルドが更新されるたびに上書きする形で更新しています。それがバグの発生原因になっていただけの場合は申し訳ございません。

##【不具合の内容】 記載必須
特定の状況下(再現方法の項目に記載)で対象を選択するカードを使用すると「処理中に内部エラーが発生したため、ゲームを停止しました。このエラーは想定されたものではなく、バグによってしか発生しません。エラーログ(CardWirthPy.exe.log)の内容を開発者までお知らせください。」と表示される。

##【不具合の再現方法】 分かっている場合は必須
wsn形式のシナリオのうち、wsn形式でのみ使用できるメニューの表示がされている状態で対象を選択するカードを使用。
対象者なし、または自身の場合はバグが発生しませんでした。

wsn専用のメニューは数種類ありますが、現状確認出来てほぼ確定しているものだと冒険者が背景などで隠されていると発生するように思えます。また、テキストセルが使用されている場合、特にそこに特殊文字列(コモンのみ?)が参照されている場合にエラーが発生するのかもしれませんが確証はありません。

##【エラーログ】 ログがある場合は必須

Version : 4.3 (64-bit) / 2021-01-10 14:52:59
DateTime: 2021-01-11 22:23:42
Traceback (most recent call last):
File ".\cw\thread.py", line 965, in run
File ".\cw\thread.py", line 1018, in _run
File ".\cw\thread.py", line 1034, in main_loop
File ".\cw\eventhandler.py", line 114, in run
File ".\cw\eventhandler.py", line 399, in lclick_event
File ".\cw\sprite\card.py", line 905, in lclick_event
File ".\cw\thread.py", line 2030, in call_modaldlg
File ".\cw\thread.py", line 1034, in main_loop
File ".\cw\eventhandler.py", line 131, in run
File ".\cw\eventhandler.py", line 857, in executing_event
File ".\cw\thread.py", line 4259, in change_specialarea
File ".\cw\thread.py", line 4942, in set_curtain
File ".\cw\sprite\background.py", line 151, in set_curtain
AssertionError

(最新版のもの)
Version : 4.3 (64-bit) / 2021-01-11 13:35:48
DateTime: 2021-01-13 18:44:49
Traceback (most recent call last):
File ".\cw\thread.py", line 965, in run
File ".\cw\thread.py", line 1018, in _run
File ".\cw\thread.py", line 1034, in main_loop
File ".\cw\eventhandler.py", line 114, in run
File ".\cw\eventhandler.py", line 399, in lclick_event
File ".\cw\sprite\card.py", line 905, in lclick_event
File ".\cw\thread.py", line 2039, in call_modaldlg
File ".\cw\thread.py", line 1034, in main_loop
File ".\cw\eventhandler.py", line 131, in run
File ".\cw\eventhandler.py", line 857, in executing_event
File ".\cw\thread.py", line 4268, in change_specialarea
File ".\cw\thread.py", line 4951, in set_curtain
File ".\cw\sprite\background.py", line 151, in set_curtain
AssertionError

(持ってるフォルダの中で最も古くバグ発生が確認できたもの)
Version : 4.3 (64-bit) / 2021-01-07 22:55:38
DateTime: 2021-01-13 19:55:48
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\card.py", line 904, in lclick_event
File ".\cw\thread.py", line 2028, in call_modaldlg
File ".\cw\thread.py", line 1032, in main_loop
File ".\cw\eventhandler.py", line 131, in run
File ".\cw\eventhandler.py", line 857, in executing_event
File ".\cw\thread.py", line 4257, in change_specialarea
File ".\cw\thread.py", line 4940, in set_curtain
File ".\cw\sprite\background.py", line 150, in set_curtain

##【再現環境】 できるだけ

  • OS Windows 10 HOME
  • メモリ 8GB
  • HDDか、SSDか / 空き容量 SSD/空き容量350GB。
  • CardWirthPyのビルド情報 どこを見ればいいのかが分かりませんでした、すみません。
  • その他環境について必要そうな事があれば ノートパソコンです。ちなみに終了後にタスクマネージャーのバックグラウンドプロセスにカードワースPyは存在しています。

###【再現率】 余裕があれば

14回同じ操作を行い、14回不具合が発生

###【調査のチェックリスト】 余裕があれば

カナンの鎧を使用:問題なし
光精召喚を使用:問題なし
蜘蛛の糸を使用:エラー発生
癒身の法を使用:エラー発生
傷薬を使用:エラー発生
フォウを使用:エラー発生

また、上記のバグを発生させずに帰還した場合は問題なくプレイを継続可能。
バグを発生させるシナリオでも上記の条件を満たしていない環境であれば対象を選択するカードを使用しても問題なし。

####(1)シナリオのバグではないか?

1.wsn形式の上記の状況でのみ発現すると思われます。~1.50のシナリオでは問題なく遊べています。
2.上記の条件を満たす異なる5名の作者様のシナリオで発現するためシナリオのバグではないと思われます。

####(2)初期状態のCardWirthPyで再現するか?

現状使用しているフォルダと別のフォルダに隔離し展開、実行しようとしましたが何度試しても起動できなかったため未実施。

####(3)最新のテスト版での再現するか?

実施。

####(4)数日前のテスト版での再現するか?

20201212b_x64では発生せず。20210107e_x64では発生

####(5)テストシナリオの添付

なし

####(6)テスト宿を作っても再現するか?

発生。新規宿を作成し冒険者を作成後、交易都市リューンにて癒身の法を購入し帰還、上記のバグを発生させるシナリオで使用した際エラーが発生。ただしエンジン自体の更新を上書き以外で行っていないため、自分の所持しているexeファイルに問題があるだけかもしれません。

Comments (4)

  1. k4nagatsuki repo owner

    pull request #189

    詳細にご報告いただきありがとうございます。修正したので最新のテスト版でご確認ください。

    これはレイヤ0以外の背景セルが表示されている場合のみ発生するバグで、それがWSN形式のシナリオでのみ発生していた理由だと思います。

    カードを使用する際にはレイヤ0より手前にある背景セルの上にもカーテン(青い半透明の幕みたいなもの)がかかるのですが、そこで背景セルの種類をチェック処理が誤ったものになっていました。

    issue #969で将来のプログラムの健全性を保つために大量にチェック処理を入れたのですが、そのチェック処理自体は手動で書いているためこのようなミスが散見される状態です。もしまたエラーが発生したらお知らせいただけると助かります。

  2. 木綿豆腐怪獣 reporter

    お早い対応ありがとうございます、同条件でテストしたところ、バグの発生がなくなったように感じます(少なくとも最初にバグを発見した宿とシナリオの組み合わせで通常通り遊べるようになりました)。

    青く薄暗くなるあれが影響していたとはあまりにも予想外でした。

    今回はありがとうございました、引き続きカードワースPyRebootで遊ばせていただきます。

  3. BlinkOpera

    @k4nagatsuki
    本件、報告者による動作確認が行われており、クローズ可能です。

  4. Log in to comment