#2 狩人ではじめるGearSwap(ウェポンスキル編)[FF11]

前回では遠隔攻撃の着替えを実装しました。今回はウェポンスキル実行時の着替えを実装してみたいと思います。

Windowerをはじめとする外部ツールの使用は自己責任で。


私が狩人でよく使用するウェポンスキルは、ラストスタンド、カラナック、トゥルーフライトなので、これらを使用する際の着替えを行います。(ワイルドファイアもたまに使うかな。。)
狩人のウェポンスキルには物理系と魔法系があり、ラストスタンド, カラナックは物理系、トゥルーフライトは魔法系に分類され、それぞれ装備を替えるのが一般的だと思います。
(その他のジョブでは、ウェポンスキルによってWSD+, マルチアタック, クリティカルなど対応した装備に着替えますね。)

では、"どのようにウェポンスキルの種類によって着替える装備を替えるのか"を考えていきます。

対応する装備に着替えるためには、実行されたウェポンスキルが何であるかをGearSwapのユーザースクリプト上で知る必要があります。
GearSwapのリファレンスを見ると、precast関数などの引数であるspellで判定できそうです。
ウェポンスキルが実行された時は、spell.typeが"WeaponSkill"となり、spell.nameにはウェポンスキル名が格納されているようです。

前回作成したユーザースクリプトを修正して、ウェポンスキル実行時の着替えを実装してみます。

function get_sets()
    set_language('japanese')
   …
   
    -- 以下を追加
    sets.precast.ws.phisical = {
        -- 物理WS装備 
    }
    
    sets.precast.ws.magic= {
        -- 魔法WS装備
    }
    
    -- 連想配列にWS毎の装備を入れておく
    sets.precast.ws["ラストスタンド"] = sets.precast.ws.phisical
    sets.precast.ws["カラナック"] = sets.precast.ws.phisical
    sets.precast.ws["トゥルーフライト"] = sets.precast.ws.magic
    sets.precast.ws["ワイルドファイア"] = sets.precast.ws.magic   
end

function precast(spell)
    if spell.name == '飛び道具' then
        equip(sets.precast.snap)
    elseif spell.type == 'WeaponSkill' then -- ここから追加
        if sets.precast.ws[spell.name] then
            equip(sets.precast.ws[spell.name])
        else
            -- get_sets関数で定義していないWSは物理WS装備で実行
            equip(sets.precast.ws.phisical)
        end -- ここまで                 
    end
end

WS装備への着替えはprecast関数で指定しましたが、GitHubで公開されているスクリプトを見るとmidcast関数で指定されている方もいるようです。
(precast関数で指定した方が確実に着替えができるので、私はprecast関数でWS装備に着替えています。)

前回、今回で、遠隔攻撃, ウェポンスキルで最低限の狩人の装備変更をGearSwapに置き替えることができました。