CWXスクリプト

CWXスクリプト リファレンスマニュアル

編集中

※このページはk4nagatsuki氏の書かれたリファレンスマニュアルを移植・一部加筆したものです。→HTML版

CWXスクリプトとは、CardWirthのイベントツリーを記述するための専用スクリプト言語です。
CardWirth1.28/Py0.12(Wsn.0)世代に開発が開始され、XEditor 4現在、1.50/Py1(Wsn.1)にも対応しています。

CWXスクリプトの位置付け
 CardWirthEditorのGUIによるシナリオ作成は、直感的で分かり易いものといわれています。
CardWirthの普及度合いを見る限り、それが正しい事は間違いありません。
それと共に、「 CardWirthもスクリプトでシナリオを書ければいいのに 」という声を時折聞きます。
一定の文法に則ってテキストに処理を記述していくやり方は、
慣れればマウスを用いたGUI操作よりも遥かに高速である上、見通しもよくなる、というのがその理由です。

 CWXスクリプトは、そうした需要を満たすために設計された、 CardWirthのイベントツリーを記述するための言語です 。エフェクトブースターのようにCWシナリオを強化する言語ではありません。
あくまでCardWirth中のイベントコンテントをGUIによらず記述するための言語であり、それ以上の機能は持ちません。また、スクリプトをCardWirthエンジンで直接読み込むことはできず、最終的にはCWXEditorに「貼り付け」てCardWirthシナリオとして保存する必要があります。
CWXスクリプトで記述できるイベントは、全てCWXEditorでも作成する事が可能です。実現の過程が異なるだけなのです。
単体で成り立つものではなく、シナリオ作りの補助に用いる事の出来る道具、という程度にお考え下さい。

目次

文法

アウトライン

CardWirthのイベントコンテントのツリーは常に"スタートコンテント"から始まります。
基本的には、CWXスクリプトでも同様です。
例えば、スタートして、メッセージを一つ表示し、そのまま済印をつけずに終了するイベントは次のように記述できます。
start "到着イベント"
msg none, "hello, world!"
endsc false
CWXEditorで適当なエリアを作成し、イベントビューでこのスクリプトを貼り付けてみれば、
実際にイベントツリーが生成されるはずです。
start/msg/endsc がイベントコンテント名、ダブルクォーテーション""で囲われた部分が文字列(この場合はスタートコンテント名とメッセージ)、 noneとfalse がイベントコンテントのパラメータを指定するためのキーワードになります。
順番に見ていきましょう。

start "到着イベント"
まずは「到着イベント」という名前のスタートコンテントを作成します。

msg none, "hello, world!"
メッセージ「 hello, world! 」を表示します。
msgは、CardWirthでいう所のメッセージコンテントを表します。
noneは、そのメッセージの話者がいない、つまり冒険者やカード画像に喋らせるわけではなく、ナレーションや地の文として表示する事を示しています。
msgには、「話者」と「表示するメッセージ」の二つのパラメータがあり、その間は「,」で区切られています。

endsc false
endscは、シナリオ終了コンテントです。
このコンテントには、パラメータとして「シナリオに終了印をつけるか、つけないか」を指定する必要があります。
falseというのは、論理式で真偽の「偽」を示し、この場合はYes/Noでいう所のNo、つまり「済印をつけない」事を表しています。
ちなみに、Yesの場合はtrue(真)になります。

文法の原則

CWXスクリプトでは改行や空白はほとんど意味を持たず、好きな所に入れる事ができます。
例えば、次の二つの例は、一番最初の例とまったく同じイベントを記述しています。
start "到着イベント" msg none,"hello, world!" endsc false

start "到着イベント"
msg none , "hello, world!"
endsc false
実用的には、適当に改行と空白を入れ、人間が見て分かり易いように記述した方がよいでしょう。
また、文字列の中身を除き、アルファベットの大文字と小文字は区別されません。
よって、同じイベントを以下のように書く事もできます。
Start "到着イベント"
Msg NONE, "hello, world!"
EndSc FALSE
イベントコンテントのパラメータは、スタートコンテントの名前を除いて、全て省略する事ができます。
例えばendscの最初のパラメータ「済印をつける/つけない」は、省略した場合は「つけない」事になると定められています。従って、以下の二つの例もまったく同じイベントを表しています。
endsc false
endsc
ところで、CardWirthのイベントツリーは必ず"スタートコンテント"から始まりますが、CWXスクリプトはstart以外から書き始める事もできます。
msg none, "hello, world!"
endsc false
このスクリプトは、任意の既存のイベントツリーの中に貼り付ける事ができます。
次のように、スタートコンテントを持たない部分と、スタートコンテントが混在している場合は、エラーになります。
msg none, "hello, world!"
endsc false
start "次のスタート"
msg none, "hello, CWXScript!"

コメント

スクリプトやコンテントツリーを読む人間に対してヒントを与えるために、コメントを書き入れる事ができます。
二種類の書き方があり、文字列の中以外であれば、どこにでもコメントを入れる事ができます。
start "到着イベント" // 行の途中から入れる事もできます
msg none, "hello, world!"
/* <- この記号を書く事で、複数行コメントが開始されます。
改行を入れてもコメントが続きます。
複数行コメントを終了するにはこうします -> */
endsc false
コメントは入れ子にできます。
start "到着イベント"
/*
ここからコメント
/*
コメント内の複行コメント
 */
ここまでコメント
 */
endsc false

コンテント定義の直前に記述されたコメントは、生成されたコンテントのコメントとして反映されます。

start "到着イベント"
endsc false

パラメータの種類

パラメータには、指定する内容に応じて次のような種類があります。
文字列 スタートコンテント名、フラグ名、メッセージなど。
数値(または計算式) カードやエリアのID、枚数、クーポンの点数、金額など。
キーワード true/falseの真偽値や、話者、属性、効果のダメージタイプなど。
複合パラメータ いくつかのパラメータを一纏めにしたもの。
配列 同じ種類のパラメータを任意数並べたもの。
変数 以上の値を格納し、後で参照する事ができる。

文字列
一行文字列
もっとも単純な文字列です。二種類の書き方ができます。
次の二つの例は、文字列を囲う記号が異なるだけで、内容には違いありません。
start "書き方その1"
start '書き方その2'
「"」で開始された文字列の中に「"」が登場すると、当然ながら、そこが文字列の終わりと看做されてしまい、想定外の結果を招きます。
そこで、文字列中に「"」を登場させたい時は、「""」と二度続けて書きます。
start "ま""っ"
「'」も同様です。
start 'Cusinart'''
文字列を囲う記号と異なる文字であれば普通に入れる事ができます。
start 'ま"っ'
start "Cusinart'"
一行文字列には、改行を入れる事はできません。

複行文字列
一行文字列には入れられなかった改行を入れる事ができます。
msg none, @
例えば3行に渡るメッセージをこう書けます。
この例では、一番最初に空行が一つ入ってます。
例によって、文字列を囲う記号を文字列内に登場させたい場合は「@@」とします。
@
記号「@」で囲われた範囲が文字列になります。
開始部の「@」の後、及び終了部の「@」の前には改行が必要です。(改行の後にスペースやタブ文字が入っても構いません)
途中に「@」を入れたい場合は「@@」と書きます。
複行文字列では、行頭にあるタブ文字や半角空白は削除されます。次の例は、最初に挙げた例と同じ結果になります。
msg none, @

例えば3行に渡るメッセージをこう書けます。
この例では、一番最初に空行が一つ入ってます。
例によって、文字列を囲う記号を文字列内に登場させたい場合は「@@」とします。
@ // <- この@の前のスペースも無視されます
全角空白は削除されません。
行頭に全角空白以外のスペースを入れたい場合は、直前に「\」を入れます。
msg none, @
\ <- ここの半角スペースは無視されません。
\ ただし、\は消えてしまいます。
\\ <- 二度続けて書くと、一個の「\」に置換されます。
@
「@」の後に続けて数値を書くと、その数値を行数と解釈し、メッセージが指定された行から開始されるように空行を入れる事ができます。
msg none, @ 4
このメッセージは4行目に表示されます。
@
数値の代わりにcenterというキーワードを使う事で、CardWirthのメッセージ欄に合わせて、縦方向の中央寄せに表示させる事ができます。
msg none, @ center
このメッセージは中央付近の行に表示されます。
@
一行の長さがメッセージ欄の幅をオーバーした際の折り返しも考慮されますが、特殊文字やタブ文字が含まれている場合は、確実に中央寄せされるとは限りません。

文字列の連結
「~」を使う事で、文字列を連結できます。
start "hello, " ~ "world!"
数値とも連結できます。
start "number." ~ 1 // start "number.1"
start 42 ~ 10 // start "4210"

数値(または計算式)
普通に数値を書く事ができます。
callpack 50
計算式も使えます。
callpack 15 * 2 + 20
演算子には以下のものがあります。
+ 足し算。
- 引き算。
* 掛け算。
/ 割り算。
% 剰余。つまり割った時の余り。例えば 10 % 3 は、10÷3 の余りが 1 なので、1 になる。

演算子には優先順位があります。掛け算・割り算・剰余は、足し算・引き算よりも先に計算されます。
括弧を使って、優先順を変更する事ができます。
callpack 1 + 2 * 3 // 7
callpack (1 + 2) * 3 // 9

キーワード
真偽やYes/Noを表すtrue/falseや、話者無しを表すnoneなど、あらかじめ定められた値を選択する必要がある際に用いる語句です。
パラメータに応じて多数用意されています。
具体的な語句や、どのパラメータにどのキーワードを用いる事ができるか等は、各コンテントのパラメータ解説を参照してください。

複合パラメータ
例えば、背景変更コンテントchbackは、パラメータとして0枚以上の背景画像を持っています。
背景画像にはさらに複数のパラメータ、つまり画像のファイル名、X座標、Y座標、サイズ……などが含まれています。
これを表現するために、次のような書式が用意されています。
chback ["MapOfWirth.bmp", "", 0, 0, 632, 420, false]
["AdventurersInn.bmp", "", 116, 15, 400, 260, false]
一組の[]で囲われた部分が、一枚の背景画像のパラメータになります。
これによって、複数のパラメータを一纏めにして取り回す事ができます。

配列
例えば、効果コンテントeffectは、パラメータとして0個以上の効果を持っています。
この効果はいくつでも存在する事ができ、その後にはカードの動きなどのパラメータが続きます。
effectにおける効果や、chbackの背景画像のように、「ある種のパラメータが任意数繰り返される」というパターンを表現するために、以下のような書式が用意されています。
effect M, [damage, level, 1] [damage, level, 1] [damage, level, 1], none, 0, 5
三つある [damage, level, 1]
の間が、カンマで区切られていない事に注目してください。
カンマで区切らずにパラメータを列挙すると、それはひとまとまりの配列として扱われます。

変数
変数とは、値を入れておく事ができる箱のようなものです。文字列や数値、複合パラメータなど、何でも入れる事ができます。
「$」で始まる名前は変数を意味します。
$package_カナン王の怒り = 2
このようにして、「=」で値をセットする事ができます。
値を入れた変数は、パラメータや計算式の値として使う事ができます。
次の例では、設定された変数によって、パッケージ呼び出しコンテントcallpackで、IDが2のパッケージを呼び出しています。
$package_カナン王の怒り = 2
callpack $package_カナン王の怒り
変数に値をセットする文は、startの前や、特定コンテントの中など、どこにでも書く事ができます。
ただし、値をセットした後でしか使う事はできません。

処理の分岐

CardWirthのイベントツリーは、分岐する事があります。
CWXスクリプトでは、三つのキーワードif-elif-fiによって分岐を表現します。
例えば、あるフラグがOnになっている場合とOffになってる場合とで処理を分ける場合は、次のように書きます。
brflag "発見された" // フラグ「発見された」で分岐
if true // フラグがOn(true)だったらこっちの処理
msg none, "敵の待ち伏せだ!"
gobattle 1
elif false // フラグがOff(false)だったらこっち
msg none, "どうやら見つかってはいないようだ。"
fi // 分岐終了
elifを連ねる事で、三路以上の分岐も表す事ができます。
brstepm "見張り兵の気持ち" // ステップ「見張り兵の気持ち」で分岐
if 0 // ステップ値が0であれば
msg "gob.bmp", "「……」"
elif 1 // ステップ値が1であれば
msg "gob.bmp", "「……」"
elif 2 // ステップ値が2であれば
msg "gob.bmp", "「……?」"
elif default // それ以外
msg none, "イベントの構成上ここに来たらエラー"
endsc
fi // 分岐終了

単分岐
CardWirthのシナリオを作っていると、「複数路に分岐はしないが分岐条件は記述する」という場面がままあります。
特定の条件に合った時だけ処理を進めて他は終了する場合や、メッセージ欄の下部に表示されるテキストを変更したい時などです。
そうした処理はif-fiを使って記述できますが、ifの代わりに単分岐条件sifを用いる事で、fiを記述する必要が無くなります。
msg none, "どうやら依頼を受けるしか無いようだが……"
sif "依頼を受ける" // これ以外の選択肢は無し
break // イベントツリー終了時にfiを記述する必要は無い
if/elif/sifについての補足
if/elif/sifの後に記述するパラメータの種類は、分岐の直前に置くコンテントによって異なります。各コンテント毎の解説を参照してください。
また、if/elif/sifは、必ず、分岐条件となる一つのパラメータと、分岐先のイベントコンテントを持たなければなりません。

後続コンテントについて

CardWirthでは、一部のコンテントはイベントツリーの終端となっており、その後に続けてコンテントを配置する事ができません。
例えば、シナリオ終了コンテントendscは、後続のコンテントを持つ事ができません。
従って、次のようなスクリプトはエラーになります。
start "到着イベント"
msg none, "hello, world!"
endsc false
msg none, "シナリオ終了" // endscは後続を持てないため、エラーになる
後続コンテントを持つ事ができないのはスタートを除くTerminalの全てのコンテント(バトル開始、シナリオクリア、ゲームオーバー、エリア移動、スタートへのリンク、パッケージへのリンク、効果中断コンテントの7つ)です。

空変数

以下のように、スクリプトの冒頭に初期値を設定していない変数の宣言がある場合、貼り付けた際にダイアログが開き、後付けで変数の値を設定する事ができます。
定型のロジックではあるものの内部で使用するフラグなどは都度切り替えたい、というような場合に便利です。
$パッケージ
$フラグ
$フラグ値
callpack $パッケージ
setflag $フラグ, $フラグ値
空変数を冒頭以外に配置した場合は、エラーです。

コンテントリファレンス

コンテント一覧
start <名前> スタートコンテント
gobattle <ID> バトルの開始
endsc <済印有無> シナリオの終了
gameover ゲームオーバー
goarea <ID>, <画面切替スピード>,<切替方式> エリアの移動
chback ([<画像パス>, <フラグ>, <X位置>, <Y位置>,
<横幅>, <縦幅>, <透明化有無>, <セル名称>, <前景表示>]
[text, <テキスト>,<フォント名>, <文字サイズ>,<文字色>, <書式>
...,(<縁取り色>), (<縁取り幅>),
<フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <前景表示>]
[color, <合成方式>,<基本色>, <グラデーション方向>, <終端色>,~<フラグ>,
<X位置>,<Y位置>, <横幅>,<縦幅>, <セル名称>,<前景表示>]
[pc,<表示メンバ>, <フラグ>,<X位置>, <Y位置>,<横幅>, <縦幅>),
<セル名称>, <前景表示>]..., <画面切替スピード>, <切替方式>
背景の変更
effect <効果対象>, [<効果種別>, (<ダメージタイプ>,<値>
/ <継続時間> /<増減値>, <継続時間> /<召喚獣ID>), <属性>]...,
<視覚効果>, <効果レベル>, <成功率>, <効果属性>, <抵抗属性>, <音声パス>
効果
break イベントの中断
gostart <スタート名> スタートコンテントへの移動
gopack <ID> パッケージへの移動
msg <話者>, <テキスト> メッセージ
dialog <話者>, [<クーポン> ..., <メッセージ>]...,
<評価初期値>, [<評価クーポン> ..., <得点>] ...
台詞
bgm <ファイル名> BGMの演奏
se <ファイル名> 効果音の再生
wait <停止時間> ウェイト
elapse 時間の経過
callstart <スタート名> スタートコンテントの呼び出し
callpack <ID> パッケージの呼び出し
brflag <フラグ名> フラグ分岐
brstepm <ステップ名> ステップ多岐分岐
brstept <ステップ名>, <ステップ値> ステップ上下分岐
selmember <パーティ全体からの選択か>, <ランダム選択か> メンバ選択分岐
brability <判定対象>, <眠り判定>, <レベル>, <身体的要素>, <精神的要素> 能力分岐
brrandom <パーセント値> ランダム分岐
brlevel <レベル>, <平均か> レベル判定分岐
brstatus <判定対象>, <ステータス> 状態分岐
brcount <人数> 人数分岐
brarea エリア分岐
brbattle バトル分岐
bronbattle バトル中/非バトル中分岐
selrandom <範囲>, <レベル下限>, <レベル上限>,<ステータス> ランダム選択分岐
brround <比較条件>, <ラウンド> ラウンド分岐
brcast <ID> キャスト同行分岐
britem <範囲>, <ID>, <枚数> アイテム所持分岐
brskill <範囲>, <ID>, <枚数> 特殊技能所持分岐
brbeast <範囲>, <ID>, <枚数> 召喚獣所持分岐
brinfo <ID> 情報所持分岐
brmoney <金額> 所持金判定分岐
brcoupon <判定対象>, <クーポン名> クーポン所持分岐
brstamp <シナリオ名> 終了印有無分岐
brgossip <ゴシップ名> ゴシップ有無分岐
brkeycode <範囲>, <カード種別>, <キーコード> キーコード所持分岐
setflag <フラグ名>, <値> フラグ値の設定
setstep <ステップ名>, <値> ステップ値の設定
stepup <ステップ名> ステップ値の増加
stepdown <ステップ名> ステップ値の減少
revflag <フラグ名> フラグ反転
cpstep <代入元ステップ名>, <代入先ステップ名> ステップ代入
cpflag <代入元フラグ名>, <代入先フラグ名> フラグ代入
cmpstep <比較元ステップ名>, <比較先ステップ名> ステップ比較分岐
cmpflag <比較元フラグ名>, <比較先フラグ名> フラグ比較分岐
chkflag <フラグ名> フラグ判定
chkstep <ステップ名>, <比較条件>, <値> ステップ判定
getcast <ID> キャストの同行
getitem <範囲>, <ID>, <枚数> アイテムの獲得
getskill <範囲>, <ID>, <枚数> 特殊技能の獲得
getbeast <範囲>, <ID>, <枚数> 召喚獣の獲得
getinfo <ID> 情報の獲得
getmoney <金額> 所持金の増加
getcoupon <対象>, <クーポン名>, <得点> クーポンの付与
getstamp <シナリオ名> 終了印の追加
getgossip <ゴシップ名> ゴシップの追加
losecast <ID> キャストの同行解除
loseitem <範囲>, <ID>, <枚数> アイテムの喪失
loseskill <範囲>, <ID>, <枚数> 特殊技能の喪失
losebeast <範囲>, <ID>, <枚数> 召喚獣の喪失
loseinfo <ID> 情報の喪失
losemoney <金額> 所持金の減少
losecoupon <対象>, <クーポン名> クーポンの消失
losestamp <シナリオ名> 終了印の除去
losegossip <ゴシップ名> ゴシップの除去
showparty パーティ表示
hideparty パーティ隠蔽
redraw <画面切替スピード>, <切替方式> 画面の再描画

Terminal / 末端コンテント

CardWirthEditorでTerminalタブに格納されているイベントの開始と終わりに置く基本コンテンツです。
スタートはイベントの開始時に必ず置きます。それ以外はイベントの末尾に置き、後続コンテントを持つことが出来ません。

Start

start <名前>
スタートコンテント。
イベントツリーの最上位にはこのコンテントしか存在できません。
パラメータ 文字列で名前を指定してください。スタートコンテントのパラメータに限り、省略する事はできません。

start "到着イベント"

Go to

GoXXXX IDという形式で移動を実行する文です。
エリア移動/バトル開始/スタートへのリンク/パッケージへのリンクが該当します。簡単なのでまとめて覚えてしまいましょう。
これらのコンテントはすべて後続コンテントを持てません。

goarea <ID> エリア移動。IDには移動先のエリアIDを整数で指定します。
指定しない・存在しないIDを指定した場合、済印を付けずにシナリオを終了します
gobattle <ID> バトル開始。パラメータには整数でバトルIDを指定します。
gostart <スタート名> スタートへのリンク。パラメータはスタート名を文字列で指定します。(スタートにはIDが無いため)
gopack <ID> パッケージへのリンク。パラメータは整数でパッケージIDを指定します。

例 goarea
goarea 5 // エリア5に移動

例 gostart
gostart "その2" // スタートコンテント「その2」へ移動

例 gopack
gopack 4 // パッケージ4へ処理を移動

例 gobattle
gobattle 15 // バトル15を開始

goarea <ID>, <画面切替スピード>, <切替方式> エリア移動は、WSN形式のシナリオに限り、画面切替スピードと切替方式を指定することもできます。
指定しなかった場合はエンジンの設定が採用されます。

goarea 例
goarea 2, 10, fade // 画面をフェード式でゆっくりと切り替えながらエリア2へ移動

End Scenario

シナリオ終了コンテント。このコンテントは後続コンテントを持てません。

endsc <済印有無> シナリオを終了します。パラメータはtrue/falseで済印をつけるかつけないかを選択します。


endsc true // 済印をつけて終了

Game Over

全滅・敗北コンテント。このコンテントは後続コンテントを持てません。

gameover パーティが全滅し、ゲームオーバー画面に遷移します。パラメータはありません。
戦闘中に実行した場合は敗北イベントが実行されます。


gameover // 敗北したのでシナリオ終了

Break Effect

効果中断コンテント。このコンテントは後続コンテントを持てません。

break イベントを終了します。パラメータはありません。


break // 中断

Standard / 標準コンテント

CradWirthEditorでStandardに区分されるコンテンツです。
背景変更と効果コンテントは設定できる要素が多いため、パラメータが突出して膨大になっています。

Message & Dialog

msg <話者>, <テキスト>
メッセージを表示します。
このコンテントはメッセージ選択分岐を行えます。詳細は例を参照してください。
パラメータ 話者には、以下のいずれかが指定できます。省略した場合は話者無しになります。
none 話者を表示しません。
M または selected 選択中のメンバ。
U または unselected 選択以外のメンバ。
R または random ランダムなメンバ。
C または card カードイベント中であれば、使用したカード。
文字列
カード画像のファイル名と解釈し、そのカードを話者とします。
テキストには、メッセージとして表示する文字列を指定します。
通常の""や''で囲った文字列の他、@を使用して複数行の文字列を記述できます。以下の例を参照してください。

msg "gob.bmp", // gob.bmpに喋らせる
@ 3
「グオオオ!」
@
msg M, // 選択中のメンバに喋らせる
@ center
ゴブリンの集団だ!
@
if "戦う"
break
elif "逃げ出す"
break
fi // 分岐終了

|dialog <話者>, [<クーポン> ..., <メッセージ>]
..., <評価初期値>, [<評価クーポン> ..., <得点>] ...|

口調分けして台詞を表示します。
このコンテントはメッセージ選択分岐を行えます。詳細は例を参照してください。
パラメータ 話者には、以下のいずれかが指定できます。
M または selected 選択中のメンバ。
U または unselected 選択以外のメンバ。
R または random ランダムなメンバ。
V または valued 所持クーポンを評価して高得点になったメンバ。これを指定した場合のみ、評価初期値と評価クーポンが有効になります。
話者の次の[]で囲われたパラメータで、クーポンとメッセージを指定します。話者が持つクーポンによって、表示されるメッセージが切り替わります。
最初のパラメータにVまたはvaluedを指定した場合、メッセージの次に評価初期値と評価クーポンを指定できます。それ以外の場合、これらの指定は無視されます。
評価クーポンと得点には、話者を選択する際の評価条件を配列で指定します。
dialog R, // ランダムなメンバに喋らせる
["_♀;_上品", @ center
「ゴブリンの姿が見えます。
間違いない、この洞窟ですわ」
@]
["_♂" "_上品", @ center
「ゴブリンの姿が見えます。
間違いなく、この洞窟でございますな」
@]
["_♀", @ center
「ゴブリンの姿が見えるわ。
間違いない、この洞窟よ」
@]
[@ center
「ゴブリンの姿が見える。
間違いない、この洞窟だ」
@]
if "見張りを誘き出す"
break
elif "突撃する"
break
elif "撤退"
break
fi // 分岐終了

Change Background

chback ([<画像パス>,<フラグ>, <X位置>,<Y位置>, <横幅>,<縦幅>, <透明化有無>,<セル名称>, <前景表示>]
[text, <テキスト>,<フォント名>, <文字サイズ>,<文字色>, <書式> ...,
(<縁取り色>), (<縁取り幅>), <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <前景表示>] |
[color, <合成方式>,<基本色>, <グラデーション方向>, <終端色>,<フラグ>, <X位置>,<Y位置>, <横幅>,<縦幅>, <セル名称>,
<前景表示>] | [pc,<表示メンバ>, <フラグ>,<X位置>, <Y位置>,<横幅>, <縦幅>),<セル名称>, <前景表示>]
..., <画面切替スピード>, <切替方式>|

背景を切替えます。
セルパラメータ 画像セル・テキストセル・カラーセル・プレイヤーキャラクタセルの三種類を配置できるようになっています。
[]で囲われたパラメータが一枚のセルを表し、いくつでも重ねて指定できます。

画像セル
[<画像パス>,<フラグ>, <X位置>,<Y位置>, <横幅>,<縦幅>, <透明化有無>]
1つの画像をセルとして配置します。
画像パスには、文字列で画像のファイル名を指定します。
フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。
X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、0、0、632、420になります。(画面一杯に表示)
透明化の有無には、true/falseで、左上を透明色として使用するか、透明化を行わないかを指定します。指定しなかった場合、透明化は行われません。
セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。
前景表示は、trueを指定した場合、セルがメニューカード等より手前に表示されます。falseの場合は背景に表示されます。
chback ["MapOfWirth.bmp"] // MapOfWirth.bmpを画面一杯に表示
["AdventurersInn.bmp", "", 116, 15, 400, 260, false] // 宿の画像を標準の位置に表示

テキストセル
[text,<テキスト>, <フォント名>,<文字サイズ>, <文字色>,<書式> ..., (<縁取り色>), (<縁取り幅>),
<フラグ>, <X位置>,<Y位置>, <横幅>,<縦幅>]
テキストをセルとして配置します。
最初にキーワードtextを指定してください。
テキストには、セルに表示する文章の内容を文字列で指定します。
フォント名には、表示に使用するフォントの名前を文字列で指定子ます。
文字サイズには、表示する文字のサイズをピクセル値で指定します。ポイントサイズではなくピクセル単位のサイズである事にご注意ください。
文字色には、表示される文字の色を指定します。次のいずれかの方式で指定する事ができます。
"#FFFFFF"のように文字列で指定する。これはWebの色指定などを行った事があれば馴染みのある形式かもしれません。この指定は#
FF FF FFのように分割して解釈され、FFの部分がそれぞれ十六進数の数値で、光の三原色である赤、緑、青の明るさを示しています。例えば、赤と緑の明るさが最高で青が真っ黒という意味の"#FFFF00"を指定すると、文字色は黄色になります。
[255, 255, 255]のように、複合パラメータで赤、緑、青の明るさを指定する。それぞれの明るさの値は0~255までです。
書式には、以下のパラメータを配列で指定します。
bold 文字を太字にします。
italic 文字を斜体にします。
underline 行に下線を付けます。
strike 行に打ち消し線を付けます。
vertical 文章を縦書きにします。
border1 文字を縁取りします。縁取りには2種類の形式があります。border2と共に指定された場合は、後から指定された方が有効になります。
border2 border1とは別の形式で縁取りを行います。border1と共に指定された場合は、後から指定された方が有効になります。
書式にborder1またはborder2を指定した場合、縁取りの色を指定する事ができます。指定の方法は文字色と同様です。縁取り書式を指定していない場合は、必ず省略してください。
書式にborder2を指定した場合、縁取りの太さを数値で指定する事ができます。border2を指定していない場合は、必ず省略してください。
フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。
X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、0、0、632、420になります。(画面一杯に表示)
セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。
前景表示は、trueを指定した場合、セルがメニューカード等より手前に表示されます。falseの場合は背景に表示されます。
chback [text, "Card Wirth", "Batang", 48, "#000000", bold italic border2, "#FFFFFF", 1, "", 185, 110, 280, 60]

カラーセル
[color,<合成方式>, <基本色>,<グラデーション方向>, <終端色>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>]
色つきの四角形をセルとして配置します。
最初にキーワードcolorを指定してください。
合成方式には、次のいずれかを指定できます。
normal そのままセルを描画します。背景は上書きされます。
add 背景の色にセルの色を加算します。例えば、灰色の背景に灰色のセルを加算合成すると、明るさが足し合わされて白に近い色になります。
sub 背景の色からセルの色を減じます。例えば、灰色の背景に灰色のセルを減算合成すると、明るさがセルの色の分だけ引かれて黒に近い色になります。
mul 背景の色とセルの色で乗算を行います。背景に対してセルの色で薄暗いフィルタをかけたような効果が得られます。
基本色には、セル全体を塗り潰す色を指定します。次のいずれかの方式で指定する事ができます。
"#FFFFFF"のように文字列で指定する。 これはWebの色指定などを行った事があれば馴染みのある形式かもしれません。この指定は#FF FF FFのように分割して解釈され、FFの部分がそれぞれ十六進数の数値で、光の三原色である赤、緑、青の明るさを示しています。例えば、赤と緑の明るさが最高で青が真っ黒という意味の"#FFFF00"を指定すると、セルの色は黄色になります。透明度を指定したい場合は、もう一つ数値を加えて#FFFF0080のようにしてください。数値が大きいほど不透明になり、00で完全に透明になります。
[255, 255, 255, 128]のように、複合パラメータで赤、緑、青の明るさと透明度を指定する。 それぞれの明るさの値は0~255までです。透明度も0~255で、255が完全に不透明、0が完全に透明となります。

グラデーション方向には、次のいずれかを指定できます。
none グラデーションしません。
h または horizontal 左から右へグラデーションします。
v または vertical 上から下へグラデーションします。
グラデーション方向でnone以外を指定した場合、グラデーションの終端側の色を指定する事ができます。色の指定方法は、基本色と同じです。グラデーション方向がnoneの場合は、必ず省略してください。
フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。
X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、0、0、632、420になります。(画面一杯に表示)
セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。
前景表示は、trueを指定した場合、セルがメニューカード等より手前に表示されます。falseの場合は背景に表示されます。
chback [color, mul, "#70B0FF", vertical, "#102030", "", 0, 0, 632, 420, "blue_filter", true]

プレイヤーキャラクタセル
[pc, <表示メンバ>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>]
シナリオをプレイ中のパーティのメンバの画像をセルとして配置します。
最初にキーワードpcを指定してください。
表示メンバには、パーティの中のどのメンバを表示するかを1から始まる番号で指定します。
フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。
X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、0、0、632、420になります。(画面一杯に表示)
セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。
前景表示は、trueを指定した場合、セルがメニューカード等より手前に表示されます。falseの場合は背景に表示されます。
chback [pc, 1, "", 0, 0, 632, 420]

その他のパラメータ
パラメータ 背景画像の指定に加え、WSN形式のシナリオに限り、画面切替スピードと切替方式を指定できます。
指定しなかった場合はエンジンの設定が採用されます。

chback // 次の3つのパラメータは配列のため、カンマで区切らない
["MapOfWirth.bmp"] // MapOfWirth.bmpを画面一杯に表示
["AdventurersInn.bmp", "", 116, 15, 400, 260, false] // 宿の画像を標準の位置に表示
[color, add, "#909090"], // 画面全体を明るくする
8 // ゆっくり背景を切り替える

Play BGM & SE

bgm <ファイル名> BGMを演奏します。
パラメータは音声ファイル名を指定。1.28以前では*.midしか指定できません。
stopを指定するか、省略した場合は、BGMを停止します。
se <ファイル名> 効果音を鳴らします。パラメータは音声ファイル名を指定。1.30以前では*.wavしか指定できません。
省略した場合は、何も鳴らしません。


bgm "DefInn.mid" // 宿のテーマをBGMにする
wait 50
bgm stop // BGM停止



se "システム・エラー.mid" // ブザー音を鳴らす

Wait

wait <停止時間>
一定時間ウェイトを入れます。
パラメータ 整数を指定します。この値に0.1秒をかけた値が、実際の停止時間になります。


wait 10 // 1秒間停止

Effect

effect <効果対象>, [<効果種別>, (<ダメージタイプ>,<値> <継続時間> <増減値>, <継続時間>
<召喚獣ID>), <属性>]..., <視覚効果>, <効果レベル>, <成功率>, <効果属性>, <抵抗属性>, <音声パス>|

パーティや選択中のメンバに対して回復やダメージ、カード配布等の効果を適用します。
パラメータ []で囲われたパラメータが一つの効果を表し、いくつでも連続で指定できます。
効果種別には次の値が指定できます。
heal 回復。
damage ダメージ。
absorb 吸収。
paralyze 麻痺。
disparalyze 麻痺解除。
poison 中毒。
dispoison 中毒解除。
getspilit 精神力回復。
losespilit 精神力喪失。
sleep 睡眠。
confuse 混乱。
overheat 激昂。
brave 勇敢。
panic 恐慌。
resetmind 精神正常化。
bind 呪縛。
disbind 呪縛解除。
silence 沈黙。
dissilence 沈黙解除。
faceup 暴露。
facedown 暴露解除。
antimagic 魔法無効状態。
disantimagic 魔法無効状態解除。
enhaction 行動力変化。
enhavoid 回避力変化。
enhresist 抵抗力変化。
enhdefense 防御力変化。
vantarget 対象消去。
vancard 手札カード消去。
vanbeast 召喚獣消去。
dealattack 「攻撃」カード配付。
dealpowerful 「渾身の一撃」カード配付。
dealcritical 「会心の一撃」カード配付。
dealfeint 「フェイント」カード配付。
dealdefense 「防御」カード配付。
dealdistance 「見切り」カード配付。
dealconfuse 「混乱」カード配付。
dealskill 特殊技能カード配付。
cancelaction 行動キャンセル。
summon 召喚獣を召喚。

続くパラメータは、効果種別によって変化します。
heal / damage / ダメージタイプと値を指定します。
absorb / paralyze / disparalyze /
poison / dispoison
sleep / confuse / 継続時間を指定します。
overheat / brave / panic /
bind / silence / faceup /
antimagic
enhaction / enhavoid / 増減値と継続時間を指定します。
enhresist / enhdefense
summon 召喚獣IDを指定します。
それ以外 種別に対応するパラメータはありません。

ダメージタイプには、ダメージや回復の値をどのように解釈するかを指定します。次の値が指定できます。
level レベル比。効果レベルによってダメージや回復の値が大きく変動します。
value 直接値。レベルに関係無く同等の効果を発揮します。
max 最大値処理。値は無視されます。
能力変動の増減値には、-10~10の値が指定できます。0で増減は無くなり、初期状態にリセットされます。
継続時間はラウンド数で指定し、省略した場合は10になります。
召喚獣は、現在のCWXスクリプトで召喚獣カードを記述できない事を踏まえ、召喚獣IDで指定するようになっています。
当然ながら、シナリオ内に存在する召喚獣しか指定できません。
効果種別固有のパラメータを記述した後は、効果属性を指定します。以下の値が指定できます。
all 全属性。あらゆる対象に有効。
phy 肉体属性。肉体を持つ対象にのみ有効。
mind 精神属性。精神を持つ対象にのみ有効。
holy 神聖属性。アンデッドなど、不浄な存在にのみ有効。
magic 魔法属性。ゴーレムなどの魔法生物にのみ有効。
fire 炎属性。弱点となる対象と、無効化する対象がある。
ice 冷気属性。弱点となる対象と、無効化する対象がある。
省略した場合は全属性になります。
効果対象は、上記の効果を適用する対象です。以下の値が指定できます。省略した場合は選択中のメンバになります。
M または selected 選択中のメンバ。
R または random ランダムなメンバ。
T または team パーティ全体。
効果レベルは、効果を発揮する際の判定の基準となるレベルです。整数で、マイナスの値も指定できます。省略した場合は0になります。
視覚効果は、効果を受けたカードの動きです。以下の値が指定できます。省略した場合は視覚効果無しになります。
none 視覚効果無し。
reverse カードを反転します。
hswing 振動。カードを横に振動させます。
vswing 地震。カードを縦に振動させます。
成功率には、-5から+5の値を指定できます。値が大きくなるほど当たり易くなり、+5で絶対命中、-5で絶対失敗します。省略した場合は0になります。
効果属性には、敵の実体の有無や、魔法が通用するか否かによって効果がどのように発揮されるかを指定します。以下の値を指定できます。省略した場合は無属性になります。以下の値が指定できます。
physic 物理属性。幽霊など、実体の無い対象には効果がありません。
magic 魔法属性。魔法を無効化する対象には効果がありません。
mphysic 魔法的物理属性。実体があるか、魔法の通用する対象であれば効果を発揮します。
pmagic 物理的魔法属性。実体が無いか、魔法を無効化する対象には効果がありません。
none 無属性。あらゆる対象に効果を発揮します。
抵抗属性には、効果を回避される可能性があるか、必ず命中するが抵抗される可能性があるかを指定します。省略した場合は必中属性になります。以下の値が指定できます。
avoid 回避属性。命中すれば確実に効果を発揮しますが、回避された場合は効果がありません。
resist 抵抗属性。確実に命中しますが、抵抗によってダメージの低下や特殊効果の無効化などが発生します。
unfail 必中属性。確実に命中し、効果属性さえ合えば確実に効果を発揮します。

音声パスには、効果を適用した際に鳴る効果音のファイル名を指定します。省略した場合は効果音無しになります。

effect T, // パーティ全体が対象
[damage, level, 5] // レベル比5のダメージ
[enhaction, -5, 10, phy], // 肉体を持つのであれば、10ラウンドの間、行動力が5低下。
hswing, // 横振動
3, // 効果レベル3
4, // 絶対命中ではないがかなりの命中率は高い
physic, // 実体の無い対象には無効
resist, // 抵抗可能
"効果(攻撃).wav" // 標準効果音を鳴らす


Elapse Time

elapse
ラウンドを経過させます。
それによって、毒のダメージや、効果時間の消費などが発生します。
パラメータ パラメータはありません。

elapse // 時間経過

Call Start & Package

callstart <スタート名>
指定されたスタートコンテントに連なるコンテントツリーを呼び出します。
呼び出し先のコンテントツリーの処理が終了した後は、元のツリーに処理が復帰します。
パラメータ スタート名を指定します。

callstart "隠蔽処理" // スタートコンテント「隠蔽処理」を呼び出す

callpack <ID>
指定されたパッケージのイベントを呼び出します。
呼び出し先のパッケージの処理が終了した後は、元のツリーに処理が復帰します。
パラメータ 整数でパッケージIDを指定します。

callpack 4 // パッケージ4の処理を呼び出す

Data / 変数操作系コンテント

CardWirthEditorでDataに区分されるフラグとステップを操作するコンテンツです。

Branch with Flag

brflag <フラグ名>
指定されたフラグによって分岐を行います。
if-elif-fiによって後続の処理が切り替えられます。
CardWirthのイベントの形式上、分岐した処理が合流する事はありません。
パラメータ 文字列でフラグ名を指定します。

brflag "発見された" // フラグ「発見された」で分岐
if true
gobattle 1
elif false
break
fi // 分岐終了


Branch with Step (Multi & Two)

複数に分岐できる多岐分岐と二者択一の上下分岐があります。

brstepm <ステップ名>
ステップによる多岐分岐を行います。
パラメータ 文字列でステップ名を指定します。

brstepm "見張り兵の気持ち"
if 0
msg "gob.bmp", "「……」"
elif 1
msg "gob.bmp", "「……」"
elif 2
msg "gob.bmp", "「……?」"
elif default
msg none, "イベントの構成上ここに来たらエラー"
endsc
fi // 分岐終了

brstept <ステップ名>, <ステップ値>
ステップによる上下分岐を行います。
パラメータ 文字列でステップ名を、整数で分岐のボーダーラインとなる値を指定します。

brstept "見張り兵の気持ち", 3
if true
gobattle 2
elif false
break
fi // 分岐終了

Select Member

selmember <パーティ全体からの選択か>, <ランダム選択か>
パーティメンバを選択します。また、選択を行ったかキャンセルしたかによって処理を分岐します。

|パラメータ|最初のパラメータでtrueを指定すると、パーティ全体からの選択になります。falseを指定した場合は、動けるメンバからの選択になります。省略した場合は、パーティ全体になります。
次のパラメータでtrueを指定すると、メンバはランダムで自動的に選択されます。falseを指定した場合は、プレイヤーが手動で選択を行います。キャンセルも可能です。省略した場合は、手動になります。

selmember true, false // パーティ全体から手動でメンバを選択
if true
getcoupon M, ":主役"
elif false
gostart "メンバ選択"
fi // 分岐終了

Set Flag & Step

setflag <フラグ名>, <値>
フラグの値を設定します。

パラメータ フラグ名には、フラグの名前を文字列で指定します。
値には、フラグのOn/Offをtrue/falseで指定します。

setflag "見張り生存", false // フラグ「見張り生存」をOffにする

setstep <ステップ名>, <値>
ステップの値を設定します。
パラメータ ステップ名には、ステップの名前を文字列で指定します。
値には、ステップの値を0~9の整数で指定します。

setstep "見張り兵の気持ち", 2 // ステップ「見張り兵の気持ち」の値を2にする

Step Up & Down

stepup <ステップ名>

ステップの値を1上げます。
パラメータ ステップの名前を文字列で指定します。

stepup "見張り兵の気持ち" // ステップ「見張り兵の気持ち」の値を上げる

stepdown <ステップ名>
ステップの値を1下げます。
パラメータ ステップの名前を文字列で指定します。

stepdown "見張り兵の気持ち" // ステップ「見張り兵の気持ち」の値を下げる

Reverse Flag

revflag <フラグ名>
フラグのOn/Offを入れ替えます。
パラメータ フラグの名前を文字列で指定します。

revflag "見張り生存" // フラグ「見張り生存」を反転

Copy Step & Flag

cpstep <代入元ステップ名>, <代入先ステップ名>
cpflag <代入元フラグ名>, <代入先フラグ名>
これらのコンテントはCardWirth 1.30以降でなければ機能しません。
状態変数(ステップまたはフラグ)の値を別の状態変数へ代入します。ランダムな値を代入する事もできます。

パラメータ 代入元となる変数と代入先となる状態変数の名前を指定します。
代入元にrandomを指定すると、代入先にランダムな値がセットされます。

cpstep "情報A段階", "汎用段階" // ステップ「情報A段階」の内容を「汎用段階」へ代入
cpflag "情報A入手済み", "汎用フラグ" // フラグ「情報A入手済み」の内容を「汎用入手済み」へ代入
callpack $pack_汎用情報処理 // 汎用パッケージのコール
cpstep "情報A段階", "汎用段階" // ステップ「情報A段階」へ処理結果を反映
cpflag "情報A入手済み", "汎用フラグ" // フラグ「情報A入手済み」へ処理結果を反映
cpstep random, "ダイス" // ステップ「ダイス」へランダム値を設定

Compare Step & Flag

※これらのコンテントはCardWirth 1.30以降でなければ機能しません。

cmpstep <比較元ステップ名>, <比較先ステップ名>
ステップの値を別の値と比較し、その結果で分岐を行います。
分岐のパラメータは文字列で指定します。大なり">"、小なり"<"、同値"="の三種類が指定可能です。
パラメータ 比較元となるステップと比較先となるステップの名前を指定します。

cmpstep "自軍状態", "敵軍状態" // ステップ「自軍状態」と「敵軍状態」を比較
if ">" // 「自軍状態」が「敵軍状態」より大きい
callpack $pack_勝利
elif "<" // 「自軍状態」が「敵軍状態」より小さい
callpack $pack_敗北
elif "=" // 「自軍状態」が「敵軍状態」と同値
callpack $pack_引き分け
fi // 分岐終了

cmpflag <比較元フラグ名>, <比較先フラグ名>

フラグの値を別の値と比較し、その結果で分岐を行います。
分岐のパラメータには一致true、不一致falseのいずれかが指定可能です。
パラメータ 比較元となるフラグと比較先となるフラグの名前を指定します。

cmpflag "A好調", "B好調" // ステップ「A好調」と「B好調」を比較
if true // 一致
msg none, "自分と相手の状態は同じ程度のようだ。"
elif false // 不一致
msg none, "好調なのは片方だけか。"
fi // 分岐終了

Check Flag

chkflag <フラグ名>
フラグがOnになっている場合だけ出現するイベントを作ります。
メッセージ選択分岐の直後に配置するのが一般的な使い方です。例を参照してください。
パラメータ フラグの名前を文字列で指定します。

msg none, "どうする?"
if "依頼を受ける" chkflag "話を聞いた"
break
elif "依頼を断る"
endsc
elif "話を聞く"
setflag "話を聞いた", true
fi // 分岐終了

Check Step

このコンテントはCardWirth 1.50以降でなければ機能しません。
chkstep <ステップ名>, <値>, <比較条件>

ステップの値が条件を満たす時だけ出現するイベントを作ります。
chkflagと同様ですが、より柔軟な条件設定が可能です。例を参照してください。
パラメータ ステップ名には、ステップの名前を文字列で指定します。
比較条件には、この後に指定する値とイベント実行時点でのステップの値をどのように比較するかを指定します。"="を指定すると現在のステップ値と比較値が一致する場合に、"<>"を指定するとステップ値と比較値が一致しない場合に、"<"を指定するとステップ値が比較値より小さい場合に、">"を指定するとステップ値が比較値より大きい場合に、それぞれイベントが出現します。
値には、イベント実行時点での値と比較する値を数値で設定します。

msg none, "何を聞こう?"
if "事件のあらまし" chkstep "質問段階", "=", 0
stepup "質問段階"
elif "目撃者について" chkstep "質問段階", "<>", 0
stepup "質問段階"
elif "依頼について" chkstep "質問段階", ">", 1
break
fi // 分岐終了

Utility / 選択判定分岐系コンテント

能力やレベル、バトルなど状況の判定を行なうコンテンツです。

Branch with Ability

brability <判定対象>, <眠り判定>, <レベル>, <身体的要素>, <精神的要素>
能力分岐を行います。
パラメータ 判定対象には、以下のいずれかが指定できます。
M または selected 選択中のメンバ。
R または random 誰か一人。
T または team パーティ全員。
眠り判定にはtrue/false値を指定します。trueの場合、睡眠している者も判定を行えます。falseの場合は必ず失敗します。
レベルには、判定の基準となるレベルを整数で指定します。高いほど難度が高くなり、マイナスの値は指定できません。
判定に使用する身体的・精神的要素には以下が指定できます。
身体的要素 精神的要素
dex 器用度 agg 好戦性 unagg 平和性
agl 敏捷度 cheerf 社交性 uncheerf 内向性
int 知力 brave 勇猛性 unbrave 臆病性
str 筋力 caut 慎重性 uncaut 大胆性
vit 生命力 trick 狡猾性 untrick 正直性
min 精神力

brability M, false, 5, agl, unbrave
if true
break
elif false
msg M, "「しまった!」"
fi // 分岐終了

Branch with Random

brrandom <パーセント値>
指定された確率で分岐します。
パラメータ 確率を0~100のパーセンテージで記述します。


brrandom 30 // 30%の確率で分岐
if true
break
elif false
break
fi // 分岐終了

Branch with Level

brlevel <レベル>, <平均か>
レベルで判定して処理を分岐します。
パラメータ 最初のパラメータには判定するレベルを指定します。
二番目のパラメータにtrueを指定すると、パーティ全員の平均値で判定を行います。
falseを指定するか省略すると、選択中のメンバで判定を行います。


brlevel 5, true // パーティ全員の平均レベルが5以上かどうかで分岐
if true
break
elif false
break
fi // 分岐終了

Branch with Status

brstatus <判定対象>, <ステータス>
メンバのステータスによって分岐を行います。

パラメータ 判定対象には、以下のいずれかが指定できます。
M または selected 選択中のメンバ。
R または random 誰か一人。
T または team パーティ全員。
ステータスには、以下のいずれかを指定できます。
active 行動可能。(健康 / 負傷 / 重傷 / 中毒)
inactive 行動不可。(意識不明 / 麻痺または石化 / 呪縛 / 眠り)
alive 生存。(健康 / 負傷 / 重傷 / 中毒 / 呪縛 / 眠り)
dead 非生存。(意識不明 / 麻痺または石化)
fine 健康。
injured 負傷。
heavyinjured 重傷。
unconscious 意識不明。
poison 中毒。
sleep 眠り。
bind 呪縛。
paralyze 麻痺あるいは石化。
confuse 混乱。CardWirth1.50以降でなければ機能しません。
overheat 激昂。CardWirth1.50以降でなければ機能しません。
brave 勇敢。CardWirth1.50以降でなければ機能しません。
panic 恐慌。CardWirth1.50以降でなければ機能しません。
silence 沈黙。CardWirth1.50以降でなければ機能しません。
faceup 暴露。CardWirth1.50以降でなければ機能しません。
antimagic 魔法無効化。CardWirth1.50以降でなければ機能しません。
upaction 行動力上昇。CardWirth1.50以降でなければ機能しません。
upavoid 回避力上昇。CardWirth1.50以降でなければ機能しません。
upresit 抵抗力上昇。CardWirth1.50以降でなければ機能しません。
updefense 防御力上昇。CardWirth1.50以降でなければ機能しません。
downaction 行動力低下。CardWirth1.50以降でなければ機能しません。
downavoid 回避力低下。CardWirth1.50以降でなければ機能しません。
downresit 抵抗力低下。CardWirth1.50以降でなければ機能しません。
downdefense 防御力低下。CardWirth1.50以降でなければ機能しません。


brstatus T, alive // パーティ全員が生存状態かどうかで分岐
if true
break
elif false
break
fi // 分岐終了

Branch with Count of Member

brcount <人数>
パーティの人数で分岐します。
パラメータ 人数を整数で指定します。

brcount 2 // パーティが2人以上いるかどうかで分岐
if true
msg none, "君達は洞窟へ入った。"
elif false
msg none, "君は洞窟へ入った。"
fi // 分岐終了

Branch with Current Area & Battle

brarea
現在どのエリアにいるかで分岐します。
if-elif-fiによってエリアIDを指定します。現在いる場所がエリアでない場合、必ずdefaultに分岐します。
パラメータ パラメータはありません。

brarea
if 1
break
elif 2
break
elif 3
break
elif default
break
fi // 分岐終了

brbattle
現在どのバトルにいるかで分岐します。
if-elif-fiによってバトルIDを指定します。現在いる場所がバトルでない場合、必ずdefaultに分岐します。
パラメータ パラメータはありません。

brbattle
if 1
break
elif 2
break
elif 3
break
elif default
break
fi // 分岐終了

Branch with If on Battle

bronbattle
現在バトル中であるかどうかで分岐します。
パラメータ パラメータはありません。

bronbattle
if true
break
elif false
break
fi // 分岐終了

Select with Random

このコンテントはCardWirth 1.30以降でなければ機能しません。

selrandom <範囲>, <レベル下限>, <レベル上限>,<ステータス>
条件に合う中からランダムでパーティメンバまたは敵キャストまたは同行キャストを選択します。

パラメータ 範囲には、以下のいずれかを配列で指定できます。
party パーティ全体。
enemy 敵全体。
npc 同行キャスト全体。CardWirth1.50以降でなければ機能しません。

レベル下限とレベル上限には、選択対象のレベル範囲を指定します。0を指定した場合、レベルは無視されます。
ステータスには、以下のいずれかを指定できます。noneを指定した場合、状態は無視されます。
active 行動可能。(健康 / 負傷 / 重傷 / 中毒)
inactive 行動不可。(意識不明 / 麻痺または石化 / 呪縛 / 眠り)
alive 生存。(健康 / 負傷 / 重傷 / 中毒 / 呪縛 / 眠り)
dead 非生存。(意識不明 / 麻痺または石化)
fine 健康。
injured 負傷。
heavyinjured 重傷。
unconscious 意識不明。
poison 中毒。
sleep 眠り。
bind 呪縛。
paralyze 麻痺あるいは石化。
confuse 混乱。
overheat 激昂。
brave 勇敢。
panic 恐慌。
silence 沈黙。
faceup 暴露。
antimagic 魔法無効化。
upaction 行動力上昇。
upavoid 回避力上昇。
upresit 抵抗力上昇。
updefense 防御力上昇。
downaction 行動力低下。
downavoid 回避力低下。
downresit 抵抗力低下。
downdefense 防御力低下。
none 状態指定無し。


selrandom party enemy npc, 1, 3, heavyinjured
if true
break
elif false
break
fi // 分岐終了

Branch with Random

このコンテントはCardWirth1.50以降でなければ機能しません。
brround <比較条件>, <ラウンド>
現在のバトルのラウンド数で分岐します。
バトル内でなければ正常に動かない事に注意してください。bronbattleとの併用が効果的です。
パラメータ 比較条件には、この後に指定するラウンドと、イベント実行時点でのバトルラウンドをどのように比較するかを指定します。
"="を指定すると現在のラウンドと指定ラウンドが一致する場合に、
"<"を指定するとバトルラウンドが指定ラウンドより小さい場合に、
">"を指定するとバトルラウンドが指定ラウンドより大きい場合に、それぞれtrueとなります。
ラウンドには、現在のバトルのラウンド数を指定します。

brround "<" 11
if true
break
elif false
break
fi // 分岐終了

Branch / 所持分岐系コンテント

同行キャストや所持金、所持カード、クーポン、ゴシップ、キーコードなどで分岐させるコンテンツです。
カードの所持分岐はシナリオ外では機能しません。

Branch with Existence of Cast

brcast <ID>
同行キャストの存在の有無で分岐します。
パラメータ キャストカードのIDを整数で指定します。

brcast 2
if true
break
elif false
break
fi // 分岐終了

Branch with Existence of Item & Skill & Beast

britem <範囲>, <ID>, <枚数>
brskill <範囲>, <ID>, <枚数>
brbeast <範囲>, <ID>, <枚数>
それぞれ、アイテム、特殊技能、召喚獣の所持の有無によって分岐を行います。
パラメータ 判定の範囲には、次のいずれかが指定できます。
M または selected 選択中のメンバの所持カード。
R または one 誰か一人の所持カード。これによって判定に成功した場合、所持しているメンバが選択状態になります。
T または team パーティ全員の所持カード。
backpack 荷物袋。
party 荷物袋も含むパーティ全員の所持カード。
field パーティ・荷物袋に加えて敵なども含めたフィールド全体。
IDには、カードのIDを整数で指定します。
枚数には、カードの枚数を整数で指定します。
この枚数以上カードが存在しない場合、判定は失敗します。省略した場合は1になります。

britem R, 1, 2
if true
break
elif false
break
fi // 分岐終了

Branch with Existence of Information

brinfo <ID>
情報カードの所持の有無で分岐します。この処理はフラグ分岐などより高速で動作します。
パラメータ 情報カードのIDを整数で指定します。

brinfo 4
if true
break
elif false
break
fi // 分岐終了

Branch with Money

brmoney <金額>
所持金の量によって分岐します。
パラメータ 分岐のボーダーラインとなる金額を整数で指定します。

brmoney 1000
if true
break
elif false
break
fi // 分岐終了

Branch with Coupon

brcoupon <判定対象>, <クーポン名>

パラメータ クーポン(称号)を所持しているかどうかで分岐を行います。
判定対象には、次のいずれかが指定できます。
M または selected 選択中のメンバの所持クーポン。
R または one 誰か一人の所持クーポン。これによって判定に成功した場合、所持しているメンバが選択状態になります。
T または team パーティ全員の所持クーポン。
クーポン名には、文字列でクーポンの名前を指定します。

brcoupon M, ":主人公"
if true
break
elif false
break
fi // 分岐終了

Branch with Complete Stamp & Gossip

brstamp <シナリオ名>
シナリオの済印の有無で分岐を行います。
パラメータ シナリオ名を文字列で指定します。

brstamp "ゴブリンの洞窟"
if true
break
elif false
break
fi // 分岐終了

brgossip <ゴシップ名>
ゴシップ(宿クーポン)の有無で分岐を行います。
パラメータ ゴシップ名を文字列で指定します。

brgossip "悪い噂"
if true
break
elif false
break
fi // 分岐終了

Branch with Key Code

このコンテントはCardWirth 1.50以降でなければ機能しません。
brkeycode <範囲>, <カード種別>, <キーコード>
範囲内に指定されたキーコードを持つカードがあるか否かで分岐します。
パラメータ 判定の範囲には、次のいずれかが指定できます。
M または selected 選択中のメンバの所持カード。
R または one 誰か一人の所持カード。これによって判定に成功した場合、所持しているメンバが選択状態になります。
backpack 荷物袋。
party 荷物袋も含むパーティ全員の所持カード。
カード種別には、以下のいずれかを指定できます。
all 全てのカード。
skill 特殊技能カード。
item アイテムカード。
beast 召喚獣カード。
最後のパラメータで判定対象のキーコードを指定します。

brkeycode R, item, "治療"
if true
break
elif false
break
fi // 分岐終了

Get / 獲得系コンテント

NPCを同行させたり、カードを入手するコンテンツです。

Get Cast

getcast <ID>
キャストを同行させます。
パラメータ
キャストカードのIDを整数で指定します。

getcast 1 // ID1のキャストを同行させる

Get Item & Skill & Beast

getitem <範囲>, <ID>, <枚数>
getskill <範囲>, <ID>, <枚数>
getbeast <範囲>, <ID>, <枚数>
それぞれ、アイテム、特殊技能、召喚獣を入手させます。
パラメータ 判定の範囲には、次のいずれかが指定できます。
M または selected 選択中のメンバ。
R または one 誰か一人。
T または team パーティ全員。
backpack 荷物袋。
party 荷物袋も含むパーティ全員。
field パーティ・荷物袋に加えて敵なども含めたフィールド全体。

IDには、カードのIDを整数で指定します。
枚数には、カードの枚数を整数で指定します。

getskill M, 10, 2 // 選択中のメンバがID10の特殊技能カードを2枚入手

Get Information

getinfo <ID>
情報カードを入手させます。
パラメータ 情報カードのIDを整数で指定します。

getinfo 5 // ID5の情報カードを入手

Get Money

getmoney <金額>
所持金を増加させます。
パラメータ 金額を整数で指定します。

getmoney 600 // 600sp入手

Get Coupon

getcoupon <対象>, <クーポン名>, <得点>
クーポン(称号)を入手させます。
パラメータ 対象には、次のいずれかが指定できます。
M または selected 選択中のメンバ。
R または random 誰か一人。
T または team パーティ全員。
クーポン名には、クーポンの名前を文字列で指定します。
得点には、クーポンの点数を整数で指定します。マイナスの値も指摘でき、省略した場合は0点になります。

getcoupon T, "ゴブリン退治", 1 // パーティ全員が1点のクーポン「ゴブリン退治」を入手

Get Complete Stamp & Gossip

getstamp <シナリオ名>
シナリオに済印をつけます。
パラメータ シナリオ名を文字列で指定します。

getstamp "交易都市リューン" // シナリオ「交易都市リューン」に済印をつける

getgossip <ゴシップ名>
ゴシップ(宿クーポン)を追加します。
パラメータ ゴシップ名を文字列で指定します。

getgossip "悪い噂" // ゴシップ「悪い噂」を追加

Lost / 喪失系コンテント

Getとは反対に要素を失わせるコンテンツです。

Lose Cast

losecast <ID>
キャストの同行を取りやめます。
パラメータ キャストカードのIDを整数で指定します。

losecast 1 // ID1のキャストを仲間から外す

Lose Item & Skill & Beast

loseitem <範囲>, <ID>, <枚数>
loseskill <範囲>, <ID>, <枚数>
losebeast <範囲>, <ID>, <枚数>
それぞれ、アイテム、特殊技能、召喚獣を喪失させます。

パラメータ 判定の範囲には、次のいずれかが指定できます。
M または selected 選択中のメンバ。
R または one 誰か一人。
T または team パーティ全員。
backpack 荷物袋。
party 荷物袋も含むパーティ全員。
field パーティ・荷物袋に加えて敵なども含めたフィールド全体。

IDには、カードのIDを整数で指定します。
枚数には、カードの枚数を整数で指定します。0またはallを指定すると全て喪失します。省略した場合は1になります。

losebeast backpack, 10, all // 荷物袋にあるID10の召喚獣を全て削除

Lose Information

loseinfo <ID>
情報カードを削除します。
パラメータ 情報カードのIDを整数で指定します。

loseinfo 15 // ID15の情報カードを削除

Lose Money

losemoney <金額>
所持金を減らします。
パラメータ 金額を整数で指定します。

losemoney 1400 // 1400sp支払う

Lose Coupon

losecoupon <対象>, <クーポン名>
クーポン(称号)を削除します。
パラメータ 対象には、次のいずれかが指定できます。
M または selected 選択中のメンバ。
R または one 誰か一人。
T または team パーティ全員。
クーポン名には、クーポンの名前を文字列で指定します。

losecoupon T, ":主人公" // パーティ全員からクーポン「:主人公」を削除

Lose Complete Stamp & Gossip

losestamp <シナリオ名>
シナリオの済印を削除します。
パラメータ シナリオ名を文字列で指定します。

losestamp "ゴブリンの洞窟" // シナリオ「ゴブリンの洞窟」の済印を削除

losegossip <ゴシップ名>
ゴシップ(宿クーポン)を削除します。
パラメータ ゴシップ名を文字列で指定します。

losegossip "悪い噂" // ゴシップ「悪い噂」を削除

Visual / 画面系コンテント


Show Party & Hide Party

showparty
画面下に隠したパーティを再表示します。
パラメータ パラメータはありません。

showparty // パーティを表示

hideparty
パーティを画面下に隠します。なおキャンプ画面に入ると自動で再表示されます。
パラメータ パラメータはありません。

hideparty // パーティを隠す

Redraw

画面再構築コンテント。CardWirthではセルのフラグを操作しただけでは画面に反映されません。
結果を画面に反映したい時にこのコンテントを実行する必要があります。

redraw <画面切替スピード>, <切替方式> 画面を再描画します。
画面を構成する背景画像に表示フラグが設定されている場合、フラグの状態に応じて表示が切り替えられます。

パラメータ WSN形式のシナリオに限り、画面切替スピードと切替方式を指定できます。
指定しなかった場合はエンジンの設定が採用されます。


redraw 1, thread // 画面を短冊(スレッド)式で素早く再描画

背景切替方式のパラメータ

WSN形式のシナリオに限り、エリア移動/背景変更/画面の再構築コンテントでそれぞれ画面切替スピードと切替方式を指定できます。

切替方式には以下の値が指定できます。
default エンジンの設定を使用します。
none 切替エフェクト無しで即座に画面を切替えます。切替速度は無視されます。
thread 短冊(スレッド)式。画面を短冊のような縦長の領域に区切り、各区画毎に次の画面へ切替えます。
shave ドット置換(シェーブ)式。画面を無数の領域に分割し、各領域をランダムな順序で次の画面に置換します。
fade 色置換(フェード)式。画面の全体の色を徐々に変更し、滑らかに次の画面へ切替えます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。
0の場合はエフェクト無しで即座に切り替わります。




テキストエディタの色分け設定などにお役立てください。

添付ファイル