トーク定義
湊のスクリプトの基本単位はトークです。
イベント名と処理ブロックを => でつなげて書きます。
基本的な書き方
OnBoot => {
湊: こんにちは。
}
OnBoot はSSPがゴーストを起動したときに呼ばれるイベントです。
{} の中に処理を書きます。
同じイベントを複数定義する
同じイベント名で複数のトークを定義できます。 ランダムに選ばれて実行されます。
OnRandomTalk => {
湊: 今日もいい天気ですね。
}
OnRandomTalk => {
湊: 何か用ですか?
}
OnRandomTalk => {
湊: ……。
}
ドット付きのイベント名
SSPのイベントには、OnUpdate.OnDownloadBegin のようにドットを含むIDがあります。
湊では、イベント名をそのままドット付きで書けます。
OnUpdate.OnDownloadBegin => {
湊: 更新ファイルをダウンロードしています。
}
OnUpdate.OnMD5CompareBegin => {
湊: ファイルを確認しています。
}
条件フィルタ(if(...))も、ドット無しのトークと同じように付けられます。
OnUpdate.OnDownloadBegin if(save.verbose) => {
湊: 少し時間がかかるかもしれません。
}
ドット付きのトークは call OnUpdate.OnDownloadBegin のように呼び出すこともできます。
ドット付きにできるのはトーク名だけです。func の名前にはドットを使えません。
主なイベント一覧
| イベント名 | タイミング |
|---|---|
OnBoot | 起動時 |
OnClose | 終了時 |
OnRandomTalk | 定期的なランダムトーク、およびユーザーが手動でトークを要求したとき |
OnMouseDoubleClick | ダブルクリック時 |
OnChoiceSelect | On で始まらないIDの選択肢が選ばれたとき(選択肢とウェイト) |
SSPが送るイベントはSSPのドキュメントを参照してください。
湊が読み替える・内部で使うイベント
次の3つはSSPから届いたあと湊が内部で処理するため、OnAITalk => { ... }、
OnMinuteChange => { ... }、OnGotVirtualTime => { ... } と書いても呼ばれません。
| SSPのイベント | 湊での扱い |
|---|---|
OnAITalk | OnRandomTalk に読み替えて実行されます。手動トークも定期トークも OnRandomTalk => { ... } に書いてください |
OnMinuteChange | 湊が時刻の取得とランダムトークの発火判定に内部で使います。間隔が経過していて、かつSSPがトークを再生できる状態(Reference3 が 1)であれば OnRandomTalk が実行されます。OnMinuteChange 自体を台本で受け取ることはできません |
OnGotVirtualTime | 湊が現在時刻(SSPの仮想時刻)を受け取るために内部で使います。受け取った時刻は now に反映されます。台本で受け取ることはできません |
湊は、OnBoot と OnMinuteChange への応答の末尾に、SSPへ時刻を問い合わせる \![get,property,OnGotVirtualTime,...] を自動で付け足します。
そのSSPからの返事が OnGotVirtualTime です。台本に書く必要はありません。
SSPのリソース要求(version / craftman)
SSPは、イベントのほかに、On で始まらないID(リソース)でSHIORIに問い合わせることがあります。
湊は、次の2つにだけ、台本とは関係なく固定の値で答えます。
| リソースID | 湊の応答 |
|---|---|
version | 湊のバージョン(例: 0.1.0) |
craftman | mizuki |
これらはゴーストの読み込み前後でも答えます。台本で version => { ... } のように書いても、値を変えることはできません。
それ以外の On で始まらないリソース(homeurl や sakura.name など)には、何も返しません(204)。