※ご注意
Windowerとアドオンは、スクウェア・エニックス公式のサポート対象外のサードパーティ製ツールです。ご利用の際は、遊んでいるサーバーの最新の規約をご自身でご確認ください。
当ブログのLuaや設定は個人で動作確認したものです。導入・使用は自己責任でお願いします。
※1人の操作で他のキャラを自動で動かすタイプのツールは、サーバーによっては規約で禁止されています。必ず事前にご確認ください。
前回、EasyFarmを全キャラまとめてON/OFFするAutoHotkeyスクリプトを紹介しました。今回は同じ考え方で、Cure Please(回復補助ツール)のPauseボタンを全ウィンドウまとめて切り替えるスクリプトを紹介します。
用意するもの
- AutoHotkey v2(コントローラー監視スクリプト用)
- AutoHotkey v1.1(Pause切替スクリプト用)
- Xboxコントローラー(XInput対応)
AutoHotkeyのダウンロード・インストール方法は別記事にまとめたので、まだ入れていない場合はそちらを先にどうぞ。今回はv2とv1.1の両方が必要です。
Cure Please側のスクリプトはAutoHotkey v1系の書き方で作っているので、v2系のコントローラー監視スクリプトとファイルが分かれています。
仕組み
CurePleasePauseAll_RunOnce.ahk開いているCure Pleaseウィンドウを全部見つけて、それぞれの「Pause / Paused!」ボタンをクリックする。実行されたら1回だけ処理して終了する。FFXI_MenuDual_v4_3_5_CurePleaseOnly.ahk常駐してコントローラーのMENUボタンを監視し、離された瞬間に上のスクリプトを直接実行する。
EasyFarm版と同じく、ここでも大事なのはボタンが押されたら1のスクリプトを直接呼び出すという作りにしていることです。「キー入力を送るだけ」の作りだと、それを受け取る別スクリプトを常駐させておく必要が出てきて、起動するファイルが2つ必要になってしまいます。
CurePleasePauseAll_RunOnce.ahk
開いている全Cure Pleaseウィンドウの「Pause / Paused!」ボタンをクリックして回るスクリプトです。呼ばれたら1回だけ処理して終了します。
FFXI_MenuDual_v4_3_5_CurePleaseOnly.ahk
常駐してコントローラーのMENUボタンを監視し、離された瞬間に上のCurePleasePauseAll_RunOnce.ahkを直接実行するスクリプトです。
使い方
- お好きな場所(デスクトップなど)に、新しいフォルダを1つ作る(例:「CurePleaseToggle」)
- 上の2つの見出しの下にそれぞれ添付している
CurePleasePauseAll_RunOnce.ahkとFFXI_MenuDual_v4_3_5_CurePleaseOnly.ahkをダウンロードし、その新しいフォルダの中に2つとも保存する FFXI_MenuDual_v4_3_5_CurePleaseOnly.ahkを右クリックして「管理者として実行」する(これだけでOK)- コントローラーのMENUボタンを離すと、開いている全Cure PleaseウィンドウのPauseがまとめて切り替わる
全ウィンドウの切り替えが終わったあと、ちゃんと元のFF11のゲーム画面にフォーカスが戻ってくるのもポイントです。 Cure Pleaseのウィンドウを1つずつ操作していると最後にどのウィンドウを触っていたか分からなくなりがちですが、このスクリプトは最後に必ず元々操作していたゲーム画面へ戻してくれるので、そのままシームレスにプレイを続けられます。
つまずきやすいポイント
- なぜ「管理者として実行」が必要なのか: Cure PleaseやFFXIクライアントが管理者権限で起動されている場合、Windowsの仕様上、管理者権限のないスクリプトからはボタンのクリック操作を送れません(逆は問題ありません)。そのため
FFXI_MenuDual_v4_3_5_CurePleaseOnly.ahkは管理者として実行しておく必要があります。 CurePleasePauseAll_RunOnce.ahkは呼ばれたら1回だけ処理して終了する作りです。単体で起動してもコントローラー操作には反応しません。あくまでFFXI_MenuDual_v4_3_5_CurePleaseOnly.ahkから呼び出される前提です。- ボタン操作の判定を「押した瞬間」ではなく「離した瞬間」にしているのは、コントローラーのボタン割り当てによって既存の別処理と被らないようにするためです。他のボタンで使う場合は、ここは好みで調整して構いません。
ctrl := "WindowsForms10.BUTTON.app.0.141b42a_r7_ad19"の部分は、Cure Pleaseのウィンドウ内部のボタンを直接指定しているコントロール名です。バージョンが変わると名前が変わる可能性があるので、うまく切り替わらない場合はここを疑ってみてください。
コメント