PartyBuffs(Ver.3.0)に移行してみる

f:id:yyoshisaur:20200122014318j:plain

以前にPartyBuffsのフィルター機能を作ってみる記事を書きました。
yyoshisaur.hatenablog.com

この記事から時間も経ち、随分前にPartyBuffsのバージョンアップがありフィルター機能が追加されたので、今回は最新のPartyBuffs(Ver.3.0)へ移行してみたいと思います。
github.com

設定してみる

フィルターは、filters.luaに設定します。
フィルターは、ホワイトリスト/ブラックリストのどちらかで設定できます。

自作したフィルターでは以下のような機能を実装していました。

  1. 表示領域や視認性を考慮して、監視したいバフ/デバフのみを表示する
  2. 特定のジョブ用に、1.に監視したいバフを追加する(吟遊詩人では呪歌、学者では陣など)

Ver.3.0のfilters.luaを見ると自身のジョブ毎にフィルターを設定できるようなので、そのまま移行できそうです。
フィルターはホワイトリスト形式にします。

以前使用していた旧PartyBuffsのフォルダを削除するかリネームして、新しいPartyBuffsをaddonsフォルダにコピーします。
一度、新しいPartyBuffsをロードして、settings.xmlを作成します。
setting.xmlが作成されたら、PartyBuffsをアンロードしてsetting.xmlを編集します。
(私の場合、全キャラクター共通なのでsetting.xmlのglobalに設定します)

<?xml version="1.1" ?>
<settings>
    <global>
        <mode>whitelist</mode>
        <size>20</size>
    </global>
</settings>

コマンドでも同様の設定できるようです。(コマンドの場合、キャラクター毎の設定になります)

//pb size 20
//pb mode whitelist
フィルター設定

filters.luaホワイトリストのテーブルは以下のようになっています。
Player_1となっている部分に自身のキャラクター名を設定します。
ジョブ名のリストにバフ/デバフのIDを設定します。(IDはres/buffs.luaを参照)
例えば、自身のメインジョブが戦士(WAR)の時は、WAR=L{}に設定されたフィルターが適用され、パーティ内の他プレイヤーのバフ/デバフが表示されます。

-- filters.lua
--For buffs id you can check the buffs.lua in resources
whitelist = {
    Player_1 = { -- player name
        WAR = L{}, -- buffs id separated by coma WAR = L{40, 41}, this will show only the protect and shell buffs on Warrior main job 
        MNK = L{},
        WHM = L{},
        BLM = L{},
        RDM = L{},
        THF = L{},
        PLD = L{},
        DRK = L{},
        BST = L{},
        BRD = L{},
        RNG = L{},
        SAM = L{},
        NIN = L{},
        DRG = L{},
        SMN = L{},
        BLU = L{},
        COR = L{},
        PUP = L{},
        DNC = L{},
        SCH = L{},
        GEO = L{},
        RUN = L{},
    },
}
設定例

この例では、キャラクター名は「Piyopiyo」とします。
キャラクター名の先頭の文字は大文字にします。
(PartyBuffs内で使用されるキャラクター名には、windower.ffxi.get_player().nameがそのまま使われているので、すべて小文字などではうまく動作しないと思われます)

私の場合、ほぼすべてのジョブで同じフィルターを使用すると思うので、メンテナンス性を考慮して、whitlistのテーブルに直接バフIDを記述せず、別のリストに格納して、それを指定しています。
default_filterは、全ジョブで使用するバフ/デバフのリストです。(デバフ全般、プロテス、シェルなど最低限監視したいバフ/デバフ)
brd_filterは吟遊詩人で使用するバフ/デバフのリストで、default_filterに呪歌を追加したリストです。
sch_filterは同様にdefault_filterに陣を追加したリストです。

-- filters.lua
local default_filter = L{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,29,30,31,33,37,40,41,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,156,167,168,174,175,177,186,189,192,193,194,217,223,404,540,557,558,559,560,561,562,563,564,565,566,567,572,581}
local brd_filter = L{195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,218,219,220,221,222}:extend(default_filter)
local sch_filter = L{178,179,180,181,182,183,184,185,589,590,591,592,593,594,595,596}:extend(default_filter)

--For buffs id you can check the buffs.lua in resources
whitelist = {
    Piyopiyo = {
        WAR = default_filter,
        MNK = default_filter,
        WHM = default_filter,
        BLM = default_filter,
        RDM = default_filter,
        THF = default_filter,
        PLD = default_filter,
        DRK = default_filter,
        BST = default_filter,
        BRD = brd_filter,
        RNG = default_filter,
        SAM = default_filter,
        NIN = default_filter,
        DRG = default_filter,
        SMN = default_filter,
        BLU = default_filter,
        COR = default_filter,
        PUP = default_filter,
        DNC = default_filter,
        SCH = sch_filter,
        GEO = default_filter,
        RUN = default_filter,
    },
}

複数のキャラクターで使用する場合は、whitlistのテーブルに同様のフォーマットでキャラクター毎の設定を追加します。

○吟遊詩人の視点
f:id:yyoshisaur:20200124033132j:plain