Dalamudプラグインでマテリア合成を少しだけ楽にする(半自動化)

免責事項

この記事では、XIVLauncherやDalamudプラグインに関する内容を取り扱っています。
外部ツールを使うリスクをよく理解した上で、自己責任で使用してください。
当ブログでは、記載内容によって生じた損害・損失に対する一切の責任を負いません。

こんにちは、ヤオです。

黄金のレガシーのリリースを間近に控え、戦闘系マテリアの使い道がなくなり、マーケットボードでの売れ行きもあまり良くないため、マテリア合成でギャザクラ用の非戦闘系マテリアに合成してみました。

最初は手動で行っていたのですが、あまりにも苦行過ぎたため結局自動化することに…。
試行錯誤した結果、多少は楽になったので実践した内容をご紹介します。

マテリア合成について

はじめに、マテリア合成の仕様を簡単に説明すると、

  • マテリアを5つ選択するとマテリアが1つ手に入る
  • マテリアの種類は選択したもの以外からランダムで決まる
    (武略・雄略・天眼・戦技・詠唱を選択した場合はそれ以外が手に入る)
  • マテリアのランクは選択したもののランクの割合で決まる
    (同じランクのものを5つ選択した場合、ランクが下がることはない)
  • 稀に大当たりで1つ上のランクのマテリアが手に入ることがある

となります。

つまり、マテリアは同じランクのもの5種類を1つずつ選択するのがベストです。

自動化できたこと

ミュタミクスのセリフを自動で送る

上記のどちらか片方お好みの方法で。

確認ウィンドウを自動で飛ばす

YesAlready のYesNoタブに「選択したマテリアを合成します。」を追加。

マテリアの個数を自動で指定する

YesAlready のNumericsタブに「合成に出す個数を指定してください。」を追加。
Percentageにチェックを入れ、数値を「1%」に設定。

「合成する」ボタンを自動でクリックする

Something Need Doing に以下のマクロを追加。
Macro Editorの「Lua script」ボタンをクリックして有効化。
Macro Editorの「Run」ボタンをクリックして再生。

while true do
  i = GetNodeText("TradeMultiple", 6)
  i = string.match(i, "%d")
  i = tonumber(i)
  if 5 <= i then
    while IsAddonVisible("TradeMultiple") do
      yield("/send NUMPAD0 <wait.0.1>")
    end
  end
  yield("/wait 0.25")
end

このマクロが動いている間は0.25秒ごとに選択したマテリアの数を確認します。
5つ選択するとNUM0キーを連打し、「合成する」ボタンのクリックを試みます。
(※誤って別のHUD等をクリックした場合、誤作動を起こす可能性があるので注意!)

このマクロは手動で終了しない限り、無限に動作し続けます。
マテリア合成が終わったら忘れずに終了してください。

付け焼き刃感の否めないマクロですが、クリック回数が減って多少楽になると思います。

自動化できなかったこと

マテリアの選択は自動化できませんでした。
キーボード操作で5つ順番に選択することは可能ですが、なるべく各マテリアの残数が均一になるよう選択した方が狙ったマテリアを手に入れやすいので、ここだけは手動で行うしかなさそうです。

強いて言うなら、以下の操作方法が最も効率が良かったです。

  • マテリア選択HUDを所持品の近くに移動する
  • マテリア選択は右クリック・キーボード操作ではなくドラッグで行う
  • アイテムのツールチップが出ないようALTキーを押したままにする

おわりに

戦闘系マテリアが余っていたら是非試してみてください。

ヤオ

自動化・ツール化が趣味のエンジニアです。
C言語やLuaは専門外ですが、実際に動かしながらマイペースに勉強中。
ゆくゆくはDalamudプラグインの開発に挑戦するのが目標です。

よく「本当に人間だったんだ」「喋り方がChatGPTみたい」と言われます。

コメント

コメントを投稿する