** 内容はSRC2.2.33のものです **
Askコマンド
プレイヤーによる選択肢入力
書式1
Ask message [option …]
選択肢1
選択肢2
:
End
書式2
Ask array message [option …]
指定項目説明
message説明用メッセージ。書式1で、かつoptionを省略した場合にのみ省略可
array選択肢用配列名
optionダイアログの表示の仕方を指定するオプション
解説
選択肢の一覧からなるダイアログを表示し、プレイヤーの選択を促します。選択された選択肢はシステム変数選択を使うことで参照できます。選択の値は何番目の選択肢が選択されたかを表し、先頭の選択肢が選択されたときに1になります(書式1の場合)。message には選択肢のダイアログに表示される説明文を指定します。
書式1の場合、選択肢は直接記述します。選択肢に「$(式)」という文字列を入れることで任意の式の値を表示することもできます。空行の選択肢は表示されないので、表示させたくない選択肢の行を式を使って空行にし、表示する選択肢の数を変えることもできます。この場合、空行を含めた順番の値が選択の値に設定されます。キャンセル時の選択の値は0です。
書式2の場合、選択肢は配列を使って指定します。指定した配列message の要素の値が選択肢として使用されます。この時、選択肢の順番は要素を定義した順番で決まります。システム変数選択の値は選択された選択肢に対応する要素のインデックスに設定されます。キャンセル時の選択の値は空文字列”“です。
ダイアログの表示方法はoptionに下の表示オプションを指定することで制御可能です。オプションは複数指定することもできます。
通常標準サイズ(高さ6行)のリストを表示します。
選択肢が7個以上でもダイアログを大きくしたくない場合に使用します。
拡大拡大サイズのリストを表示します。選択肢が7個以上ある場合はこのオプションを
指定しなくてもダイアログは自動的に拡大されます。
連続表示プレイヤーが選択肢を選んだ後もダイアログを閉じません。
Askコマンドを連続使用する時のちらつきを無くしたり、選択結果の確認のために
Confirmコマンドを併用する場合に用います。
キャンセル可マウスの右ボタンクリックを使ったキャンセルを可能にします。
終了連続表示したダイアログを閉じます。このオプションを使う場合はイベントコマンド
としてAsk 終了だけを指定し、選択肢及びEnd行は指定しません。
例1
Talk ミサキ
じゃ、いくわよ~ ジャ~ンケ~ン ポイッ!
End
#プレイヤーが出す手を選択
ジャンケン:
Ask どれを出す?
グー
チョキ
パー
End
Talk システム
ミサキはチョキを出した!
End
#プレイヤーが出した手に合わせた処理を行う
Switch 選択
Case 1
Talk ミサキ
あっちゃ~ 私の負けね。じゃあこの日の当番は私かあ~
End
Case 2
Talk ミサキ
あいこで~しょっ!
End
#もう一回選択肢のところからやり直し
GoTo ジャンケン
Case 3
Talk ミサキ
へっへ~ん、私の勝ちね。じゃあこの日の当番はシンイチ君と…
End
EndSw
例2
#まず配列を初期化
UnSet アイテムリスト
#所持しているアイテムの名前を配列に格納
For i = 1 To CountItem()
アイテムリスト[i] = Item(i)
Next
#アイテムの一覧を表示
Ask アイテムリスト "アイテムを選んで下さい"
例3
#選択のやり直しができるようにループを使う
Do
#選択をやり直した際にダイアログを消さないよう連続表示を使う
Ask "あまったユニットをどうしますか?" 連続表示 キャンセル可
処分して資金にする
取っておく
End
#処分を選んだ場合は再確認
If 選択 = 1 Then
Confirm 本当に処分していいですか?
EndIf
#上のConfirmでキャンセルを選んだ場合(選択 = 0)は選択をやり直す
Loop While (選択 = 0)
#選択のダイアログを消去
Ask 終了