ストーリートーク¶
エントリ配列呼び出しの導入で、自発トークでストーリーのような、連続したトークを分かりやすく書けるようになりました。また、連続したトークをランダムトークとして呼ぶことも容易です。
# story1エントリに、ストーリーを書く
story1 : (
\0\s[0]昔々ある所に、おじいさんとおばあさんが住んでいました。
\1\s[10]…。\e
)
story1 : (
\0\s[0]おばあさんが川で洗濯していたところ、
大きな桃がどんぶらこ、どんぶらこと流れてきました。
\1\s[10]ま、お約束だな。\e
)
story1 : (
\0\s[0]喜んだおばあさんは桃を持ち帰り、
おじいさんと桃を二つに割りました。
\1\s[10]桃太郎は無事なんだろうか。\e
)
story1 : (
\0\s[0]すると桃の中から、\s[4]丸々と太った立派なうにゅうが…。
\1\s[10]ちょっと待て。\e
)
story1 : (
\0\s[0]…おじいさんとおばあさんは、急いで桃を封印しました。
\1\s[10]おい!
\0\s[0]そして${ヤバイ組織}に高値で売り飛ばし、
\s[5]余生を面白おかしく過ごしましたとさ。おしまい。
\1\s[11]それが落ちか!\e
)
story1 : (
\0\s[5]いいお話だったねえ、うにゅう。心が和むよ。
\1\s[11]どこが!お前とは一度、拳で語り合う必要があるな。
\0\s[0]つまり、私の${必殺技}がフルコースで欲しいと?\s[6]
\1…\w9…\w9…\w9\s[10]今夜は${ご馳走}でございます、お嬢様。
\0\s[5]分かればよろしい。\e
)
# どこまで読んだか記録するカウンタ
story1.pos : 0
# カウンタを一つ増やす。全エントリを読んだらカウンタを0に戻す
story1.inc : $(setstr story1.pos $[ (${story1.pos} + 1) % $(size story1) ])
# トークエントリにストーリーを登録する。1回呼ばれたらカウンタを1増やす
sentence : $story1[${story1.pos}]${story1.inc}
# ランダムトークとしてストーリーを登録する
sentence : ${story1}