コンテンツにスキップ

里々独自のイベントと文

辞書に書くと、里々が特定のタイミングで実行する文です。

名前 実行されるとき 結果の扱い
*初期化 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 に予約トークの名前が入ります。