2023年5月18日木曜日

mote-include:ヘイストやインスニをしても、強化魔法スキル装備に着替えない件

結構いまさら感ある内容ですが、mote-includeの話を書いてみます。

mote-include を使った強化魔法での自動着替えで注意が必要になるというお話です。


ヘイストとかインスニとか、バフの効果時間の延長を狙って強化魔法の効果時間延長装備に着替えたいわけですが、 強化魔法用に sets.midcast['強化魔法'] を定義してもデフォルトでは着替えてくれません。これはバグではなくて仕様です。

でも、ヘイストIIの場合はちゃんと着替えてくれますし、ストンスキンとかアクアベールでも着替えてくれます。ちょっと謎な仕様ではあります。

結論から申し上げますと、Mote-Mappings.lua で以下のように定義されていて、これが悪さ?をしています。

no_skill_spells_list = S{'Haste', 'Refresh', 'Regen', 'Protect', 'Protectra', 'Shell', 'Shellra','Raise', 'Reraise', 'Sneak', 'Invisible', 'Deodorize'}

この no_skill_spells_list に含まれている魔法は、midcast のときに着替えない仕様となっています。より正確には、sets.midcast['強化魔法'] の対象外となるようにプログラムされています。

そのことは、Mote-Include.lua にもちゃんと書かれておりました。

-- List of spells and spell maps that don't benefit from greater skill (though
-- they may benefit from spell-specific augments, such as improved regen or refresh).
-- Spells that fall under this category will be skipped when searching for
-- spell.skill sets.
classes.NoSkillSpells = no_skill_spells_list

強化魔法スキルの恩恵を受けないから、着替えないと書かれております。でも、スキルの恩恵はなくても強化魔法の効果時間延長のためには着替えて欲しいわけで、なかなか微妙なところではあります。

応急処置としては、ユーザーlua ファイルの get_sets() の中で classes.NoSkillSpells を上書きしてしまうのが一番楽ちんだと思います。

-- Initialization function for this job file.
function get_sets()
    mote_include_version = 2
    -- Load and initialize the include file.
    include('Mote-Include.lua')
    classes.NoSkillSpells = S{'Protect', 'Protectra', 'Shell', 'Shellra', 'Raise', 'Reraise' }
    set_language('japanese')
end


あるいは、個別に

sets.midcast.Haste = sets.midcast['強化魔法']

とかでも良いですが、classes.NoSkillSpells を上書きしちゃう方が楽かな。