[CardWirth] CW用「エンジン識別サンプル」 1.01 Py識別にも対応
- 2015/02/22 04:56
- カテゴリー:CardWirth, 作ってるモノ, シナリオ, 覚え書き, エンジン仕様
- タグ:CWシナリオ@サンプル&リソース, CWエンジン@私家版との仕様差
1つ前のバージョンでは、対象消去後のNPCをランダム選択で選択できるかどうかでNextを見分けていましたが、このやり方ではPyはNextであると判定されていました。対象消去されたNPCは選択できない方が正しいので、これはやむをえません。
また、Pyを見分けるにはNextと同じ部分を見ても仕方ないわけで、別のCW1.50ともNextとも違う部分を探す必要があります。しかし、一昨日の段階ではさっぱり見つからず、これは長くかかりそうだと思っていたら。
何と翌日、意外に大きな違い発見しました。
「フィールド全体を対象としたクーポン分岐で、同行NPCの所持称号を検出できるか否か」
ただ、これを利用した見分け方は、そう長くは使えないかもしれません。
CW1.50やNextとは明らかに挙動が異なるため意図的な仕様と思われますが、今後CW1.50に合わせる変更が行われればそれまでです。
いまいち決め手に欠けるシナリオ更新でしたが、今日はここまで。
このサンプルは、「現在入手できる全てのエンジンを見分けること」を目標にしています。
してみると、今後は、どこかで新しいエンジン、新しいバージョンが出る毎に、それを見分けるという話になっていくでしょう。何だかキリがないような気もしてきました。
今後エンジンは増えることはあっても減ることはないだろうし、CW1.29の「@MP3」のように、各々のエンジンにそれぞれプログラム名とバージョンを表す仮想システムクーポンがあれば……と、まぁしょうもない妄想語っても意味ないですな。
いずれシナリオ側で他と区別できないエンジンが出てきたとしても、(と言うか今でも、)必要な時にはシナリオ作者がreadmeなどに対応エンジンを書けば済む話ではあります。
[現時点で識別可能なエンジン]
正規版
・CW1.20/1.28/1.29/1.30/1.50
私家版
・CardWirthNext(v.1.6.0.14)
・CardWirthPy(v.0.12.1)
エンジン識別サンプル→ver.1.01
・CardWirthPyの見分けを追加
→DLはこちら
※※※
ちなみに、なぜCW1.50では対象消去後のNPCをランダム選択で選択出来てしまうかというと、同行NPCの対象消去が正常に機能していないからです。
ランダム選択でパーティーに同行中のNPCを選択
↓
選択メンバを対象として効果コンテントで対象消去
という処理を実行した場合、本来なら選択状態のNPCは消滅してキャンプの表示から消え、キャスト存在分岐で検出できず、当然ながらランダム選択でも選択できないのが正しい挙動です。
ところがCW1.50では、対象消去したはずのNPCがキャンプで閲覧でき、キャスト存在分岐・ランダム選択の双方で検出可能にも拘わらず、戦闘では動かないという謎の挙動をします。
なお、NextやPyの対象消去後のNPCは、現時点では次のような動き方です。
●CWNext(v.1.6.0.14)
対象消去後ランダム選択で選択できる現象はないが、キャンプで閲覧でき、キャスト存在分岐でも検出される。戦闘では動かない。
●CWPy(v.0.12.1)
対象消去後はキャンプでの表示が消え、キャスト存在分岐・ランダム選択の双方で検出されない。
CW1.50、Next、Pyでそれぞれ違っていて、ここに引っかかると割と危険です。
同行NPCを消したいなら、キャスト離脱コンテントで離脱させるのが無難だと思います。それならどのエンジンを使っていても同じ動きです。