コンテンツにスキップ

多重人格モード

概要

mode 変数でモードを管理し、EVAL または CALLBYNAME を使って動的に関数を切り替えることで、複数の人格(モード)を持つゴーストを実装する方法です。

情報源: et cetera. の雑記より引用

コード例

Version 5 での記述

OnAiTalk
{
    EVAL("OnAiTalk%mode")
}

Version 4 での記述

OnAiTalk
{
    CALLBYNAME("OnAiTalk%mode")
}

モード別イベント定義

OnAiTalk0
{
    // モード 0
    "\0ユーザーさん大好きっ。\e"
}
OnAiTalk1
{
    // モード 1
    "\0くたばれ腐れユーザーさん。\e"
}

説明

動作の仕組み

mode 変数の値(例: 0 または 1)を関数名に埋め込んで、EVAL または CALLBYNAME で動的に呼び出します。mode が 0 なら OnAiTalk0、1 なら OnAiTalk1 が実行されます。

各バージョンの違い

  • Version 5: EVAL を使用して関数名文字列を評価・実行する
  • Version 4: CALLBYNAME を使用して文字列で指定した関数を呼び出す

応用方法

この手法はランダムトークイベントに限定されません。他の各種イベントも同様に記述し、モード別に辞書ファイルをまとめることで、完全な多重人格ゴーストを実現できます。

モードの切り替えは mode 変数に値を代入することで行います。会話の途中で切り替える方法は「会話の途中で人格を切り替える」を参照してください。

関連項目

  • Tips/会話の途中で人格を切り替える
  • EVAL
  • CALLBYNAME