免責事項
当ブログで紹介しているマクロ・設定・Luaスクリプトなどは、あくまで個人の検証・記録を目的としたものです。導入や使用は自己責任でお願いします。使用によって生じたキャラクターやアカウントへの不具合、データの損失、パソコン・OS・他のソフトウェアへの不具合や故障、その他いかなる損害についても、当ブログは一切の責任を負いません。あらかじめご了承の上、ご自身の判断でご利用ください。
Windowerについて
Windowerおよびその上で動くアドオンは、SQUARE ENIX公式のサポート対象外のサードパーティ製ツールです。マクロや表示系のアドオンなど、一見軽微な内容であっても、利用しているサーバーの規約に沿っているかは必ずご自身でご確認ください。規約は変更されることがあるため、最新の情報はサーバー公式の案内でご確認ください。
【FF11】GearSwapの装備管理をラクにする|「ジョブ名_gear.lua」で分離する(STEP4)
この記事はシリーズのSTEP4です。
このSTEP4では、装備管理をラクにするために 装備だけを ジョブ名_gear.lua に分離します。 複数キャラでも、本体Lua(JOB.lua)は1つだけでOKになります。
※ //gs reload と //gs export の基本はSTEP3.5にまとめています: →(STEP3.5:必須コマンド2つ の内部リンク)
1. この記事でできるようになること
- 本体(JOB.lua)と装備(JOB_gear.lua)を分けられる
- 複数キャラ運用でも、本体Luaはジョブごとに1個で済む
2. なぜ分離するとラクになるのか
STEP3までは、装備の内容も含めて全部1つのLuaファイルに書いていました。 これだと、装備を変えたいだけなのに、毎回長いファイルの中から該当箇所を探す必要があります。
そこでこの記事では、ファイルを役割ごとに2つに分けます。
| ファイル | 役割 | 置き場所 |
|---|---|---|
WAR.lua | 動作のしくみ(本体) | data 直下(全キャラ共通) |
WAR_gear.lua | 装備の中身だけ | data\キャラ名\(キャラごと) |
こうしておくと、装備を変えたいときは WAR_gear.lua だけ開けばよくなります。 本体側の WAR.lua は一度作ったら触る必要がありません。
完成形のフォルダ構成はこうなります(キャラが2人いる場合の例)。
Windower\addons\GearSwap\data\WAR.lua
Windower\addons\GearSwap\data\(自キャラ名)\WAR_gear.lua
Windower\addons\GearSwap\data\(別キャラ名)\WAR_gear.lua
3. 手順1:共通本体(data直下)WAR.luaを作る
保存先: Windower\addons\GearSwap\data\WAR.lua
中身を丸ごとコピペしてください。
--======================================================================
-- WAR.lua(共通本体 / 複数キャラで使い回す)
-- 装備は data/<キャラ名>/WAR_gear.lua から読み込む(include/Moteなし)
--======================================================================
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')
end
end
function status_change(new, old)
equip_status()
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
このファイルがやっていること(ざっくり)
- ログイン中のキャラ名を自動で取得する
- そのキャラ名のフォルダから
WAR_gear.luaを読み込む - 納刀(Idle)/抜刀(Engaged)に応じて装備を切り替える
つまり、キャラ名を自動判別して装備ファイルを探しにいく仕組みです。 だから複数キャラでも本体は1個で済みます。
4. 手順2:キャラ別装備 WAR_gear.luaを作る
保存先: Windower\addons\GearSwap\data\(自キャラ名)\WAR_gear.lua
※ フォルダ名の「(自キャラ名)」は、実際に使っているキャラクター名に置き換えてください。
中身を丸ごとコピペしてください(最小構成)。
--======================================================================
-- WAR_gear.lua(キャラ別)※装備だけ
--======================================================================
sets = sets or {}
-- 納刀時(Idle)
sets.idle = {
head = "Bronze Cap",
}
-- 抜刀時(Engaged)
sets.engaged = {
head = "Leather Bandana",
}
このファイルには装備の内容だけを書きます。 仕組み(Idle/Engagedの判定など)は先ほどのWAR.lua側がやってくれるので、ここでは気にしなくてOKです。
5. 手順3:動作確認
- WARに着替える
- 反映する
//gs reload
- 納刀→抜刀で頭装備が変わるか確認する
チャットログに以下のような表示が出れば成功です。
[GS] WAR gear OK: ...
[GS] WAR.lua LOADED
もし読み込みに失敗すると、代わりに
[GS] gear読み込み失敗: ...
[GS] パス: ...
と表示され、実際に読みにいったファイルパスが分かります。 エラーが出たら、まずこのパスが合っているか確認してください。
6. よくあるミス
WAR.luaがdata直下にないWAR_gear.luaがdata\(自キャラ名)\の中にない(フォルダ名がキャラ名と一致していない)//gs reloadを忘れている(STEP3.5参照)
👉 次の記事(続き)
STEP5:【FF11】GearSwapでWS装備に着替える|最小構成WS編(丸ごとコピペ)
👉 前の記事
コメント