select命令の小技

ごくごく基本的な命令であり、あまり使われないような気もするが。
NScripter API Reference (Unofficially) Ver.0.78より

選択肢を表示し、その選択結果に対応するラベルへジャンプします。
文字列に""を入れると、その選択肢は表示されません。
(これは、selnumやselgosubでも同じです)
ただし、ひとつも文字列が無いとハングするので気をつけてください。

たとえば、選択肢の文字列として長さの違う文字列を与えたとする。

  • 青い箱
  • せっかくだから俺はこの赤い箱を選ぶぜ!

この時、「青い箱」のマウスカーソルが反応する領域は、横幅が「せっかくだから俺はこの赤い箱を選ぶぜ!」と同じになる。つまり、最大長さの選択肢に合わせて反応領域が決定される。
これを利用して、どんなに短い選択肢のときでも画面の幅いっぱいに反応領域を広げるために、全角スペースだけで構成されたダミーの選択肢を作っておくこともできる。

  • 青い箱
  • せっかくだから俺はこの赤い箱を選ぶぜ!
  •  

selectの直前にラベルを作成し、このダミーの選択肢はこのラベルに飛ぶようにしておけばいい。
あるいは、隠し選択肢として設定するのも面白い。ダミーの空白選択肢を選ぶと、特別なルーチンに飛ぶ訳だ。おお、懐かしの隠しコマンドよ! AppleIIウィザードリィのBishopで9番をアイテム鑑定した日々よ(嘘)!
ちなみにこの隠しコマンドネタは拙作「ひぐらしのなく頃に ノ編」で使っているのだが誰も気づいてないだろうな。
当然ながら、select以外にもselgosubやselnumにも同じことができる。レッツトライ。