2012年07月19日

CraftJapanizer仕様解説:Buffの日本語の表示

ファイル
CraftJapanizerBuffToolTip.lua
(CraftJapanizerToolTip.lua)
CraftJapanizerTooltip.xml

Buffの日本語訳は、CraftJapanizer独自のCraftJapanizerAssistTooltipに表示
CraftJapanizerAssistTooltipはGameTooltipTemplateを継承している

Item/Spellのように、GameToolTipに追加しないで、独自のもので表示しているのは、Buffの説明文の表示の場合、有効時間がリアルタイムに表示されている関係で、何度も再表示がかかり、その影響を受けて、きれいに表示できないため、その影響を避けるために、独自のTooltipで表示させることにした。

BuffのTooltipの表示の際には、SpellのときにhookしたOnTooltipSetSpellのイベントは発生しない。
そのため、Buff用のボタン(ボタンっぽくないけど、UIとしてはボタン扱い)をhookして、イベントを追加する形で対応している。

AuraButton_Update
http://wowprogramming.com/utils/xmlbrowser/live/FrameXML/BuffFrame.lua
のfunction AuraButton_Update

のときに、Buffがセットされるので、これをhookし、buffのボタンのOnEnter/OnLeaveイベントに日本語訳の表示する処理を追加している
posted by Astal at 22:27| Comment(0) | CraftJapanizer | このブログの読者になる | 更新情報をチェックする

CraftJapanizer仕様解説:Spellの日本語の表示

ファイル
CraftJapanizerToolTip.lua
(CraftJapanizerGameToolTip.lua)
(CraftJapanizerItemRefTooltip.lua)

Spellの日本語訳は、GameTooltipとItemRefTooltipに追加

SpellのTooltipの表示の際に

OnTooltipSetSpell
http://wowprogramming.com/docs/scripts/OnTooltipSetSpell

のイベントが発生するため、これをhookする。

Spell IDは

GameTooltip:GetSpell()
http://wowprogramming.com/docs/widgets/GameTooltip/GetSpell

で、取得できる(Item IDと違って直接取得できる。便利!)

■ 備考
GameTooltip : ItemやSpellにカーソルをあわせると表示されるTooltip
ItemRefTooltip : チャットのリンクなどをクリックすると、中央下段に表示される小ウィンドウ
posted by Astal at 21:57| Comment(0) | CraftJapanizer | このブログの読者になる | 更新情報をチェックする

CraftJapanizer仕様解説:Itemの日本語の表示

ファイル
CraftJapanizerToolTip.lua
(CraftJapanizerGameToolTip.lua)
(CraftJapanizerItemRefTooltip.lua)

Itemの日本語訳は、GameTooltipとItemRefTooltipに追加

ItemのTooltipの表示の際に

OnTooltipSetItem
http://wowprogramming.com/docs/scripts/OnTooltipSetItem

のイベントが発生するため、これをhookする。

Item IDは、直接取得する手段はなく、

GameTooltip:GetItem()
http://wowprogramming.com/docs/widgets/GameTooltip/GetItem

から、linkを取得し、”Hitem:数値:”の数値の箇所がItem IDとなる
http://wowprogramming.com/docs/api_types#hyperlink

■ 備考
GameTooltip : ItemやSpellにカーソルをあわせると表示されるTooltip
ItemRefTooltip : チャットのリンクなどをクリックすると、中央下段に表示される小ウィンドウ
posted by Astal at 21:23| Comment(0) | CraftJapanizer | このブログの読者になる | 更新情報をチェックする

CraftJapanizer仕様解説:改行箇所について

CraftJapanizerでは、以下のように改行コードをデータに含めています。

Item/Spell/Achievement : \n
Quest : 半角スペース x 2。データを表示するときに、\nに変換している (QuestJapanizerのなごり)

改行コードを含める箇所は、以下。

<<Item/Spell/Achievement>>

日本語形態素解析API
http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html

で、単語に分割。

その後に、以下を考慮して、適宜改行を入れる。

・単語の途中に改行コードが入らないようにする
・括弧の開始の直後に改行コードが入らないようにする
・句読点の直前に改行が入らないようにする
・マクロ$N数値の途中に改行が入らないようにする
・半角1、全角2で計算し、36前後で改行を入れるようにする

など。
また、事前に改行を含めてあるデータに関しては、その改行箇所を優先した上で、上記の対応を行っている。

<<Quest>>

wikiの改行箇所をそのまま採用
posted by Astal at 21:01| Comment(0) | CraftJapanizer | このブログの読者になる | 更新情報をチェックする

2012年07月18日

CraftJapanizer仕様解説:データ形式

<<CraftJapanizer_Spell>>

■ CraftJapanizer_SpellData.lua

Spell日本語データ

形式
["(1)"]={"(2)",(3),"(4)"},

(1) : Spell ID
(2) : Spellの日本語訳。数値のところは$N数値マクロで置き換え。
改行は\nで表記
(3) : (2)の数値の箇所が範囲表記の場合のマクロ。ハッシュ形式。
マクロがない場合はnil
(4) : Buffの日本語訳

(2),(3)
OptionのSpellTooltip_DisplayAvgValuesが有効な場合は、通常表示。無効な場合は、範囲マクロに置き換えをしている

(3)は、マクロをマクロで置き換えるような形をとっています。
{N1="$N1-$N2",N2="$N3"}
だと、元の$N1の箇所が$N1-$N2、元の$N2の箇所が$N3へ置き換わり、その後に数値に変換されます。


■ CraftJapanizer_SpellNewbie.lua

Beginner用Spell日本語データ
OptionのshowNewbieTipsが有効な場合に、一部、Beginner向けの説明文が表示されるので、その場合に使用。

形式
["(1)"]={"(2)"},

(1) : Spell ID
(2) : Spellの日本語訳


■ CraftJapanizer_SpellChain.lua

SpellのRankの連動データ。
ステータスの割り振りのところで、Rankが数段階あるものの場合、説明文が複数表示されるので、その関連づけを行うためのデータ

形式
["(1)"]="(2)",

(1) : 現在のランクのSpell ID
(2) : 次のランクのSell ID


■ CraftJapanizer_SpellGlyph.lua

Glyphデータ。
Glyph名称からSpell IDを特定する

形式
["(1)"]="(2)",

(1) : Glyph名称
(2) : Spell ID


<<CraftJapanizer_Item>>

■ CraftJapanizer_ItemData.lua

形式
["(1)"]={"(2)",(3)},

(1) : Item ID
(2) : Itemの日本語訳。平均・範囲の表示の切り替えがある数値のところは$N数値マクロで置き換え。改行は\nで表記
(3) : (2)の数値の箇所が範囲表記の場合のマクロ。ハッシュ形式。マクロがない場合はnil

(3)のマクロは、Spellと違い数値は埋め込みです。
{N1="7200-8800",N2="7200-8800"}
などのように範囲で設定しておき、平均の表示のときは、足して2で割る形で表示しています。


<<CraftJapanizer_Achievement>>

■ CraftJapanizer_AchievementData.lua

Achievement日本語データ。

形式
["(1)"]={"(2)","(3)","(4)"},

(1) : Achievement ID
(2) : Achievementの日本語訳。改行は\nで表記
(3) : 達成することで、タイトルが得られる場合は、そのタイトル
(4) : 攻略メモ


■ CraftJapanizer_AchievementIndex.lua

AchievementのAchievement名称からAchievement IDを特定するIndex。
ItemRefTooltipの表示のときに、Achievement IDを取得する手段がなかったので、Achievement名称から逆引きしている

形式
["(1)"]={(2)},
(2) = [(3)]={(4)},…

(1) : Achievement名称
(2) : Achievement ID(3)と陣営ID(4)のペア。
陣営ID : 1=Alliance, 2=Horde, 3=両方


<<CraftJapanizer_Quest>>

■ CraftJapanizer_QuestData.lua

Quest日本語データ

形式
["(1)"]={"(2)","(3)","(4)","(5)","(6)","(7)","(8)"},

(1) : Quest ID
(2) : titleの日本語訳
(3) : objectiveの日本語訳
(4) : descriptionの日本語訳
(5) : progressの予約エリア(未使用)
(6) : completionの日本語訳
(7) : 翻訳者名
(8) : 翻訳ステータス。 0=機械翻訳(Excite翻訳)、1=wiki翻訳(人力翻訳)

改行は、半角スペースx2になっています。(QuestJapanizerの名残)

以下のマクロがあります(以下では<>が全角ですが、実際は半角です)
<name> : プレイヤー名称に置き換え
<class> : プレイヤーのクラスに置き換え
<race> : プレイヤーの種族に置き換え

■ CraftJapanizer_QuestIndex.lua

QuestのタイトルからQuest IDを特定するIndex。
Quest受領時には、Quest IDの取得ができないので、タイトルなどからQuest IDを推測する

形式
["(1)"]={(2)},
(2) = [(3)]={(4),"(5)","(6)"}, …

(1) : Questタイトル
(2) : 判定データ
(3) : Quest ID
(4) : 陣営: 1=Alliance, 2=Horde, 3=両方, 0:不明
(5) : objectionキーワード(最大10文字)
(6) : completionキーワード(最大10文字)


キーワードについて
同一のQuestタイトルが複数ある場合があり、その場合に、受領時:objection、完了時:completionの文章の一部を使用して判定するようにしてある。
キーワードは、単純に、単語の先頭一文字を最大で10word分つなげただけ。

ex: This is a pen. = Tiap
posted by Astal at 22:11| Comment(0) | CraftJapanizer | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。