変数の使い道は多種多様にわたります。
今回は以下のふたつを例として変数の使い方を説明していこうとおもいます。
①ボスが直前に使ったスキルが、次のスキルに影響する
例としては、再生編4層零式のジャンクション・シヴァまたはジャンクション・タイタンが、
次に使われる「はなつ」の処理法に影響します。
②優先順位の判定
自分以外の、誰に、どのデバフがついたのか?
によって、自分の散開位置などを判断する必要がある場面で使えます。
■基本的な、変数の使い方
この例だと、「プロミス・オブ・エデン starts using ジャンクション:シヴァ」というログを検知したとき、
is_shivaという名前の変数に、ブール値のtrueを代入します。
変数を設定するためのsetタグは、トリガータグの中で、expressionsタグで囲って使います。
変数の名前:nameは自由な文字列で決めることが出来ます。
値:valueは、文字列、整数、小数、ブール値などが使えます。
■ボスが直前に使ったスキルが、次のスキルに影響する
例として、再生編4層零式の「はなつ」が散開するものなのか、頭割りのものなのか判定する方法を考えてみます。
(実戦では、もう少々複雑な判定を必要とするため、あくまで例とお考えください。)
①ジャンクション・シヴァまたはジャンクション・タイタンが使われたとき、変数を設定する
ジャンクション・シヴァが使われた場合、is_shivaという名前の変数に、Trueを代入します。
ジャンクション・タイタンが使われた場合、is_titanという名前の変数に、Trueを代入します。
②はなつの判定
処理の流れを説明すると、
1.「プロミス・オブ・エデン starts using はなつ」をログの中に検知したとき
2.変数:is_shivaがTrueのとき、「さんかい」と音声通知、
変数:is_titanがTrueのとき、「あたまわり」と音声通知します。
preタグは、そのトリガーが作動するための条件を示すもので、nameに設定された変数が、
valueで設定されている値に合致するときだけ、トリガーが作動(ここでは、noticeによる音声通知)します。
■優先順位の判定
再生編4層の、時間圧縮・序における散開位置の判定を考えてみたいと思います。
時間圧縮・序は、DPSのランダムな2名にそれぞれファイガ/ブリザガのデバフがつくというものです。
大抵のマクロでは、DPSの優先順位がD1>D2>D3>D4となっているかなと思います。
便宜上、以下の仮定のもとで説明していきます。
●パーティのDPS構成は近接2名、レンジ1名、キャス1名
●D1とD2は近接、D3はレンジ、D4はキャス
●自分はレンジ
このとき、自分が左側にいかなければならないパターン。
自分が右側にいかなければならないパターンをそれぞれ考えてみたいと思います
自分が左側にいかなければならないパターン
自分はレンジですから、マクロの優先順位に従えば、自分のデバフとキャスのデバフが同じであるとき
左側にいかなければならないということになります。
①自分にデバフがついたとき、変数を設定する
[mex]は、自分の名前を意味する代名詞です。
ファイガがついたとき、変数:debuff_meに、文字列の値:fireを設定します。
ブリザガがついたとき、変数:debuff_meに、文字列の値:iceを設定します。
②キャスについたデバフを、変数として設定する
[MAGIC]は、魔法系DPSを意味する代名詞です。
ファイガがついたとき、変数:debuff_magicに、文字列の値:fireを設定します。
ブリザガがついたとき、変数:debuff_magicに、文字列の値:iceを設定します。
③自分とキャスについたデバフが一致したとき、「ひだりがわにいく」と音声通知する
VAR['debuff_me']は、変数:debuff_meの値を意味します。
スピードは、DPSにデバフがついた直後に使ってくるボスのスキルです。
処理の流れを説明すると、
1.「闇の巫女 starts using スピード」をログの中に検知したとき
2.変数:debuff_magicの値がdebuff_meの値と一致するとき、「ひだりがわにいく」と音声通知します。
自分が右側にいかなければならないパターン
自分はレンジですから、マクロの優先順位に従えば、自分のデバフと近接1名のデバフが同じであるとき
右側にいかなければならないということになります。
変数の設定/判定の流れは、自分が左側にいかなければならないパターンでおこなったものと同様なものになります。
マッチングに使用した代名詞は、以下のリンクで詳しく説明されています。
以上のように、変数はボスが使用したスキルや味方についたデバフなどの、フラグ管理に役に立ちます。