自動で戦闘してくれるマクロ

Lazarus版のE3には、現在のExtended Target Windowに載っているすべてのmobが倒されるまで、自動でターゲットしてアシストするClear_XTargetsというマクロがある。私はClear_XTargetsは使ったことがないが、外人がめちゃ便利だというので、そのコンセプトをパクって似たような感じのマクロをE3に直接組み込んでずうっと使っていた。たしかにすごく便利で、雑魚掃除のときはこれなしでは生きられない体になってしまった。今回マクロ集を作ったので、いろいろ改良しつつ、そちらに組み込んで誰でも使えるようにしようと思う。名前はそのままAutoBattle。Bloatedに組み込んで、ギルドのDiscordのチャネルに貼っておく。

コンセプトと機能

・タンクはExtended Target Windowを見て、ヘイトが100を切っているmobにターゲットを自動的に変更して、とにかくヘイトを自分に集中させるよう努力する
・タンク以外のキャラクターはExtended Target Window内で最もHPが低いmobをターゲットして基本的に死ぬまで攻撃する
・全キャラクターは一度AutoBattleを有効にすると勝手に動く。プレイヤーはだまってみているか、戦闘中になにかさせたい(たとえばAEヘイト上げとか)なら、QueueCastで指示する

使い方

/bc AutoBattleで起動。/bc StopBattleで停止。StopBattleにしても現在攻撃しているmobは攻撃し続ける。
マクロの使用者をタンクと仮定している。仮にメインで操作をするキャラクターが非タンクである場合、/bct tankname /bc AutoBattleで使ってもらうとよい。
跳ねているmobをタンクは取り返そうとするが、当然タンクのヘイト獲得能力によっては取り返すまで時間がかかり、その間にヒーラーが死ぬ可能性がある。状況に合わせてAEヘイト上げを手動でいれてほしい。これらの技はインスタントでなければQueueCastで使うべき。

潜在的な問題点

・War以外のクラスでのタンクでテストしていないのでなにか不具合があるかもしれない。誰かデバッグ手伝って
・戦場を俯瞰してみているわけではないので、タンクは結構mobからバックをとられる。Backstabしてくるmobがいると痛いと思う
・どうしようもない話であるが、Extended Target Windowに載るmobの数は最大13。これをこえたmobはヘイトがわからないため、跳ねていても取り返せない

その他(面倒くさい話。読まなくてよい)

AutoBattleを実装するにあたって一番苦労したところは、タンクは勝手にターゲットを変えてヘイトをあげるようにさせつつも、他の連中は一匹のmobに攻撃を集中させるようにさせることだ。Clear_XTargetsは使ったことがないので間違えているかもしれないが、タンクによるヘイトの維持に関しては考慮していない気がする。とにかくHPとヘイトが低いmobをタンク含めて集中攻撃するだけだ。この間、他のmobが跳ねている場合、放置される。
E3の/Assistは実行者はmobのところに近づいたり後ろにまわったりなど勝手に移動しないようにつくってある。そのため、タンク以外のアタッカーが自発的に/assistコマンドを実行しても、mobに向かって移動してくれない。タンクが他の連中の/assistを指示をしなければならない。そうなると、今度はタンクは、他のアタッカーが今なにかしらのmobを攻撃しているのか、それともなにもしていないのかを知る必要があるが、基本的にMacroquest2は各キャラクター同士がもつ情報は完全に分離されているので、知ることができない。そのため、タンクが定期的にグループ内のメンバーの一人に今mobを攻撃しているのか、それとも暇しているのかをEQBCS経由で話をさせて状況を報告させるようにした。戦闘中は、MQのウインドウはすごくうるさい。ただ、自動的に動いている感がでていて見ていて気分はいい。

画像1

画像3

画像2

デバッグ中のときのスクリーンショット。Extended Target Windowの最大数を越えた場合、mobが強い場合、水中でテストした。ここまでうまくいったなら、AEで処理できると超おいしいUPで、AEなしでグラインドできるかためしてみよう。

画像4

まだpullの感覚がよくわからないので全部ひっぱろうとしても結構な数がもどってしまうが、処理は問題なくできる。当然AEに比べて処理速度は低いが、延々と戦えるので今度1-2時間ほどこもってみようかな。

この記事が気に入ったらサポートをしてみませんか?