<var>要素
$ σ_σ$ < var要素はvariable、つまり変数ね。 Σc 'д' ) < 変な数? すとれいんじ!!
概要
フラグや数値を管理するための要素。
条件判定を行うために、真偽値や数値を設定する。
また、簡単な四則演算や乱数の設定も行える。
文脈(コンテクスト)
初期化要素(act,option要素内 空要素)
<var/>
何の属性もない空要素を置くと、変数を全て初期化する。
開始時にとりあえず入れておくと、再プレイ時に余計なことを考えなくてすむ。
初期化しないと、前回プレイ時の値が設定される(オートセーブ)
設定要素(act,option要素内 id付き)
真値の設定(空要素)
<var id="doorOpen" />
一番良く使うだろう形式が。所謂フラグを立てる、という操作。
id属性に指定した変数をtrueに設定する。
id属性で指定できるのは、アルファベットや数値の組み合わせに限らず、日本語や他の文字でも構わない。
ただし、,;+-*/%=~$#などの記号は将来的な拡張の可能性も含め、使わないようにして欲しい。
真偽値の設定
<var id="door">true</var>
さっきのtrueを設定する書式を明示的に書いたのがこちら。
falseに設定する場合は必ず明示的に書くが、そもそも全ての変数は初期値がfalseなので、あまり使うことは多くない。
<var id="door">false</var>
数値(自然数)の設定
<var id="hp">100</var>
数値も設定できる。
設定できる数値は、0か正の整数(自然数)に限る。
乱数を使った数値の設定
<var id="rnd">d100</var>
上記例は100面(パーセント)ダイスを振った値(1〜100の値)がrndに設定される。
乱数は、TRPGでよく使われるndxの方式を使う。n個のx面体ダイスを振ることを意味する。
この表現は、設定、演算で数値の代わりに使用可能。
以下は2個の6面ダイス(いわゆるサイコロ)を振った値がrndに設定される。
<var id="rnd">2d6</var>
たし算
<var id="v">+数値</var>
数値を元の変数に加える。
足し算以外の演算もすべて元の変数に対して行われ、結果が変数に戻される。
<var id="v">10</var> <var id="v">+4</var>
上記のように書くと、まず1行目で変数vが10に設定され、2行目で4が加えられ、vの値は14となる。
また、数値の部分は自然数以外に、乱数(nDx)も置ける。
これは他の計算にも共通する。
<var id="v">+v</var> <var id="v">+2d4</var>
ひき算
<var id="v">-数値</var>
基本的な機能は、たし算と共通している。
もちろん、ひき算される。
varは正の数しか設定できないので、負の数を設定したい場合は、多少面倒だが一旦0を設定して、その後減算を行う。
<var id="charge">0</var> <var id="charge">-10</var>
置換要素(p要素内 id付き)
<p>現在のスコア<var id="score"/></p>
p要素内でid付きの空要素として使うと、変数の内容に置き換えられる。
デバッグで使うことが多いだろう。
属性
color属性
16進数6桁のカラーコードを書くことで、文字の色を指定できる。
16進数の頭には#を付ける事。
指定しない場合はtextio要素のcolor属性で指定した値。
<p><var id="x" color="#cc99dd"/></p>
size属性
数値を書くことで、文字の大きさを指定できる。
指定しない場合はtextio要素のsize属性で指定した値。
<p><var id="x" size="20"/></p>
条件分岐
適用可能な判定属性
var要素は値(var、i、item、at、pla)を属性に書いて条件判定が可能。
条件となる属性が複数ある場合は、andで判定が行われる。
<var id="win" var="100~score"/>
属性としての仕様
varによる条件は、textioとselectを除く要素の属性として設定できる。
条件の記述に空白は含めない。
フラグとして使う場合、単に変数名をvar属性に指定すれば良い。
!はNOTを意味し、変数名の前に付ければ「それ以外」を指す。
変数に数値が設定されている場合、0はfalse、それ以外は全てtrueとして判定される。
<p var="test">テスト成功!</p> <p var="!test">テスト失敗…</p>
var属性で比較を行うのには二つの演算子を使う、すなわち=と~ だ。
=はC言語等の==
に、~はC言語等の<=
にあたる。
一般的な言語と異なり、~は変数の前後に使い、範囲を指定することもできる。
フラグ判定と同様に!を使って結果の真偽を反転できる。
<p var="test=10">10</p> <p var="test~10">10以下</p> <p var="10~test">10以上</p> <p var="10~test~20">10から20</p>
条件を複数並べることもできる。
,はAND、;はORにあたる。,と;が同時に含まれる場合、,(AND)が優先される。
<p var="0~test,test~10">0~test~10と同じ</p> <p var="test~0;10~test">!0~test~10と同じ</p>
else節
var要素はelse要素を含める。
var要素で、何らかの判定属性が設定されていないと、else節は実行されない。
<var i="上級">100<else/>50</var>