MENU

【GearSwap】属性帯の自動着替えコード

よしざうるすさんのGearSwapで天候や曜日を扱う[FF11]で公開されているコードを使わせてもらっています。

このコードは、天候に応じた着替えを自動化してくれる大変便利なものなので、精霊ジョブにとっては必須と言えるツールです。

weather = {}
weather_strong = {}
weaken_element = {}
elemental_obi = {}

-- 弱天候
weather['火'] = '熱波'
weather['水'] = '雨'
weather['雷'] = '雷'
weather['土'] = '砂塵'
weather['風'] = '風'
weather['氷'] = '雪'
weather['光'] = 'オーロラ'
weather['闇'] = '妖霧'

-- 強天候
weather_strong['火'] = '灼熱波'
weather_strong['水'] = 'スコール'
weather_strong['雷'] = '雷雨'
weather_strong['土'] = '砂嵐'
weather_strong['風'] = '暴風'
weather_strong['氷'] = '吹雪'
weather_strong['光'] = '神光'
weather_strong['闇'] = '闇'

-- 弱点属性
weaken_element['火'] = '水'
weaken_element['水'] = '雷'
weaken_element['雷'] = '土'
weaken_element['土'] = '風'
weaken_element['風'] = '氷'
weaken_element['氷'] = '火'
weaken_element['光'] = '闇'
weaken_element['闇'] = '光'

-- 所持している属性帯(所持していない場合はnil)
elemental_obi = {}
elemental_obi['火'] = {waist="火輪の帯",}
elemental_obi['水'] = {waist="水輪の帯",}
elemental_obi['雷'] = {waist="雷輪の帯",}
elemental_obi['土'] = {waist="土輪の帯",}
elemental_obi['風'] = {waist="風輪の帯",}
elemental_obi['氷'] = {waist="氷輪の帯",}
elemental_obi['光'] = {waist="光輪の帯",}
elemental_obi['闇'] = {waist="闇輪の帯",}

hachirin = nil

function get_hachirin(spell_element)
    if elemental_obi[spell_element] then -- 属性帯がある場合
        if spell_element == world.weather_element or spell_element == world.day_element then
            return elemental_obi[spell_element]
        else
            return nil
        end
    else -- 八輪の帯を使用する場合
        if weather_strong[spell_element] == world.weather then -- 強天候
            return hachirin
        elseif weather[spell_element] == world.weather 
               and world.day_element ~= weaken_element[spell_element] then -- 弱天候 かつ 弱点属性曜日でない
            return hachirin
        elseif world.day_element == spell_element
               and world.weather ~= weather_strong[weaken_element[spell_element]]
               and world.weather ~= weather[weaken_element[spell_element]] then -- 同属性曜日 かつ 天候が非干渉 
            return hachirin
        else
            return nil
        end
    end
end
目次

使い方

このコードはGearSwap単体でもMote-libsでも利用可能です。

GearSwap単体で利用する場合は、よしざうるすさんのページを見た方がわかりやすいかもしれません。

私はMote-libsで利用しているので、Mote-libsでの使い方を説明します。

①インクルード

ジョブ定義ファイルのjob_setup()かuser_setup()にインクルードします。

function job_setup()
    include('weather_obi') 
end

②属性帯の所持状況を定義

所持している属性帯を次のように定義します。

八輪の帯を持っている、または所持していない属性帯がある場合は「elemental_obi[‘水’] = nil」としてください。

私は八輪の帯を作らず八属性の帯を利用しているので、このような定義になっています。

elemental_obi = {}
elemental_obi['火'] = {waist="火輪の帯",}
elemental_obi['水'] = {waist="水輪の帯",}
elemental_obi['雷'] = {waist="雷輪の帯",}
elemental_obi['土'] = {waist="土輪の帯",}
elemental_obi['風'] = {waist="風輪の帯",}
elemental_obi['氷'] = {waist="氷輪の帯",}
elemental_obi['光'] = {waist="光輪の帯",}
elemental_obi['闇'] = {waist="闇輪の帯",}

属性帯>八輪の帯の優先順位で着替えを行ってくれますので、八論の帯を所持しつつ単体の属性帯を持っている場合でも、属性帯の着替えが優先されます。

③自動着替え

次のように実装することで、精霊詠唱の装備セットを天候に応じた属性帯に着替えてくれます。

function job_post_midcast(spell, action, spellMap, eventArgs)
    if spell.skill == '精霊魔法' then
        equip(get_hachirin(spell.element))
    end
end

コメント

コメントする

目次