コンテンツにスキップ

直前の会話をもう一度再生する

概要

ゴーストが直前に話した内容をもう一度再生する機能の実装方法を説明します。「文」プラットフォームにはこの機能が組み込まれていないため、辞書側で対応します。

実装手順

1. OnAiTalk関数の変更

もともとOnAiTalkはRandomTalkやChainTalkを呼び出すだけですが、返り値をlastTalk変数に保存するよう変更します。

OnAiTalk {
    lastTalk = RandomTalk
    lastTalk
}

2. メニューへの追加

OpenMenu関数を変更して、lastTalkが存在する場合にのみ再生オプションを表示します。

if lastTalk != "" {
    "\q[さっきなんて言ったの?,OnLastTalk]\n"
}

3. OnLastTalk関数の作成

保存した会話を再生する新しい関数を作成します。

OnLastTalk {
    "\0\s[0]えっと‥‥‥\c/
%lastTalk"
}

説明

  • lastTalkはグローバル変数として、直前のトーク内容を保持します
  • メニューに「さっきなんて言ったの?」という選択肢を追加し、lastTalkが空でない場合のみ表示します
  • OnLastTalkが呼ばれると、保存された内容を再度出力します

応用

配列構造を使って複数の過去の会話を保存し、N回前の会話にアクセスできるよう拡張することも可能です。

関連項目

  • Tips/選択肢をいきなり独立した関数で書く