Suika2でシナリオを分岐させる方法

フラグを立てて分岐する

選択肢の表示ができたところで、次はフラグを立てて分岐する処理に移ります。

これができればノベルゲームがひとまず形になります。

init.txt の中身をすべて削除して、次の内容を貼り付け、保存してみてください。

@bg roof.png 1.0
@ch center 001-fun.png 1.0
さて、学校へ行くか。
@select label1 label2 label3 歩いて行こう 自転車で行こう やっぱりサボろう
:label1
歩いて行くことにした。
@set $1 = 1
@goto next
:label2
自転車で行くことにした。
@goto next
:label3
今日は休むことにした。
:next
@if $1 == 0 end
お金を拾った。
:end

保存したら、ゲームを実行します。

「歩いて行こう」を選択した場合だけ、「お金を拾った。」が表示されるはずです。

ここでは @set@if の2つのコマンドを組み合わせています。

@set は、変数設定コマンドを表します。続く $1 は、変数番号1に値を格納することを意味します。続く = は、単純な代入であることを意味します(他にも計算ができます)。続く 1 は、整数の1を代入することを意味します。変数の初期値は 0 ですので、「歩いて行こう」が選択されたときだけ、変数 $1 の値が 1 になります。

@if は、条件分岐コマンドを表します。 $1 == 0 は、変数 $1 の値が 0 の場合、という条件を意味します。続く end は、条件に一致した場合はラベル end にジャンプする、という意味を表します。変数の初期値は 0 ですので、結果として、「歩いて行こう」を選択した場合だけ、「お金を拾った。」が表示されることになります。

変数の使い方は0/1のフラグだけではなく、好感度などの数値を持つこともできます。詳細はコマンド・リファレンスの @set@if をご覧ください。ただ、スクリプトをシンプルに保つためには、なるべく0/1のフラグとして運用する方が望ましいと思います。

わからなかった場合

難しい、わからない、と感じても、問題ありません。
スクリプト生成を利用すれば、 Web上でフォームに入力するだけで、 シナリオを分岐するスクリプトを生成できます。

←前へ  次へ→