TalesWeaverチャットログ(HTML)から何か色々集計するツールを作成中(画像あり)

TalesWeaver話。

アノマラドサーバーで、DEF-MR放出ジョシュアをしてます。

めっちゃしょっぱいステータスと装備で。
ユニクロ装備もびっくりの、驚きのリーズナブルな貧乏装備で、
かなりの低燃費の良コスト狩りを実現している(つもりである)。
(※もちろんその分、経験値時給は犠牲になる)


どこか気が狂ってるステータスは下記
LV:246
キャラクター:放出ジョシュア(初期型:変化)
ステータス:S47 H1 I255 F145 M127 X167 A1
ランダムは55%くらいじゃないかと思う。


装備は下記
【兜】キングクラウン(F14 M14 X3)
【鎧】ゴーストホワイト(S6 F80 I9 M27 X6)[(中)鎧研磨]
【武器】モナダークピュリ(S45 H45 F11 I84 M71 X4 A1 Q5)[(上)生命力、(中)知力、疾風の刃]
【盾】カリタス(F11 M27 X11)[N-盾研磨(上)]
【頭】クリスマスブローチ(F3 M3 X12 A2 Q3)
【体】懐中時計(F35 M17 X9 A1)
【手】次元の指輪(S1 H2 I9 M3 X1 A1)
【足】アベルシューズ(F4 M3 X1 A1 Q2)
【効果】荒々しい虎の魂(S3 H3 F6 I6 M6 X6 A2 Q3)
【称号】砂漠のオアシス(F4 M4)

これで装備の補正合計は、
突55 斬50 物防165 魔攻108 魔防172 命中41 回避9 敏捷10

改めて見ても魔攻が低い。
でも盾を本に持ちかえたり、ウィンキ被ったり、称号変えたり臨機応変に対応は出来る。

これでMR合計は299なので陣は消えない。
魔防重視装備にすると、結構短くはなる。


ペットは基本的には生命・迅速・強打・疾風で速度強化 + 自動取得。
これでAD1で体感9割くらいGBが命中。
命中回避の計算はしてないから信用性は薄いかもw

例えミスが出ても、
クリティカル依存せずにほぼGBで2セットが安定している事と、
人がさほど居ない過疎狩場ならば多少ミスが出ても人目は気にしなくて問題ない。

AD1で、経験値時給が250K〜って感じ。
経験値は低くてもしょうがない。


命中に関しては、
集中ペットを連れても、影の塔1ですらそこそこミスが出たような気がする。
魔法の沼1はスカスカでまず無理ぽ。
そもそもその辺は行く予定が無いので眼中にないですが、よく聞かれるので…。


個人的には、
・必中しないといけない
・A型じゃないといけない
・適正狩場にいくべきだ
・経験値時給、効率こそ全て
・皆やってる王道やセオリーにのっとるのが基本で正解に近い
みたいな事は全く思いません。

人に迷惑かけなければ、なんだっていい。
ゲームなんだから楽しくやれればいいし、それぞれの楽しみ方を見出せるならその方が長続きする。

自分としては、新しい楽しみ方を見つけたり模索するのが好きなので、
こんな事も出来るよ!このスキルはこうやって使えるんだよ!と提案していったり、
知られていない事を検証したりするのが好きなのさ。
これも1つの楽しみ方のスタイルだよね。



で、このDEF-MR放出ジョシュアのメリットを書くと
・装備にお金がかからない(GWでさえI+3でしょっぱいし、大体かなり安い)
・装備のクリ補正を気にする必要がない(案外皆考えていない盲点メリット)
・FMなのでダメージが少ない、事故死ほぼなし
・アンプリフィケーションで被ダメ10%ダウン
・エンチャ電撃・冷気・暗黒などで更にPOTがいらない
・POT代がほぼかからない
・HPはスペードシールドでOK
・MPは減らない
・SPはたまにスタミナタッチかけるか、面倒ならちょっとのココアでOK
・料理は煮豚(生豚肉x3+調理100seedでコスト199seed)だけで幸せになれる
・ペット自動取得でカウル売りがうまー。確実に黒字
・GBのダメージ倍率が高いので、FMにしても火力は期待出来る
って感じ。

変なステータスについていえば、
大雑把に
ステINT2 ≒ 魔攻1
くらいなので、S・H系の物理技よりはステ恩恵は大きい。
なのでその辺のジョシュがINT150くらいとして、
INT255により、魔攻75くらいはステで取ってる感じ。


FMにする際に先行Xienとかを考えると、
MR手動振りは多くしたくないし…など多々考えた末。

もちろん、装備が超充実してるならもっといいステは組めるだろうけれど、
こういうやり方もあるって事で。


これによってウィンキじゃなくてF・M・X取れるキングクラウン被って硬くしつつもある程度火力確保したりもできちゃうんですよ。
F・M補正がともに存在するFM装備はそこそこあるので、案外バランスはいいんです。
高LVの狩場を捨てたDEXだから出来る芸当ではあるんですけれどw


これが、
時給と高LV狩場をある程度捨てた上での、
リーズナブルかつ良コストパフォーマンスDEF-MR放出ジョシュア!


================================

ってのが前置きで、
これがどれだけ幸せなの?って事を皆に伝えるには文章じゃ弱いと思うわけ。

そこで私は考えた。

TWのチャットログ(HTML)から、
敵の経験値の合計(既にそういった時給計算ツールを開発されている方はいらっしゃいます)を出すと共に、
そこに加えて
「スペードシールドによる回復量」
「アイテムによるHP・MP・SP回復量と、その出費合計(※1)」
「料理の使用個数による、その出費合計(※2)」
「修理アイテムを使用した個数による、その出費合計(※3)」
「※1〜3を加えた出費合計、狩りにかかったコスト」
「拾ったアイテムのカウル売り値による収入見込み」
「収入見込み - コストによる、損得情報」
といった事を集計して見せられれば、

それPOT代かかんなくていいな!
って思わせられるんじゃない?って気がするの。

チャットログのHTMLは結構というかかなりお粗末でこんな感じのソースで保存されてる。

<body bgcolor="black">
<font size="2" color="white"> <b> Talesweaver Chat Message Log </b></font></br>
<font size="2" color="white"> <b> Date : 2011年    5月   25日 </b></font></br></br></br>
<font face="MS ゴシック">
<font size="2" color="white"> [16時 39分 37秒] </font> <font size="2" color="#ff64ff">今日はアノマラド商業組合が[商人の千里眼]を無料で支給する日です。</font></br>
<font size="2" color="white"> [16時 39分 37秒] </font> <font size="2" color="#ff64ff">午後12時からフリーマーケットを訪問してみて下さい。</font></br>
<font size="2" color="white"> [16時 39分 37秒] </font> <font size="2" color="#ff64ff">鬼哭の城三の丸の攻略に失敗しました。</font></br>
<font size="2" color="white"> [16時 39分 37秒] </font> <font size="2" color="#ff64ff">明日、再挑戦して下さい。</font></br>
<font size="2" color="white"> [16時 39分 38秒] </font> <font size="2" color="#ff64ff">武器に冷気の力が込められました : 状態異常[エンチャント:冷気]</font></br>
<font size="2" color="white"> [16時 39分 50秒] </font> <font size="2" color="#ff64ff">精錬しようとするアイテムの特性値が最大値なため、使うことができません。</font></br>
<font size="2" color="white"> [16時 39分 54秒] </font> <font size="2" color="#ff6464">最も多く習得したスキルの系統が、レベルアップ時の能力上昇に影響します。</font></br>
<font size="2" color="white"> [16時 40分  8秒] </font> <font size="2" color="#ff64ff">今日はアノマラド商業組合が[商人の千里眼]を無料で支給する日です。</font></br>
<font size="2" color="white"> [16時 40分  8秒] </font> <font size="2" color="#ff64ff">午後12時からフリーマーケットを訪問してみて下さい。</font></br>
<font size="2" color="white"> [16時 40分  9秒] </font> <font size="2" color="#ff64ff">武器に冷気の力が込められました : 状態異常[エンチャント:冷気]</font></br>
<font size="2" color="white"> [16時 40分 59秒] </font> <font size="2" color="#ff64ff">スペードシールドの効果が発動しました:状態異常 [スペードシールド]</font></br>
<font size="2" color="white"> [16時 41分  2秒] </font> <font size="2" color="#ff64ff">ペットのかばんにこれ以上アイテムを入れることはできません。</font></br>
<font size="2" color="white"> [16時 41分  2秒] </font> <font size="2" color="#ff64ff">経験値が 544 上がりました。</font></br>
<font size="2" color="white"> [16時 41分  3秒] </font> <font size="2" color="#ff64ff">スペードシールドの効果でHP [ 342 ] 回復しました。</font></br>
<font size="2" color="white"> [16時 41分  8秒] </font> <font size="2" color="#ff64ff">スペードシールドの効果でHP [ 361 ] 回復しました。</font></br>
以下略


これを集計・解析するスクリプトを、
5月中に開発はしたんだ、Rubyで。
もう本実装は終わってる。

ただ、私の技術不足のため、
常駐してログの更新を数秒に1回とか監視して、
自動でカウントアップしてく計算をしていくような素敵な仕様にはなってない。

あと、GUIじゃなくてWindowsコマンドプロンプトに文字で出す、
そっけないCUIアプリケーション。

だってRubyGUIアプリケーションってあまり参考記事多くないし、
ライブラリ少ないし、何より私のノウハウが無くて開発速度が遅くなっちゃうから・・・w
ごめんとしか言えん。


色々集計して数字出るようにした結果の画像は記事の下部に張ります。
こんなのが実行結果で出るよって事で。

これを、皆様も使えるように公開しようかなって思っています。

が、試しに若干何人かにテストしてもらったところ
「設定が難しい」
ともっぱら厳しい評判です。


とある有識者と思われる方から
Rubyって外部ファイル読み込めないの?
例えばXMLで設定して読み込ませらんない?
そっちのほうがよくね?
XSDで入力に間違いがないか検証出来るし。
プログラムコードをいじって設定変えるのは大体一般人じゃエラー出すでしょ(要約)」
と指摘を受けました。
ごもっともです。
言われて、そうすればよかった!とハッとした。

というわけで、
現在そのご指南頂いたXMLによる設定を可能にする対応を、
ちょいちょいとしている最中。
XML知識は薄いので試行錯誤しながらスローテンポで・・・w
XSDってのは何ぞ?って調べたけど、Rubyで扱えるかよくわからない。
Javaだと使えるみたいだけど、ごめん私Java嫌い(´;ω;`)
調べながらそれっぽくはXSDでスキーマ定義書いたけど、間違ってるかもしれない。


でも、最近思ったんですよ。
「内部プログラムを一般人にテキストエディタでいじらせるのは酷で、
難しいしハードル高い。それは間違いない、全面的に正しい。
何よりも、人に使わせるならそんなコード書き換えさせる実装ありえん。
なんつー状態で公開しようとしてんだろう俺・・・orz
・・・あれ?
でもXMLも一般人には難しいんじゃね??」
と。
イッツ盲点。

何人かに聞いたら、
XMLもパッとみて分かるようで何か難しいとおっしゃるし、お手上げー?
(とりあえず実装はするがね)


まだXML設定可能にする実装(XMLを解釈させるコード)を
実装してないんだけど、
そこがどうなるかだよなー。

そもそも使いたいって人居るかわかんないけど・・・。



とりあえず、
TWLogParse(仮)』ってことで今作ってはいます。
暇が多ければ6月上旬には出来ると思う。


ってことで長々なったけど、
集計ツール走らせたら出る結果の出力サンプル画像はこれ。
実はチャットログから分かる事は大体集計してる。





興味ある人はいるんだろうか。


所有装備データ定義→その中から装着している装備データ定義
とすると、補正合計は自動計算するようになってる。
ペットデータとかは表示してるだけで意味はなし。

この辺ログと関係ねーじゃねーか!って思うけれども、
一応経験値効率とか収入効率の変動が分かりやすいかと思ったんでね。

あと画面に出てない(出してない)けど、
・ティチのマナキスのMP回復回数と、回復総量
・クロエのマナドレインのMP回復回数と、回復総量
・ボリスのクレイアーマーの新規発動回数と、HP肩代わり総量
なんてのも集計対応してる。

もう1つ、
・叫び
・オープンチャット
・チームチャット
・耳打ち
・クラブチャット
で、
「誰が何回(何行)発言したか」も表示出来る。
画像では晒しにならないように設定ON/OFF切り替えを作ってOFFにしてる。

最後にどうでもいい事として、
画面出力はしないけど、
'ペットのかばんにこれ以上アイテムを入れることはできません。'
'午後12時からフリーマーケットを訪問してみて下さい。'
'照明アイテムを使ったら周りがよく見えます。'
のようなシステム的メッセージの出た回数(メッセージごと)と、

定期的に出るシステムメッセージ
'AGI : 回避率、クリティカル命中率に影響します。'
'DEF : 物理防御力に影響します。'
'DEX : 命中率、クリティカル回避率に影響します。'
みたいなのも表示メッセージごとに出た回数をカウントしてる。

実行後にファイル作成するから、それ見ればそこに保持する感じ。
(実行結果後にファイルを作成して保存するのは、
 逐次実行形式で作成している事もあって、
 前回の続きから集計・解析出来るような思索を入れてるので、
 一度行った集計・解析内容を保持させています。
 システムメッセージのカウントなんかは表示にいらないから、
 そこ見たら分かるよって感じの実装をした)

(重要)
損得情報、敵の撃破数・取得経験値情報、人様の発言回数情報
などが知りたかったらある程度使えるツールだとはいえる。
が、逐次実行する必要があるので、
「リアルタイムに時給が計測したい」
「リアルタイムに敵の激端数をカウントしたい」
って人には向かない。
その辺のツールは開発してる人いるから探してみたら幸せになるよ

=================


もしXML設定じゃなくて、
Rubyのコードを書き換えてでも早く試してみたい!って危篤な人がいたら、
どっかのuploaderにzipでうpる。

著作権は私なので、違法うpとか変な転載ではない。
一応ドキュメント・説明・FAQ類は割と充実させたのと、
サンプル設定としてデフォルトで私の設定を入れてあるから、
真似して改変しながら困ったらFAQ見てくれたら出来るんじゃないかなーと期待はしてたんだけど、
難しい・エラー出るらしい。


言い訳をすれば、
最初は自分で使う事しか考えなかったから、簡単なスクリプトにして、
段々機能を追加実装していったら膨らんで、
そこから人に使えるようにするのを考えるのが割と至難だったので、
頑張ってやってみて!FAQだけは結構充実させとく!!
というカスなスタンスになったのでした。

今はXML対応を頑張るけどね(つД`)


一番萎えてるのは、
XML設定の対応を済ませたとして、
かなり頑張って書いたHowTo的な設定チュートリアルのtxtとか、
設定サンプルのtxtとか、
readme.txtのファイル構成とか、
faq.txtの困ったときの項目とか、
その辺を超絶編集しないといけないことだよね。

これかなり力入れて最後に用意して、
根気が尽きたのを、改変とかそれだけでテンションが下がるwww
そこだけ後回しという名目で放置しようかってくらいの気持ちww

だめかなー、だめだよなー。
いつやろうかなーorz

興味ある人が応援してくれたら頑張れる気がするよ!(我ながらうぜぇw)



眠気のある中書いたこともあって、
文がまとまらない、あびゃー

寝ようっと。