PR

コントローラーのボタン1つでCure PleaseのPauseを全部切り替える

AutoHotkey

前回、EasyFarmを全キャラまとめてON/OFFするAutoHotkeyスクリプトを紹介しました。今回は同じ考え方で、Cure Please(回復補助ツール)のPauseボタンを全ウィンドウまとめて切り替えるスクリプトを紹介します。

用意するもの

  • AutoHotkey v2(コントローラー監視スクリプト用)
  • AutoHotkey v1.1(Pause切替スクリプト用)
  • Xboxコントローラー(XInput対応)

AutoHotkeyのダウンロード・インストール方法は別記事にまとめたので、まだ入れていない場合はそちらを先にどうぞ。今回はv2とv1.1の両方が必要です。

Cure Please側のスクリプトはAutoHotkey v1系の書き方で作っているので、v2系のコントローラー監視スクリプトとファイルが分かれています。

仕組み

  1. CurePleasePauseAll_RunOnce.ahk  開いているCure Pleaseウィンドウを全部見つけて、それぞれの「Pause / Paused!」ボタンをクリックする。実行されたら1回だけ処理して終了する。
  2. 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. お好きな場所(デスクトップなど)に、新しいフォルダを1つ作る(例:「CurePleaseToggle」)
  2. 上の2つの見出しの下にそれぞれ添付しているCurePleasePauseAll_RunOnce.ahkFFXI_MenuDual_v4_3_5_CurePleaseOnly.ahkをダウンロードし、その新しいフォルダの中に2つとも保存する
  3. FFXI_MenuDual_v4_3_5_CurePleaseOnly.ahk を右クリックして「管理者として実行」する(これだけでOK)
  4. コントローラーの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のウィンドウ内部のボタンを直接指定しているコントロール名です。バージョンが変わると名前が変わる可能性があるので、うまく切り替わらない場合はここを疑ってみてください。

コメント