免責事項
当ブログで紹介しているマクロ・設定・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で着替える)
- WARに着替える
- 反映する
//gs reload
- 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」に装備だけ分離する方法(丸ごとコピペ)
コメント