highlight

2016年8月30日火曜日

WoWJapanizer を Legion expansion で使えるようにする

昨日のエントリで、とりあえず WoWJapanizer がエラーを出さないようにしたが、もう少しまともな変更を施す事にする。

GlyphFrame がエラーを出していた件については現 version では Glyph 変更用のフレームが廃止されたそうなので、 バッサリとコードを除去する、という対応で問題なさそうだ。ただ minor glyph は残るそうなので、 この対応をどうすればいいのか、WoW 自体久々な私にはちょっと良くわからず、必要があれば又の機会に対応する事にしよう。

あとの二つは Interface Option の設定を取得する方法が変更された様なので、現行仕様に沿う(と思しき)方法に書き換える。多分 InterfaceOptions~ 変数が使えなくなったのだろう。 GetCVar() の引数に直接 CVar の名前を与えることにする。

  • InterfaceOptionsHelpPanelEnhancedTooltips を使っているところでは、"UberTooltips"
  • InterfaceOptionsDisplayPanelShowSpellPointsAvg を使っているところでは、"SpellTooltip_DisplayAvgValues"

これで Interface option の該当箇所のチェックを on/off したときに、その振る舞いが変わる様になると思う。 が、元のコードの意図をキチンと汲み取っているかどうかについては、ちょっと良くわからない。

以下、patch ファイルを掲示しておく。cygwin を使っている人なら、World of Warcraft/Interface/Addon/WoWJapanizer ディレクトリに mv して、

$ patch -p1 -u < 以下のパッチファイル

を実行すればいい。試してないけど多分パッチが当たる。 mac の人はよく知らないけど、中身が bsd だそうだから patch コマンドは普通に使えるんじゃないかな? cygwin とか patch が入ってないなら、以下の内容をみて、直接ファイルを書き換えると良いです。 ざっと見たら想像つくと思いますが、該当する .lua ファイルを見つけて、- の行を消して + の行で置き換えて行けばいいです。

diff -ur WoWJapanizer.orig/Data/Item/WoWJapanizer_Item.lua "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/Data/Item/WoWJapanizer_Item.lua"
--- WoWJapanizer.orig/Data/Item/WoWJapanizer_Item.lua 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/Data/Item/WoWJapanizer_Item.lua" 2016-08-30 23:14:43.177488500 +0900
@@ -12,10 +12,7 @@
     local text = self.Data[id][1]
 
     if self.Data[id][2] then
-        local checkbox = InterfaceOptionsDisplayPanelShowSpellPointsAvg
-        checkbox.cvar = "SpellTooltip_DisplayAvgValues"
-
-        if tonumber(GetCVar(checkbox.cvar)) == 1 then
+        if tonumber(GetCVar("SpellTooltip_DisplayAvgValues")) == 1 then
             local n = {}
             for k, v in pairs(self.Data[id][2]) do
                 local i1, i2 = v:match('(%d+)-(%d+)')
diff -ur WoWJapanizer.orig/WoWJapanizer.toc "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizer.toc"
--- WoWJapanizer.orig/WoWJapanizer.toc 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizer.toc" 2016-08-29 22:10:18.188131500 +0900
@@ -1,4 +1,4 @@
-## Interface: 60200
+## Interface: 70000
 ## Title: WoWJapanizer
 ## Notes: Translate Quest data, Item ToolTips and Spell ToolTips into Japanese text.
 ## Version: 3.0.0
diff -ur WoWJapanizer.orig/WoWJapanizerGlyphToolTip.lua "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerGlyphToolTip.lua"
--- WoWJapanizer.orig/WoWJapanizerGlyphToolTip.lua 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerGlyphToolTip.lua" 2016-08-29 22:40:23.687407600 +0900
@@ -4,44 +4,6 @@
 WoWJapanizerGlyphToolTip.GlyphStore = nil
 
 function WoWJapanizerGlyphToolTip:OnEnable()
- hooksecurefunc("GlyphFrame_LoadUI", function()
-  for _, button in next, GlyphFrameScrollFrame.buttons do
-   button:HookScript("OnEnter", function(_button)
-    if _button.isHeader then
-     return
-    end
-
-    local name, glyphType, isKnown, icon, glyphID = GetGlyphInfo(_button.glyphIndex)
-
-    if not WoWJapanizer.db.profile.spell.tooltip then return end
-    if not WoWJapanizer:LoadAddOn("WoWJapanizer_Spell") then return end
-
-    local spell = WoWJapanizer_Spell:GetGlyphByName(name)
-
-    self:OnShow(spell, glyphID)
-   end)
-
-   button:HookScript("OnLeave", function(_button)
-    self:OnHide()
-   end)
-  end
-
-  hooksecurefunc("GlyphFrameGlyph_OnEnter", function(_button)
-   local enabled, glyphType, glyphTooltipIndex, glyphSpell, icon = GetGlyphSocketInfo(_button:GetID())
-
-   if not glyphSpell then return end
-   if not WoWJapanizer.db.profile.spell.tooltip then return end
-   if not WoWJapanizer:LoadAddOn("WoWJapanizer_Spell") then return end
-
-   local spell = WoWJapanizer_Spell:Get(glyphSpell)
-
-   self:OnShow(spell, nil)
-  end)
-
-  hooksecurefunc("GlyphFrameGlyph_OnLeave", function(_button)
-   self:OnHide()
-  end)
- end)
 end
 
 function WoWJapanizerGlyphToolTip:OnShow(spell, glyphID)
diff -ur WoWJapanizer.orig/WoWJapanizerToolTip.lua "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerToolTip.lua"
--- WoWJapanizer.orig/WoWJapanizerToolTip.lua 2015-06-24 11:22:02.000000000 +0900
+++ "../Blizzard/World of Warcraft/Interface/AddOns/WoWJapanizer/WoWJapanizerToolTip.lua" 2016-08-30 23:12:59.041724400 +0900
@@ -170,9 +170,7 @@
 end
 
 function WoWJapanizerToolTip:CheckEnhancedTooltips()
-    local checkbox = InterfaceOptionsHelpPanelEnhancedTooltips
-    checkbox.cvar = "UberTooltips"
-    if tonumber(GetCVar(checkbox.cvar)) == 1 then
+    if tonumber(GetCVar("UberTooltips")) == 1 then
         return true
     else
         return false

久々の Wow で addon を使うときの話

World of Warcraft に復帰しようかなと思っている。

2年以上放ったらかしていたり、利用端末を入れ替えていたりするので、使えなくなった Addon もある。Bliz のデフォルトの UI では遊べない体になっているので、どうにかしないとやる気が出ない。 大体は Curse client でアップデートできるので問題ないが、使えなくなってしまった Addon や、使うまでに一手間かかるものもあるので、その時のメモ。

バージョン番号の更新は、*.toc ファイルの一行目 ## Interface: のあとの数値を 70000 にすれば、とりあえず Legion の最初(2016/08/30)のバージョンで outdated になることは無いので、70000 未満だったら書き換えておくこと。

Wowjapanizer

Legion 用にはアップデートされていないようだ。エラーがでて鬱陶しいが、日本語のテキストは表示されているようだ。とりあえずエラーが出ないよう、エラーが出る部分は削除かコメントアウトしとけばいいか。.toc ファイルのバージョンも 70000 にしておく。

  1. WoWJapanizerToolTip.lua の CheckEnhancedTooltips() は return false だけを残してあとはコメントアウトする。
  2. WoWJapanizerGlyphToolTip.lua の OnEnable() の中身を空にする。
  3. Data/Item/WoWJapanizer_Item.lua の Get(id) の if self.Data[id][2] then の中身、else 以降は残して、そこ以外を除去する。

これでとりあえずエラー表示無しで、日本語のクエストログが表示されるようになった。他にもエラーが出るかもしれないが、その都度対応すれば良かろう。 根本的に解決したいが、GryphFrame というのが何なのか、まだよく分かっていない。

SavedVariables

Bartender4, Shadow Unit Frame を使っていたが、これを設定し直すのは面倒なので、古いディスクから設定ファイルを持ってくる。設定ファイルは WTF/Account/<アカウント名>/SavedVariables 以下の *.lua ファイルなので、これをコピーすればそのまま使える。画面サイズなどが異なっていると、ずれたりするのかもしれない。

WowPro

Waypoint の矢印を表示するには、TomTom というアドオンをインストールしておく必要があるというのは完全に忘れていた。予めインストールしておく事。

Prat

Prat の fonts ディレクトリに使いたいフォントファイルをコピーしてから、以下の行を fonts.lua に追加する。
LSM:Register("font", "<フォント名>", [[Interface\Addons\]] .. folder .. [[<フォントのファイル名>]])

2016年8月26日金曜日

Overwatch 等ネットゲームでラグが発生する件について

新たに組み立てた i6700k + GTX 1080 マシン、頗る快調だと思っていたが、Overwatch や World of warcraft 等で遊んでいると、やけに動作が引っ掛かる。mob やプレイヤキャラがワープしまくる感じで非常に遊びづらい。

Nvidia Experience のプロファイルで最適化した設定では負荷が掛かり過ぎるのかと思っていたが、Doom なんかはヌルヌル動いているし、フレームレイトが落ちている訳でもない感じだった。 じゃあラグか?とも思うがネットワークは前に使っていた端末の LAN ケーブルをそのまま差し替えている。そして以前にはこんなラグは発生していなかった。ネットワークが遅い訳でも無さそうに思っていた。

じゃあなんで?と一週間ぐらい漠然と考えていたが、ふとデスクトップに Game First III というアイコンがあるのを見て、そういえばこのマザーボード Asus Z170 Pro Gaming には、ネットワークの帯域をゲームのパケットを優先的に利用させるという触れ込みの機能がついていたのを思い出した。 ああ、これで設定すればいいのかなと思い、使ってみたのだが、そもそも Overwatch とかのゲームを直接選択できない。 これどうやって使うんだろう?と思い、ググってみたら、Game First を使うとラグが発生するからそもそも使うべきじゃない。という英語圏の記事が割と沢山検索できてしまった。 そんなアホな、と思いながらこのサービスを停止させて Overwatch で遊んでみると、確かに敵がワープしたりしない。ホントに解消されてる・・・

このマザーボードの機能は切っておくのが正解やったんや・・・

具体的には、

  • タスクマネージャのサービスタブで、AsusGameFirstService を探してこれを停止にする。

これで上手く問題が解消されたら、次回起動時にもこのサービスは起動しないようにしておこう。

  1. 同じくタスクマネージャのサービスタブで、画面下部にあるサービス管理ツールを開くをクリックして、サービス設定アプリケーションを起動する。
  2. AsusGameFirstService をダブルクリックか右クリック > プロパティでプロパティ画面を開く。
  3. スタートアップの種類を「無効」に変更する。

2016年8月25日木曜日

i7-6700K機を組み立てる

5年ほど i7-2600 機を使っていた。Windows10 にアップグレードして一月ほどたったある日、クラッシュして復帰したら、ログインしても自分のデスクトップが現れず(アイコン表示されず、背景も真っ黒)、タスクバーも出てこない。

辛うじて、Ctrl+Shift+Esc キーでタスクマネージャは起動するので、そこからコマンドを実行することはできるので、なんとか使えなくもないのだが、きわめて不便だ。 色々復帰は試みたが元には戻せず、そろそろマシンの更新したい気持ちもあって、再インストールするくらいなら、新しいマシンを作ってやろうということでパーツを調達し始めた。ここ暫くは BTO で良いかと思って BTO PC を購入していたので、組み立ては 10 年ぶり位になると思う。

まず GPU を選定する。RX480 にするつもりだったが、229$ のはずが国内価格が 35,000 円位になっている。それにどうもかなり電力消費が大きく爆熱というレビューが多いので、nVidia のものを調べてみると、GTX 1080/1070 も国内価格は元値より二万円程高く設定されている。

国内での調達はあまりにもアホらしいので、MSI GeForce 1080 Armor 8G OC を Amazon.com で購入した。これはまだ手元に届いてないので、現時点では吉と出るか凶と出るか不明だが、少なくともボッタクられている不愉快感は払拭できる。

GPU 以外のパーツは調達してきたが、GPU が来るまでは大した作業はさせないので、のんびり組立・調整していこうと思う。

旧マシンのベンチマーク

3D Mark - Fire Strike

Graphics score
4617
Physics score
8313
Combined score
1779
Over all
4224

組み立て完了

今の PC ってめっちゃ組み立て易くなっていて、かなり久々な私がじっくり作業しても、二、三時間で組み立てが一通り完了した。 まあ、気を付ける必要があるのは CPU とそのクーラーの取り付け位で、結線のレイアウトに悩む時間が大半だった。 とりあえず電源を入れたら BIOS 設定(今は UEFI というらしいが)画面に辿り着いて、各種デバイスもキチンと接続できているであろうことを確認する。ここで memtest86+ を実行放置させながら寝る。

翌朝、memtest が二周ちょっと Pass しており、Error が 0 である事が確認できた。ここで Windows10 Home 64bit をインストールする。OS を ssd にインストールするのは初めてだ。速い、HDD よりも格段に速い。

次に行うべきは、マザーボード付属の各種ドライバ・ユーティリティのインストール。これを行わないと、オンボードのネットワークすら使えないようだ。

Asus の AI Suite 3 ユーティリティについて、Ez Update というアプリケーションを更新すると、ログイン直後エラーが発生するようになった。Asus のサイトからこのユーティリティをダウンロードしてインストールすれば、このエラーが解消されるようになった。

Sandisk のサイトから ssddashboard をダウンロードしてインストールする。 480GB ssd の接続速度が 3Gb/s になっている、との報告あり。SATA ケーブルをよく見ずに接続していたせいか。

自分で作成した文書やソースコード等は、NAS に置くようにしていたので、せいぜい使用履歴からファイルを開くことが出来ない程度の不便さで済むから助かる。

ドライバ

繋ぐだけでok

  • Roland Quadcapture (但し最初は失敗する。そのまま再起動すると認識してた。)
  • Razer DeathAdder 2013
  • Razer BlackWidow Chroma
  • Hori RAP5 Silent

ダウンロード&インストール

  • Epson PX-7V(ネットワーク接続)
  • Logicool G430
  • Logicool G27(G430 とは共通性のないユーティリティを使う)

アプリケーション

とりあえず使っていたアプリケーションは移行させないと、色々滞る。

  • Chrome
  • Firefox
  • Thunder Bird (旧プロファイルをコピーすればそのまま使える。gmail は二段階認証の再登録が必要)
  • Google日本語入力
  • Photoshop Lightroom 4
  • Battle.net client と関連ゲーム
  • Steamと関連ゲーム
  • Origin と関連ゲーム
  • Adobe Production Premium 5
  • QNAP qfinder
  • Cygwin 64bit
  • gpg4win
  • Finale 2012
  • Finale 2014
  • JamVOX

導入予定のアプリケーション

  • Libre Office
  • Emacs
  • Git
  • Visual Studio
  • Unreal Engine 4
  • Sonar X3

ベンチマーク (定格 Intel HD Graphics 530)

3D Mark - Time Spy

Graphics score
268
CPU test
4482
Over all
312

ベンチマーク (定格 MSI GeForce 1080 Armor 8G OC)

3D Mark - Time Spy

Graphics score
7256
CPU test
4991
Over all
6793

3D Mark - Fire Strike

Graphics score
22862
Physics score
12621
Combined score
7792
Over all
17384