GearSwapのコードを書く 第2回


はじめに

Windower及び各種アドオン・プラグインの使用は自己責任でお願いします。
当noteのコードはあくまでも筆者の環境でのみ動作を確認しておりますので、コード利用時の不具合や損害については責任を負いかねます。
予めご了承ください。

前回のおさらいと今回やること

第1回ではWS着替えを例に基本的なコードを作成しました。
装備セットの配列を用意しprecastでWS使用前にWS装備に着替え、発動後にaftercastで通常の装備に着替え直すという基本となる動作を理解できたと思います。
今回は赤魔道士が魔法詠唱前にファストキャスト装備に着替えて、魔法着弾時に着弾用の装備に着替えるコードを解説していきます。

ファストキャスト装備→着弾装備を記述する

1.装備セットの記述

ここまでにファストキャスト装備と着弾装備の装備セットのエクスポートは完成しているものとして進めていきます。
エクスポートの方法については前回の記事をご参照ください。
ファストキャスト装備はsets.precast.FCに記述しました。
そして今回は弱体魔法着弾用の装備セットを例として用意しました。
midcast関数内に着弾装備を記述するので、配列名はsets.midcast.debuffとしました。

    sets.precast.FC = {
        省略 
    }

    sets.midcast.debuff = {
        省略
    }

1.precast関数にFC装備の条件を記述する

ジョブの前提として赤魔道士としたので、各種魔法をファストキャスト装備で詠唱開始することになります。

function precast(spell)
    if spell.action_type == 'Magic' then
        equip(sets.precast.FC)
    end
end

魔法の場合、action_type == 'Magic'で魔法に分類されるアビリティを一括で指定できます。
白魔法、黒魔法、歌、忍術、召喚魔法、青魔法、風水魔法、フェイスが該当します。
上記の通りに記述することで、詠唱を伴う行動開始前にファストキャスト装備に着替えることができます。

2.midcast関数に着弾装備の条件を記述する

今回は着弾用の着替えを作成するため、midcast関数を作成し、条件を記述していきます。
今回は予め用意した弱体着弾セットを組み込みます。

function midcast(spell)
    if spell.skill == '弱体魔法' then
        equip(sets.midcast.debuff)
    end
end

spell.skillが弱体魔法だった場合、魔法が発動する直前に指定の弱体着弾装備に着替えます。

一例ですが、赤魔道士で強化、弱体、精霊などを使い分ける場合midcast関数は下記のようになったりすると思います。

function midcast(spell)
    if spell.skill == '強化魔法' then
        if string.find(spell.name,'リフレシュ') then
            equip(sets.midcast.refresh)
        else
            equip(sets.midcast.buff)
        end
    elseif spell.skill == '弱体魔法' then
        equip(sets.midcast.debuff)
    elseif spell.skill == '精霊魔法' then
        equip(sets.midcast.elemental)
    end
end

詠唱した魔法が強化魔法だった場合、その魔法がリフレシュ(1-3)であるならリフレシュ回復量が上がる装備に着替え、それ以外の強化魔法なら強化魔法の効果時間が延びる装備に着替えます。
弱体魔法、精霊魔法にだった場合でも適切な装備に着替えるように指定してあります。

3.aftercastを忘れずに

最後に通常時の装備を忘れずに指定しておきます。

function aftercast(spell)
    equip(sets.aftercast)
end

これで一通り完成です。

function get_sets()
    set_language('japanese')

    sets.precast = {}
    sets.midcast = {}

    sets.precast.FC = {
        省略 
    }

    sets.midcast.debuff = {
        省略
    }

    sets.aftercast = {
       省略
    }
end

function midcast(spell)
    if spell.skill == '弱体魔法' then
        equip(sets.midcast.debuff)
    end
end

function aftercast(spell)
    equip(sets.aftercast)
end

条件分岐の指定はプログラミング未経験の方には難しい部分があると思いますが、理解が進むとなかなか面白い部分でもありますので、興味のある方は少し学習してみることをお勧めします。

次回予告

今回は魔法詠唱→着弾のmidcastについて簡単に解説しました。
WS着替え装備とFC装備、着弾装備の理解ができれば、大体のことは網羅できるようにはなると思いますが、条件分岐に使用しているtypeとかskillって何?っていう部分もあるかと思いますので、その辺の解説を次回やってみようと思います。

この記事が気に入ったらサポートをしてみませんか?