着替えによって現在HPが減る減少について、GearSwapでどう対策すれば良いのかを整理します。
着替えの優先順位
着替えの優先順位を指定しない場合、次の順番(Main~Back)で着替えが行われます。これは公式FF11でも同じ仕様になっています。
[0] = {id=0,en="Main"},
[1] = {id=1,en="Sub"},
[2] = {id=2,en="Range"},
[3] = {id=3,en="Ammo"},
[4] = {id=4,en="Head"},
[5] = {id=5,en="Body"},
[6] = {id=6,en="Hands"},
[7] = {id=7,en="Legs"},
[8] = {id=8,en="Feet"},
[9] = {id=9,en="Neck"},
[10] = {id=10,en="Waist"},
[11] = {id=11,en="Left Ear"},
[12] = {id=12,en="Right Ear"},
[13] = {id=13,en="Left Ring"},
[14] = {id=14,en="Right Ring"},
[15] = {id=15,en="Back"},
なので、着替えによってHPを減らしたくない場合は、優先順位の低い背装備などのアクセサリーでHPを先に底上げすると、現在HPを減らさず着替えを行うことが出来ます。
例えば、次の着替えでHPの状態を確認してみましょう。
部位 | 待機状態 | 着替え | HP増減 |
---|---|---|---|
Legs | ニャメフランチャ HP +114 | シェダルサラウィル HP ±0 | -114 |
Back | 無の外装 HP ±0 | 月明の羽衣 HP +250 | +250 |
優先度を指定せずにこの装備に着替える場合、Legsの着替え優先度が高いため、着替え後に現在HPが減っている状態になるわけです。
- 待機状態のHP:1695/1695
- Legs着替え後のHP:1581/1581
- Back着替え後のHP:1581/1831
- 待機状態のHP:1581/1695
現在HPを減らさず着替えを行うためには、Backを先に着替えることでHPの減少を防げます。
- 待機状態のHP:1695/1695
- Back着替え後のHP:1695/1945
- Legs着替え後のHP:1695/1831
- 待機状態のHP:1695/1695
基本的な理屈は以上です。
GearSwapで優先順位を指定する方法
ご存じの通り、GearSwapではprecast,midcast,aftercastがありますので、ワンアクションで着替えが何度も発生します。
GearSwapを使わない場合、アクション前にHPをブーストさせる装備に着替えてからアクションを起こすことが可能ではありますが、GearSwapは全自動で一気に処理が走ってしまいますので、マクロで部位着替えを指定することが出来ません。
なので、次のようにアクションに対応した装備セットにpriorityで優先順位を指定します。
sets.precast.FC = {
ammo="サピエンスオーブ",
head={ name="カマインマスク+1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="ピンガチュニック+1",
hands="HSバズバンド+3",
legs="ピンガズボン",
feet="ニャメソルレット",
neck="オルンミラトルク",
waist={name="プラチナモグベルト",priority=16},
left_ear="エテオレートピアス",
left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=1},
right_ring="メダダリング",
back={ name="フィフォレケープ+1", augments={'Path: A',}},
}
優先順位の番号ルール
優先順位は数字の大きい方が優先順位が高いです。
一応、次の検証を行いましたので、結果を公開しておきます。
function init_gear_sets()
sets.test1={
legs={ name="シェダルサラウィル"},
back={ name="月明の羽衣"},
}
sets.test2={
legs={ name="シェダルサラウィル",priority=15},
back={ name="月明の羽衣",priority=16},
}
sets.test3={
legs={ name="シェダルサラウィル",priority=16},
back={ name="月明の羽衣",priority=15},
}
sets.idle={
legs="ニャメフランチャ",
back="無の外装"
}
end
- sets.test1:優先度を指定しない
- sets.test2:backを先に着替える
- sets.test3:legsを先に着替える
- sets.idle:待機装備
sets.idleで待機状態にした状態で、test1-3の装備に次の方法で着替えを行いました。
/con gs equip sets.test1
/con gs equip sets.idle
待機状態のHPは1695です。
テストケース | 着替え後の待機状態HP |
---|---|
test1 | 1581/1695 |
test2 | 1695/1695 |
test3 | 1581/1695 |
sets.test2で指定した方法で着替えを行うと、HPの減少がなかったことから、priorityの数字は大きい方が優先的に着替えられている結果を確認しました。
装備部位が16個なので、最大16としていますが、100でも200でも大丈夫かと思います。
優先順位の割り振り方
着替えによって現在HPが減る仕組みは先に説明したとおりです。
この仕様をGearSwapに置き換えるにはどうすればいいのか。
結論としては、各アクション毎にpriorityを指定するしか方法がありません。
precast,midcastなどのアクション全てに手動で優先順位を考えて割り振るんです。
優先順位を指定しない場合、デフォルトの優先順位で着替えが行われますので、大幅にHPが減少するケースがあるかと思います。
なので、HPを減らしたくない場合は、HP量の多いアクセサリーを装備してpriorityを上げる必要があります。
月明の羽衣のようにHP量が多いものを装備できれば簡単なのですが、すべてのアクションに都合良く装備できるはずもなく、アクセサリースロットは何かしらの効果アップで埋まっていることがほとんどです。
しかし、それしか方法がないので、効果を妥協してHP+装備をセットするか、HPを減らすかしか選択肢がないのです。
HP+量で着替える方法
よしざうるすさんのGearSwapで着替えの順番を指定する[FF11]でHP量から優先度を計算する方法が公開されています。
これも手動でHP量を書き写さなければいけないのですが、この方法は着替え後のHPが多い部位順に着替えを行ってくれるので、優先度について深く考えなくて良いので楽な方法だと思います。
ただし、胴や脚などの部位がHP量が多い装備が多いので、アクセサリー系の優先順位は低いままで優先順位が決定されてしまう欠点があります。
意図的にアクセサリー系の優先順位を上げたいのであれば、priorityを指定する。もしくは、アクセサリー系に1000とか2000のような大きい数字をセットするなどですかね。
あと、プラチナモグベルトのHP増加は%表記なので、300とかの数字をセットするのが無難かと思います。
ごり押しする方法
GearSwapを使うと、precastとmidcastの間にアクセサリー部位でHPをブーストさせる意図的な着替えを仕込むことが出来ません。
が、ナイトのコードで実装しているように、強制的にHPブースト装備を仕込む方法もあります。
send_command('wait '..cast_time..'; gs equip sets.Hpboost; gs equip sets.midcast.Cure')
ただし、この方法はちょっと難しいので、GearSwapに不慣れな方にはおすすめできません。
まとめ
- 優先順位を指定しない場合、デフォルトの優先順で着替えが行われる。
- 着弾装備などでHP増加装備をセット出来ていない場合、大幅なHP減少が起こる。
- priorityの数字が大きい方が優先度が高い
- priorityで着替える方法と着替え後のHP量で着替える方法がある。
コメント