今回はmogmasterを使ってみた際のメモです。
mogmasterは、各収納とマイバッグ間のアイテムの移動を自動化するWindowerアドオンです。
2アカウント目のキャラクターがワードローブが一杯になりつつあり、1アカウント目のキャラクターはすでに一杯でジョブ専用の装備は使用する時にモグ金庫やモグロッカーからマイバッグに移しています。
複数のキャラクターで手動でのアイテム移動が必要になると大変なので、mogmasterを導入してみました。
(同様の機能を持つorganizerというアドオンもありますが、アイテム名を日本語で扱えたり、日本語の説明が充実していたmogmasterを選択しました。)
mogmasterの一次配布元がどこなのかわかりませんでしたが、https://w.atwiki.jp/ff11windower2/のアップローダーにあるv.1.14.2を使用しました。
(日本語フォーラムにmogmaster作成者の方の投稿もあるので、アップローダーで公開していたのかしら。)
アップローダーにあるmogmasterは2015/05/23のものが最終のバージョンのようで、以後にバージョンアップされたものを見つけることができませんでした。
mogmasterの使い方は"説明.txt"に詳しく書かれているので、ここでは省略します。
使用してみて、自身の使用用途に合うように少しごにょごにょしたので備忘録として書いてみます。
(日本語フォーラムの過去ログを参考しています
【広めよう】Windower 11【本家窓化】 - 1495379880 - したらば掲示板
Windower 4.xx その5 - 1448380687 - したらば掲示板)
Nomad Moogleでのアイテムの移動
mogmasterではモグ金庫やモグロッカーへのアクセスはモグハウス内のみになっていますが、マウラやノーグなどにいるNomad Moogleでもモグ金庫などからアイテムの移動を行いたいです。
mogmasterではアイテムの移動にwindowerAPIのwindower.ffxi.get_item/put_itemが使われています。このAPIはNomad Moogleのいるエリアであれば、モグ金庫, モグロッカーにアクセスでき、アイテムを移動できるようです。(Nomad Moogleとの距離の制限もないようです。)
アイテムの移動時、現在の利用可能な収納を決定している処理をみると"モグハウス"と"それ以外"の条件しかありません。そこにNomad Moogleの条件を加えるとうまくいきそうです。
今回はジョブチェンジと合せて使用することを踏まえ、Nomad Moogleとの距離が6Ym以内であれば、利用可能という条件にしました。
-- mogmaster/libs/set_item.lua -- 6Ym以内にNomad Moogleがいるか判定する local function check_nomad_moogle() for _, mob in pairs(windower.ffxi.get_mob_array()) do if mob.name == 'Nomad Moogle' and math.sqrt(mob.distance) < 6 then return true end end return false end -- 以下はfunction set_item.exec(set_name)の中 -- 利用する収納を判定 local mog_list if windower.ffxi.get_info().mog_house then util.log.info('mog_house=true 全ての収納を使用します') mog_list = {'safe', 'safe2', 'storage', 'locker', 'satchel', 'sack', 'case'} elseif check_nomad_moogle() then -- Nomad Moogleの条件を追加 util.log.info('Nomad Moogle:モグ金庫・モグ金庫2・モグロッカー・サッチェル・サック・ケースを使用するクポ!') mog_list = {'safe', 'safe2', 'locker','satchel', 'sack', 'case'} else util.log.info('mog_house=false サッチェル・サック・ケースのみ使用します') mog_list = {'satchel', 'sack', 'case'} end
ワードローブ2, 3, 4のアイテムのエクスポート
ワードローブのアイテムはマイバッグに移動しなくても装備可能なので、エクスポートする必要はないと思いますが、ワードローブ1はエクスポートされるようになっているので、その他のワードローブもエクスポートの対象になるように修正しました。
-- mogmaster/libs/export_item.lua -- wardrobe2~4を追加 local mog_categories = { 'safe', 'safe2', 'storage', 'locker', 'satchel', 'sack', 'case', 'wardrobe', 'wardrobe2', 'wardrobe3', 'wardrobe4', }
-- mogmaster/libs/util/const.lua -- wardrobe2~4を追加 util.const = T{ bags = { -- 省略 safe2 = { id = 9, ja = 'モグ金庫2', }, -- 追加 wardrobe2 = { id = 10, ja = 'モグワードローブ2', }, wardrobe3 = { id = 11, ja = 'モグワードローブ3', }, wardrobe4 = { id = 12, ja = 'モグワードローブ4', }, } }
私の場合、アイテムの移動はジョブチェンジとセットで行なうので、gearswapのユーザースクリプトのget_sets()で"/setitems"コマンドを実行して運用しています。
アビセアの弱点用装備などのmogmasterで管理するほど使用頻度は高くないが、まとめて取り出したい装備はitemizerを使って移動させています。
感想
初期設定など導入には少し手間がかかりますが、アイテム移動を自動化できたことでジョブチェンジがとても快適になりました。以前にorganizerを試しに使ってみたことがあったのですが、モグ金庫などモグハウス内でしか使えなかったので導入を見送っていました。mogmasterでは少し修正することでNomad Moogleに対応でき、モグハウス以外でジョブチェンジすることが多い人にはとても便利なアドオンだと思います。手動でのアイテム移動のストレスが無くなるので、もっと早くに使っておけばよかったです。
おまけ
windower.ffxi.get_bag_info
今回、いくつか収納系のAPIを調べてみました。
mogmasterでは使用されていませんが、windower.ffxi.get_bag_infoで利用可能な収納を取得するとNomad Moogle付近ではモグ金庫、ロッカーはenabled=trueを期待しますが、モグハウス以外ではenabled=falseとなるようです。
res/bags.luaをみても、accessのプロパティには"Mog House"と"Everywhere"の2種類しかないため、Nomad Moogleは考慮されていないと思われます。
itemizerがNomad Moogleで使用できないのは、windower.ffxi.get_bag_infoを使用して利用可能な収納を判定しているからのようです。
lua invoke
Addon Commands :: Windower Documentation
mogmasterのコードを少し読んでみると、アイテムの移動や初期化で"lua i アドオン名 関数"というコマンドが使われています。
i(invoke)オプションはアドオンの関数をコマンドから直接実行できるようです。