累積ダメージを表示させる(UIモジュール)

カスタムUIの公開に伴い、UIモジュール単体での配布を終了しました。
本UIモジュールは更新を行った上でカスタムUIに含まれていますのでそちらをご利用ください
※ カスタムUI(ClifeUI)に含まれているModでは、このページの内容と一部異なります。
また、Mod導入に伴うファイルの追加等も不要です。

累積ダメージを表示するUIモジュールを作ってみた

Pinco’s UIではそういう機能があるそうなんですが、標準UIには無いですよね?

標準UIのソースにもダメージの累計を保持する為の処理があったのだけど、それを有効にする方法を追い切れなかった(面倒くさくなって途中でやめた)ので、累積ダメージ等を表示するUIモジュール(以下、Mod)を作ってみた。

ちなみにこのMod本体だけでは動かなくて、他にフォントの追加などが必要なので、ご利用の場合は後述の「必要なファイル等」も併せてご覧ください。

実際に動かすとこんな感じ

ロケ地:シェイム Lv.1
※ シェイムLv.1で累積ダメージ表示とか必要ないだろ、ってツッコミは無しでお願いします・・・。

累積ダメージ表示

見たまんまですが、右上がこのModの設定画面兼累積ダメージ表示画面(以下、Mod画面)、右下が普通のチャットログ画面です。
Mod画面のダメージ表示の並び順は、新しくダメージが発生した対象の順になります。

Mod画面の表示更新は0.8秒~5秒(ダメージの更新が無い場合)ごと、
チャットログへはダメージが発生するたびに随時出力されます。

初撃からの経過時間やDPSも表示していますが、時刻を秒単位でしか取得していないので、目安程度に見てください。。。(コンマ以下秒を計算しないので、特にHPが低い敵に対して経過時間やDPSに実際との差が大きくなりやすいです)

経過時間の誤差について詳しく。

時刻取得の最小単位が一桁秒なので、例えば、
・初撃: 9時 0分 1.00秒
・最終: 9時 0分 2.99秒
の場合、実際は 1.99秒間でも、Mod上では 9時0分1秒~0分2秒の 1秒間として表示・計算され、
・初撃: 9時 0分 0.99秒
・最終: 9時 0分 3.00秒
の場合、実際は 2.01秒間でも、Mod上では 9時0分0秒~0分3秒の 3秒間として表示・計算されます。

上記の様に、実際には0.02秒しか違わない物が2秒も違って計算される場合もあるので、倒しきるまでに時間が掛からない対象だと、経過時間のズレが割合的に大きくなり、結果的にDPSもズレが大きくなります。

Modの使い方

カスタムUIの公開に伴い、UIモジュール単体での配布を終了しました。
本UIモジュールは更新を行った上でカスタムUIに含まれていますのでそちらをご利用ください

Modのインストール方法については「当サイトで公開しているUIモジュールやマクロ等について」ページの「UIモジュールの使用方法」をご覧ください。

同時に、他に必要なファイルもインストールしてください。
詳しくは後述の「必要なファイル等」をご覧ください。

カスタムUIのダウンロード・導入方法についてはこちらのページをご覧ください。

インストールしてSAクライアントを起動すると下の様な画面が表示されます。

累積ダメージMod 初期画面

この画面が、このModの設定画面兼累積ダメージ表示画面です。
与ダメージが発生するとMod画面に最大10件までの対象の累積ダメージ等を表示します。(2未満のダメージは累積や攻撃回数に反映しません)
(ホントは設定なんかはポップアップ表示などにした方が良いんだろうけど、とりあえず使えれば良いって感じなので・・・。ご利用くださる方が増えて要望も出てくるようなら考えようかと ^^;)

ちょっとウィンドウが大きいので、普段は閉じておくか、Mod画面タイトルバーを右クリックでタイトルバーだけにしておくのが良いかもです。(どちらの状態でも下記設定の通りに動きます)

Modの設定項目

Mod画面下部にあるチェックボックスで各設定の切り替えを行います。

  • Enable: このMod全体の動きをON・OFFします。
    OFFにするとダメージの取得や累積ダメージ計算・保持等をしなくなりますので、他の設定がONでも各出力もしなくなります。(ONだった時のダメージ情報は保持したままです)
    このModが不要なキャラは、これをOFFにしてMod画面を閉じておくのがオススメです。(ほぼ何もしない状態になります)
  • UpdateList: この画面内の累積ダメージ表示更新をON・OFFします。
    ONの時にMod画面が表示されていれば、Mod画面内のダメージ表示を更新します。
  • PrintChat:チャットログへの累積ダメージ出力をON・OFFします。
    ONの時、ダメージが発生するたびに累積ダメージ等をチャットログに出力します。
  • SaveLog:このMod専用のログファイルの出力をON・OFFします。
    ONの時、累積ダメージ等の情報を一定間隔で専用のログファイルに出力します。(※1
    このチェックを OFF→ONした時に未出力のダメージ情報があれば、即時ログファイルに出力します。
    ※1. ログファイルを出力する為のフォルダを事前に作っておく必要があります
    SAクライアントをインストールしたフォルダ内にある “logs” フォルダの中に “damage” フォルダを作成してください。

各機能はOFFにしておくと(当然ですが)負荷が下がる方向になりますので、動作が重く感じる時はMod画面を閉じる・不要な機能はOFFにするのをお勧めします。

Mod画面の再表示

上記設定とMod画面の状態はキャラごとに保存され、再ログイン時にも反映されます。
非表示にしてあるMod画面を再度表示するには下記のコマンドを実行してください。

  • [その他]コマンド
    コマンド

    script ClfDamageMod.toggleWindow()

または /script ClfDamageMod.toggleWindow() と発言(チャット画面で入力)でもOKです。

ダメージログについて

ログファイル出力を有効に設定した時に、SAクライアントをインストールしたフォルダ内にある “logs” フォルダの中に “damage” フォルダを作成しておくと、そのフォルダ内にdamages.{年月日}-{時分秒}.{ランダムな4文字}.txtといった名前のログファイルが作成されます。(ログイン、または、UIのリロードをするたびに新しい名前のファイルに出力します)

ファイルのエンコードは UTF-16LE ですが、半角英数(と一部記号)しか出力されないはずなので、見るだけなら大抵のテキストエディタで問題なく表示出来ると思います。

ログファイルには下記の様な情報が出力されます。

========== 15 [ 13:21:00 -> 13:21:15 ] ==========
a cave troll the wall guardian [15903426]
	
	Total Damage: 943
	Damage/sec: 62.87
	Damage/hit: 85.73
	Max Damage: 100
	Hit: 11
	Sec: 0:15
	Health: 0%
	
	Pet: Reptarou

見て分かるとおりですが一応説明すると、
通し番号[初撃時刻(JST) -> 最新与ダメ時刻(JST)]、対象の名前、累積ダメージ、DPS、平均ダメージ(ダメージ発生回数あたり)、最大ダメージ、ダメージ発生回数、初撃から最新与ダメまでの経過時間(分:秒)、残HP(パーセント)、あとペットを連れている場合はそのペットの名前(騎乗中も含む)、になっています。
※ 残HPのパーセントは4刻みなので、0%になっていても対象が死んでいない場合があります。また、対象のHP情報が取得出来なかった場合(死んでいる、遠くにいるなどの場合)は---となります。

出力されたログが即座にファイルに反映されていない様に見える場合があります。そういった場合にはファイルを一旦閉じてから開き直すと反映される事が多いです。

必要なファイル等

カスタムUIのダウンロード・導入方法についてはこちらのページをご覧ください。

追加フォント

Mod画面で使用しているフォントを追加する必要があります。
フォントの追加方法は「SAクライアントにフォントを追加する」ページをご覧ください。

フォルダの作成

SAクライアントをインストールしたフォルダ内にある “logs” フォルダの中に “damage” フォルダを作成してください。
ダメージのログファイルを書き出すために必要なフォルダになります。
(フォルダを作成しなくてもModは動作しますが、ログファイルは出力されません)

最後に

色々と説明が足りないかと思いますので、不明点などあればお気軽にコメントにてどうぞ。

全く動かない、何かのタイミングで動かなくなる、などの場合は、上記「必要なファイル等」をご確認いただいた上で、ご利用の環境(※標準UIでの使用が前提のModです)や、前後の行動など、分かる範囲でもお書き添えいただくと解決に近づきやすいかもしれません。

“累積ダメージを表示させる(UIモジュール)”への2件のコメント

  1. MOD公開ありがとうございます~ 
    おかげさまで無事導入できました^-^
    導入にはちょっと敷居が高いような?、でもこれくらいできる人じゃないとサポートできないよね?って納得してますw

    リアルタイムで確認するより、ログ見返して分析するのが楽しそうですね^-^
    (ログ表示が与ダメ合計だけじゃなく、最大ダメ・攻撃回数・DPSまで記録してログ出力してくれるので、火力マニアにはありがたいです^^:
    ※赤馬相手にDPS540.67が出ましたので、更なるハイスコア更新を目指します♪

    倒し切るまでの時間も出るようなので、タイムアタックの参考記録にもなりそうですね。
    (テキストファイルなので上書きズルもできそうですが、ファイル名と更新日時がズレるとバレバレですし^^;

    楽しめそうなMOD公開ホントありがとうございますm(_ _)m

    1. 早速のご利用&コメントありがとうございます!

      仰る通りで、導入するのに手間が掛かる部分(フォントの追加等)があって、SAクライアントの標準フォントで表示出来る様に変更して公開する事も検討したんですが、
      自分が普段使う物と違う物を公開すると、不具合が出た時の対応が難しいかなと・・・。(決して、故意に敷居を高くしている訳ではありませんよ? ^^;)
      ともあれ、当方の環境以外でもちゃんと動いた様で安心しました。

      あと、経過時間とDPSなんですが、記事中でも書きましたが実際とはズレ(多分最大で約2秒の差)が出るので、参考程度に見てくださいませ m(__)m

      大物相手なら2秒くらいの差は問題ないかなと思って、そのままにしちゃってますが、
      (時刻取得の最小単位が一桁秒なので)例えば、
      ・初撃: 9時0分の 1.00秒
      ・最終: 9時0分の 2.99秒
      だと、実際は 1.99秒なのが、Mod上で 0分1秒~0分2秒の 1秒間として表示・計算されますし、
      ・初撃: 9時0分の 0.99秒
      ・最終: 9時0分の 3.00秒
      だと、実際は 2.01秒なのが、Mod上では 0分0秒~0分3秒の 3秒間として表示・計算されます。
      と言った感じで、実際には0.02秒しか違わない物が2秒も違って計算される場合もあるので・・・ ^^;

      この辺も記事中で書こうか迷ったあげく、あまりクドクド書くのもどうかと思ったので省略しちゃいましたが、やっぱり書いておいた方が良いかもですね。(と言うわけで、本文に追記しました)

      にしても、DPS 540.67はスゴイですねw
      楽しんで使っていただけているようで嬉しいです ^^

      あと、ログ等を見て分析する他の使い方としては(こういう使い方をする人は少ないとは思いますが)
      トップダメを確認・調整するのに便利かなー、と思ってます。

uo.clife.work にコメントする コメントをキャンセル

※ 送信されたコメントは、管理者の承認後に公開されます。