利用者:Chirimen/XVMマクロ

提供: MTM-Gaming
移動先:案内検索

マクロ

使用可能なマクロ変数の一覧と説明は 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 によって意味は異なる

最大文字数 (文字列の場合)
小数点以下の桁数 (実数の場合)
ASCII文字コード表に対するオフセット (デフォルトは 129)

type

s - 文字列
d, i - 整数
f, F - 実数
x, X - 16進数
a - ascii 文字コード値

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 で定義されている。