誰でも編集に参加できるWIKIです。

Windower4 >> React




概略

https://github.com/SammehFFXI/FFXIAddons
次のような状況に対して自動的にアクションを取れるように設定できる。
1. <Actor> begins casting <action>Raniは、Xxxxxxに水遁の術:参を唱えた。
2. <Actor> readies <action>Yamaは、鬼神技・天敬の構え。
3. <Actor> finishes casting <action>Raniの水遁の術:参が発動。
4. <Actor> finishes ready >move>.Yamaは、鬼神技・天敬を実行。

react_<JOB>.luaファイルにジョブ毎に記述する。
直接編集するのが簡単だが、編集後にコマンドで追加すると元に戻ってしまうので//lua reload reactすること。
コマンドは使わずに直接ファイルを編集するのが一番よい。
NMの名前、特殊技、魔法名すべて英語で記述しなければならない。

コマンド

コマンド1:アクション定義方法

//react add <Actor> <Action> <Timing> <Reaction>
Actor敵またはパーティメンバー名例:"Briareus"
Action英語名称で魔法名、特殊技例:"Trebuchet"、"Death"
TimingReadyまたはComplete2アビに対してCompleteを使うこと
Reactionturnaround敵に背を向ける
facemob敵に対峙する
runto [X-yalms]X-yalms距離を取る。指定がない場合は2yalmsでターゲットに接近する
runaway [X-yalms]X-yalms距離を取る。指定がない場合は30yalmsでターゲットから離れる
exec Xxxx日本語が使えないのでスクリプトファイルで対応する
gs equip setx.XXXXGearSwapの着替えが可能

コマンド2:一覧表示

//react list "Actor"

コマンド3:削除

//react remove "Actor" "Action"

コマンド4:ログ表示

//react showcmds

コマンド5:ヘルプ

//react help

コマンド6:移動系

//react stoprunアクションでrunaway/runtoを使った際のオートラン状態を解除
//react facemob対峙する
//react turnaround背を向ける
//react runaway <yalm>指定yalm離れる
//react runto <yalm>指定yalm近づく

重要1: runaway/runtoを使ったあとは、普通に立ち止まることができず移動し続けるおかしな挙動をするので、必ず//react stoprunを使ってください。
重要2: runaway/runtoを使ったあとでコンソールログにエラーが出ることがあります。このエラーも//react stoprunを実行すれば起こりません。
コンソールログが全く出ないようにしたい場合は、..\windower4\scripts\init.txtにconsole_displayactivity 0を記述してください。


サンプル

実際にOdin戦で使っていた青魔用スクリプト


    ["Odin"]={
        ["Zantetsuken"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec react/zantetsuken"
        },
	
        ["Geirrothr"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="runaway 40"
        },

        ["Gagnrath"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="runaway 40"
        },
    }, 

..\windower4\scripts\react\Zantetsuken.txt
input /party 斬鉄剣! <call0>


神竜のブレス対策

    ["Shinryu"]={
        ["Cosmic Breath"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec react/react_Breath"
        },
    }, 

..windower4\scripts\react\react_Cbreath.txt
input /party コズミックブレス! <call0>
gs equip sets.breath
被ダメージ装備に着替える


Beefcake


    ["Anissis"]={
        ["Prismatic Breath"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec react/React_Breath", 
        },

        ["Breakga"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec react/React_Breakga", 
        },
    }, 


バス[D]のクゥダフ & カニ


    ["Za'Rho Metalshell"]={
        ["Ore Toss"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec react/React_OreToss", 
        },
    }, 
    ["Bernie the Beheader"]={
        ["Sundering Snip"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec react/React_OreToss", 
        },
    }, 

※スクリプト名は分かりやすいものに変えてください。中身はGearSwapの装備セット変更です。

沼[S]のモルボルが使う例のやつ (Valhallaにはいないけどね)

    ["Melancholic Moira"]={
        ["Extremely Bad Breath"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec React_sudden"
        }
    }, 

シーフソロで3国裏

    ["Gu'Dha Effigy"]={
        ["Death"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec React_vfra"
        }
    }, 
    ["Tzee Xicu Idol"]={
        ["Death"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec React_vfra"
        }
    }, 

ブリの明鏡止水は2アビなのでready_reactionではなくcomplete_reactionで止めなくてはならない。

    ["Briareus"]={
        ["Colossal Slam"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec React_sudden"
        }, 
        ["Mercurial Strike"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="        }, 
        ["Meikyo Shisui"]={
            ["complete_reaction"]="exec React_sudden", 
            ["ready_reaction"]=""
        }, 
        ["Trebuchet"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="exec React_sudden"
        }
    }, 

視線判定はこんな感じで対応

    ["Medusa"]={
        ["Gorgon Dance"]={
            ["complete_reaction"]="facemob", 
            ["ready_reaction"]="turnaround"
        },
        ["Calcifying Deluge"]={
            ["complete_reaction"]="facemob", 
            ["ready_reaction"]="turnaround"
        },
        ["Petrifaction"]={
            ["complete_reaction"]="facemob", 
            ["ready_reaction"]="turnaround"
        },
        ["Shadow Thrust"]={
            ["complete_reaction"]="facemob", 
            ["ready_reaction"]="turnaround"
        },
        ["Tail Slap"]={
            ["complete_reaction"]="facemob", 
            ["ready_reaction"]="turnaround"
        },
        ["Pinning Shot"]={
            ["complete_reaction"]="facemob", 
            ["ready_reaction"]="turnaround"
        },
    }, 

React_vfra.txt
input /ja V.フラリッシュ <t>

React_sudden.txt
input /ma サドンランジ <t>

React_sudden2.txt 何が何でも止めたいときに黒魔もスタン
input /ma サドンランジ <t>
send @BLM /ma スタン <t>

WSを打ったら背を向ける

D90のデュラハンはスパイクが面倒ですが、ディスペルもフィナーレもない近接物理ジョブはこうすれば何とかなるよというスクリプトです。背を向けておいてTPが溜まったらデュラハンにWSを打って、再び背を向けるという動きをします。雑魚デーモンが来たら、デーモンを殴りながらWSをデュラハンに当てるとよいでしょう。ちなみにこのサンプルは踊り子用なのでB.フラリッシュが入っています。ステップは別マクロで溜めておいてください。

..\windower4\scripts\TurnaroundWS.txt
input /ja B.フラリッシュ <me>
wait 1

react facemob
input /ws ピリッククレオス <t>
wait 3
react turnaround



同じジョブのプレーヤーが複数いる場合にLuaファイルを別々に定義したい場合

Luaファイルは react_<Job>.luaのファイル名になっているため、複数の青魔がいる場合にサドン担当を一人だけにすることができない。
react_<PlayerName>_<Job>.luaという名前のファイルがあれば、それをロードし、なければreact_<Job>.luaを探すというロジックにすれば対応できる。


react.luaの73行目あたりを全部これに置き換えればよい。

if windower.ffxi.get_player() then 
 self = windower.ffxi.get_player()


    custom_reactions_file = files.new('react_'..self.name..'_'..self.main_job..'.lua')
    if custom_reactions_file:exists() then
        windower.add_to_chat(2,'React: Loading File: react_'..self.name..'_'..self.main_job..'.lua')
    else
        custom_reactions_file = files.new('react_'..self.main_job..'.lua')
        if custom_reactions_file:exists() then
            --windower.add_to_chat(2,'React: Loading File: react_'..self.main_job..'.lua')
        else
            --windower.add_to_chat(2,'React: New job detected, Creating file: react_'..self.main_job..'.lua')
            custom_reactions = {}
            custom_reactions_file:write('return ' .. T(custom_reactions):tovstring())
        end
    end

    custom_reactions = require('react_'..self.main_job)

end


白魔のカーズナに対してカーズナ効果アップ装備に着替える

Actor: 白魔の名前
Action: "Cursna" カーズナ
Timing: Ready
Reaction: gs equip sets.Cursna

次のコマンドでアクションを追加します。このコマンドを実行するのはカーズナをもらう側のキャラです。
仮にKaworuという名前のナイトだとしたら、react_PLD.luaまたは改造済みであればreact_Kaworu_PLD.luaというファイル名にアクションが追加されます。
//react add "Ayanami" "Cursna" Ready "gs equip sets.Cursna"

return {
    ["Ayanami"]={
        ["Cursna"]={
            ["complete_reaction"]="", 
            ["ready_reaction"]="gs equip sets.Cursna"
        }
    }
}

次にカーズナをもらうカヲル君のGearSwapファイル(Kaworu_PLD.lua)に次のような装備セットを記述しておきます。
sets.Cursna={
    neck="デビリスメダル",
    left_ring="エフェドラリング", 
    right_ring="メネロスリング", 
}

Valhallaにはこんな装備はないので99キャップのサーバーの人は是非試してみてください。
さらに応用すればケアルをもらう時に被ケアル効果アップの装備に着替えることもできるし、
スニークをもらったら移動速度アップ/リジェネ/リフレ/リゲイン装備に着替えることもできます。


移動系コマンドを使ったヒットアンドアウェイ

移動系コマンドは//react helpにも表示されない隠しコマンドだが、これを利用すると敵の範囲技を受けないように攻撃するときだけ射程範囲内に移動するといったことが可能になる。以下のサンプルは一人用だが、コルセアが2人いるなら接近>>WS>>離脱 >>> 接近>>WS>>連携>>離脱といったスクリプトを書くこともできる。

サンプルマクロ
/con react runto 18
/ws ワイルドファイア <t> <wait 2>
/con react runaway 23
/con react stoprun

編集にはIDが必要です

メンバー募集!