Skip to content

拡張機能

CWLには、劇本(ドラマ)用の拡張メソッドが多数組み込まれています。 詳細はこちらのコードで確認できます。

使用するには Dialog.ExpandedActions 設定を有効にする必要があります(デフォルトで有効)。

ドラマテーブル内で、CWL専用アクションである invoke* または i* を使用して拡張メソッドを呼び出します:

引数渡し

引数は ,(半角カンマ)で区切ってください:

actionparamactor
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_partyactorをパーティーに加入させる常に
join_faith信仰ID(省略可)actorを指定信仰に加入させる。空欄の場合は現在の信仰から脱退成功時
apply_condition状態alias, 強度actorに状態を付与常に
cure_condition状態aliasactorの状態を治療成功時
remove_condition状態aliasactorから状態を完全に削除常に
(推奨:eval)build_extアセンブリ名指定アセンブリ内のメソッドをドラマ拡張テーブルに可能な限り追加
(推奨:eval)emit_callext.メソッド名外部の静的メソッドを呼び出す

演出

メソッド引数説明ジャンプ条件
move_next_toキャラクターIDactor同一マップ内の対象キャラクターの隣へ移動常に
move_tileX, Yオフセットactor相対座標で移動(例:1,1常に
move_toX, Yactor絶対座標へ移動(例:1,1常に
move_zoneエリアID, 階層(省略可)actorを指定エリアへ転送(デフォルト 0 階)常に
play_animeアニメIDactorにアニメーションを再生常に
play_effectエフェクトIDactorに特殊効果を再生常に
play_emote表情IDactorに表情(エモート)を表示常に
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_flagflag, 数値式actorのフラグ値を変更常に
mod_keyitem重要アイテムalias, 数値式(省略可)プレイヤーの重要アイテム値を変更。デフォルト =1成功時

条件

これらのメソッドも invoke* アクションで呼び出せますが、戻り値を jump の条件として使用できます。

メソッド引数説明ジャンプ条件
choice拡張条件条件付きで選択肢行を有効化(例:choice(if_lv(>=10)))。推奨choice アクションを使用し、paramに拡張メソッドを指定条件を満たす
evalC#スクリプトC#スクリプトまたはファイルを直接実行(<<<path.cs 構文対応)。推奨eval アクションを使用true を返す
if_affinity数値式actorの好感度を判定満たす
(推奨:eval)if_cintCINT番号, 数値式actorのCINT値を判定
(推奨:eval)if_cs_getC#クラスメンバー名, 数値式(省略可)actorのC#クラスメンバーの値を判定(CharaおよびCardを参照)
if_condition状態aliasactorが状態を持っているか判定満たす
if_currency通貨種類, 数値式actorが指定通貨を所持しているか判定満たす
if_element属性alias, 数値式actorが指定属性を満たしているか判定満たす
if_faith信仰ID, 信仰レベル(省略可)actorが指定信仰に所属し、指定レベル以上か判定(デフォルト 0満たす
if_fame数値式プレイヤーの名声を判定満たす
if_flagflag, 数値式actorのフラグ値を判定満たす
if_has_itemアイテムID, 数値式(省略可)actorが指定個数以上のアイテムを持っているか判定(デフォルト >=1満たす
if_hostility陣営数値式actorの陣営を判定(Enemy < Neutral < Friend < Ally満たす
if_in_partyactorがパーティーにいるか判定満たす
if_keyitem重要アイテムalias, 数値式(省略可)プレイヤーが指定条件の重要アイテムを持っているか判定(デフォルト >0満たす
if_race種族IDactorが指定種族か判定満たす
if_tagタグactorが指定タグを持っているか判定満たす
if_zoneエリアID, 階層(省略可)actorが指定エリアにいるか判定満たす

複合条件(上記の条件を組み合わせる特別なメソッド):

メソッド使用例ジャンプ条件
andand(if_flag(flag1, >0), if_flag(flag2, <0))すべて満たす
oror(if_race(lich), if_race(snail))いずれかを満たす
notnot(if_zone(dungeon), if_zone(field), if_zone(underground))すべて満たさない

カスタムメソッドの実装

CWLはシンプルなAPIを提供しており、自身のスクリプトDLL内で拡張メソッドを追加できます。CWLアセンブリへの参照は必要ありません。

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.