09/11/21 00:51:42
指定バフ/デバフの有無を確認する処理をまとめた関数を作ってるんだが、
精度を上げようと思ったら意外とハードルが高いな、特にパーティー組んでるときに
1. 同じ名前のデバフが存在する(ex.ブロウとダークネスの出血)
2. アイコンで判定しようとしても同じアイコンの場合がある(ex.アイスフォガー)
3. 他人が同じバフ/デバフを使っていると重ね掛けできない(ex.ブロウやリジェネ)
他にもあるかもしれないが、とりあえず分かってる問題点はこれぐらい
考えてる解決策は以下
1. はアイコンチェックで回避できる
2. バフ/デバフアイコンはスキルと同じなので、名前とアイコン両方のチェックで回避できる?
3. 基本的に重ね掛けするのはDoTかHoTだと思うので、2のチェック+戦闘ログからバフ/デバフ効果の発生を検出して、
対象の名前でタイマーを設定、DoT/HoTの発生間隔時間(ex.2sec)を超えると「自分が使った」効果が切れてると判定
※最後の効果発生からタイムアウト(ex.2sec)までは重ね掛けできない=ソロならアイコンが消えるので問題ない
※同じ名前の敵にばら撒きつつ重ねがけの場合にうまく動作しない(そんな状況はなさそうだけど)
リジェネなんかはプリ2体制の時とかに無駄うちを回避できたりして地味に便利なんじゃなかろうか
(プリ持ってないからそもそもこんな管理が必要か分からないが)
ブロウやダークネスなんかも積極的に重ねていきたいんだよね
例えばブロウはダブルアタックの追加HIT数にも影響するし(ex.ブロウ出血x3だと4HITする)
正直ここまでやらんでも・・・とは思うが、一度作れば他のアドオンにも使いまわせるし・・・