Warcraft3のMOD総合案内
- Jass Script/TextMacro の編集
[
ファイルを添付する
] [
このページの名前を変更する
] [
このページを編集する
]
サイトメニュー
ページ一覧
最近の更新ページ
使い方
トップへ戻る
Jass講座
[[トップ>FrontPage]] > [[MAP作成]] > [[トリガーエディタ]] > [[Jass Script]] > [[Jass講座]] > TextMacro ~ ~ Jass NewGenの機能。単純なコードの繰り返しなどを省くことができる機能。コードをすっきり見せるのに便利。MAP保存時に、通常の形にコンパイルされる。 ---- #contents ---- *定義 [#n8dab3a5] テキストマクロは、''指定した範囲のコードの変数部分を置換したもの''を、繰り返し記入する際用いられる。 -範囲の指定 //! textmacro マクロ名 takes 変数名1,変数名2,... 〜$変数名1$〜 〜$変数名2$〜 //! endtextmacro 範囲内には、変換させたい変数を ''$変数名$'' の形で書いたコードを記入する。次に、変数の値を指定してこれの複製を行う。 -範囲の複製 //! runtextmacro sample("変数1の値","変数1の値") 変数の値は、ダブルクォーテーション(")で挟む。これで、指定した範囲内のものの、それぞれの ''変数名'' が置換された文章が出力される。 範囲は何行あってもかまわないし、''library'' や ''struct'' 等を含めてもかまわない。 また、同じマクロ名をもつテキストマクロは宣言できないが、一度宣言されたテキストマクロは、コードのどの位置にも(たとえ上流であっても)挿入できる。 *使い方のサンプル [#of832161] 以下のようなコードがあるとする。 -テキストマクロなし function test takes integer t returns nothing local integer i1 = t * 1 local integer i2 = t * 2 local integer i3 = t * 3 local integer i4 = t * 4 local integer i5 = t * 5 local integer i6 = t * 6 local integer i7 = t * 7 これを、テキストマクロを使って書くと -テキストマクロあり function test takes integer t returns nothing //! textmacro sample takes n local integer i$n$ = t * $n$ //! endtextmacro //! runtextmacro sample("1") //! runtextmacro sample("2") //! runtextmacro sample("3") //! runtextmacro sample("4") //! runtextmacro sample("5") //! runtextmacro sample("6") //! runtextmacro sample("7") このようになる。この例ではいまいちありがたみを感じないが、以下のような利点がある。 -もとの文章を改変したいとき、訂正が一箇所ですむ -複製範囲が複数行にわたるとき、コードが見やすくなる *注意点 [#xe2fe9d1] 複数のテキストマクロを、ネストすることはできない。 -エラーが出る例 //! textmacro sample1 takes n1 //! textmacro sample2 takes n2 set $n1$ = $n2$ //! endtextmacro //! endtextmacro
タイムスタンプを変更しない
[[トップ>FrontPage]] > [[MAP作成]] > [[トリガーエディタ]] > [[Jass Script]] > [[Jass講座]] > TextMacro ~ ~ Jass NewGenの機能。単純なコードの繰り返しなどを省くことができる機能。コードをすっきり見せるのに便利。MAP保存時に、通常の形にコンパイルされる。 ---- #contents ---- *定義 [#n8dab3a5] テキストマクロは、''指定した範囲のコードの変数部分を置換したもの''を、繰り返し記入する際用いられる。 -範囲の指定 //! textmacro マクロ名 takes 変数名1,変数名2,... 〜$変数名1$〜 〜$変数名2$〜 //! endtextmacro 範囲内には、変換させたい変数を ''$変数名$'' の形で書いたコードを記入する。次に、変数の値を指定してこれの複製を行う。 -範囲の複製 //! runtextmacro sample("変数1の値","変数1の値") 変数の値は、ダブルクォーテーション(")で挟む。これで、指定した範囲内のものの、それぞれの ''変数名'' が置換された文章が出力される。 範囲は何行あってもかまわないし、''library'' や ''struct'' 等を含めてもかまわない。 また、同じマクロ名をもつテキストマクロは宣言できないが、一度宣言されたテキストマクロは、コードのどの位置にも(たとえ上流であっても)挿入できる。 *使い方のサンプル [#of832161] 以下のようなコードがあるとする。 -テキストマクロなし function test takes integer t returns nothing local integer i1 = t * 1 local integer i2 = t * 2 local integer i3 = t * 3 local integer i4 = t * 4 local integer i5 = t * 5 local integer i6 = t * 6 local integer i7 = t * 7 これを、テキストマクロを使って書くと -テキストマクロあり function test takes integer t returns nothing //! textmacro sample takes n local integer i$n$ = t * $n$ //! endtextmacro //! runtextmacro sample("1") //! runtextmacro sample("2") //! runtextmacro sample("3") //! runtextmacro sample("4") //! runtextmacro sample("5") //! runtextmacro sample("6") //! runtextmacro sample("7") このようになる。この例ではいまいちありがたみを感じないが、以下のような利点がある。 -もとの文章を改変したいとき、訂正が一箇所ですむ -複製範囲が複数行にわたるとき、コードが見やすくなる *注意点 [#xe2fe9d1] 複数のテキストマクロを、ネストすることはできない。 -エラーが出る例 //! textmacro sample1 takes n1 //! textmacro sample2 takes n2 set $n1$ = $n2$ //! endtextmacro //! endtextmacro
テキスト整形のルールを表示する