メインコンテンツまでスキップ

トリガ

シナリオの有効なトリガの種類及びその引数について説明しています。


ヒント

シナリオやシナリオファイルの概念が初めての方は, 先にこちらを参照して理解しておくことを推奨します。

概要

トリガは, シナリオ の実行を開始するための発火条件です。
手動実行や特定のアクションの発火など, 様々なトリガがあります。

ヒント

トリガは, シナリオ に対して複数設定できます。
この場合は, そのうちどれか一つが発火した時にシナリオが実行されます。

備考

手動実行を含む, いかなるシナリオにも一つ以上のトリガが必要です。

事前・事後シナリオ機能

メインシナリオの実行前後に実行されるシナリオを, トリガごとに設定できます。
事前シナリオ -> メインシナリオ -> 事後シナリオ の順番で同期的に実行されます。

【使用例】

プレイヤが死亡したときに, プレイヤにメッセージを送信するシナリオについて考えます。
このシナリオは自動実行に加えて, 手動実行できる必要があり, その場合はプレイヤをメイン・シナリオの実行前にキルする必要があるとします。 自動実行はトリガ:アクション実行アクション:プレイヤの死亡に対して使用し, 手動実行はトリガ:手動実行を使用します。

このとき, 自動実行の場合はプレイヤがキルされたことが契機になっているので, 事前シナリオは不要です。
しかしながら, 手動実行の場合は対象プレイヤをキルする必要があるので, 事前シナリオを設定します。

このように, 事前・事後シナリオ機能を利用すると, トリガごとに追加または除外されるシナリオを設定できます。

# ...
on:
- type: on_action
action: player_death
with:
target: Actor001
- type: manual_dispatch
before:
# 手動実行の場合は, 事前にプレイヤをキルする
- type: execute
action: player_death
with:
target: Actor001

scenario:
- type: execute
action: send_message
with:
target: Actor001
message: "You died!"

条件付きトリガ機能

トリガの発火条件に, 追加で条件を指定できます。
これは, シナリオの実行条件機能と同じですが, トリガごとに設定できるという点で異なります。

これを用いることで, 例えば「プレイヤが死亡したときかつ マイルストーン "hoge" が達成されているときにシナリオを実行する」といったことが可能になります。

上記の例を実装すると, 以下のようになります。

# ...
on:
- type: on_action
action: player_death
with:
target: Actor001
# マイルストーン "hoge" が達成されているときにシナリオを実行
runif:
action: milestone
with:
name: Hoge
#...

トリガの種類

トリガは, 以下の種類があります。

アクション実行 (on_action) トリガ

引数に指定されたアクション実行期待シナリオが, 実行されたときにシナリオを実行します。

引数はそのアクションに必要なものを指定します。構文に関してはこちらを参照してください。

ヒント

アクションに必要なパラメータについては, 各アクションのドキュメントを参照してください。

# ...
on:
- type: on_action
action: "player_death"
with:
target: "Actor1"

プラグインのロード (on_load) トリガ

プラグインがロードされたときにシナリオを実行します。
これには, サーバのリロードや再起動も含みます。

引数はありません。

# ...
on:
- type: on_load

手動実行 (manual_dispatch) トリガ

Scenamatica のコマンドを用いて, 手動でシナリオを実行します。

引数は有りません。

詳しくは以下のドキュメントを参照してください:

# ...
on:
- type: manual_dispatch