選択肢をいきなり独立した関数で書く¶
概要¶
YAYAゴーストスクリプトで、選択肢やアンカーの選択を処理する際に、選択肢の識別子と一致する独立した関数を作成することで、OnChoiceSelect内の条件分岐を省略できるテクニックを紹介します。
コード例¶
OnChoiceSelect {
if ISFUNC(reference0) {
EVAL(reference0)
}
}
OnAnchorSelect {
if ISFUNC(reference0) {
EVAL(reference0)
}
}
説明¶
このアプローチにより、\q[]タグや\\_a[]タグで使用する識別子と同名の関数を辞書内に書くだけで、選択肢の処理が完結します。
例えば、選択肢タグで \q[はい,AnswerYes] と書いた場合、以下の関数を作成するだけで対応できます。
AnswerYes {
"\0\s[0]よかった!\e"
}
OnChoiceSelect内で大量のcase文を書く必要がなくなります。
関数識別子の命名制限¶
選択肢名(関数識別子)には以下のものを使用できません。
- 数字またはアンダースコアで始まるもの
- スペースや以下の特殊文字を含むもの:
! " # $ % & ( ) * + , - / : ; < = > ? @ [ ] \{ | } ~` - 予約語と一致するもの
関連項目¶
- Tips/直前の会話をもう一度再生する
- Tips/誕生日を覚える
- マニュアル/関数/ISFUNC
- マニュアル/関数/EVAL