里々独自のイベントと文¶
辞書に書くと、里々が特定のタイミングで実行する文です。
| 名前 | 実行されるとき | 結果の扱い |
|---|---|---|
*初期化 |
satori_conf.txt を読み込んだ直後(最初) |
結果は使われない。システム変数の設定を書く |
*セーブデータ |
セーブデータの読み込み | 変数の復元(里々が自動で書き出したもの) |
*OnSatoriLoad |
辞書の読み込みが終わったとき | 結果は使われない |
*OnSatoriBoot |
辞書の読み込みが終わったとき | 最初の OnBoot / OnGhostChanged で返す |
*OnSatoriClose |
OnClose / OnGhostChanging のとき |
空でなければ、終了時の応答にする |
*OnSatoriUnload |
アンロード時のセーブの直前 | 結果は使われない |
*OnSatoriSecondChange |
秒ごと。ほかに何も喋らなかったとき | 空でなければ、応答にする |
*OnSatoriTimer |
タイマが発動したが、*名前 の文がないとき(Mc201-11以降) |
タイマの応答にする |
*COMMUNICATE該当なし |
話しかけられたが、該当する文がなかったとき | 応答にする |
OnSatoriBoot¶
*OnSatoriBoot の結果は、最初の起動のイベントの応答として使われます。これを使うと、OnBoot が届く前に、ゴーストの状態に応じた挨拶を組み立てられます。結果が「中身のない応答」になった場合は使われません。
OnSatoriSecondChange¶
OnSecondChange のたびに、そのほかの応答(タイマ、ランダムトーク)が何も生まれなかったときだけ呼ばれます。辞書側で独自の自動発話の仕組みを作るために使います。結果が空でなければ、ランダムトークと同じ扱いで応答になります。
OnSatoriTimer¶
タイマ($名前タイマ=秒数)が発動したとき、辞書に *名前 の文がなければ、代わりに *OnSatoriTimer が実行されます(Mc201-11以降)。*名前 があるときは、これまでどおり *名前 が実行されます。
| 名前 | 内容 |
|---|---|
(A0) |
発動したタイマの名前(名前タイマ の 名前 の部分) |
(A1) |
遅れた秒数(全角)。喋れない間に待たされた秒数で、すぐに発動したときは 0 |
名前を組み立ててタイマを立てると、受け側を 1 つの文にまとめられます。
*キッチンタイマーを立てる
$キッチンタイマー(現在秒)タイマ=3*60
:3 分たったら呼ぶね。
*OnSatoriTimer
:(A0)の時間だよ。
自動的に用意される名前¶
*OnTalk: ランダムトーク。定義がなければ、名前のない文(*)が使われます。*OnTalkを定義すると、Reference0 に0(ランダム)か1(予約トーク)、Reference1 に予約トークの名前が入ります。