拡張機能
CWLには、劇本(ドラマ)用の拡張メソッドが多数組み込まれています。 詳細はこちらのコードで確認できます。
使用するには Dialog.ExpandedActions 設定を有効にする必要があります(デフォルトで有効)。
ドラマテーブル内で、CWL専用アクションである invoke* または i* を使用して拡張メソッドを呼び出します:

引数渡し
引数は ,(半角カンマ)で区切ってください:
| action | param | actor |
|---|---|---|
invoke*/i* | honk_honk(arg1, arg2) | pc |
ほとんどのメソッドは、actor 列に指定されたキャラクターを対象として実行されます。 pc(プレイヤー)、tg(ドラマで指定された対象キャラクター)、または有効なキャラクターIDが使用できます。空欄の場合はデフォルトで tg が対象となります。
同じ行に jump の値がある場合、拡張メソッドの戻り値によってジャンプを実行するかどうかが決定します。true を返した場合はジャンプを実行し、それ以外の場合は実行しません。
数値式: +5, *10, =69, !=114 などの演算子を使用した式が、代入や条件判定に使用できます。
| 数値式の例 | 意味 |
|---|---|
69 | 値を 69 に設定 |
=69 | 値を 69 に設定 |
+5 | 現在の値に 5 を加算 |
-3 | 現在の値から 3 を減算 |
*10 | 現在の値に 10 を乗算 |
/2 | 現在の値を 2 で除算 |
==69 | 値が 69 と等しいか判定 |
!=114 | 値が 114 と等しくないか判定 |
>10 | 値が 10 より大きいか判定 |
>=20 | 値が 20 以上か判定 |
<5 | 値が 5 より小さいか判定 |
<=3 | 値が 3 以下か判定 |
アクション
| メソッド | 引数 | 説明 | ジャンプ条件 |
|---|---|---|---|
add_item | アイテムID, 素材alias(省略可), レベル(省略可), 個数(省略可) | actorに指定アイテムを追加。デフォルトはランダム素材、自動レベル、個数 1 | 常に |
equip_item | アイテムID, 素材alias(省略可), レベル(省略可) | actorに指定アイテムを装備。デフォルトはランダム素材、自動レベル | 常に |
join_party | actorをパーティーに加入させる | 常に | |
join_faith | 信仰ID(省略可) | actorを指定信仰に加入させる。空欄の場合は現在の信仰から脱退 | 成功時 |
apply_condition | 状態alias, 強度 | actorに状態を付与 | 常に |
cure_condition | 状態alias | actorの状態を治療 | 成功時 |
remove_condition | 状態alias | actorから状態を完全に削除 | 常に |
(推奨:eval) | build_ext | アセンブリ名 | 指定アセンブリ内のメソッドをドラマ拡張テーブルに可能な限り追加 |
(推奨:eval) | emit_call | ext.メソッド名 | 外部の静的メソッドを呼び出す |
演出
| メソッド | 引数 | 説明 | ジャンプ条件 |
|---|---|---|---|
move_next_to | キャラクターID | actorを同一マップ内の対象キャラクターの隣へ移動 | 常に |
move_tile | X, Yオフセット | actorを相対座標で移動(例:1,1) | 常に |
move_to | X, Y | actorを絶対座標へ移動(例:1,1) | 常に |
move_zone | エリアID, 階層(省略可) | actorを指定エリアへ転送(デフォルト 0 階) | 常に |
play_anime | アニメID | actorにアニメーションを再生 | 常に |
play_effect | エフェクトID | actorに特殊効果を再生 | 常に |
play_emote | 表情ID | actorに表情(エモート)を表示 | 常に |
play_screen_effect | 画面エフェクトID | 画面全体に特殊効果を再生 | 常に |
pop_text | テキスト | actorの上にテキスト(吹き出し)を表示 | 常に |
set_portrait/portrait_set | 立ち絵ID(省略可) | actorの会話立ち絵を設定。空欄でリセット。Portraitフォルダ内のカスタム立ち絵も使用可(例:UN_myChara_happy.png の場合は happy または UN_myChara_happy) | 常に |
set_sprite | スプライトID(省略可) | actorにカスタムスプライトを設定。空欄でリセット(Textureフォルダから取得) | 常に |
show_book | 分類/書籍ID | 本を開く。LangMod/**/Text フォルダ内のファイルを指定可(例:Text/Book/ok.txt → (Book/ok)) | 成功時 |
変更
| メソッド | 引数 | 説明 | ジャンプ条件 |
|---|---|---|---|
console_cmd | コンソールコマンド 引数1 引数2... | コンソールコマンドを実行 | 常に |
destroy_item | アイテムID, 個数 | actorのインベントリから指定個数のアイテムを削除 | 常に |
mod_affinity | 数値式 | actorの好感度を変更 | 成功時 |
mod_currency | 通貨種類, 数値式 | actorの指定通貨を変更(money money2 plat medal influence casino_coin ecopo) | 常に |
mod_element | 属性alias, 強度(省略可) | actorの指定属性(特性/耐性/スキルなど)を変更。デフォルト強度 1 | 常に |
mod_element_exp | 属性alias, 数値式 | actorの指定属性の経験値を変更 | 成功時 |
mod_fame | 数値式 | プレイヤーの名声を変更 | 常に |
mod_flag | flag, 数値式 | actorのフラグ値を変更 | 常に |
mod_keyitem | 重要アイテムalias, 数値式(省略可) | プレイヤーの重要アイテム値を変更。デフォルト =1 | 成功時 |
条件
これらのメソッドも invoke* アクションで呼び出せますが、戻り値を jump の条件として使用できます。
| メソッド | 引数 | 説明 | ジャンプ条件 |
|---|---|---|---|
choice | 拡張条件 | 条件付きで選択肢行を有効化(例:choice(if_lv(>=10)))。推奨:choice アクションを使用し、paramに拡張メソッドを指定 | 条件を満たす |
eval | C#スクリプト | C#スクリプトまたはファイルを直接実行(<<<path.cs 構文対応)。推奨:eval アクションを使用![]() | true を返す |
if_affinity | 数値式 | actorの好感度を判定 | 満たす |
(推奨:eval) | if_cint | CINT番号, 数値式 | actorのCINT値を判定 |
(推奨:eval) | if_cs_get | C#クラスメンバー名, 数値式(省略可) | actorのC#クラスメンバーの値を判定(CharaおよびCardを参照) |
if_condition | 状態alias | actorが状態を持っているか判定 | 満たす |
if_currency | 通貨種類, 数値式 | actorが指定通貨を所持しているか判定 | 満たす |
if_element | 属性alias, 数値式 | actorが指定属性を満たしているか判定 | 満たす |
if_faith | 信仰ID, 信仰レベル(省略可) | actorが指定信仰に所属し、指定レベル以上か判定(デフォルト 0) | 満たす |
if_fame | 数値式 | プレイヤーの名声を判定 | 満たす |
if_flag | flag, 数値式 | actorのフラグ値を判定 | 満たす |
if_has_item | アイテムID, 数値式(省略可) | actorが指定個数以上のアイテムを持っているか判定(デフォルト >=1) | 満たす |
if_hostility | 陣営数値式 | actorの陣営を判定(Enemy < Neutral < Friend < Ally) | 満たす |
if_in_party | actorがパーティーにいるか判定 | 満たす | |
if_keyitem | 重要アイテムalias, 数値式(省略可) | プレイヤーが指定条件の重要アイテムを持っているか判定(デフォルト >0) | 満たす |
if_race | 種族ID | actorが指定種族か判定 | 満たす |
if_tag | タグ | actorが指定タグを持っているか判定 | 満たす |
if_zone | エリアID, 階層(省略可) | actorが指定エリアにいるか判定 | 満たす |
複合条件(上記の条件を組み合わせる特別なメソッド):
| メソッド | 使用例 | ジャンプ条件 |
|---|---|---|
and | and(if_flag(flag1, >0), if_flag(flag2, <0)) | すべて満たす |
or | or(if_race(lich), if_race(snail)) | いずれかを満たす |
not | not(if_zone(dungeon), if_zone(field), if_zone(underground)) | すべて満たさない |
カスタムメソッドの実装
CWLはシンプルなAPIを提供しており、自身のスクリプトDLL内で拡張メソッドを追加できます。CWLアセンブリへの参照は必要ありません。
