Windower4 >> React
重要1: runaway/runtoを使ったあとは、普通に立ち止まることができず移動し続けるおかしな挙動をするので、必ず//react stoprunを使ってください。
重要2: runaway/runtoを使ったあとでコンソールログにエラーが出ることがあります。このエラーも//react stoprunを実行すれば起こりません。
コンソールログが全く出ないようにしたい場合は、..\windower4\scripts\init.txtにconsole_displayactivity 0を記述してください。
..\windower4\scripts\react\Zantetsuken.txt
..\windower4\scripts\react\react_stoprun.txt
..windower4\scripts\react\react_Cbreath.txt
React_vfra.txt
React_sudden.txt
React_sudden2.txt 何が何でも止めたいときに黒魔もスタン
概略
https://github.com/SammehFFXI/FFXIAddons
次のような状況に対して自動的にアクションを取れるように設定できる。
react_<JOB>.luaファイルにジョブ毎に記述する。
直接編集するのが簡単だが、編集後にコマンドで追加すると元に戻ってしまうので//lua reload reactすること。
コマンドは使わずに直接ファイルを編集するのが一番よい。
NMの名前、特殊技、魔法名すべて英語で記述しなければならない。
次のような状況に対して自動的にアクションを取れるように設定できる。
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" |
Timing | ReadyまたはComplete | 2アビに対してCompleteを使うこと |
Reaction | turnaround | 敵に背を向ける |
facemob | 敵に対峙する | |
runto [X-yalms] | X-yalms距離を取る。指定がない場合は2yalmsでターゲットに接近する | |
runaway [X-yalms] | X-yalms距離を取る。指定がない場合は30yalmsでターゲットから離れる | |
exec Xxxx | 日本語が使えないのでスクリプトファイルで対応する | |
gs equip setx.XXXX | GearSwapの着替えが可能 |
コマンド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"]="exec react/react_stoprun", ["ready_reaction"]="runaway 40" }, ["Gagnrath"]={ ["complete_reaction"]="exec react/react_stoprun", ["ready_reaction"]="runaway 40" }, },
..\windower4\scripts\react\Zantetsuken.txt
input /party 斬鉄剣! <call0>
..\windower4\scripts\react\react_stoprun.txt
react stoprun
神竜のブレス対策(HP2000以下の青魔用)
["Shinryu"]={ ["Cosmic Breath"]={ ["complete_reaction"]="exec react/react_stoprun", ["ready_reaction"]="exec react/react_CBreath" }, },
..windower4\scripts\react\react_Cbreath.txt
input /party コズミックブレス! <call0> gs equip sets.breath被ダメージ装備に着替える
沼[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>
同じジョブのプレーヤーが複数いる場合にLuaファイルを別々に定義したい場合
Luaファイルは react_<Job>.luaのファイル名になっているため、複数の青魔がいる場合にサドン担当を一人だけにすることができない。
react_<PlayerName>_<Job>.luaという名前のファイルがあれば、それをロードし、なければreact_<Job>.luaを探すというロジックにすれば対応できる。
react.luaの73行目あたりを全部これに置き換えればよい。
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というファイル名にアクションが追加されます。
次にカーズナをもらうカヲル君のGearSwapファイル(Kaworu_PLD.lua)に次のような装備セットを記述しておきます。
Valhallaにはこんな装備はないので99キャップのサーバーの人は是非試してみてください。
さらに応用すればケアルをもらう時に被ケアル効果アップの装備に着替えることもできるし、
スニークをもらったら移動速度アップ/リジェネ/リフレ/リゲイン装備に着替えることもできます。
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