コンテンツにスキップ

起動してなかった時間により起動トークを変える

概要

ゴーストが終了していた時間の長さに応じて、起動時のトークを変える実装方法を説明します。GETSECCOUNT()を使って終了時と起動時の時刻を記録・比較することで、文脈に応じた反応が可能になります。

コード例

終了時のタイムスタンプ保存

OnGhostUnload {
    LastCloseSecCount = GETSECCOUNT()
}

起動時のトーク分岐

OnBoot {
    _elapsed = GETSECCOUNT() - LastCloseSecCount
    _days = _elapsed / (60 * 60 * 24)

    if _elapsed < 60 * 10 {
        // 10分未満
        "\0\s[0]あれ、もう戻ってきたの?\e"
    }
    elseif _days >= 7 {
        // 7日以上
        "\0\s[0]%(_days)日ぶりだね!久しぶり!\e"
    }
    else {
        // 通常
        "\0\s[0]おかえり。\e"
    }
}

説明

実装のポイント:

処理 内容
GETSECCOUNT() 現在のシステム時刻を秒数として取得
LastCloseSecCount 終了時のタイムスタンプを保存するグローバル変数
_elapsed 経過秒数
_days 経過日数(秒数 ÷ 86400)

経過時間を条件として分岐させることで、短時間の離席と長期間の不在で異なるトークを実現できます。7日以上の不在では具体的な日数を表示するなど、より個性的な演出が可能です。

関連項目

  • マニュアル/関数/GETSECCOUNT
  • マニュアル/関数/GETTIME