イベントの処理¶
On で始まる ID のリクエストは、次のように処理されます。
基本¶
- 辞書に、イベント名と同じ名前の文(
*OnBootなど)があれば、それを実行して応答にします。定義があれば、いつでもデフォルトの動作より優先されます。 - なければ、下の互換イベント名を順に調べます。
- それもなければ、デフォルトの動作があるイベントだけ、それを実行します。
- どれもなければ、何も返しません(204 No Content)。
Reference の値は、(R0) (R1)… で参照できます(参照値)。
応答スクリプトには、トークの前後の文字列が付きます(自動挿入)。
互換イベント名¶
古い里々のイベント名でも書けるよう、次の名前は互いに読み替えられます。上の名前の文がなければ、下の名前を探します。
| イベント | 別名(探す順) |
|---|---|
OnBoot |
起動 |
OnClose |
終了 |
OnFirstBoot |
初回 → OnBoot → 起動 |
OnGhostChanged |
他のゴーストから変更 → OnBoot → 起動 |
OnGhostChanging |
他のゴーストへ変更 → OnClose → 終了 |
OnVanishSelecting |
消滅指示 |
OnVanishCancel |
消滅撤回 |
OnVanishSelected |
消滅決定 |
OnVanishButtonHold |
消滅中断 |
OnTalk |
名前のない文(*) |
起動と終了の特別な扱い¶
OnBoot/OnGhostChanged:*OnSatoriBootの結果が空でなければ、それを最初の 1 回だけ応答にします(OnBootに定義された文より優先されます)。OnClose/OnGhostChanging:*OnSatoriCloseの結果が空でなければ、それを応答にします。OnCloseの応答は、\eではなく\-で終わります。定義がなくても\-を返して終了できるようにします。
秒ごとのイベントで行う処理¶
OnSecondChange は、辞書の文の有無とは別に、里々が次の処理を行います。
- タイマ変数を 1 減らす。
- 自動セーブの時間を数える。
- 何も喋っていなくて、喋れる状態のとき、タイマ・ランダムトーク・
OnSatoriSecondChangeを順に確認する(ランダムトークとタイマ)。 Reference1(見切れ)、Reference2(重なり)、Reference3(喋れるか)を記録する。- 前回喋ってからの秒数を数える。
特別なイベント¶
| イベント | 動作 |
|---|---|
OnAnchorSelect |
Reference0 がアンカー名なら、同名の文を実行(辞書に *OnAnchorSelect があっても優先) |
OnChoiceSelect |
定義がなければ、Reference0(選択肢の ID)と同名の文を実行 |
OnChoiceSelectEx |
引数付きの選択肢(Reference2 以降がある)で、*OnChoiceSelectEx も *OnChoiceSelect もなければ、Reference1(ID)と同名の文を、Reference2 以降を (A0)〜にして実行(Mc201-11以降。選択肢) |
OnRecommendsiteChoice |
定義がなければ、おすすめサイト用の文を実行 |
OnCommunicate |
コミュニケート |
OnUpdateReady |
Reference0 に 1 を足す |
OnSurfaceChange |
サーフェス番号を記録((サーフェス0)) |