コンテンツにスキップ

ストーリートーク

エントリ配列呼び出しの導入で、自発トークでストーリーのような、連続したトークを分かりやすく書けるようになりました。また、連続したトークをランダムトークとして呼ぶことも容易です。

# 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}