マクロ
使用可能なマクロ変数の一覧と説明は res_mods/mods/shared_resources/xvm/doc/macros.txt にあります。
書式
マクロ変数には、書式指定や演算子を適用することができます。 使用可能な書式の説明は res_mods/mods/shared_resources/xvm/doc/readme-en.txt にありますが、 以下にその一部を引用します。
Extended macros formatting rules: {{name[:norm][%[flag][width][.prec]type][~suf][(=|!=|<|<=|>|>=)match][?rep][|def]}}
ここで、角括弧 "[", "]" で囲まれた語句は省略可能な項目を表し、 丸括弧 "(", ")" で囲まれて縦線 "|" で句切られた項目は項目うちの一つが指定されることを表します。
name | マクロの名前 |
---|---|
norm | 正規化された値 (例: {{hp-ratio:300}} は hp-ratio を 0~300 の範囲の値に正規化して返す) |
flag | "-" があれば左詰め、なければ右詰 "0" があれば指定の幅に合わせて先頭を 0 で満たす |
width | 最小幅 |
prec | そのあとの type によって意味は異なる 最大文字数 (文字列の場合) |
type | 型 s - 文字列 |
suf | サフィックス 文字列 (type が s) の場合は、長さが prec を超える場合にのみ文字列を切り詰めてサフィックスを付加する。
切り詰めはサフィックスを含めて prec 以下になるように行われる。 |
match | 比較 条件に適合した場合のみ値を返す。 |
rep | 置換 値が存在すれば置き換えた値を返す。 |
def | デフォルト 値が存在しない場合にデフォルト値を返す。 |
例
XVM のデフォルトコンフィグなどでよく見られる書き方などを例に紹介します。
{{name%.15s~..}}
マクロ変数 name (クランを除いたプレイヤー名) が15文字以下の場合はそのまま表示、 15文字を超える場合はサフィックスを含めて15文字以下になるように切り詰める (13文字+"..")。
{{kb%2d~k|--k}}
マクロ変数 kb (戦闘数/1000) の値を幅2文字右詰で整数表示、サフィックスとして末尾に "k" を付ける。ただし kb が空の場合 (戦闘数が取得できない場合) は "--k" を表示する。 kb は実数であるが 2d の指定により2桁の整数に丸められる。 kb が空の場合は kb%2d~k の結果も空になるので、後続のデフォルト値 "--k" が用いられる。
{{battletype?13|0}}
マクロ変数 battletype に値がある場合は 13、そうでない場合は 0 を返す。 battletype はランダム戦では空文字列 ""、クラン戦では "clan"、グローバルマップでは "global_map" を返すマクロ変数で、 この例のようにランダム戦とその他を判定する際に battletype に値があるかどうかで判定する手法がよく行われる。 battletype がどの戦闘モードでどの文字列を返すかは texts.xc で定義されている。