[CardWirth] CW用「エンジン識別サンプル」 1.04 不具合修正
- 2015/02/28 01:16
- カテゴリー:CardWirth, 作ってるモノ, シナリオ
- タグ:CWシナリオ@サンプル&リソース
前バージョンまで、Pyが互換モードで動作中は、正しく識別ができませんでした。
- CW1.28を時限称号への対応で見分ける場合、確認した全てのバージョンがPy0.12.2 (Reboot)と識別されていた。
- CW1.28を状態異常判定バグの有無で見分ける場合、確認した全てのバージョンがCW1.20と識別されていた。
これは何故かというと、「互換モード=互換指定したバージョンと全てにおいて同じ動きをする」のではないからです。前回更新時は、その詳細について詳しくは調べていませんでした。
今回、サンプル内で識別に用いている仕様の差やバグについて、1つずつ互換モードでの動きを確認しました。
以下は、その結果です。
【互換モード時、指定したエンジンの動きが再現されたもの】
- CW1.20の状態判定分岐バグ(中毒が麻痺/石化の判定に引っかかる類のあれ)
【互換モードでも通常モード時と同じ動きだったもの】
- 時限称号の時間経過による消滅
- 仮想システムクーポン「@MP3」の検出
- CW1.30以降の状態判定分岐の拡張分(少なくとも混乱と沈黙は互換設定によらず検出可能)
- CW1.20の、睡眠者に絶対成功(成功値修正+5)で攻撃した場合、対象が目覚めないバグが修正済み
【そもそもCW1.50とは挙動が異なっているもの】
- 対象消去した同行NPCをランダム選択で選択できない(※CW1.50に合わせて、できるように修正されるようです)
- フィールド全体対象のクーポン分岐で同行NPCの称号を検出可能
互換モードで何が変わるのか細かく調べれば、どのエンジンに互換の設定で動いているのか判別可能かもしれませんが、今のところやるかどうか未定です。
互換モードの使い道を考えてみると、
プレイヤーが最新エンジンでは不具合が出るシナリオを遊ぶ際に利用
→シナリオに何かしなくても、適切に互換設定すれば多分動く。
シナリオ作者が過去の仕様やバグを利用したシナリオを作る際に利用
→こちらも互換設定が適切なら恐らく問題なく、Pyであることが判別できれば十分。
→正規版やNextに対しては、対応していない時メッセージを表示するなどの対応が可能。
なので、互換の設定まで見分けなくて良いようにも思います。
[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext1.60
・CardWirthPy(Reboot)0.12.1/0.12.2
エンジン識別サンプル→ver.1.04
・CardWirthPyが互換モードで動作中も正しく識別できるよう修正
→DLはこちら
※※※
修正過程で新たに分かった事を、メモ箱の関連記事に反映させました。