#author("2025-04-15T17:23:29+00:00","default:yoya","yoya")
#author("2025-05-08T05:11:05+00:00","default:yoya","yoya")
TITLE:Windower Addon 〜 AC(Account Cluster)
[[FF11]] > [[Windower/Addons]]

- 元) [[Windower/Addons/AutoA]]

- コマンドは ac

#contents

* 制限事項 [#rff98ddc]

- 日本語版 only。英語版はあとまわし。
- 全キャラクターの POL が同じPCで動く。IPC で連携する為

* ゴール [#ve9cef78]

- 一つのアカウント操作に他のアカウントが追従して最適な行動を自動化
- アクションは Cntl-d/Alt-d。Cntrl-f (デバッグ表示) のみ。状況に応じて適切な行動をとる
- 何かの目的で動くモードを指定する事で、より適切な行動をとる ac aim ambus とか。

-  自動で戦闘開始してジョブ毎の能力を活用して戦う
---   同じジョブで複数キャラの時に能力が被らないようにする。(風水2人とか)
--  敵に応じて必要な行動をとる。
---  先に倒す敵がいればそちらに切り替え
---  同時撃破系は HP の残りに応じて切り替え

- 操作中のキャラクターに他キャラがついていく。ワープも一緒に。
- 特定ゾーンの特定位置にでた時の自動行動
--  特定の方向に走り出す。もしくは特定の位置までいって止まる
--  移動前にマウントに乗ったりインス二をかけたり

- アイテム処理の自動化
--  クリスタル等、戦闘中にカバンが溢れないようケース等に自動でしまう
--  NPCへのトレード自動化。印章やクリスタル等
-- 不要アイテムの処分
---  NPC への売却自動化
---  売れないものは捨てる。
-- 特定アイテムをロット(印章)したりパス (クリスタルとか)したり。(オプション機能)
-- エミネンス交換。アケロンシールド購入
-- ユニティポイント交換。プライズパウダー購入

- cntd-d で開始。alt-d で停止。
- 一定の行動は、その行動が終わるか、ゾーンが変わるかで自動停止
- フラグで選択的に実行。

* フォルダ構成 [#d55da653]

 AC/
   /AC.lua  -- main ルーチン
   /zone/  -- zone 毎の挙動。主に zone に入った時。
        /257_EastAdoulin.lua
   /job/ -- ジョブ毎の挙動
       /RDM.lua -- 赤魔道士の挙動
   /aim/  -- 行動の目的
       /Hunt.lua  -- モンスター狩り。主にレベル上げ
       /Ambus.lua  -- アンバス
       /Coalition.lua  -- ワークスコール
       /Mission.lua  -- ミッション
   /lib/  -- ライブラリ
       item.lua  -- アイテム関連 (売買含む)
       posi.lua  -- 位置、移動
       buff.lua -- 強化
       equip.lua -- 装備

* 非戦闘時 [#p0b3c80b]

** 自動フォロー [#t214099b]

- 自動でリーダーにフォローして自動走行。多少ランダムに。
- リーダーがターゲットしたものよっては自分もターゲットする。HP とか。

** ワープ移動 [#zf438b51]

- リーダーがzone移動したり突然遠くに行った時、近くに WP/HP/本があるならば、同じ場所にワープを試みる
- ワープ後に自動でアクションする。
--  特定の場所に移動した時に、自動走行する。チョコボレースやジュノ港(E)。
-- 移動前に必要なら、mount したりインスニする。

** 自動トレード [#l8f532e1]

- cntl-d
-  必要に応じて NPC アイテムを渡す。渡し終わったら機能オフ。alt-d で手動オフ
--  エフェメラルモーグリにクリスタルを渡す
--  Shami に印章を渡す
--- フェイスNPCに盟〜を渡す

** 自動 use [#fbe279e0]

- ac use [silt/beads]
--  シルトやビーズをあるだけ全て消費する
- ac use ohineri
--  モーグリのお年玉のアイテムを順番に装備して使う。

* 戦闘 [#nbcd009c]

- cntl-d で狩モードに応じて自動で釣って戦闘する
- 狩モード
--  ac hunt [melee|range|follow|off]。自動で次の敵を探して戦う
--  melee: 近づいて殴ってそのまま戦闘 (リーダーのみ)
--  range: 遠隔可能なギリギリ近づいて動かず戦闘。(リーダーのみ)
--  follow: <p1> が戦闘を開始して殴り始めたら同じ敵を攻撃。(メンバーのみ)

- WS 選択 ac ws [any|evislsavage|...]
- 戦闘モード ac battle [prefer|balance|follow...]
--  prefer: 戦闘中の敵と別に優先する敵がいたら、戦闘をそちらに切り替える。
--  balance: 範囲内で HP の特別多い(他モブの1割増し)敵がいたら切り替える。(アンバス用)
--  support: 敵にちょっかい出さず魔法や歌の援護だけする。
- MB を決める。ac mb

- 戦闘中、取得したアイテム(クリスタルや印章)はケース等に移動する。

* 装備 [#vd58f8d2]

- 必要に応じて装備を変更する
--  曲数が3以下の時にダウル
--  WS の時に WS 装備
--  詠唱前に FC 装備、詠唱後に着弾装備
- 矢や弾丸を自動で込める。ただし同じ矢、弾丸がカバンにある時のみ。
- 脱がされた時に装備を自動で付け直す。ac equip restore モード

* ジョブ毎にプログラム [#b29d0091]

例えば。白
- 強化魔法が切れそうな時に上書きする
- HP が大きく減ってる味方がいればケアルする

- コルセアは、ロールがよくない数値の時にダブルアップする。
--  5 以下はダブルアップ。
--  6 以上でもフォールドが使える時は、ダブルアップ
--  6 以上でもスネークアイが使えるなら使って、ダブルアップ


* 後回し [#q72ed821]
- いくつかの既存プラグイン機能もカバーするつもりだけど、後回し。
--  AutoJoin パーティに誘われたら入る。ただし自分もちアカウントのみ。
--  Enternity 入力待ちで選択肢がない時に自動改行。
--  AutoRA レンジ武器のオートアタック ac range on
--  Lottery 自分もちアカウントのどれかでロットしたら、他はパスする。

* 課題 [#a1f51df8]

- 装備の着替えをどうするか。着替え自体はできるが"装備セット"をどう管理するか。(React を調べてみる)
- リーダーのターゲットに追随は果たして可能か? 多分、ipc が必要。
- 自分や敵にどんな強化や弱体がかかっているか。
- 自分が敵に絡まれているか、どうやって調べるか。
- 地形にハマるの何とかできないか

* 概要 [#mb18852b]

** ステータス [#r8a4fec9]

- IDLE: アイドル状態
- READY: 戦闘準備中: 戦闘を決めているが、まだ非戦闘中
--  アンバス等のコンテンツなら強化をする
--  レベル上げなら準備なしに襲いかかる
- BATTLE: 戦闘中: リーダーが戦闘中

** イベント [#a1bf6a1f]

*** ゾーン移動 [#t002c91a]
--  リーダーに合わせて一緒にワープする。

*** メッセージ [#labdb85c]

-- パーティ会話を解析して WS に MB を合わせる。

** アタック [#t405b9c2]

- ac attack range 時は自動で shoot する。
- 矢がなくなり同じ矢がバッグのどこかにある時は自動でセットする。同じ矢の袋がある時は開く
- TP が決まった量溜まったら WS を実行する。
--  DNC の時、次に実行したい JA の TP が貯まるまで WS は使わず JA に消費する。

* 具体例 [#h453172c]

- 戦闘を開始すると、他のも一緒に同じ敵と戦闘を開始
- WS は TP の倍率が少ないものは即内、倍率が大きいものは貯めてから撃つ
- JA や MA はこまめに実行
- レンジ攻撃も自動で実行
- 連携はパーティメッセージに出す。
- パーティメッセージの連携に応じて、MB を狙う
- できればパーティメッセージでなく、背後の IPC でタイミングを連絡したい。


- より優先度の高い敵を見つけたら、戦闘中でも切り替えられる。

* 参考 [#x967c6d1]

参考になりそう。まだちゃんと見てないけど。

- https://github.com/ekrividus/autoAssist

- https://github.com/sethmccauley/Addons/blob/master/sparks/sparks.lua#L370