複数の変数を一括まとめて計算する
例えばこんなことです。
「f.変数1」と「f.変数2」、「f.変数3」~にまとめで全部「+1」したい。
一々やろうとすると、下のようになる。
[eval exp="f.変数1 = f.変数1 + 1"]
[eval exp="f.変数2 = f.変数2 + 1"]
[eval exp="f.変数3 = f.変数3 + 1"]
~
2つ3つならこれでも問題ないが、数が増えてくるとさすがに面倒。
こんな時に便利なのが、「配列」と「Forプラグイン」
配列については、以下を参照。
https://tyrano.wiki.fc2.com/wiki/%E5%A4%89%E6%95%B0%E9%96%A2%E4%BF%82#hairetu
https://note.com/skt_order/n/n0c70b25d241a
先ずはプラグインをダウンロード↓
https://plugin.tyrano.jp/item/2035
「readme」に従って導入しよう。
冒頭の問題を解決するには、例えば以下のようにする。
[eval exp="f.変数 = [10,20,30]"]
[for name=f.変更点 from=0 to=2]
[eval exp="f.変数[f.変更点] = f.変数[f.変更点] + 1"]
[nextfor]
既に変数を定義してしまった場合は、配列の形に書き直す必要があるけど…。
応用すると、こういう使い方もできる。
[iscript]
f.変数 = []
f.変数[1] = [10,20,30]
f.変数[2] = [10,20,30,70]
f.変数[3] = [40,50,60]
[endscript]
ok
[l][cm]
[for name=f.変更点 from=1 to=3]
[eval exp="f.変数[f.変更点][0] = f.変数[f.変更点][0] + 1"]
[eval exp="f.変数[2][f.変更点] = f.変数[2][f.変更点] * 2"]
[nextfor]
0 | 1 | 2 | 3 | |
変数1 | 10 | 20 | 30 | |
変数2 | 10 | 20 | 30 | 70 |
変数3 | 40 | 50 | 60 |
表にするとこのようになったものが、以下の表のようになる。
0 | 1 | 2 | 3 | |
変数1 | 11 | 20 | 30 | |
変数2 | 11 | 40 | 60 | 140 |
変数3 | 41 | 50 | 60 |
「[eval exp=”f.変数[f.変更点][0] = f.変数[f.変更点][0] + 1″]」では、変数1~3の「0行目」の総ての数字に「+1」し、
「[eval exp=”f.変数[2][f.変更点] = f.変数[2][f.変更点] * 2″]」では、変数2の1~3列目の数字を2倍にしている。
ゲーム内のデータ、パラメータ等の特定の数値を一括で増減させたい時に便利。
例えば誰か1人の総てのパラメータを一括で増加させることもできるし、複数の人物の1つのパラメータだけを一括で増減させることもできる。