見出し画像

より柔軟な戦闘を行う

ようやく忙しい期間が終わった気がする。たぶん来週ちょいちょい残務を処理したらシルバーウィークを無事むかえられるかもしれない。年休でもとってみようかな。まだ入社したばかりなので、年休ほとんどないが。
時間ができはじめたので久しぶりにまともにEQを遊ぶことができた。まあ、遊ぶといってもプログラミングをするだけだけど。

EQ mightではNamedに結構パターンがある。結構な確率で戦闘中雑魚がでてくるが、その雑魚をすぐに倒したほうがいい場合と、倒してはだめな場合と、両方という場合がある。いずれの場合でも、現在のタンクはNamedに集中してほしいが、サブタンクは湧いた雑魚をキープしてほしいし、アタッカーは状況に合わせて雑魚に攻撃するか、Namedに対して集中攻撃をしてほしい。

ちょっとわかりにくいかもしれないが、1匹のNamedに二匹の雑魚とたたかっているときの様子。タンクはNamedをとり、雑魚二匹をサブタンクがとっていて、二匹の雑魚のいずれかをアタッカーが集中攻撃している。

こういう戦い方が理想的だが、1ボタンでうまくやってもらいたいと前々から思っていた。戦闘が自動的にうまくできれば、その間裏でマンガを読んだり動画をみたり、日記を書いたりと有意義に時間がつかえるからだ。現在のE4での自動戦闘では、Role(役割)を設定する。役割は二種類ある。

Tank
XTarget内のmobのヘイトを100%維持しようとする。ヘイトが100%未満のmobが現在のターゲットである場合、ヘイトをとるまでターゲットは変更しない。ただしそのmobのヘイト1位が他のtankである場合はターゲットを他にかえる
Attacker
XTarget内で最もHPとレベルの低いmobを攻撃する。対象のmobがNamedでなければ死ぬまでターゲットは変更しない。Namedであった場合一定時間ごとに、XTarget内に非Namedが登場した場合、ターゲットを非Namedへうつす。

普通に経験値を稼いでいる限りはこのふたつの役割で問題はない。ただ、ちょっと凝ったNamedがでてきて、それらが雑魚を召喚しはじめたりし、しかもそれを攻撃してはならないとなると都合が悪い。
そこで、役割を拡張することにした。追加したのふたつだ。

Keeper
自動戦闘実行時にターゲットとしているmobのヘイトを100%に維持しようとする。途中でターゲットは変更しない。
Focus
自動戦闘実行時にターゲットとしているmobが死ぬまでターゲットを変更しない。

KeeperとFocusは実質同じだが、前者はタンク職でのロールに対して後者はアタッカー職に対するロールだ。今回役割を増やしたところで、さらに以下のコマンドを拡張した。

 /bc role NewRole
このコマンドは、キャラクターの役割を変更する。NewRoleには、Tank, Attacker, Keeper, Focusを設定できる。このコマンドを実行したキャラクターのみ役割がかわる。

 /bc OldRole role NewRole
このコマンドは、上記のコマンドと同じだが、OldRoleに現在のロールを設定することで、現在のロールと同じキャラクターが新しい役割に変更する。例えば、/bc Attacker role Focusとうつと、Attackerがロールのキャラクターは全員Focusロールに変更される

 /bc xtarget N
NはXTargetのエントリ番号である数字の1から13を指定する。自動戦闘中に、このコマンドを実行すると、ロールがAttackerあるいはFocusのキャラクターが指定されたXTargetのmobを攻撃する。対象が死んだら、Focusはもともとのmobにターゲットをもどし、AttackerならXTarget内で最もHPとレベルの低いmobを次にターゲットする。

 /bc name xtarget N
NはXTargetのエントリ番号である数字の1から13を指定する。nameはキャラクターの名前を指定する。自動戦闘中に、このコマンドを実行すると、nameで指定されたキャラクターが指定されたXTargetのmobを攻撃する。このコマンドはKeeperロールのキャラクター対象を変更するために使う。

これで自動戦闘中にロールを変更したり、任意の対象を攻撃したりタンクしたりすることができるようになった。かなり柔軟に戦闘に対応できると思う。以下にいくつか例をだそうと思う。


雑魚を一定HPごとに沸かせて、処理をしないといけないタイプのNamedは、メインタンクはKeeper、サブタンクはTank、アタッカーはAttackerに設定しておく。メインタンクは常にNamedをキープし続け、サブタンクは湧いた雑魚のキープを行おうとする。アタッカーは通常はNamedを攻撃し、雑魚が湧いたらそちらを優先するようになる。

処理してはいけない雑魚がどんどん湧くタイプのNamedは、メインタンクはKeeper、サブタンクはTank、アタッカーはFocusに設定しておく。メインタンクは常にNamedをキープし続け、サブタンクは湧いた雑魚のキープを行おうとする。アタッカーはNamedを常に攻撃しつづけ、雑魚は無視する。

二匹Namedがいる戦闘は、メインタンク、サブタンクともにKeeperロールに設定し、一匹をMTが、二匹目を/bc xxx xtarget xでサブタンクにキープをさせるようにする。この状態でさらに雑魚がでるなら、アタッカーに雑魚のキープもまかせてしまうか、サブタンクをtankロールにして、そちらもキープするようにすればいいと思う。

途中で倒してもよい雑魚と倒してはいけない雑魚を生むタイプのNamedは、メインタンクはKeeper、サブタンクはTank、アタッカーは全員Focusに設定しておく。これでメインタンクはNamedをキープし続け、サブタンクは湧く雑魚を全員キープしようとする。アタッカーはFocusでNamedだけ攻撃し続ける。たまにでてくる倒していい雑魚は、/bc xtarget Xで指定し、アタッカーに処理させる。

といった感じで、戦闘ごとにロールと攻撃コマンドを駆使すれば結構楽にたたかえる。最後のNamedはちょっと複雑だが、それ以外のmobは結構最初のロール決めだけであとは放置してもいい感じにかてるようになった。

いいなと思ったら応援しよう!