FC2ブログ
Top Page › FF11 › FF11_Valhalla › 《FFXI_Valhalla》Windower4用アドオン barfiller for Valhalla

2019 · 03 · 02 (Sat) 00:32

《FFXI_Valhalla》Windower4用アドオン barfiller for Valhalla

こんばんは。こんちは。

今回は一から作ったアドオンではなく、改造版となります。
barfillerはメインジョブ・サポジョブ・レベル・経験値(経験値バー含む)などの情報を常時表示させるアドオンです。
s-xiloader 2019-02-24 14-23-06 このスクショの中央下部に移っているバーとその下の文字をbarfillerが表示しています。
結構気に入っているアドオンなのですが、いくつかの不満点がありまして今回改造に着手しました。
いつものように改変ポイントのみブログで紹介しようと思いましが、改変箇所が多かったのとライセンスはBSDライセンスという事で改変後のソースをそのまま公開することにしました。

改造したポイントは以下。
◆内容が更新されるタイミングを増やした。
・エリアチェンジ時
・ジョブチェンジ時
◆レベルキャップ(デフォルト90)時に経験値表示を
 リミットポイント・メリットポイントに変更するようにした。

レベルがキャップに到達している時は経験値の値などどうでもいいので、以下のような情報にしてあります。
s-xiloader 2019-03-01 23-15-00 
本家では存在しないタイミングでの経験値の取得等で更新されない問題がありますが、気が向いたら対応します。

for Valhallaと謳ってはいますが、dataフォルダ内のsettings.xmlの
<levelcap>90</levelcap>
の90を変えれば他の鯖でも同じように動作します。
本家やROJなら99で。
ちなみに、今の仕様では限界突破途中でのキャップ上限到達時にはこの表示にはなりません。
手動でも切り替えられるようにしたほうがいいかもですが、、まぁそんなに需要もないでしょう。

メリポがカンストしていたら色を変えるのもいいかも。今思いつきましたけど。

ジョブポについてはValhallaに存在しないので入れていません。

3月12日にValhalla鯖の大型の更新が入る模様です。
興味がありましたら今のうちに初めてみてはいかがでしょう~

barfiller for Valhallaのダウンロードはこちら

最終更新日 : 2019-03-02

Comments







非公開コメント

はじめまして
本家の方ではありますがFF11復帰にあたり、こちらと貴殿のwikiページには大変お世話になりました
丁寧で分かりやすく書いてあったため大変助かりました

本題になりますが、アドオンbarfillerについて教えていただきたくコメント残させていただきます
BarFiller: Lua runtime error: libs/packets.lua:94 attempt to perform arithmetic on field '?' (a nil value)
上記のエラーがオーメン・アンバスケード・デュナミスダイバージェンスにて発生します
デュナミスダイバージェンスにいたっては常時エラーを吐き続ける状態です
休止前に使用していた際には出た事がないエラーである事から
当方が休止中に実装追加されたコンテンツ・エリアが原因かと思われますが何分修正方法がわかりません
エラー報告だけでフリーズといった実害が出るわけではないため該当エリアで切ってしまえば問題ないのですが
もし修正方法がおわかりになるようでしたらぜひ教えていただきたく存じます

上記に書いた通り実害が出てるわけではないため
お手すきの際で構いませんので何卒よろしくお願い致します
長文にて大変失礼致しました
2019-03-08-23:13
john [ 返信 * 編集 ]

反動 Re: タイトルなし

コメントありがとうございます。
当ブログとwikiがお役に立てたという事で嬉しい限りです。
さてご質問の件ですが私が本家をプレイしていないので、実際にテストする事ができないのですが
エラーが出ているエリアが比較的新しいコンテンツばかりだというのが気になりますね。
そしてエラーを吐いているのがbarfillerそのものでは無く、ライブラリのpackets.luaであるところも気になります。
可能性としてはpackets.luaがなにか情報を正しく取れていないという事。
その場合packets.lua自体の更新を待つしかないかもしれません。
ただしアンバスなんて、もう実装されてからだいぶ経つのでちょっと不可解ですね~

エリアチェンジした時に該当のエリアだった場合はデータの更新を止めちゃえば大丈夫かもしれませんが、なんとも言えないです。
その場合の対処方法としては
windower.register_event('incoming chunk',function(id,org,modi,is_injected,is_blocked)
の中で現在のエリアがどこであるかを取得して
エラーの出るエリアだったらなにもせずreturnさせてしまうという方法です。
エリアの取得の仕方はwhereやzonenameなんかが参考になると思います。
zone_idの取得を参考にして、該当のidであるかを条件にしてください。


2019-03-09-13:36
反動 [ 返信 * 編集 ]

To 反動さん

ご返答ありがとうございました
本家はプレイしていらっしゃらないという事でお手数おかけして申し訳ないです
libsファイル自体を手動で最新にしてみたりといろいろ試みてはいるのですが改善とまではいかず
ご提案いただいた通りコードを書き足して対処しようと思います

whereやzonenameはもちろんの事おすすめとして紹介されているアドオン多数愛用させていただいておりますので
今後も何かと参考にさせていただきたく存じます
この度は御助力いただき誠にありがとうございました

2019-03-10-12:09
john [ 返信 * 編集 ]

Re: john 様へ

通りすがり失礼します。

ジュノ上層Mapitoto(マピトト)に話しかけて行う、
ラプトルのミニゲーム(バタリア丘陵)でも、
同様のエラーが発生します。

原因は
field.ctype が、
local sizes に含まれない型である事が原因です。


print( field.ctype )
でパケットの型をモニタしてみるとわかりますが、
ラプトルのミニゲームの場合は、
byte[ 12 ] でエラーが発生しています。

オーメン等で同様のエラーかはわかりませんが、
少なくともラプトルのミニゲームでは、
以下の修正で問題が解決できます。

local sizes = { ~ } 内に、以下の 1 行を追加する。
['byte'] = 8,


2020-05-17-21:16
Dainopu [ 返信 * 編集 ]