結論
マクロには先行入力機能が存在しないので、以前考察したマクロでの適切なプレイは不可能
これは7.0での占星術師のカードドロー/プレイの操作が変更となったことが理由ではなく、6.5x時点ですでに破綻している
再再考
別途、パーティ内ターゲットを変更するマクロを考案しており、そちらを軸にカードプレイの実行を行うことを私は現在は実施しており、それで比較的安定している
PTタゲ変マクロ (コントローラーのL3/R3マッピングの関係から、マクロ番号98または99に設定することが望ましい)
-----
/merror off
/target <3>
/target <5>
-----
前提知識
パーティのターゲット指定をコントローラで行う場合、いわゆる十字キーによるカーソル移動によるものが主となる
パーティリストの一番上は必ず自分自身で、下キーを一度押すと、必ず自分自身が選択される
マクロ解説
LIGHT PARTYの場合
LIGHT PARTY時に3行目の `/target <5>` は実行されないため、必ず十字キーでの移動が一番遠い3番目のプレイヤーにターゲットできるようになる
多くの場合、LIGHT PARTY時の上から3番目はメレージョブ(近接DPSジョブ)であることが多く、近接系カードのプレイの補助に役立つ
FULL PARTYの場合
FULL PARTY時はおおよそ1~4番目まではタンクヒーラーでリストが埋まるため、5番目に来るであろうメレージョブに自動的にカーソルが当たるようになる
多くの場合、メレーx2、レンジx1、キャスターx1となるため、二人目のメレーにターゲットを合わせる場合はマクロ👉下キー、レンジとキャスについては十字キー上を1度または2度押すことで、各ジョブにカードをプレイできるようになることが期待できる
また、アクションを伴わないマクロについては先行入力阻害の対象にならないため、このマクロによって占星術師のカードのプレイがかなり容易になる (少なくとも私はなった)
以下、更新前記事の内容
想定読者
- XHB利用者
- 占星術師のアクション「プレイ」について、対象選択にパーティーリストのマウスオーバーでの自動発動のような、マウス使用マクロを使用しないようなプレイヤー
- XHBにて「プレイ」専用のマクロを「SET2」など、通常のスキルセットと別のセットに保存しているプレイヤー
前提
既存の占星術師マクロ例
-----
/merror off
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
-----
問題点(問題と思っている点)
動作安定性
5連打程度の場合、マクロの開始から終了までが結構すぐに終わることがログの表示状態から示唆されており、実際にこのマクロが正しく動くかどうかわからない
XHB切り替え対応時の暴発
通常の占星術師のアクションと他に、マクロをXHBに設定する場合、かつ、マクロをXHBのSET2などに設定している場合、上述のマクロを実行しただけだとすぐにアクションセット(SET1)に戻ることができない
この問題を解決するために、私の場合は次のように `/crosshotbar change 1` をマクロ内に定義することにより、スムースに戦闘コマンドに戻るようにしている
-----
/merror off
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/ac プレイ <1>
/crosshotbar change 1
-----
しかしながらこの場合、「プレイ」が不発の状態でXHBのSET1に戻ってしまい、スキル回しが狂うことが多々発生している
既存マクロ問題点検証(PoC)
// FIXME!!
新規考案マクロ
上述の問題を解決するために、私は以下のような新マクロを提唱する
デバッグログあり
-----
/merror off
/macrolock
/echo astro PLAY
/ac プレイ <1>
/echo XHB change to 1
/crosshotbar change 1
/ wait 1
/ echo DELAY astro PLAY
/ac プレイ <1>
/ echo macro DONE
-----
デバッグログなし
-----
/merror off
/macrolock
/ac プレイ <1>
/crosshotbar change 1
/ wait 1
/ac プレイ <1>
-----
新マクロは何がうれしいのか?
- 「プレイ」が不発した場合でも、かならず1秒後に再度「プレイ」を実行する
- 「プレイ」を実行した後は多くの場合、GCDアクションの実行に一度戻るため、 `/wait 1` による「1秒間のロス」は実質的に無視できる
- つまり、プレイされていないカードのために「ドロー」ができない…ということは実質発生しえない
- 「プレイ」は確定で実行される状態になり、また、XHBのセットをSET1に戻すことができるため、戦闘としてのGCDアクション実行への復帰がスムースになる
なにかフィードバックがあればください
本当であればプレイに失敗した場合はそのマクロを中断するようなプレコマンドがあればうれしかったです
(例えばbashシェルスクリプトの `#!/bin/bash -e` のような)
しかしながらそのようなマクロは存在しないため、あまり良くない方法ではありますが、 `/wait 1` でお茶を濁すことになりました
他にも良い方法があれば教えてくださるとありがたいです
よろしくお願いいたします