Skip to content

暫定版

このセクションのAPIは変更される可能性があります。

CWLには, 内蔵された一連のスクリプト拡張メソッドが付属しています。ここでコードを確認できます。

Dialog.ExpandedActions 設定を有効にする必要があります。デフォルトで有効になっています。

ストーリーテーブルでは, CWLの特別なアクション invoke* / i* を使用して拡張メソッドを呼び出すことができます:

パラメータ渡し

カンマ区切りで指定:

actionparamactor
invoke*/i*honk_honk(arg1, arg2)pc

actor 列はターゲットキャラ(pc tg または任意のキャラid)を示します。

jump 列が存在する場合, 拡張メソッドの戻り値が true ならジャンプを実行します。

数値式: +5, *10, =69, !=114 などは, 判定または代入に使用される表現です。

アクション

メソッドパラメータ説明ジャンプ条件
add_itemアイテムid, 素材エイリアス(省略可)(省略可), レベル(省略可), 数量(省略可)actorに指定されたアイテムを追加します。デフォルトはランダムな素材, 自動レベル, 数量は 1常時
equip_itemアイテムid, 材質エイリアス(省略可), レベル(省略可)actorに指定された物品を装備させる。デフォルトはランダムな材質、レベルは自動常時
join_partyactorをパーティに参加させます常時
join_faith信仰id(省略可)actorを信仰に参加させます。空の場合は現在の信仰から退出します成功時
apply_condition状態alias, 強度actorに状態を適用します常時
cure_condition状態aliasactorの状態を治癒します成功時
remove_condition状態aliasactorから状態を削除します常時
build_extアセンブリ名指定されたアセンブリ内のメソッドを可能な限りストーリー拡張テーブルに追加する成功時
emit_callext.メソッド名外部の静的メソッドを呼び出す常時

build_extemit_call を通じて外部アセンブリメソッドを呼び出すには, Dialog.ExpandedActionsAllowExternal 設定を有効にする必要があります。デフォルトでは有効になっています。

演劇パフォーマンス

メソッドパラメータ説明ジャンプ条件
move_next_toキャラidactor同じマップのキャラクターの隣に移動させる常時
move_tileX, Yオフセットactor相対座標で移動させる。例えば 1,1常時
move_zoneゾーンid,階層(省略可)actorを指定されたゾーンに転送する。デフォルトは 0 階層常時
play_animeアニメーションidactorにアニメーションを実行させる常時
play_effectエフェクトidactorにエフェクトを再生させる常時
play_emote感情idactorに感情を表示させる常時
play_screen_effect画面エフェクトid画面エフェクトを再生する常時
pop_textテキストactorに叫びのテキスト(吹き出し)を発声させる常時
portrait_set立ち絵id(省略可)actorの対話立ち絵を設定します。空の場合はリセットされます。Portraitフォルダーのカスタム立ち絵をサポートしています。例えば、UN_myChara_happy.pnghappyまたはUN_myChara_happyとして使用できます。常時
show_book書籍id, カテゴリー(Book または Scroll)本を開く。LangMod/**/Textフォルダーをサポートする。例えば Text/Book/ok.txt ならば (ok, Book) を使用成功時

値を変更する

メソッドパラメータ説明ジャンプ条件
mod_affinity数値式(例: +5)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のflag値を変更常時
mod_keyitemキーアイテムid, 値式(省略可)プレイヤーの重要アイテムの値を変更します。デフォルトは =1成功時

条件

これらも拡張メソッド(invoke* アクションを通じて呼び出される)ですが, それらの戻り値は jump ジャンプの判定に使用できます。

メソッドパラメータ説明ジャンプ条件
if_affinity数値式actorの好感度をチェック条件が満たされた時
if_condition状態aliasactorが状態を持っているかチェック条件が満たされた時
if_currency通貨の種類, 数値式actorが該当する通貨を所有しているか確認します。money money2 plat medal influence casino_coin ecopo条件が満たされた時
if_element元素alias, 数値式actorが条件に合った元素を持っているか確認条件が満たされた時
if_faith信仰id, レベル(省略可)actorが特定の信仰に加入しており, 特定のレベル(デフォルトは0レベル)以上であるかを確認条件が満たされた時
if_fame数値式プレイヤーの名声を確認します条件が満たされた時
if_flagflag, 数値式actorのフラグ値をチェック条件が満たされた時
if_keyitemキーアイテムalias, 数値式(省略可)プレイヤーが表現に合ったキーアイテムの値を持っているかを確認する, デフォルトは >0条件が満たされた時
if_race種族idactorが対応する種族であるかを確認条件が満たされた時
if_tagtagactorがタグを持っているかチェック条件が満たされた時
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))全ての条件が満たされなかった時

if_flag それとも hasFlag

if 列にある hasFlag は静的条件であり, シナリオテーブルが読み込まれるときに一度だけ判定されます。これは, その後に変更されたフラグ値が影響を与えないことを意味し, reload アクションを使用するか, シナリオテーブルを再度開くまで続きます。CWL の if_flag() 拡張条件は動的であり, シナリオ分岐にも使用できます。

カスタムメソッド実装

CWLはシンプルなAPIを提供し, 独自のスクリプトDLLに拡張メソッドを追加できます。