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

CWXスクリプトとは、CardWirthのイベントツリーを記述するための専用スクリプト言語です。

目次

  1. CWXスクリプトの位置付け
  2. 文法
    1. アウトライン
    2. 文法の原則
    3. コメント
    4. パラメータの種類
      1. 文字列
        1. 一行文字列
        2. 複行文字列
        3. 文字列の連結
      2. 数値(または計算式)
      3. キーワード
      4. 複合パラメータ
      5. 配列
      6. 変数
    5. 処理の分岐
      1. 単分岐
      2. if/elif/sifについての補足
    6. 後続コンテントについて
    7. 空変数
  3. コンテントリファレンス
    1. コンテント一覧
      1. start
      2. gobattle
      3. endsc
      4. gameover
      5. goarea
      6. effect
      7. break
      8. gostart
      9. gopack
      10. msg
      11. dialog
      12. bgm
      13. se
      14. wait
      15. elapse
      16. callstart
      17. callpack
      18. brflag
      19. brstepm
      20. brstept
      21. selmember
      22. brability
      23. brrandom
      24. brrandomm
      25. brlevel
      26. brstatus
      27. brcount
      28. brarea
      29. brbattle
      30. bronbattle
      31. selrandom
      32. brround
      33. brcast
      34. britem
      35. brskill
      36. brbeast
      37. brinfo
      38. brmoney
      39. brcoupon
      40. brcouponm
      41. brstamp
      42. brgossip
      43. brkeycode
      44. setflag
      45. setstep
      46. stepup
      47. stepdown
      48. revflag
      49. cpstep
      50. cpflag
      51. cmpstep
      52. cmpflag
      53. chkflag
      54. chkstep
      55. getcast
      56. getitem
      57. getskill
      58. getbeast
      59. getinfo
      60. getmoney
      61. getcoupon
      62. getstamp
      63. getgossip
      64. losecast
      65. loseitem
      66. loseskill
      67. losebeast
      68. loseinfo
      69. losemoney
      70. losecoupon
      71. losestamp
      72. losegossip
      73. showparty
      74. hideparty
      75. mvcard
      76. chback
      77. mvback
      78. rplback
      79. loseback
      80. redraw
  4. 付録 : キーワード一覧
    1. 制御文
    2. 命令
    3. その他のキーワード

CWXスクリプトの位置付け

CardWirthEditorのGUIによるシナリオ作成は、直感的で分かり易いものといわれています。CardWirthの普及の度合いを見る限り、それが正しい事は間違いありません。

それと共に、「CardWirthもスクリプトでシナリオを書ければいいのに」という声を時折聞きます。一定の文法に則ってテキストに処理を記述していくやり方は、慣れればマウスを用いたGUI操作よりも遥かに高速である上、見通しもよくなる、というのがその理由です。

CWXスクリプトは、そうした需要を満たすために設計された、CardWirthのイベントツリーを記述するための言語です。

CWXスクリプトはCardWirthのシナリオを強化する言語ではありません。あくまでCardWirth中のイベントコンテントをGUIによらず記述するための言語であり、それ以上の機能は持ち合わせません。また、スクリプトをCardWirthエンジンで直接読み込むことはできず、最終的にはCWXEditorに「貼り付け」てCardWirthシナリオとして保存する必要があります。また、CWXスクリプトで記述できるイベントは、全てCWXEditorでも作成する事が可能です。実現の過程が異なるだけなのです。

単体で成り立つものではなく、シナリオ作りの補助に用いる事の出来る道具、という程度にお考え下さい。

文法

アウトライン

CardWirthのイベントコンテントのツリーは常に"スタートコンテント"から始まります。基本的には、CWXスクリプトでも同様です。

例えば、スタートして、メッセージを一つ表示し、そのまま済印をつけずに終了するイベントは次のように記述できます。

start "到着イベント"
    msg none, "hello, world!"
    endsc false

CWXEditorで適当なエリアを作成し、イベントビューでこのスクリプトを貼り付けてみれば、実際にイベントツリーが生成されるはずです。

start/msg/endscがイベントコンテント名、ダブルクォーテーション""で囲われた部分が文字列(この場合はスタートコンテント名とメッセージ)、nonefalseがイベントコンテントのパラメータを指定するためのキーワードになります。

順番に見ていきましょう。

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 "ま""っ"

'」も同様です。

// 「Cusinart'」という文字列
start 'Cusinart'''

文字列を囲う記号と異なる文字であれば普通に入れる事ができます。

// ま"っ
start 'ま"っ'
// Cusinart'
start "Cusinart'"

一行文字列には、改行を入れる事はできません。

複行文字列

一行文字列には入れられなかった改行を入れる事ができます。

msg none, @

例えば3行に渡るメッセージをこう書けます。
この例では、一番最初に空行が一つ入ってます。
例によって、文字列を囲う記号を文字列内に登場させたい場合は「@@」とします。
@

記号「@」で囲われた範囲が文字列になります。

開始部の「@」の後、及び終了部の「@」の前には改行が必要です。(改行の後にスペースやタブ文字が入っても構いません)

途中に「@」を入れたい場合は「@@」と書きます。

複行文字列では、行頭にあるタブ文字や半角空白は削除されます。次の例は、最初に挙げた例と同じ結果になります。

msg none, @

    例えば3行に渡るメッセージをこう書けます。
        この例では、一番最初に空行が一つ入ってます。
            例によって、文字列を囲う記号を文字列内に登場させたい場合は「@@」とします。
      @ // <- この@の前のスペースも無視されます

全角空白は削除されません。

行頭に全角空白以外のスペースを入れたい場合は、直前に「\」を入れます。

msg none, @
\    <- ここの半角スペースは無視されません。
\       ただし、\は消えてしまいます。
\\   <- 二度続けて書くと、一個の「\」に置換されます。
@

@」の後に続けて数値を書くと、その数値を行数と解釈し、メッセージが指定された行から開始されるように空行を入れる事ができます。

msg none, @ 4
このメッセージは4行目に表示されます。
@

数値の代わりにcenterというキーワードを使う事で、CardWirthのメッセージ欄に合わせて、縦方向の中央寄せに表示させる事ができます。

msg none, @ center
このメッセージは中央付近の行に表示されます。
@

一行の長さがメッセージ欄の幅をオーバーした際の折り返しも考慮されますが、特殊文字やタブ文字が含まれている場合は、確実に中央寄せされるとは限りません。

文字列の連結

~」を使う事で、文字列を連結できます。

// start "hello, world" と同じ
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の後に記述するパラメータの種類は、分岐の直前に置くコンテントによって異なります。各コンテント毎の解説を参照してください。

また、CardWirthのイベントツリーの構造上、if/elif/sifは、必ず分岐先のイベントコンテントを持たなければなりません。

CardWirthでは、一部のコンテントはイベントツリーの終端となっており、その後に続けてコンテントを配置する事ができません。

例えば、シナリオ終了コンテントendscは、後続のコンテントを持つ事ができません。

従って、次のようなスクリプトはエラーになります。

start "到着イベント"
    msg none, "hello, world!"
    endsc false
    msg none, "シナリオ終了" // endscは後続を持てないため、エラーになる

ある種のコンテントが後続コンテントを持つ事ができるかどうかは、各コンテント毎の解説を参照してください。

空変数

以下のように、スクリプトの冒頭に初期値を設定していない変数の宣言がある場合、貼り付けた際にダイアログが開き、後付けで変数の値を設定する事ができます。

定型のロジックではあるものの内部で使用するフラグなどは都度切り替えたい、というような場合に便利です。

$パッケージ
$フラグ
$フラグ値
callpack $パッケージ
setflag $フラグ, $フラグ値

空変数を冒頭以外に配置した場合は、エラーです。

コンテントリファレンス

コンテント一覧

start <名前>
スタートコンテント
gobattle <ID>
バトルの開始
endsc <済印有無>
シナリオの終了
gameover
ゲームオーバー
goarea <ID>, <画面切替スピード>, <切替方式>
エリアの移動
effect (<効果対象> | coupon <称号名>), [<効果種別>, (<ダメージタイプ>, <値> | <継続時間> | <増減値>, <継続時間> | <召喚獣ID>), <属性>] ..., <視覚効果>, <効果レベル>, <成功率>, <効果属性>, <抵抗属性>, <音声パス>, <音量>, <ループ回数>, <選択メンバの能力参照>, <身体的要素>, <精神的要素>, <イベント発火の有無>, <キーコード> ...
効果
break <カード消費の有無>
イベントの中断
gostart <スタート名>
スタートコンテントへの移動
gopack <ID>
パッケージへの移動
msg <話者> ..., <テキスト>, <選択肢の列数>, <禁則処理の有無>, <横方向の中央寄せ>, <縦方向の中央寄せ>, <話者選択の有無>
メッセージ
dialog <話者>, [<クーポン> ..., <メッセージ>] ..., <評価初期値>, [<評価クーポン>, <得点>] ..., <選択肢の列数>, <禁則処理の有無>, <横方向の中央寄せ>, <縦方向の中央寄せ>, <話者選択の有無>
台詞
bgm <ファイル名>, <再生チャンネル>, <フェードイン時間>, <音量(%)>, <ループ回数>
BGMの演奏
se <ファイル名>, <再生チャンネル>, <フェードイン時間>, <音量(%)>, <ループ回数>
効果音の再生
wait <停止時間>
ウェイト
elapse
時間の経過
callstart <スタート名>
スタートコンテントの呼び出し
callpack <ID>
パッケージの呼び出し
brflag <フラグ名>
フラグ分岐
brstepm <ステップ名>
ステップ多岐分岐
brstept <ステップ名>, <ステップ値>
ステップ上下分岐
selmember <パーティ全体からの選択か>, <メンバ選択方法>, <評価初期値>, [<評価クーポン>, <得点>] ...
メンバ選択分岐
brability <判定対象>, <眠り判定>, <レベル>, <身体的要素>, <精神的要素>
能力分岐
brrandom <パーセント値>
ランダム分岐
brrandomm
ランダム多岐分岐
brlevel <レベル>, <平均か>
レベル判定分岐
brstatus <判定対象>, <ステータス>
状態分岐
brcount <人数>
人数分岐
brarea
エリア分岐
brbattle
バトル分岐
bronbattle
バトル中/非バトル中分岐
selrandom <範囲>, <レベル下限>, <レベル上限>, <ステータス>
ランダム選択分岐
brround <比較条件>, <ラウンド>
ラウンド分岐
brcast <ID>
キャスト同行分岐
britem <範囲>, <ID>, <枚数>, <カード選択の有無>
アイテム所持分岐
brskill <範囲>, <ID>, <枚数>, <カード選択の有無>
特殊技能所持分岐
brbeast <範囲>, <ID>, <枚数>, <カード選択の有無>
召喚獣所持分岐
brinfo <ID>
情報所持分岐
brmoney <金額>
所持金判定分岐
brcoupon <判定対象>, <クーポン名> ..., <比較条件>
クーポン分岐
brcouponm <判定対象>
クーポン多岐分岐
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 (<対象> | coupon <称号名>), <クーポン名>, <得点>
クーポンの付与
getstamp <シナリオ名>
終了印の追加
getgossip <ゴシップ名>
ゴシップの追加
losecast <ID>
キャストの同行解除
loseitem <範囲>, <ID>, <枚数>
アイテムの喪失
loseskill <範囲>, <ID>, <枚数>
特殊技能の喪失
losebeast <範囲>, <ID>, <枚数>
召喚獣の喪失
loseinfo <ID>
情報の喪失
losemoney <金額>
所持金の減少
losecoupon (<対象> | coupon <称号名>), <クーポン名>
クーポンの消失
losestamp <シナリオ名>
終了印の除去
losegossip <ゴシップ名>
ゴシップの除去
showparty
パーティ表示
hideparty
パーティ隠蔽
mvcard <カードグループ>, <移動方式>, <X移動量>, <Y移動量>, <拡大率>, <レイヤ>
カードの再配置
chback ([<画像パス>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <透明化有無>, <セル名称>, <レイヤ>] | [text, <テキスト>, <フォント名>, <文字サイズ>, <文字色>, <書式> ..., (<縁取り色>), (<縁取り幅>), <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <レイヤ>] | [color, <合成方式>, <基本色>, <グラデーション方向>, <終端色>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <レイヤ>] | [pc, <表示メンバ>, <拡大・縮小有無>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>), <セル名称>, <レイヤ>] ..., <画面切替スピード>, <切替方式>
背景の変更
mvback <セル名称>, <移動方式>, <X移動量>, <Y移動量>, <サイズ変更方式>, <幅変更量>, <高さ変更量>, <画面切替スピード>, <切替方式>, <アニメーション有無>, <エフェクトブースター無視>
背景セルの再配置
rplback <セル名称>, ([<画像パス>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <透明化有無>, <セル名称>, <レイヤ>] | [text, <テキスト>, <フォント名>, <文字サイズ>, <文字色>, <書式> ..., (<縁取り色>), (<縁取り幅>), <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <レイヤ>] | [color, <合成方式>, <基本色>, <グラデーション方向>, <終端色>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <レイヤ>] | [pc, <表示メンバ>, <拡大・縮小有無>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>), <セル名称>, <レイヤ>] ..., <画面切替スピード>, <切替方式>, <アニメーション有無>, <エフェクトブースター無視>
背景セルの置換
loseback <セル名称>, <画面切替スピード>, <切替方式>, <アニメーション有無>, <エフェクトブースター無視>
背景セルの削除
redraw <画面切替スピード>, <切替方式>
画面の再描画

start <名前>

(Start)

スタートコンテント。

イベントツリーの最上位にはこのコンテントしか存在できません。

パラメータ

文字列で名前を指定してください。スタートコンテントのパラメータに限り、省略する事はできません。

start "到着イベント"

gobattle <ID>

(Go to Battle)

バトルを開始します。

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

パラメータ

整数でバトルIDを指定します。

gobattle 15 // バトル15を開始

endsc <済印有無>

(End Scenario)

シナリオを終了します。

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

パラメータ

true/falseで済印をつけるかつけないかを選択します。

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

gameover

(Game Over)

ゲームオーバーにします。

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

パラメータ

パラメータはありません。

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

goarea <ID>, <画面切替スピード>, <切替方式>

(Go to Area)

エリアを移動します。

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

パラメータ

移動先のエリアIDを整数で指定します。

また、CardWirthPy形式のシナリオに限り、画面切替スピードと切替方式を指定できます。

指定しなかった場合はエンジンの設定が採用されます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。

0の場合はエフェクト無しで即座に切り替わります。

切替方式には以下の値が指定できます。

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

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

effect (<効果対象> | coupon <称号名>), [<効果種別>, (<ダメージタイプ>, <値> | <継続時間> | <増減値>, <継続時間> | <召喚獣ID>), <属性>] ..., <視覚効果>, <効果レベル>, <成功率>, <効果属性>, <抵抗属性>, <音声パス>, <音量>, <ループ回数>, <選択メンバの能力参照>, <身体的要素>, <精神的要素>, <イベント発火の有無>, <キーコード> ...

(Effect)

パーティや選択中のメンバに対して回復やダメージ、カード配布等の効果を適用します。

パラメータ

[]で囲われたパラメータが一つの効果を表し、いくつでも連続で指定できます。

効果種別には次の値が指定できます。

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
パーティ全体。
coupon
称号所有者。
card
カードの使用対象。使用時イベント中でなければ、対象無し。

称号所有者・カードの使用対象はWsn.2以降のWSN形式シナリオでのみ機能します。

効果対象にcouponを指定した場合、称号名を文字列で指定します。

効果レベルは、効果を発揮する際の判定の基準となるレベルです。整数で、マイナスの値も指定できます。省略した場合は0になります。

視覚効果は、効果を受けたカードの動きです。以下の値が指定できます。省略した場合は視覚効果無しになります。

none
視覚効果無し。
reverse
カードを反転します。
hswing
振動。カードを横に振動させます。
vswing
地震。カードを縦に振動させます。

成功率には、-5から+5の値を指定できます。値が大きくなるほど当たり易くなり、+5で絶対命中、-5で絶対失敗します。省略した場合は0になります。

効果属性には、敵の実体の有無や、魔法が通用するか否かによって効果がどのように発揮されるかを指定します。以下の値を指定できます。省略した場合は無属性になります。以下の値が指定できます。

physic
物理属性。幽霊など、実体の無い対象には効果がありません。
magic
魔法属性。魔法を無効化する対象には効果がありません。
mphysic
魔法的物理属性。実体があるか、魔法の通用する対象であれば効果を発揮します。
pmagic
物理的魔法属性。実体が無いか、魔法を無効化する対象には効果がありません。
none
無属性。あらゆる対象に効果を発揮します。

抵抗属性には、効果を回避される可能性があるか、必ず命中するが抵抗される可能性があるかを指定します。省略した場合は必中属性になります。以下の値が指定できます。

avoid
回避属性。命中すれば確実に効果を発揮しますが、回避された場合は効果がありません。
resist
抵抗属性。確実に命中しますが、抵抗によってダメージの低下や特殊効果の無効化などが発生します。
unfail
必中属性。確実に命中し、効果属性さえ合えば確実に効果を発揮します。

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

音量には、再生音量をパーセンテージで指定します。この音量の値はエンジンの設定を最大値としてのものなので、エンジンの音量設定が50%となっている場合、ここで50%を指定すると最終的に25%の音量となります。省略した場合は100%です。

ループ回数には、この音声を何回ループ再生するかを指定します。0は無限ループです。省略した場合は1です。

選択メンバの能力参照には、成功率や効果値の計算に選択メンバのレベル・能力値を参照するtrue、参照しないfalseのいずれかを指定します。trueを指定した場合、効果レベルは無視されます。省略した場合はfalseです。

身体的要素は成功率や効果値の計算に使用する能力の種類で、以下が指定できます。選択メンバの能力参照がfalseの場合は無視されます。省略した場合はdexです。

dex
器用度。
agl
敏捷度。
int
知力。
str
筋力。
vit
生命力。
min
精神力。

精神的要素は成功率や効果値の計算に使用する精神傾向の種類で、以下が指定できます。選択メンバの能力参照がfalseの場合は無視されます。省略した場合はaggです。

agg
好戦性。
unagg
平和性。
cheerf
社交性。
uncheerf
内向性。
brave
勇猛性。
unbrave
臆病性。
caut
慎重性。
uncaut
大胆性。
trick
狡猾性。
untrick
正直性。

イベント発火の有無には、効果適用時にキーコードイベント・死亡イベントが発火するtrue、発火しないfalseのいずれかが指定します。省略した場合はfalseです。

キーコードには、イベント発火に用いられるキーコードを配列で指定します。イベント発火の有無で発火しないfalseを指定した場合は機能しません。省略した場合はキーコード無しになります。

選択メンバの能力参照・身体的要素・精神的要素・イベント発火の有無・キーコードはWsn.2以降のWSN形式シナリオでのみ機能します。

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

break <カード消費の有無>

(Break Effect)

イベントを終了します。

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

パラメータ

カード消費の有無にtrueを指定すると、カードの使用によってイベントが発火していた場合、イベント終了後に当該カードの使用回数を消費します。falseを指定した場合は、消費しません。省略した場合はtrueになります。このパラメータはWsn.3以降のWSN形式シナリオでしか機能しません。

break // 中断

gostart <スタート名>

(Go to Start)

指定されたスタートコンテントへジャンプします。

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

パラメータ

スタート名を指定します。

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

gopack <ID>

(Go to Package)

パッケージ処理に移動します。

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

パラメータ

整数でパッケージIDを指定します。

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

msg <話者> ..., <テキスト>, <選択肢の列数>, <禁則処理の有無>, <横方向の中央寄せ>, <縦方向の中央寄せ>, <話者選択の有無>

(Message)

メッセージを表示します。

このコンテントはメッセージ選択分岐を行えます。詳細は例を参照してください。

パラメータ

話者には、以下のいずれかが配列で指定できます。省略した場合は話者無しになります。

none
話者を表示しません。
M または selected
選択中のメンバ。
U または unselected
選択以外のメンバ。
R または random
ランダムなメンバ。
C または card
カードイベント中であれば、使用したカード。
文字列
イメージファイル名と解釈し、そのイメージを話者とします。
[<文字列>, <配置方式>]
イメージファイル名に加えて配置方式を指定します。配置方式はWsn.2以降のWSN形式シナリオでのみ機能します。

イメージの配置方式には以下のいずれかが指定できます。省略した場合はdefaultになります。

default
方式を指定しません。msgではtopleftと同じ結果になります。
topleft
左上を起点として配置します。
center
メッセージウィンドウの中央に表示されるように配置します。

テキストには、メッセージとして表示する文字列を指定します。

通常の""''で囲った文字列の他、@を使用して複数行の文字列を記述できます。以下の例を参照してください。

選択肢の列数には、メッセージの下に表示される選択肢を横何列で表示するかを指定します。省略した場合は1になります。このパラメータはWsn.1以降のWSN形式シナリオでしか機能しません。

禁則処理の有無にtrueを指定すると、メッセージの折り返しで禁則処理が行われます。省略した場合はfalseになります。このパラメータはWsn.2以降のWSN形式シナリオでしか機能しません。

横方向の中央寄せにtrueを指定すると、メッセージの各行が横方向に中央寄せして表示されます。省略した場合はfalseになります。このパラメータはWsn.2以降のWSN形式シナリオでしか機能しません。

縦方向の中央寄せにtrueを指定すると、メッセージ全体が縦方向に中央寄せして表示されます。省略した場合はfalseになります。このパラメータはWsn.2以降のWSN形式シナリオでしか機能しません。

話者選択の有無にtrueを指定すると、メッセージの話者がキャラクターだった場合に、そのキャラクターが選択状態になります。省略した場合はfalseになります。このパラメータはWsn.3以降のWSN形式シナリオでしか機能しません。

msg "gob.bmp", // gob.bmpに喋らせる
// @を使用したテキストの指定
// @の後に整数を指定する事で、その値の行から表示させる事ができる
// 行頭のタブ文字や半角スペースは無視される
@ 3
「グオオオ!」
@
msg M, // 選択中のメンバに喋らせる
// cまたはcenterを指定すると縦軸の中央にテキストを配置できる
@ center
 ゴブリンの集団だ!
@
// ifによってメッセージ選択分岐を行う
// メッセージの表示と共に選択肢が表示され、どれか一つが選ばれる事で処理が分岐する
if "戦う"
    // 選択肢「戦う」を選んだ場合はこちらへ分岐する
    // ...
    break
elif "逃げ出す"
    // 選択肢「逃げ出す」を選んだ場合
    // ...
    break
fi // 分岐終了

dialog <話者>, [<クーポン> ..., <メッセージ>] ..., <評価初期値>, [<評価クーポン>, <得点>] ..., <選択肢の列数>, <禁則処理の有無>, <横方向の中央寄せ>, <縦方向の中央寄せ>, <話者選択の有無>

(Dialog)

口調分けして台詞を表示します。

このコンテントはメッセージ選択分岐を行えます。詳細は例を参照してください。

パラメータ

話者には、以下のいずれかが指定できます。

M または selected
選択中のメンバ。
U または unselected
選択以外のメンバ。
R または random
ランダムなメンバ。
V または valued
所持クーポンを評価して高得点になったメンバ。これを指定した場合のみ、評価初期値と評価クーポンを指定する必要があります。全員の得点が0以下になった場合、メッセージは表示されません。

話者の次の[]で囲われたパラメータで、クーポンとメッセージを指定します。話者が持つクーポンによって、表示されるメッセージが切り替わります。

最初のパラメータにVまたはvaluedを指定した場合、メッセージの次に評価初期値と評価クーポンを指定できます。それ以外の場合、これらの指定は省略する必要があります。

評価初期値には、評価条件計算時の初期値を指定します。省略した場合は1になります。

評価クーポンと得点には、話者を選択する際の評価条件を配列で指定します。

選択肢の列数には、メッセージの下に表示される選択肢を横何列で表示するかを指定します。省略した場合は1になります。このパラメータはWsn.1以降のWSN形式シナリオでしか機能しません。

禁則処理の有無にtrueを指定すると、メッセージの折り返しで禁則処理が行われます。省略した場合はfalseになります。このパラメータはWsn.2以降のWSN形式シナリオでしか機能しません。

横方向の中央寄せにtrueを指定すると、メッセージの各行が横方向に中央寄せして表示されます。省略した場合はfalseになります。このパラメータはWsn.2以降のWSN形式シナリオでしか機能しません。

縦方向の中央寄せにtrueを指定すると、メッセージ全体が縦方向に中央寄せして表示されます。省略した場合はfalseになります。このパラメータはWsn.2以降のWSN形式シナリオでしか機能しません。

話者選択の有無にtrueを指定すると、メッセージの話者がキャラクターだった場合に、そのキャラクターが選択状態になります。省略した場合はfalseになります。このパラメータはWsn.3以降のWSN形式シナリオでしか機能しません。

// パラメータは配列なので、カンマで区切らない
dialog R, // ランダムなメンバに喋らせる
// クーポン群として文字列を一件指定した場合、';'によって分割される
["_♀;_上品", @ center
「ゴブリンの姿が見えます。
 間違いない、この洞窟ですわ」
@]
// 配列として複数クーポンを指定する事も可能。複数あった場合は';'で分割されない
["_♂" "_上品", @ center
「ゴブリンの姿が見えます。
 間違いなく、この洞窟でございますな」
@]
// メッセージは先に記述した方から優先的に選択され、話者が指定された
// クーポンをすべて持っていなければ次のメッセージが選択される
["_♀", @ center
「ゴブリンの姿が見えるわ。
 間違いない、この洞窟よ」
@]
// 文字列が一つだけの場合は指定クーポン無し
// あらゆる話者がこのメッセージを喋る事ができる
[@ center
「ゴブリンの姿が見える。
 間違いない、この洞窟だ」
@]
// ifによってメッセージ選択分岐を行う
// メッセージの表示と共に選択肢が表示され、どれか一つが選ばれる事で処理が分岐する
if "見張りを誘き出す"
    // 選択肢「見張りを誘き出す」を選んだ場合はこちらへ分岐する
    // ...
    break
elif "突撃する"
    // 選択肢「突撃する」を選んだ場合
    // ...
    break
elif "撤退"
    // 選択肢「撤退」を選んだ場合
    // ...
    break
fi // 分岐終了

bgm <ファイル名>, <再生チャンネル>, <フェードイン時間>, <音量(%)>, <ループ回数>

(Play BGM)

BGMを演奏します。

パラメータ

ファイル名には、音声ファイル名を指定します。クラシックなシナリオでは*.midしか指定できません。stopを指定するか、省略した場合は、BGMを停止します。

再生チャンネルには、主音声(0)か副音声(1)のいずれかの値を指定します。主音声と副音声は重ねて再生する事ができます。

フェードイン時間には、BGMがフェードイン(徐々に音量を上げながら開始)に完了するまでの時間を0.1秒単位で指定します。0にすると最初から指定音量で再生されます。すでに同じチャンネルで再生されているBGMがある場合は、同じ時間をかけてフェードアウト(徐々に音量が下がる)していきます。省略した場合は0です。

音量には、再生音量をパーセンテージで指定します。この音量の値はエンジンの設定を最大値としてのものなので、エンジンの音量設定が50%となっている場合、ここで50%を指定すると最終的に25%の音量となります。省略した場合は100%です。

ループ回数には、この音声を何回ループ再生するかを指定します。0は無限ループです。省略した場合は0です。

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

se <ファイル名>, <再生チャンネル>, <フェードイン時間>, <音量(%)>, <ループ回数>

(Play SE)

効果音を鳴らします。

パラメータ

音声ファイル名を指定します。クラシックなシナリオでは*.wavしか指定できません。省略した場合は、何も鳴らしません。

再生チャンネルには、主音声(0)か副音声(1)のいずれかの値を指定します。主音声と副音声は重ねて再生する事ができます。

フェードイン時間には、効果音がフェードイン(徐々に音量を上げながら開始)に完了するまでの時間を0.1秒単位で指定します。0にすると最初から指定音量で再生されます。すでに同じチャンネルで再生されている効果音がある場合は、同じ時間をかけてフェードアウト(徐々に音量が下がる)していきます。省略した場合は0です。

音量には、再生音量をパーセンテージで指定します。この音量の値はエンジンの設定を最大値としてのものなので、エンジンの音量設定が50%となっている場合、ここで50%を指定すると最終的に25%の音量となります。省略した場合は100%です。

ループ回数には、この音声を何回ループ再生するかを指定します。0は無限ループです。省略した場合は1です。

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

wait <停止時間>

(Wait)

一定時間ウェイトを入れます。

パラメータ

整数を指定します。この値に0.1秒をかけた値が、実際の停止時間になります。

wait 10 // 1秒間停止

elapse

(Elapse Time)

ラウンドを経過させます。

それによって、毒のダメージや、効果時間の消費などが発生します。

パラメータ

パラメータはありません。

elapse // 時間経過

callstart <スタート名>

(Call Start)

指定されたスタートコンテントに連なるコンテントツリーを呼び出します。

呼び出し先のコンテントツリーの処理が終了した後は、元のツリーに処理が復帰します。

パラメータ

スタート名を指定します。

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

callpack <ID>

(Call Package)

指定されたパッケージのイベントを呼び出します。

呼び出し先のパッケージの処理が終了した後は、元のツリーに処理が復帰します。

パラメータ

整数でパッケージIDを指定します。

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

brflag <フラグ名>

(Branch with Flag)

指定されたフラグによって分岐を行います。

if-elif-fiによって後続の処理が切り替えられます。

CardWirthのイベントの形式上、分岐した処理が合流する事はありません。

パラメータ

文字列でフラグ名を指定します。

brflag "発見された" // フラグ「発見された」で分岐
if true
    // フラグがOnだったらこっちの処理
    gobattle 1
elif false
    // フラグがOffだったらこっち
    // ...
    break
fi // 分岐終了

brstepm <ステップ名>

(Branch with Multiple Step)

ステップによる多岐分岐を行います。

パラメータ

文字列でステップ名を指定します。

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 // 分岐終了

brstept <ステップ名>, <ステップ値>

(Branch with Step (Two))

ステップによる上下分岐を行います。

パラメータ

文字列でステップ名を、整数で分岐のボーダーラインとなる値を指定します。

brstept "見張り兵の気持ち", 3
if true
    // ステップの値が3以上であれば
    gobattle 2
elif false
    // ステップの値が3未満であれば
    // ...
    break
fi // 分岐終了

selmember <パーティ全体からの選択か>, <メンバ選択方法>, <評価初期値>, [<評価クーポン>, <得点>] ...

(Select Member)

パーティメンバを選択します。また、選択を行ったかキャンセルしたかによって処理を分岐します。

パラメータ

最初のパラメータでtrueを指定すると、パーティ全体からの選択になります。falseを指定した場合は、動けるメンバからの選択になります。省略した場合は、パーティ全体になります。

メンバ選択方法には、以下のいずれかが指定できます。省略した場合は、manualになります。

manual
プレイヤーが手動で選択を行います。キャンセルも可能です。
random
メンバはランダムで自動的に選択されます。
valued
所持クーポンを評価して高得点になったメンバを選択します。これを指定した場合のみ、評価初期値と評価クーポンが有効になります。全員の得点が0以下になった場合、選択は失敗します。

評価初期値には、評価条件計算時の初期値を指定します。省略した場合は0になります。

評価クーポンと得点には、話者を選択する際の評価条件を配列で指定します。

selmember true, false // パーティ全体から手動でメンバを選択
if true
    // 選択が行われた
    getcoupon M, ":主役"
elif false
    // 選択がキャンセルされた
    gostart "メンバ選択"
fi // 分岐終了

brability <判定対象>, <眠り判定>, <レベル>, <身体的要素>, <精神的要素>

(Branch with Ability)

能力分岐を行います。

パラメータ

判定対象には、以下のいずれかが指定できます。

M または selected
選択中のメンバ。
R または random
誰か一人。
T または team
パーティ全員。

眠り判定にはtrue/false値を指定します。trueの場合、睡眠している者も判定を行えます。falseの場合は必ず失敗します。

レベルには、判定の基準となるレベルを整数で指定します。高いほどマイナスの値は指定できません。

判定に使用する身体的要素には以下が指定できます。

dex
器用度。
agl
敏捷度。
int
知力。
str
筋力。
vit
生命力。
min
精神力。

精神的要素には以下が指定できます。

agg
好戦性。
unagg
平和性。
cheerf
社交性。
uncheerf
内向性。
brave
勇猛性。
unbrave
臆病性。
caut
慎重性。
uncaut
大胆性。
trick
狡猾性。
untrick
正直性。

// 選択中のメンバで、レベル5で敏捷度と臆病性の判定を行う
brability M, false, 5, agl, unbrave
if true
    // 判定に成功
    // ...
    break
elif false
    // 判定に失敗
    msg M, "「しまった!」"
    // ...
fi // 分岐終了

brrandom <パーセント値>

(Branch with Random)

指定された確率で分岐します。

パラメータ

確率を0~100のパーセンテージで記述します。

brrandom 30 // 30%の確率で分岐
if true
    // 30%でこっちに来る
    // ...
    break
elif false
    // 70%でこっちに来る
    // ...
    break
fi // 分岐終了

brrandomm

(Branch with Multiple Random)

複数の後続コンテントへ等確率でランダムで分岐します。

このイベントコンテントはWsn.2以降のWSN形式シナリオでしか使用できません。

パラメータ

パラメータはありません。

msg none, "ダイスを振る!"
brrandomm // ランダムに分岐
if
    msg none, "1だ!"
elif
    msg none, "2だ!"
elif
    msg none, "3だ!"
elif
    msg none, "4だ!"
elif
    msg none, "5だ!"
elif
    msg none, "6だ!"
fi // 分岐終了

brlevel <レベル>, <平均か>

(Branch with Level)

レベルで判定して処理を分岐します。

パラメータ

最初のパラメータには判定するレベルを指定します。

二番目のパラメータにtrueを指定すると、パーティ全員の平均値で判定を行います。falseを指定するか省略すると、選択中のメンバで判定を行います。

brlevel 5, true // パーティ全員の平均レベルが5以上かどうかで分岐
if true
    // 平均レベルが5以上であればこちらへ分岐する
    // ...
    break
elif false
    // 平均レベルが5未満の場合
    // ...
    break
fi // 分岐終了

brstatus <判定対象>, <ステータス>

(Branch with Status)

メンバのステータスによって分岐を行います。

パラメータ

判定対象には、以下のいずれかが指定できます。

M または selected
選択中のメンバ。
R または random
誰か一人。
T または team
パーティ全員。

ステータスには、以下のいずれかを指定できます。

active
行動可能。(健康 | 負傷 | 重傷 | 中毒)
inactive
行動不可。(意識不明 | 麻痺または石化 | 呪縛 | 眠り)
alive
生存。(健康 | 負傷 | 重傷 | 中毒 | 呪縛 | 眠り)
dead
非生存。(意識不明 | 麻痺または石化)
fine
健康。
injured
負傷。
heavyinjured
重傷。
unconscious
意識不明。
poison
中毒。
sleep
眠り。
bind
呪縛。
paralyze
麻痺あるいは石化。
confuse
混乱。CardWirth 1.50以降でなければ機能しません。
overheat
激昂。CardWirth 1.50以降でなければ機能しません。
brave
勇敢。CardWirth 1.50以降でなければ機能しません。
panic
恐慌。CardWirth 1.50以降でなければ機能しません。
silence
沈黙。CardWirth 1.50以降でなければ機能しません。
faceup
暴露。CardWirth 1.50以降でなければ機能しません。
antimagic
魔法無効化。CardWirth 1.50以降でなければ機能しません。
upaction
行動力上昇。CardWirth 1.50以降でなければ機能しません。
upavoid
回避力上昇。CardWirth 1.50以降でなければ機能しません。
upresit
抵抗力上昇。CardWirth 1.50以降でなければ機能しません。
updefense
防御力上昇。CardWirth 1.50以降でなければ機能しません。
downaction
行動力低下。CardWirth 1.50以降でなければ機能しません。
downavoid
回避力低下。CardWirth 1.50以降でなければ機能しません。
downresit
抵抗力低下。CardWirth 1.50以降でなければ機能しません。
downdefense
防御力低下。CardWirth 1.50以降でなければ機能しません。

brstatus T, alive // パーティ全員が生存状態かどうかで分岐
if true
    // パーティ全員が生存していればこちらへ分岐する
    // ...
    break
elif false
    // 誰かが生存していない場合
    // ...
    break
fi // 分岐終了

brcount <人数>

(Branch with Count of Member)

パーティの人数で分岐します。

パラメータ

人数を整数で指定します。

brcount 2 // パーティが2人以上いるかどうかで分岐
if true
    // パーティに2人以上いる場合はこちらへ分岐
    msg none, "君達は洞窟へ入った。"
    // ...
elif false
    // パーティに2人未満しかいない
    msg none, "君は洞窟へ入った。"
    // ...
fi // 分岐終了

brarea

(Branch with Current area)

現在どのエリアにいるかで分岐します。

if-elif-fiによってエリアIDを指定します。現在いる場所がエリアでない場合、必ずdefaultに分岐します。

パラメータ

パラメータはありません。

brarea
if 1
    // 現在のエリアのIDが1だった場合
    // ...
    break
elif 2
    // 現在のエリアのIDが2だった場合
    // ...
    break
elif 3
    // 現在のエリアのIDが3だった場合
    // ...
    break
elif default
    // その他のエリアの場合
    // ...
    break
fi // 分岐終了

brbattle

(Branch with Current Battle)

現在どのバトルにいるかで分岐します。

if-elif-fiによってバトルIDを指定します。現在いる場所がバトルでない場合、必ずdefaultに分岐します。

パラメータ

パラメータはありません。

brbattle
if 1
    // 現在のバトルのIDが1だった場合
    // ...
    break
elif 2
    // 現在のバトルのIDが2だった場合
    // ...
    break
elif 3
    // 現在のバトルのIDが3だった場合
    // ...
    break
elif default
    // その他のバトルの場合
    // ...
    break
fi // 分岐終了

bronbattle

(Branch with If on Battle)

現在バトル中であるかどうかで分岐します。

パラメータ

パラメータはありません。

bronbattle
if true
    // 現在バトル中であればこちらへ分岐
    // ...
    break
elif false
    // バトル中ではない場合
    // ...
    break
fi // 分岐終了

selrandom <範囲>, <レベル下限>, <レベル上限>, <ステータス>

(Select with Random)

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

条件に合う中からランダムでパーティメンバまたは敵キャストまたは同行キャストを選択します。

パラメータ

範囲には、以下のいずれかを配列で指定できます。

party
パーティ全体。
enemy
敵全体。
npc
同行キャスト全体。CardWirth 1.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 // 分岐終了

brround <比較条件>, <ラウンド>

(Branch with Random)

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

現在のバトルのラウンド数で分岐します。

バトル内でなければ正常に動かない事に注意してください。bronbattleとの併用が効果的です。

パラメータ

比較条件には、この後に指定するラウンドと、イベント実行時点でのバトルラウンドをどのように比較するかを指定します。"="を指定すると現在のラウンドと指定ラウンドが一致する場合に、"<"を指定するとバトルラウンドが指定ラウンドより小さい場合に、">"を指定するとバトルラウンドが指定ラウンドより大きい場合に、それぞれtrueとなります。

ラウンドには、現在のバトルのラウンド数を指定します。

brround "<" 11
if true
    // 10ラウンド目まではこちらへ分岐する
    // ...
    break
elif false
    // 11ラウンド目以降はこちらへ分岐する
    // ...
    break
fi // 分岐終了

brcast <ID>

(Branch with Existence of Cast)

同行キャストの存在の有無で分岐します。

パラメータ

キャストカードのIDを整数で指定します。

brcast 2
if true
    // ID2のキャストが同行していればこちらへ分岐
    // ...
    break
elif false
    // 同行していない場合
    // ...
    break
fi // 分岐終了

britem <範囲>, <ID>, <枚数>, <カード選択の有無>

(Branch with Existence of Item)

brskill <範囲>, <ID>, <枚数>, <カード選択の有無>

(Branch with Existence of Skill)

brbeast <範囲>, <ID>, <枚数>, <カード選択の有無>

(Branch with Existence of Beast)

それぞれ、アイテム、特殊技能、召喚獣の所持の有無によって分岐を行います。

パラメータ

判定の範囲には、次のいずれかが指定できます。

M または selected
選択中のメンバの所持カード。
R または one
誰か一人の所持カード。これによって判定に成功した場合、所持しているメンバが選択状態になります。
T または team
パーティ全員の所持カード。
backpack
荷物袋。
party
荷物袋も含むパーティ全員の所持カード。
field
パーティ・荷物袋に加えて敵なども含めたフィールド全体。
selcard
選択カードとIDで指定したカードを比較します。

選択カードとの比較はWsn.3以降のWSN形式シナリオでのみ機能します。

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

枚数には、カードの枚数を整数で指定します。この枚数以上カードが存在しない場合、判定は失敗します。省略した場合は1になります。

範囲にselcardを指定した場合、枚数は無視されます。

カード選択の有無にtrueを指定すると、見つかったカードが選択状態になります。省略した場合はfalseになります。このパラメータはWsn.3以降のWSN形式シナリオでしか機能しません。

britem R, 1, 2 
if true
    // パーティの誰か一人がID1のアイテムを2枚以上持っていればこちらへ分岐
    // ...
    break
elif false
    // 持っていない場合
    // ...
    break
fi // 分岐終了

brinfo <ID>

(Branch with Existence of Information)

情報カードの所持の有無で分岐します。

パラメータ

情報カードのIDを整数で指定します。

brinfo 4
if true
    // ID4の情報カードを所持していればこちらへ分岐
    // ...
    break
elif false
    // 所持していない場合
    // ...
    break
fi // 分岐終了

brmoney <金額>

(Branch with Money)

所持金の量によって分岐します。

パラメータ

分岐のボーダーラインとなる金額を整数で指定します。

brmoney 1000
if true
    // 1000sp以上所持していればこちらへ分岐
    // ...
    break
elif false
    // 所持金が1000sp未満の場合
    // ...
    break
fi // 分岐終了

brcoupon <判定対象>, <クーポン名> ..., <比較条件>

(Branch with Coupon)

一人または複数のキャラクタがクーポン(称号)を所持しているかどうかで分岐を行います。

2件以上のクーポン指定はWsn.2以降のWSN形式シナリオでのみ機能します。

パラメータ

判定対象には、次のいずれかが指定できます。

M または selected
選択中のメンバ。
R または one
誰か一人。これによって判定に成功した場合、所持しているメンバが選択状態になります。
T または team
パーティ全員。
field
プレイヤーカードとエネミーカードを含むフィールド全体。これによって判定に成功した場合、所持しているメンバが選択状態になります。

クーポン名には、文字列の配列でクーポンの名前を指定します。

比較条件には、次のいずれかが指定できます。省略した場合はandになります。

and
全てに一致。
or
どれか一つに一致。

brcoupon M, ":主人公", and
if true
    // 選択中のメンバがクーポン「:主人公」を所持していればこちらへ分岐
    // ...
    break
elif false
    // 所持していない場合
    // ...
    break
fi // 分岐終了

brcouponm <判定対象>

(Branch with Multiple Coupon)

一人または複数のキャラクタが複数種類のクーポン(称号)を所有しているかどうかで分岐を行います。

このイベントコンテントはWsn.2以降のWSN形式シナリオでしか使用できません。

パラメータ

判定対象には、次のいずれかが指定できます。

M または selected
選択中のメンバ。
R または one
誰か一人。これによって判定に成功した場合、所持しているメンバが選択状態になります。
T または team
パーティ全員。
field
プレイヤーカードとエネミーカードを含むフィールド全体。これによって判定に成功した場合、所持しているメンバが選択状態になります。

後続コンテントに、if-elif-fiによってクーポン名を指定します。どのクーポンの所有判定にも失敗した場合、noneへ分岐します。

brcouponm M
if "_子供"
    // 選択中のメンバがクーポン「_子供」を所持していればこちらへ分岐
    // ...
    break
elif "_若者"
    // 「_若者」を所持していればこちらへ分岐
    // ...
    break
elif none
    // どれも所持していない場合
    // ...
    break
fi // 分岐終了

brstamp <シナリオ名>

(Branch with Complete Stamp)

シナリオの済印の有無で分岐を行います。

パラメータ

シナリオ名を文字列で指定します。

brstamp "ゴブリンの洞窟"
if true
    // シナリオ「ゴブリンの洞窟」が終了済みであればこちらへ分岐
    // ...
    break
elif false
    // 終了済みでない場合
    // ...
    break
fi // 分岐終了

brgossip <ゴシップ名>

(Branch with Gossip)

ゴシップ(宿クーポン)の有無で分岐を行います。

パラメータ

ゴシップ名を文字列で指定します。

brgossip "悪い噂"
if true
    // ゴシップ「悪い噂」があればこちらへ分岐
    // ...
    break
elif false
    // ゴシップが無い場合
    // ...
    break
fi // 分岐終了

brkeycode <範囲>, <カード種別> ..., <キーコード>, <カード選択の有無>

(Branch with Key Code)

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

範囲内に指定されたキーコードを持つカードがあるか否かで分岐します。

パラメータ

判定の範囲には、次のいずれかが指定できます。

M または selected
選択中のメンバの所持カード。
R または one
誰か一人の所持カード。これによって判定に成功した場合、所持しているメンバが選択状態になります。
backpack
荷物袋。
party
荷物袋も含むパーティ全員の所持カード。
selcard
選択カード。

選択カードはWsn.3以降のWSN形式シナリオでのみ機能します。

カード種別には、以下の値を配列で指定します。Wsn.2以降のWSN形式シナリオでない場合は、skillitembeastを単独で指定した場合、またはこれらの値を3つとも指定した場合だけ正常に機能します。

skill
特殊技能カード。
item
アイテムカード。
beast
召喚獣カード。
hand
戦闘時の手札。

キーコードには、判定対象のキーコードを指定します。

カード選択の有無にtrueを指定すると、見つかったカードが選択状態になります。省略した場合はfalseになります。このパラメータはWsn.3以降のWSN形式シナリオでしか機能しません。

brkeycode R, item, "治療"
if true
    // 回復アイテムを持っている
    // ...
    break
elif false
    // 回復アイテムを持っていない
    // ...
    break
fi // 分岐終了

setflag <フラグ名>, <値>

(Set Flag)

フラグの値を設定します。

パラメータ

フラグ名には、フラグの名前を文字列で指定します。

値には、フラグのOn/Offをtrue/falseで指定します。

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

setstep <ステップ名>, <値>

(Set Step)

フラグの値を設定します。

パラメータ

ステップ名には、ステップの名前を文字列で指定します。

値には、ステップの値を0~9の整数で指定します。

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

stepup <ステップ名>

(Step Up)

ステップの値を1上げます。

パラメータ

ステップの名前を文字列で指定します。

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

stepdown <ステップ名>

(Step Down)

ステップの値を1下げます。

パラメータ

ステップの名前を文字列で指定します。

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

revflag <フラグ名>

(Reverse Flag)

フラグのOn/Offを入れ替えます。

パラメータ

フラグの名前を文字列で指定します。

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

cpstep <代入元ステップ名>, <代入先ステップ名>

(Copy Step)

cpflag <代入元フラグ名>, <代入先フラグ名>

(Copy Flag)

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

状態変数(ステップまたはフラグ)の値を別の状態変数へ代入します。ランダムな値を代入する事もできます。

パラメータ

代入元となる変数と代入先となる状態変数の名前を指定します。

代入元にrandomを指定すると、代入先にランダムな値がセットされます。

cpstepでは、代入元にselectedを指定すると、代入先にプレイヤーキャラクタが選択されている時のメンバの番号(1~6)がセットされます。選択メンバがいないか、プレイヤーキャラクタでない場合は0がセットされます。Wsn.2以降のWSN形式シナリオでのみ機能します。

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

cmpstep <比較元ステップ名>, <比較先ステップ名>

(Compare Step)

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

ステップの値を別のと比較し、その結果で分岐を行います。

分岐のパラメータは文字列で指定します。大なり">"、小なり"<"、同値"="の三種類が指定可能です。

パラメータ

比較元となるステップと比較先となるステップの名前を指定します。

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

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

(Compare Flag)

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

フラグの値を別のと比較し、その結果で分岐を行います。

分岐のパラメータには一致true、不一致falseのいずれかが指定可能です。

パラメータ

比較元となるフラグと比較先となるフラグの名前を指定します。

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

chkflag <フラグ名>

(Check Flag)

フラグがOnになっている場合だけ出現するイベントを作ります。

メッセージ選択分岐の直後に配置するのが一般的な使い方です。例を参照してください。

パラメータ

フラグの名前を文字列で指定します。

msg none, "どうする?"
if "依頼を受ける" chkflag "話を聞いた"
    // フラグ「話を聞いた」がOnでなければこの選択肢は出現しない
    // ...
    break
elif "依頼を断る"
    // ...
    endsc
elif "話を聞く"
    // ...
    setflag "話を聞いた", true
fi // 分岐終了

chkstep <ステップ名>, <値>, <比較条件>

(Check Step)

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

ステップの値が条件を満たす時だけ出現するイベントを作ります。

chkflagと同様ですが、より柔軟な条件設定が可能です。例を参照してください。

パラメータ

ステップ名には、ステップの名前を文字列で指定します。

比較条件には、この後に指定する値とイベント実行時点でのステップの値をどのように比較するかを指定します。"="を指定すると現在のステップ値と比較値が一致する場合に、"<>"を指定するとステップ値と比較値が一致しない場合に、"<"を指定するとステップ値が比較値より小さい場合に、">"を指定するとステップ値が比較値より大きい場合に、それぞれイベントが出現します。

値には、イベント実行時点での値と比較する値を数値で設定します。

msg none, "何を聞こう?"
if "事件のあらまし" chkstep "質問段階", "=", 0
    // ステップ「質問段階」が0でなければこの選択肢は出現しない
    // ...
    stepup "質問段階"
elif "目撃者について" chkstep "質問段階", "<>", 0
    // ステップ「質問段階」が0の時はこの選択肢は出現しない
    // ...
    stepup "質問段階" 
elif "依頼について" chkstep "質問段階", ">", 1
    // ステップ「質問段階」が1より大きくなければこの選択肢は出現しない
    // ...
    break
fi // 分岐終了

getcast <ID> <戦闘行動開始タイミング>

(Get Cast)

キャストを同行させます。

パラメータ

IDには、キャストカードのIDを整数で指定します。

戦闘行動開始タイミングには、以下のいずれかを指定できます。省略した場合はnextになります。Wsn.2以降のWSN形式シナリオでのみ機能します。

now
そのラウンドから開始します。加入が戦闘行動中であっても行動します。
current
ラウンドイベントで加入した場合に限り、そのラウンドから行動を開始します。
next
次のラウンドから行動を開始します。

getcast 1 // ID1のキャストを同行させ、次のラウンドから行動させる

getitem <範囲>, <ID>, <枚数>

(Get Item)

getskill <範囲>, <ID>, <枚数>

(Get Skill)

getbeast <範囲>, <ID>, <枚数>

(Get Beast)

それぞれ、アイテム、特殊技能、召喚獣を入手させます。

パラメータ

判定の範囲には、次のいずれかが指定できます。

M または selected
選択中のメンバ。
R または one
誰か一人。
T または team
パーティ全員。
backpack
荷物袋。
party
荷物袋も含むパーティ全員。
field
パーティ・荷物袋に加えて敵なども含めたフィールド全体。
selcard
選択カードとの交換。選択カードが無いか、カードの種類が一致しなかった場合は処理されません。

選択カードとの交換はWsn.3以降のWSN形式シナリオでのみ機能します。

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

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

範囲にselcardを指定した場合、枚数は無視されます。

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

getinfo <ID>

(Get Information)

情報カードを入手させます。

パラメータ

情報カードのIDを整数で指定します。

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

getmoney <金額>

(Get Money)

所持金を増加させます。

パラメータ

金額を整数で指定します。

getmoney 600 // 600sp入手

getcoupon (<対象> | coupon <称号名>), <クーポン名>, <得点>

(Get Coupon)

クーポン(称号)を入手させます。

パラメータ

対象には、次のいずれかが指定できます。

M または selected
選択中のメンバ。
R または random
誰か一人。
T または team
パーティ全員。
coupon
称号所有者。対象にcouponを指定した場合は、称号名を文字列で指定します。

称号所有者はWsn.3以降のWSN形式シナリオでのみ機能します。

クーポン名には、クーポンの名前を文字列で指定します。

得点には、クーポンの点数を整数で指定します。マイナスの値も指摘でき、省略した場合は0点になります。

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

getstamp <シナリオ名>

(Get Complete Stamp)

シナリオに済印をつけます。

パラメータ

シナリオ名を文字列で指定します。

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

getgossip <ゴシップ名>

(Get Gossip)

ゴシップ(宿クーポン)を追加します。

パラメータ

ゴシップ名を文字列で指定します。

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

losecast <ID>

(Lose Cast)

キャストの同行を取りやめます。

パラメータ

キャストカードのIDを整数で指定します。

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

loseitem <範囲>, <ID>, <枚数>

(Lose Item)

loseskill <範囲>, <ID>, <枚数>

(Lose Skill)

losebeast <範囲>, <ID>, <枚数>

(Lose Beast)

それぞれ、アイテム、特殊技能、召喚獣を喪失させます。

パラメータ

判定の範囲には、次のいずれかが指定できます。

M または selected
選択中のメンバ。
R または one
誰か一人。
T または team
パーティ全員。
backpack
荷物袋。
party
荷物袋も含むパーティ全員。
field
パーティ・荷物袋に加えて敵なども含めたフィールド全体。
selcard
選択カード。

選択カードはWsn.3以降のWSN形式シナリオでのみ機能します。

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

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

範囲にselcardを指定した場合、IDと枚数は無視されます。

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

loseinfo <ID>

(Lose Information)

情報カードを削除します。

パラメータ

情報カードのIDを整数で指定します。

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

losemoney <金額>

(Lose Money)

所持金を減らします。

パラメータ

金額を整数で指定します。

losemoney 1400 // 1400sp支払う

losecoupon (<対象> | coupon <称号名>), <クーポン名>

(Lose Coupon)

クーポン(称号)を削除します。

パラメータ

対象には、次のいずれかが指定できます。

M または selected
選択中のメンバ。
R または one
誰か一人。
T または team
パーティ全員。
coupon
称号所有者。対象にcouponを指定した場合は、称号名を文字列で指定します。

称号所有者はWsn.3以降のWSN形式シナリオでのみ機能します。

クーポン名には、クーポンの名前を文字列で指定します。

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

losestamp <シナリオ名>

(Lose Complete Stamp)

シナリオの済印を削除します。

パラメータ

シナリオ名を文字列で指定します。

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

losegossip <ゴシップ名>

(Lose Gossip)

ゴシップ(宿クーポン)を削除します。

パラメータ

ゴシップ名を文字列で指定します。

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

showparty

(Show Party)

画面下に隠したパーティを再表示します。

パラメータ

パラメータはありません。

showparty // パーティを表示

hideparty

(Hide Party)

パーティを画面下に隠します。

パラメータ

パラメータはありません。

hideparty // パーティを隠す

mvcard <カードグループ>, <移動方式>, <X移動量>, <Y移動量>, <拡大率>, <レイヤ>

(Move Card)

メニューカードやエネミーカードの移動や、拡大率・表示レイヤの変更を行います。

このイベントコンテントはWsn.3以降のWSN形式シナリオでしか使用できません。

パラメータ

再配置対象のカードグループの名称を文字列で指定します。

移動方式には次のいずれかが指定でき、それによって移動量の役割が変化します。

none
移動を行いません。
abs
指定した位置をそのまま使用します。例えば移動方式にabsを指定してX移動量とY移動量を50100にした場合、そのまま50, 100の位置にカードが移動します。
rel
指定した位置を操作前の値に加算します。例えばX座標が100のカードに対してX移動量50を指定すると、操作後のX座標は150になります。
per
移動量を操作前の値に対するパーセンテージで計算します。例えばX座標200に対して50を指定すると200の50%で結果はX座標100になります。

拡大率にnone以外の値を指定すると、カードの拡大率が指定した値に変更されます。省略した場合はnoneになります。

レイヤにnone以外の値を指定すると、カードのレイヤ(前後位置)が指定した値に変更されます。省略した場合はnoneになります。

// カードグループ"enemies_1"を画面中央付近に大きく表示されるように移動する
mvcard "enemies_1", abs, 236, 30, 200, none

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

(Change Background)

背景を切替えます。

セルパラメータ

画像セル・テキストセル・カラーセル・プレイヤーキャラクタセルの三種類を配置できるようになっています。

[]で囲われたパラメータが一枚のセルを表し、いくつでも重ねて指定できます。

画像セル

[<画像パス>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <透明化有無>]

1つの画像をセルとして配置します。

画像パスには、文字列で画像のファイル名を指定します。

フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。

X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、00632420になります。(画面一杯に表示)

透明化の有無には、true/falseで、左上を透明色として使用するか、透明化を行わないかを指定します。指定しなかった場合、透明化は行われません。

セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。

レイヤには、セルを表示する前後の位置を指定します。数値が大きいほど手前に表示され、背景のレイヤは通常0です。メニュー・エネミーカードは100、プレイヤーカードは200のレイヤに表示されます。省略した場合は0になります。

chback ["MapOfWirth.bmp"] // MapOfWirth.bmpを画面一杯に表示
       ["AdventurersInn.bmp", "", 116, 15, 400, 260, false] // 宿の画像を標準の位置に表示
テキストセル

[text, <テキスト>, <フォント名>, <文字サイズ>, <文字色>, <書式> ..., (<縁取り色>), (<縁取り幅>), <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>]

テキストをセルとして配置します。

最初にキーワードtextを指定してください。

テキストには、セルに表示する文章の内容を文字列で指定します。

フォント名には、表示に使用するフォントの名前を文字列で指定子ます。

文字サイズには、表示する文字のサイズをピクセル値で指定します。ポイントサイズではなくピクセル単位のサイズである事にご注意ください。

文字色には、表示される文字の色を指定します。次のいずれかの方式で指定する事ができます。

書式には、以下のパラメータを配列で指定します。

bold
文字を太字にします。
italic
文字を斜体にします。
underline
行に下線を付けます。
strike
行に打ち消し線を付けます。
vertical
文章を縦書きにします。
border1
文字を縁取りします。縁取りには2種類の形式があります。border2と共に指定された場合は、後から指定された方が有効になります。
border2
border1とは別の形式で縁取りを行います。border1と共に指定された場合は、後から指定された方が有効になります。

書式にborder1またはborder2を指定した場合、縁取りの色を指定する事ができます。指定の方法は文字色と同様です。縁取り書式を指定していない場合は、必ず省略してください。

書式にborder2を指定した場合、縁取りの太さを数値で指定する事ができます。border2を指定していない場合は、必ず省略してください。

フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。

X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、00632420になります。(画面一杯に表示)

セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。

レイヤには、セルを表示する前後の位置を指定します。数値が大きいほど手前に表示され、背景のレイヤは通常0です。メニュー・エネミーカードは100、プレイヤーカードは200のレイヤに表示されます。省略した場合は0になります。

// 文字列"Card Wirth"(太字・斜体・縁取り付き)をBatangフォントで画面中央に表示
chback [text, "Card Wirth", "Batang", 48, "#000000", bold italic border2, "#FFFFFF", 1, "", 185, 110, 280, 60]
カラーセル

[color, <合成方式>, <基本色>, <グラデーション方向>, <終端色>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>]

色つきの四角形をセルとして配置します。

最初にキーワードcolorを指定してください。

合成方式には、次のいずれかを指定できます。

normal
そのままセルを描画します。背景は上書きされます。
add
背景の色にセルの色を加算します。例えば、灰色の背景に灰色のセルを加算合成すると、明るさが足し合わされて白に近い色になります。
sub
背景の色からセルの色を減じます。例えば、灰色の背景に灰色のセルを減算合成すると、明るさがセルの色の分だけ引かれて黒に近い色になります。
mul
背景の色とセルの色で乗算を行います。背景に対してセルの色で薄暗いフィルタをかけたような効果が得られます。

基本色には、セル全体を塗り潰す色を指定します。次のいずれかの方式で指定する事ができます。

グラデーション方向には、次のいずれかを指定できます。

none
グラデーションしません。
h または horizontal
左から右へグラデーションします。
v または vertical
上から下へグラデーションします。

グラデーション方向でnone以外を指定した場合、グラデーションの終端側の色を指定する事ができます。色の指定方法は、基本色と同じです。グラデーション方向がnoneの場合は、必ず省略してください。

フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。

X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、00632420になります。(画面一杯に表示)

セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。

レイヤには、セルを表示する前後の位置を指定します。数値が大きいほど手前に表示され、背景のレイヤは通常0です。メニュー・エネミーカードは100、プレイヤーカードは200のレイヤに表示されます。省略した場合は0になります。

// 画面全体に薄暗い青色のフィルタをかける
chback [color, mul, "#70B0FF", vertical, "#102030", "", 0, 0, 632, 420, "blue_filter", true]
プレイヤーキャラクタセル

[pc, <表示メンバ>, <拡大・縮小有無>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>]

シナリオをプレイ中のパーティのメンバの画像をセルとして配置します。

最初にキーワードpcを指定してください。

表示メンバには、パーティの中のどのメンバを表示するかを1から始まる番号で指定します。

拡大・縮小有無にtrueを指定すると、表示されるイメージはセルサイズに合わせて拡大・縮小されます。falseの場合は、セルサイズに関わらず元のイメージのサイズで表示されます。省略した場合はfalseになります。

フラグには、画像を表示する条件のフラグ名を指定します。フラグを使用しない場合は空文字列""を指定します。

X位置・Y位置・横幅・縦幅には、画像の配置とサイズを指定します。指定しなかった場合、00632420になります。(画面一杯に表示)

セル名称には、背景セル再配置や背景セル削除コンテント等でセルを選択する際に使用する名前を指定します。操作を行わない場合は指定しないか、空文字列""を指定します。

レイヤには、セルを表示する前後の位置を指定します。数値が大きいほど手前に表示され、背景のレイヤは通常0です。メニュー・エネミーカードは100、プレイヤーカードは200のレイヤに表示されます。省略した場合は0になります。

// 左上にパーティの左端のメンバの画像を表示する
chback [pc, false, 1, "", 0, 0, 632, 420]

その他のパラメータ

背景画像の指定に加え、画像切替スピードと切替速度を指定できます。

画像の指定の他、CardWirthPy形式のシナリオに限り、画面切替スピードと切替方式を指定できます。

指定しなかった場合はエンジンの設定が採用されます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。

0の場合はエフェクト無しで即座に切り替わります。

切替方式には以下の値が指定できます。

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

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

mvback <セル名称>, <移動方式>, <X移動量>, <Y移動量>, <サイズ変更方式>, <幅変更量>, <高さ変更量>, <画面切替スピード>, <切替方式>, <アニメーション有無>, <エフェクトブースター無視>

(Move Background)

背景セルの移動やサイズ変更を行います。

このイベントコンテントはWsn.1以降のWSN形式シナリオでしか使用できません。

パラメータ

再配置対象のセルの名称を文字列で指定します。

移動方式やサイズ変更方式には次のいずれかが指定でき、それによって移動量・サイズ変更量の役割が変化します。

none
移動・サイズ変更を行いません。
abs
指定した位置やサイズをそのまま使用します。例えば移動方式にabsを指定してX移動量とY移動量を50100にした場合、そのまま50, 100の位置にセルが移動します。
rel
指定した位置やサイズを操作前の値に加算します。例えばサイズが100×100のセルに対して幅50と高さ200を指定すると、操作後のサイズは150×300になります。
per
移動・サイズ変更量を操作前の値に対するパーセンテージで計算します。例えばX座標200に対して50を指定すると200の50%で結果はX座標100になります。サイズについても同様で、高さ200を指定すると元のサイズの200%となり、倍の高さになります。

画面切替スピードと切替方式を指定する事ができます。指定しなかった場合はエンジンの設定が採用されます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。

0の場合はエフェクト無しで即座に切り替わります。

切替方式には以下の値が指定できます。

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

アニメーション有無にtrueを指定すると、JPY1アニメーションが実行されます。falseを指定した場合、アニメーションは省略されます。指定しなかった場合はtrueになります。

エフェクトブースター無視にtrueを指定すると、エフェクトブースター関係のイメージセル(ファイルの拡張子が`.jpy1``.jptx``.jpdc`のもの)は処理から除外されます。指定しなかった場合はfalseになります。

// 背景セル"blue_filter"の高さを半分にし、画面の下側へ移動する
mvback "blue_filter", abs, 0, 210, per, 100, 50

rplback <セル名称>, ([<画像パス>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <透明化有無>, <セル名称>, <レイヤ>] | [text, <テキスト>, <フォント名>, <文字サイズ>, <文字色>, <書式> ..., (<縁取り色>), (<縁取り幅>), <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <レイヤ>] | [color, <合成方式>, <基本色>, <グラデーション方向>, <終端色>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>, <セル名称>, <レイヤ>] | [pc, <表示メンバ>, <拡大・縮小有無>, <フラグ>, <X位置>, <Y位置>, <横幅>, <縦幅>), <セル名称>, <レイヤ>] ..., <画面切替スピード>, <切替方式>, <アニメーション有無>, <エフェクトブースター無視>

(Replace Background)

背景セルを置換します。指定されたセル名称の背景セルは削除され、削除された最初のセルがあった位置に新規セルが挿入されます。

このイベントコンテントはWsn.1以降のWSN形式シナリオでしか使用できません。

パラメータ

置換対象のセルの名称を文字列で指定します。

続けて、指定した名称のセルをどのようなセルに置換するかを指定します。chbackのパラメータと同様ですので、chbackの説明をご覧ください。

CardWirthPy形式のシナリオに限り、画面切替スピードと切替方式を指定できます。

指定しなかった場合はエンジンの設定が採用されます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。

0の場合はエフェクト無しで即座に切り替わります。

切替方式には以下の値が指定できます。

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

アニメーション有無にtrueを指定すると、JPY1アニメーションが実行されます。falseを指定した場合、アニメーションは省略されます。指定しなかった場合はtrueになります。

エフェクトブースター無視にtrueを指定すると、エフェクトブースター関係のイメージセル(ファイルの拡張子が`.jpy1``.jptx``.jpdc`のもの)は処理から除外されます。指定しなかった場合はfalseになります。

// 画面全体にかかった青色フィルタを赤色フィルタに置換する
rplback "blue_filter" [color, mul, "#FF7070", vertical, "#301010", "", 0, 0, 632, 420, "red_filter", true]

loseback <セル名称>, <画面切替スピード>, <切替方式>, <アニメーション有無>, <エフェクトブースター無視>

(Lose Background)

背景セルを削除します。

このイベントコンテントはWsn.1以降のWSN形式シナリオでしか使用できません。

パラメータ

再配置対象のセルの名称を文字列で指定します。

画面切替スピードと切替方式を指定する事ができます。指定しなかった場合はエンジンの設定が採用されます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。

0の場合はエフェクト無しで即座に切り替わります。

切替方式には以下の値が指定できます。

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

アニメーション有無にtrueを指定すると、JPY1アニメーションが実行されます。falseを指定した場合、アニメーションは省略されます。指定しなかった場合はtrueになります。

エフェクトブースター無視にtrueを指定すると、エフェクトブースター関係のイメージセル(ファイルの拡張子が`.jpy1``.jptx``.jpdc`のもの)は処理から除外されます。指定しなかった場合はfalseになります。

// 背景セル"blue_filter"を削除する
loseback "blue_filter"

redraw <画面切替スピード>, <切替方式>

(Redraw)

画面を再描画します。

画面を構成する背景画像に表示フラグが設定されている場合、フラグの状態に応じて表示が切り替えられます。

パラメータ

画面切替スピードと切替方式を指定する事ができます。指定しなかった場合はエンジンの設定が採用されます。

切替スピードには0~10の値が指定でき、数値が少ないほど素早く切り替わります。

0の場合はエフェクト無しで即座に切り替わります。

切替方式には以下の値が指定できます。

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

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

付録 : キーワード一覧

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

制御文

elif
fi
if
sif

命令

bgm
brability
brarea
brbattle
brbeast
brcast
brcount
brcoupon
brcouponm
break
brflag
brgossip
brinfo
britem
brkeycode
brlevel
brmoney
bronbattle
brrandom
brraddomm
brround
brskill
brstamp
brstatus
brstepm
brstept
callpack
callstart
chback
chkflag
chkstep
cmpflag
cmpstep
cpflag
cpstep
dialog
effect
elapse
endsc
gameover
getbeast
getcast
getcoupon
getgossip
getinfo
getitem
getmoney
getskill
getstamp
goarea
gobattle
gopack
gostart
hideparty
loseback
losebeast
losecast
losecoupon
losegossip
loseinfo
loseitem
losemoney
loseskill
losestamp
msg
mvback
mvcard
redraw
revflag
rplback
se
selmember
selrandom
setflag
setstep
showparty
start
stepdown
stepup
wait

その他のキーワード

abs
absolute
absorb
active
agg
agl
alive
all
and
antimagic
average
avoid
backpack
bind
blinds
brave
c
cancel
card
caut
center
cheerf
complete
confuse
coupon
current
damage
dead
dealattack
dealconfuse
dealcritical
dealdefense
dealdistance
dealfeint
dealpowerful
dealskill
default
dex
disantimagic
disbind
disparalyze
dispoison
dissilence
dissolve
downaction
downavoid
downdefense
downresist
enemy
enhaction
enhavoid
enhdefense
enhresist
facedown
faceup
fade
failure
false
field
fine
fire
getspilit
hand
has
hasnot
heal
heavyinjured
holy
hswing
ice
inactive
injured
int
level
losespilit
m
magic
manual
max
min
mind
mphysic
n
next
no
nocomplete
none
now
off
on
one
or
over
overheat
panic
paralyze
party
per
percent
percentage
phy
physic
pmagic
poison
r
rel
relative
random
resetmind
resist
reverse
selcard
select
selected
shave
silence
sleep
stop
str
success
summon
t
team
thread
topleft
trick
true
u
unagg
unbrave
uncaut
uncheerf
unconscious
under
unfail
unselected
untrick
upaction
upavoid
updefense
upresist
value
valued
vanbeast
vancard
vantarget
vit
vswing
yes