複数の変数を一括まとめて計算する

例えばこんなことです。

「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]
0123
変数1102030
変数210203070
変数3405060

表にするとこのようになったものが、以下の表のようになる。

0123
変数1112030
変数2114060140
変数3415060

「[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つのパラメータだけを一括で増減させることもできる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です