AddOn作ろうぜ 第一回 - まずはtocファイルから -

| コメント(0) | トラックバック(0)
これから徐々にAddOnの作り方なるものを
紹介して…というより自分のためのメモ書きですがね…。
なので突っ込み大歓迎です。

まず、AddOnを作ろうなんて考える人はもう
AddOnを使っていると思うので設置方法とかは省きます。
長くなるとアレなんで今回はtocファイルだけ説明します。

●tocファイル
参考:http://www.wowwiki.com/The_TOC_Format

こいつは色々な設定を書き込んでおくもので作ったAddOnの中でも一番最初に読み込まれるものです。なのでtocファイルはAddOnのディレクトリと同じ名前にする必要があります。
つまり、TestTocFileというAddOnを作ったとすると

...¥Interface¥AddOns¥TestTocFile¥TestTocFile.toc


という状態になるということです。
(...はWoWインストールディレクトリ)

tocファイルは先頭を ## で開始し、その後ろに書かれたタグが処理されます。
そしてタグはその1行をその範囲とします。
また、TitleとNoteに関してはクライアントによって切り替えることが可能です。
詳しくはTitleとNoteを参照してください。

また、##の終わった後に読み込むファイルを指定したりします。
詳しくはサンプルを見てください。

注)タグの意味等に関しては長くなるので続きをご覧ください。
---
まずは基本的なタグです。

●Interface
そのAddOnがどのバージョンにおいて作成されたかを示す番号です。
ちなみに、今日現在のパッチの場合は20005になります。
ログイン画面の左下でバージョンを確認してください。
## Interface: 20005

●Title
AddOn一覧に表示するタイトルを設定します。
## Title: My Addon
## Title-deDE: Titel
## Title-frFR: Titre

上記のように言語によって変更できるようです。
また、下記のような方法で色づけ出来ます。
## Title: Title |cff7fff7f -Ace2-|r

●Notes
AddOn一覧でそのAddOnにマウスをあわせると出てくる説明文を設定します。
これも同じく言語によって変更できるようです。
## Notes: This is my first AddOn.
## Notes-deDE: Informationen
## Notes-frFR: Texte

●RequiredDeps
そのAddOnが機能するために必要な外部ライブラリが存在する場合に、
そのライブラリをロードすることを強制します。
,[コンマ]区切りで複数指定することが可能で、
AddOnディレクトリ名で指定してください。
## Dependencies: someAddOn, someOtherAddOn

または下記のように記述できます。同じ意味になります。
## RequiredDeps: someAddOn, someOtherAddOn

●OptionalDeps
RequireDeqsの任意版です。あると良いことありますよって感じです。
なので、存在している時と存在していない時できちんと動作するように
コードを工夫してやらないといけません。
,[コンマ]区切りで複数指定することが可能で、
AddOnディレクトリ名で指定してください。
## OptionalDeps: someAddOn, someOtherAddOn

●LoadOnDemand
v1.7からの機能
必要になった場合にロードするようにします。
他のAddOnでロードしてやる必要があります。
デフォルトは0です。明示的に書いてやるのもイイカモネ。
## LoadOnDemand: 1
## LoadOnDemand: 0

●LoadWith
v1.9からの機能
ここに書かれたAddOnがロードされた際に一緒にロードされるようにします。
コンマ区切りで複数指定することが可能で、
AddOnディレクトリ名で指定してください。
## LoadWith: someAddOn, someOtherAddOn

●SavedVariables
この機能は重要です。
クライアントが起動した時または、UIがリロードされた場合に指定された変数に読み込まれます。
セッションみたいな使い方でしょうかね。
昔はRegisterForSaveという関数か何かで保存していたそうです。
でも、今はサポート外なので使えません。

読み込まれた時にADDON_LOADEDというイベントが発行されるので
ソレを検知しましょう。AddOnがロードされた段階ではそのSaveされたはずの値が正常に読み込まれていない可能性があるため、そのことを考慮したAddOn設計が必要です。

指定方法は変数名をコンマ区切りです。
## SavedVariables: someVariable, someOtherVariable

●SavedVariablesPerCharacter
SavedVariablesのキャラ毎版です。
Realmとキャラ名を使用して値を保存します
## SavedVariablesPerCharacter: somePercharVariable

●DefaultState
そのAddOnが設置されてすぐに使う状態にされるかを決定します。
この項目を設定していない場合は「使用する」になります。
「使用しない」にした場合はユーザが自分の意思でチェックボックスにチェックを入れない限りこのAddOnは使用されません。
## DefaultState: enabled
## DefaultState: disabled

この設定は以下の場所に保存されているそうです。
...WTF¥Account¥{youraccount}¥AddOns.txt

●Secure
v1.11より追加
Blizzardクライアントのために追加されたもので、
使用用途が不明。
多分なんか証明書が云々であれそれこれなんですよ。
いや全然分かりません。

---

次に拡張タグ

##を利用して情報を追加することが可能です。
以下に記述するタグは一般的に使用されているタグです。

注)Wikiに書いてある"Ace2 Comment Tags"の項目に関しては省略します。

●Author
製作者が俺が作ったものだと誇示したいときに使用するタグです。
お名前をどうぞ。メールとかでもいいかも。
## Author: MyName

●Version
このAddOnのバージョンなんかを入れます。
## Version: 1.0

●X-<data>
さまざまなデータを入れます。
## X-email: Author@example.com
## X-Foo: I love pancakes
## X-Foo-esES: Te quiero, mi esposa

●eMail
メールアドレスとかどうぞ
## eMail: Author@example.com

●URL
ページ持ってればURLをどうぞ。
## URL: http://wow.example.com/


---

コレがサンプルになります。

## Interface: 20005
## Title : MyAddOn
## Notes: This is sample
## Author: penguin niisan
## eMail: penpen at penpennetworks.com
## URL: http://wow-blog.penpennetworks.com/
## Version: 1.0
## RequireDeps: NeedAddOn
## OptionalDeps: OptionalAddOn
## DefaultState: enabled
## SavedVariables: settingName, otherSettingName
myScript.lua
myAddOn.xml
myFrame.xml
myButton.xml


上の説明とあわせながら読んでみてください。

---

以上。長くなったけどこれで終了。
次回何するかは適当に考えます。

トラックバック(0)

トラックバックURL: http://wow-blog.penpennetworks.com/trackback/28

コメントする

アーカイブ

ウェブページ