now・referenceの使い方

now

now は現在時刻を持つマップです。トークの中でいつでも参照できます。

キー内容例
now.年年2026
now.月月1〜12
now.日日1〜31
now.時時0〜23
now.分分0〜59
now.秒秒0〜59
now.曜日曜日0=月〜6=日

nowの使用例

OnRandomTalk => {
    if (now.時 >= 6 && now.時 < 12) {
        湊: おはようございます。
    } else if (now.時 >= 12 && now.時 < 18) {
        湊: こんにちは。
    } else {
        湊: こんばんは。
    }
}

曜日の判定

OnRandomTalk => {
    match now.曜日 {
        0 | 1 | 2 | 3 | 4 => {
            湊: 今日は平日ですね。
        }
        5 | 6 => {
            湊: 今日は休日ですね。
        }
    }
}

reference

reference はSSPからイベントと一緒に渡される付加情報です。 マップ形式で、キーは番号の文字列です。

OnMouseDoubleClick => {
    湊: クリックされた場所はX=${reference["0"]}、Y=${reference["1"]}です。
}

どのイベントでどの reference が渡されるかはSSPのドキュメントを参照してください。

status

status は、SSPがイベントと一緒に送る Status ヘッダの内容を持つマップです。 ゴーストの今の状態を、トークの中で判定できます。

キー内容
status.talking発話中か
status.choosing選択肢の表示中か
status.minimizing最小化中か
status.induction誘導中か
status.passiveパッシブモードか
status.timecriticalタイムクリティカルな状態か
status.nouserbreakユーザーによる中断ができない状態か
status.onlineオンライン状態か
status.rawStatus ヘッダの元の文字列

raw 以外は true / false です。Status ヘッダにそのフラグが含まれていれば true になります。 ヘッダがないイベントでは、すべて false です(前のイベントの値は持ち越されません)。

OnRandomTalk => {
    if (status.minimizing) {
        // 最小化中は何も喋らない
        return
    }
    湊: こんにちは。
}

各フラグの意味の詳細は、SSPのドキュメントの Status ヘッダの項を参照してください。