<go>要素
$ σ_σ$ < go要素はレッツゴーのgoよ。 Σc ' _' ) < 三匹でも永井でもないから気をつけろ!
概要
シナリオファイルとactを移動する命令。
プログラム制御的には、ジャンプに当たる。
文脈(コンテクスト)
命令要素(act,option要素内 空要素)
<go/>
空の要素なしのgoは、現在実行中のactの先頭に移動(つまりactの後処理を飛ばす)
ただし、一番最初に実行される開始act(root.xmlのid="start")だけは、前回のプレイ終了時のactに移動。プレイ初回の場合は何もしない。
href属性に#付きでactのid(アンカー)を書くと、同じファイル内のトップレベルにある指定idが設定されたactへ移動する。
#をつけないとファイル指定と判断され、ファイルが存在しないという意味のエラーが発生するので、つけ忘れに注意。
<go href="#epilogue"/>
シナリオファイルを指定して、開始act(id="start"が設定されているか、idなしのact)へ移動する。
<go href="scenario.xml"/>
シナリオファイルは、ディレクトリの指定もできる。
<go href="chapter1/section2.xml"/>
シナリオファイルとactの同時指定もできる。
<go href="stage2.xml#act3"/>
条件分岐
適用可能な判定属性
go要素はvar、i、item、at、pla属性による条件判定が可能。
条件となる属性が複数ある場合は、andで判定が行われる。
<go var="100~score" href="nextStage.xml"/>
go要素の条件判定で真(true)となると、その時点でジャンプするので、else要素のような動作をさせたいならば、単にgo要素を列挙すれば良い。
<go var="score~100" href="#retry"/> <go href="nextStage.xml"/>
1行目の条件がtrueなら、#retryへジャンプし2行目は実行されない。
falseなら、2行目が実行される。