-
Notifications
You must be signed in to change notification settings - Fork 1
Wsn.5
「WSNシナリオ」(または「WSN形式」のシナリオ)とは、CardWirthPyが再生できる独自形式のCardWirthシナリオです。拡張子.wsnを持つ単一のファイルの中に必要なデータが全て格納されており、展開せずにそのままプレイする事ができます。
WSN形式にはいくつかのバージョンがあり、最新版である「Wsn.5」では、特にWsn.4で追加されたコモンと式機能の強化が図られています。
以前のリリースで追加された機能については以下のページを参照してください。
「Wsn.5」のシナリオは、CWXEditor 8以降で作成・編集する事ができます。
WSNシナリオを取り扱うにあたっては、いくつか注意すべき点があります。
- Wsn.5のシナリオは、今のところ、CardWirthPy 5以外のCardWirthでプレイする事はできません。
- Wsn.5のシナリオをCWXEditorを使ってWsn.4~1やCardWirth形式に変換する事は可能ですが、変換先に存在しない機能を使っている部分に対しては警告が発生するか、変換の際に取り除かれます。
- WSN形式独自の機能を使用しているカードは、CardWirthのデータへ逆変換する事ができません。
- WSN独自機能を使ったカードが宿にあったりキャラクターが所持している場合は、逆変換中に取り除かれます(パーティ全体やカードの所持者が取り除かれる事はありません)。
groupAsk official fansiteのAdventurer's GUILD(通称「ギルド」)は、CardWirthのシナリオの情報を集約・紹介する投稿型のWebサイトです。CardWirth界においては、ギルドに登録していないシナリオを特に「プライベートシナリオ」と呼ぶほど、公開したシナリオをここに登録する事が一般的でした。現在は「プライベート」側の数がだいぶ増えていたり、「ギルド」的機能を持つサイトが他にも存在しているなど、状況が変わっていますが、それでも「ギルド」は主要なシナリオ投稿サイトであり続けています。
運営者であるCardWirth愛護協会のご厚意により、Wsn.5形式のシナリオはAdventurer's GUILDに投稿・登録する事が可能です。作ったシナリオを実際に登録してみようという方は、以下の点に注意して投稿してください。
- 投稿の際には対応エンジンタグが必須です。「
PY仕様:wsn.5」という検索タグをつけてください。大文字・小文字の区別と、:だけ全角である事に注意してください。 - 作者コメントに、対応するエンジンの情報を記す事をお薦めします。具体的には
https://github.com/k4nagatsuki/CardWirthPy-Reboot/wikiのURLを入れるとよいでしょう。
他の注意事項は、groupAsk official fansiteの投稿前の指差し確認を参照してください。
以下に、「Wsn.5」で追加されたWSN形式の機能を紹介します。
コモンと式のドキュメント(Wsn.5対応版)もご利用ください。
Bitbucket Issue 909

Wsn.4で追加されたコモンと式が強化され、リスト型を扱えるようになりました。
以下のようにして値をリストにすることができます。
LIST("文字列", 42, TRUE, LIST("リストの中のリスト", LIST("さらにその中のリスト")))
リストは演算子によって結合したり、比較したりできます。
LIST(1, 2, 3) ~ LIST(4, 5, 6) = LIST(1, 2, 3, 4, 5, 6)
また、以下の関数でリストの操作を行えます。
-
LIST(任意の値 ...)→ リスト …… リストを生成します。 -
AT(リスト, 位置(1~))→ 任意の値 …… リストの要素を返します。 -
LLEN(リスト)→ 数値 …… リストの長さ(要素数)を返します。 -
LFIND(検索値, リスト[, 検索開始位置])→ リスト …… 対象リスト内に検索値があった場合は位置(1~)を返します。見つからなかった場合は0を返します。 -
LLEFT(リスト, 長さ(要素数))→ リスト …… リストの左側を返します。 -
LRIGHT(リスト, 長さ(要素数))→ リスト …… リストの右側を返します。 -
LMID(リスト, 位置(1~)[, 長さ(要素数)])→ リスト …… リストの中間部分を返します。長さを省略した場合は、指定位置より右側を返します。
Bitbucket Issue 809, 907, 1020


効果系カードとは、特殊技能(スキル)・アイテム・召喚獣カードのことです。コモンと式で取り扱えるようになりました。
たとえば以下の式では、選択中カードがアイテムカードかどうか判定しています。
CARDTYPE(SELECTEDCARD()) = ITEM
以下の関数で効果系カードの情報を得ることができます。
-
SELECTEDCARD()→ カード情報 …… 選択カードのカード情報を返します。 -
CARDNAME(カード情報)→ 文字列 …… カード名を返します。 -
CARDTYPE(カード情報)→ 数値 …… カードのタイプを返します(1=特殊技能, 2=アイテム, 3=召喚獣)。 -
CARDRARITY(カード情報)→ 数値 …… カードの希少度を返します(1=一般, 2=レア, 3=プレミア)。 -
CARDPRICE(カード情報)→ 数値 …… カードの価格を返します。 -
CARDLEVEL(カード情報)→ 数値 …… 特殊技能カードのレベルを返します。 -
CARDCOUNT(カード情報)→ 数値 …… カードの残り使用回数を返します。 -
FINDKEYCODE(カード情報, 検索文字列[, 検索開始位置])→ 数値 …… カードのキーコードを検索して見つかった位置を返します。 -
KEYCODETEXT(カード情報, キーコード番号)→ 文字列 …… キーコード番号の位置にあるカードのキーコード名称を返します。
Bitbucket Issue 907, 1032


以下の関数が追加され、式によってより詳細な情報を得ることができるようになりました。
-
PARTYMONEY()→ 数値 …… 操作中のパーティの所持金を返します。 -
PARTYNUMBER()→ 数値 …… 操作中のパーティの人数を返します。 -
YADONAME()→ 文字列 …… 操作中の拠点名を返します。 -
SKINTYPE()→ 文字列 …… 現在のスキン種別を返します。 -
BATTLEROUND()→ 数値 …… 現在のバトルラウンドを返します。 -
CASTLEVEL(キャラクター番号)→ 数値 …… キャラクターのレベルを返します。 -
COUPONVALUE(キャラクター番号, クーポン名)→ 数値 …… キャラクターが所持するクーポンの点数を返します。 -
LIFERATIO(キャラクター番号)→ 数値 …… キャラクターのライフ残量を割合で返します。 -
STATUSVALUE(キャラクター番号, 状態)→ 数値 …… キャラクターの状態の強度・修正値を返します。 -
STATUSROUND(キャラクター番号, 状態)→ 数値 …… キャラクターの状態の残ラウンド数を返します。
また、従来数値で表されていたキャストカードのタイプ等の情報を、PLAYERやENEMYのようなシンボルで書けるようになりました。
CASTTYPE(SELECTED()) = ENEMY
Wsn.5では以下のシンボルが定義されています。
PLAYER(1)ENEMY(2)FRIEND(3)SKILL(1)ITEM(2)BEAST(3)ACTIONCARD(-1)RARE(1)PREMIER(2)POISON(8)SLEEP(9)BIND(10)PARALYZE(11)CONFUSE(12)OVERHEAT(13)BRAVE(14)PANIC(15)SILENCE(16)FACEUP(17)ANTIMAGIC(18)ENHACTION(19)ENHAVOID(20)ENHRESIST(21)ENHDEFENSE(22)NEWLINE(改行文字)
最後のNEWLINEは文字列内の改行を意味しています。このシンボルを用いると、改行入りの文字列を生成することができます。
"一行目" ~ NEWLINE ~ "二行目"
Bitbucket Issue 790

状況設定コンテントで敗北とゲームオーバーの有効・無効を設定できるようになりました。
無効に設定すると、パーティが全滅した時のバトル敗北及びゲームオーバーの発生を抑止する事ができます。
ただし、以下の場合はこの設定によらず敗北・ゲームオーバーが発生します。
- パーティが全員対象消去された。
- 敗北・ゲームオーバーコンテントを実行した。
Bitbucket Issue 760
状況設定コンテントで逃走の可否を設定できるようになりました。戦況の変化によって逃走が可能・不可能になった、といった状況を表現できます。
バトル自体が逃走不可に設定されている場合、このパラメータは影響しません。
Bitbucket Issue 760


これまで固定テキストだった選択肢のみのメッセージのテキストを変更できるようになりました。
特殊文字も使用できます。
Bitbucket Issue 933

キーコード所持分岐で、カードがキーコードを含まない場合に成功と判定することができるようになりました。
Bitbucket Issue 990

クーポン分岐及びクーポン多岐分岐で適用範囲に同行キャストを対象にできるようになりました。
従来同行キャストを選択するには、キャスト自身の戦闘行動を捉えたり、ランダム選択分岐を使用したりといった不確実な方法しかありませんでしたが、この適用範囲の追加により、固有のクーポンを持たせることによって選択を行えるようになります。
Bitbucket Issue 941
CardWirthには意識不明な対象に対しては回復等のいくつかの効果を例外として効果適用がスキップされるという仕様があります。これまで、召喚獣消去効果は意識不明な対象に対して有効な効果として設定されていませんでした。
Wsn.3以降、意識不明時に消滅しない召喚獣が作れるようになったため、仕様上の齟齬が発生しました。具体的には、召喚獣消去効果を単独で持つようなカードを意識不明な対象に用いても、その対象が所持している召喚獣が消去されないという問題が起こります。
今回の仕様変更により、意識不明な対象であっても、召喚獣を持っていれば召喚獣消去効果が適用されるようになります。
Bitbucket Issue 438
Wsn.5対応エンジンでは、称号所持判定分岐コンテントでシステムクーポン@Wsn.5の所持判定を行った時に必ず成功します。
プレイヤーの使用しているエンジンがWsn.5に対応しているかシナリオ側から調べたい時に利用できます。
このページのスクリーンショットに表示されているCardWirthエンジンまたはシナリオのリソースは、特に注記がない限り、groupAsk様によって作成され、CardWirth愛護協会様によって配布されている「CardWirth ver1.50 Fullpack」に入っているものです。ReadMe_1st_Full.txt内の「● 著作権/免責/転載に関して」節の内容に基づいてスクリーンショット内に使用しています。