バグ:双方全体対象のモーション順等が一部1.50、NEXTと異なる
Py4.3で確認
1.50、NEXTは単に使用者陣営から進行します。(同行者はPC陣営と同じ順番)
Pyの場合でもPCや同行者が使用した際は同様に進行します。
しかしPyではカード使用者がエネミーでも、(たぶん→)ラウンド開始時にPC&エネミーが全員ノーダメージで、モーションの効果種別が回復のみの場合は、PC陣営からモーションが開始されます。
以前から双方全体モーションでモーション順が想定外になる事はあった気がするので、この条件だったのかもしれませんが、他にも発生条件があるかもしれません。(記憶が定かで無いですが双方全体攻撃でもこの手の順序の乱れが発生したような…?)
条件が特定できているのは以上です(効果の有効対象の有無が発生条件?)。
またこの双方全体回復のみのカードのみをもたせた敵勢の自動選択AIが
1.50では双方全体回復のみのカードは使用したがらない(最高適正での重症でも使用率が低い)が
Pyでは使用したがるという差がありました。
1.50は使用者陣営の回復よりも敵陣営を回復してしまう事をマイナス評価しているのかもしれませんが
全員重症状態で使用を避けるのは賢くない気がするのでこれはPyの現状のままでいい気はします。
これらの挙動を意図的に利用したシナリオは私は知りません。
Comments (17)
-
repo owner -
reporter ご対応ありがとうございます。
自動選択の件はそういう事とわかりました。ただPy4.3にcardwirthpy_20201229d_x64を上書きして起動しようとすると以下のような表示が出てしまい動作確認できておりません。
∇ ウィンドウ タイトル ∇
cx_Freeze: Python error in main script∇ スタティックテキスト ∇
OK
Traceback (most recent call last):
File "C:\Program Files\Python38\lib\site-packages\cx_Freeze\initscripts_startup_.py", line 40, in run
File "C:\Program Files\Python38\lib\site-packages\cx_Freeze\initscripts\Console.py", line 37, in run
File "cardwirth.py", line 12, in <module>
File ".\cw_init_.py", line 8, in <module>
File "C:\Program Files\Python38\lib\site-packages\pygame_init_.py", line 343, in <module>
File "C:\Program Files\Python38\lib\site-packages\pygame\surfarray.py", line 64, in <module>
File "C:\Program Files\Python38\lib\site-packages\pygame_numpysurfarray.py", line 51, in <module>
File "C:\Program Files\Python38\lib\site-packages\numpy_init_.py", line 305, in <module>
File "C:\Program Files\Python38\lib\site-packages\numpy_init_.py", line 302, in _win_os_check
RuntimeError: The current Numpy installation ('G:\CW\CardWirthPy\CardWirthPy - コピー\lib\numpy\init.pyc') fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86 -
repo owner 昨日10分ばかり不完全なファイルが上がってしまっていたのですが、たまたまそのタイミングでダウンロードしてしまったのではないかと思います。現在あがっているものを手許で試したところ動きました。
申し訳ないのですがもういちどお試しください。
-
reporter 32bit版では正常動作しバグも修正確認できました。
py_20201229d_x64は落とし直した最新版で、やはりうまくいきませんでした。
ためしにPy4.3に上書きする以前の解凍したcardwirthpy_20201229d_x64のexeをクリックしたところ
上と同じエラー表示が出ます
(cardwirthpy_20201229d_x86の方は単に何もおきないです)
-
repo owner Webブラウザのキャッシュを消しても同じことが起こりますか?
-
repo owner とりあえず新しいデイリービルドをアップロードしてみました。
-
reporter cardwirthpy_20201230_x64を試した所やはりcardwirthpy_20201229d_x64と同じ症状です。
-
repo owner 4.3の64-bit版に上書きしましたか?
-
reporter はい。
cardwirthpy_20201229d_x64同様、上書き前の解凍後のcardwirthpy_20201230_x64のexeをクリックしても上と同じエラー表示が出ます。
-
repo owner 手許で
CardWirthPy_4.3_x64.zip
のダウンロードと展開cardwirthpy_20201230_x64.zip
のダウンロードと上書き
を再び試してみましたが、問題なく起動できます。とりあえず思いつく可能性としては以下のようなものが考えられます:
- Webブラウザがおかしい。部分的にアーカイブが破損している。キャッシュをクリアしたら直るかもしれない。
- 展開に使ったアプリがおかしい。たまたまそのソフトのバグを踏むパターンのアーカイブになっているのかもしれにあ。替えたら直る可能性がある(今回私はExplzhを使いました)
- ウィルス対策ソフトが勝手に一部のファイルを消している。
- 環境の違い。Windowsのバージョンによって問題が出たり出なかったりする?
この中でいちばんありそうなのは3.です(過去にも何度か実例があります)。これ以外はちょっと思いつきません。
-
reporter クロームのキャッシュを消し、Explzhで解凍。エッジで落としてみる。
等を行ってみましたが変わらずです。
元の7ZIPで解凍したものと、ファイルのプロパティ上のファイルサイズやファイル数も同じです。
(ファイル数1229 フォルダ数133 132.897.561バイト)
ウィルス対策ソフトはウインドウディフェンダーだけで、
環境は元WIN7proからWIn10Proにアップデートしたバージョン20H2 OSビルド19042.685です。
-
repo owner 展開後のファイル数もサイズも一致しますね。となればウィルス対策ソフトではありません。
こちらのWin10のバージョンは1909なのですが、そんなことで違いが出るものでしょうか。
パスに日本語が含まれているのが問題かとも思いましたが、こちらで日本語を入れても再現はしませんでした。
すみませんがちょっと分かりません。しかし今のビルド方式だと、テスト版で出る不具合はリリース版でも出るはずなので問題です。他の環境でどうなるかも知りたいところです。
-
reporter わかりました。
ちなみに29日の最初の版のcardwirthpy_20201229_x64でも試してみましたが
同じ症状です。現在それ以前のは落とせませんが
もしより以前のデイリービルドが落とせれば、それらで症状が出るか、
いつのから出るかも試してみますが可能でしょうか?
今までのは上書き後、捨ててしまっていてだいぶ前の 20200808b_x64 が残ってる最新ですが、それは今も正常に開けます。
-
repo owner いくつかTrashBoxから復元しました。お試しください。
PythonライブラリのアップデートとWindowsのバージョンの絡みで何か起きているのかもしれません。いつアップデートしたのか定かではありませんが、フォルダの日付を視た限りではおそらく12月13日です。その場合、将来のさらなるアップデートで解決する可能性はあります。
-
repo owner エラーメッセージをちゃんと読んでいませんでした。numpyの開発者によるとWin10の2004からおかしいようです。
ちょっとスレッドが長いのですが、最後のほうにある情報のようにnumpyをダウングレードしてみます。
-
repo owner numpyをダウングレードしたバージョンをあげました。
-
reporter - changed status to resolved
最新64bit版でエンジン正常動作&バグ修正確認しました。ありがとうございました。
- Log in to comment
pull request #157
ご報告ありがとうございます。これは単純なバグで、ターゲットのリストを構築する時に敵味方のどちらを先にリストに入れるかという処理順だけの問題です。自動選択の時は使用者の陣営を考慮して処理が書かれていましたが、手動選択の時はそうなっていませんでした。
この辺りはかなり古いコードで、敵の行動を手動選択する機能より前からあるので、処理順の考慮が必要なかったのでしょう。
自動選択の優先順の違いについては、CardWirth 1.28-1.50の思考ルーチンのバグあるいは仕様上の不具合が関係しています。議論は#20にあります。