PR

【FF11】GearSwapでWS装備に着替える|最小構成WS編(丸ごとコピペ)

GearSwap

免責事項
当ブログで紹介しているマクロ・設定・Luaスクリプトなどは、あくまで個人の検証・記録を目的としたものです。導入や使用は自己責任でお願いします。使用によって生じたキャラクターやアカウントへの不具合、データの損失、パソコン・OS・他のソフトウェアへの不具合や故障、その他いかなる損害についても、当ブログは一切の責任を負いません。あらかじめご了承の上、ご自身の判断でご利用ください。

Windowerについて
Windowerおよびその上で動くアドオンは、SQUARE ENIX公式のサポート対象外のサードパーティ製ツールです。マクロや表示系のアドオンなど、一見軽微な内容であっても、利用しているサーバーの規約に沿っているかは必ずご自身でご確認ください。規約は変更されることがあるため、最新の情報はサーバー公式の案内でご確認ください。

この記事はシリーズのSTEP5です。 前のSTEP4で「本体Lua(WAR.lua)と装備(WAR_gear.lua)を分離」できました。

このSTEP5では、その構成のままWSの瞬間だけ装備を切り替える設定を追加します。

//gs reload//gs export の基本はSTEP3.5にまとめています: →(STEP3.5:必須コマンド2つ の内部リンク)

この記事でできるようになること

  • WS発動時にWS装備へ着替える
  • WSごとに装備を分けられる(最初はdefaultだけでOK)

手順1:WAR.lua(共通本体)をWS対応に更新する

保存先: Windower\addons\GearSwap\data\WAR.lua

中身を丸ごと置き換えてください。

--======================================================================
-- WAR.lua(共通本体)STEP5:WSで着替える
--======================================================================

local job = 'WAR'
sets = sets or {}

local function p_name()
    local p = windower.ffxi.get_player()
    return (p and p.name) or 'DefaultChar'
end

local function gear_path()
    return windower.addon_path .. 'data/' .. p_name() .. '/' .. job .. '_gear.lua'
end

local function echo(msg, color)
    windower.add_to_chat(color or 207, '[GS] ' .. tostring(msg))
end

local function load_gear()
    local path = gear_path()
    local ok, err = pcall(dofile, path)
    if not ok then
        echo('gear読み込み失敗: ' .. tostring(err), 167)
        echo('パス: ' .. path, 167)
        return false
    end
    echo(job .. ' gear OK: ' .. path)
    return true
end

local function equip_status()
    if player.status == 'Engaged' then
        equip(sets.engaged or {})
    else
        equip(sets.idle or {})
    end
end

function get_sets()
    sets = {}
    if load_gear() then
        equip_status()
        echo(job .. '.lua LOADED (WS)')
    end
end

function status_change(new, old)
    equip_status()
end

-- WS直前にWS装備を着る
function precast(spell)
    if spell.type == 'WeaponSkill' then
        local wsset = nil

        if sets.ws and sets.ws[spell.english] then
            wsset = sets.ws[spell.english]
        elseif sets.ws and sets.ws.default then
            wsset = sets.ws.default
        end

        if wsset then
            equip(wsset)
        else
            echo('WSセットなし: ' .. tostring(spell.english), 167)
        end
    end
end

function aftercast(spell)
    equip_status()
end

-- 手動更新: //gs c update
function self_command(cmd)
    if (cmd or ''):lower() == 'update' then
        equip_status()
        echo('update: equipped status set')
    end
end

このファイルがやっていること(ざっくり)

  • WSを発動する瞬間(precast)に、WS用の装備へ切り替える
  • 個別WS用の装備(sets.ws["WS名"])があればそれを使い、無ければ共通のsets.ws.defaultを使う
  • WSが終わったら(aftercast)、通常の納刀/抜刀装備に戻る

手順2:WAR_gear.luaにWSセットを追加する

保存先: Windower\addons\GearSwap\data\(自キャラ名)\WAR_gear.lua

中身を丸ごと置き換えてください。

--======================================================================
-- WAR_gear.lua(キャラ別)STEP5:WSセット追加
--======================================================================

sets = sets or {}

-- Idle
sets.idle = {
    head = "Bronze Cap",
}

-- Engaged
sets.engaged = {
    head = "Leather Bandana",
}

-- WS
sets.ws = {}

-- まずは共通WS(これが無いと初心者は詰む)
sets.ws.default = {
    head = "Bronze Cap",
}

-- 例:特定WSだけ別装備(最初は無くてもOK)
sets.ws["Fast Blade"] = {
    head = "Leather Bandana",
}

sets.ws.default だけは必ず用意してください。 これが無い状態で個別WS装備も無いと、WSを撃った瞬間に装備が変わらず「あれ?」となります。 個別のWS装備(sets.ws["WS名"])は、慣れてから少しずつ増やせばOKです。

手順3:動作確認(WSで着替える)

  1. WARに着替える
  2. 反映する
//gs reload
  1. WSを撃つ(例:Fast Blade)

チャットに [GS] WAR.lua LOADED (WS) が表示されていればreload成功です。 WSを撃った瞬間だけ頭装備が変わり、WS後にまた元の装備(Idle/Engaged)に戻れば成功です。 (確認するときは頭だけ変えておくと、変わったかどうか一番分かりやすいです)

もし装備が変わらない場合、チャットに [GS] WSセットなし: ... と表示されていないか確認してください。 表示されていたら、そのWS名に対応するセットもsets.ws.defaultも無い状態です。

装備名ミスを減らす(リンクだけ)

WS装備を本格的に作るときは //gs export が最短です。 →(STEP3.5の内部リンク)

👉 次の記事(続き)

→STEP6:【FF11】GearSwapで魔法詠唱時に着替える|最小構成 赤魔道士編(丸ごとコピペ)

👉 前の記事

→STEP4:【FF11】GearSwapの装備管理をラクにする|「ジョブ名_gear.lua」に装備だけ分離する方法(丸ごとコピペ)

コメント