TOC文件格式

    英语原文见http://www.wowwiki.com/TOC_format,这里翻译了部分,由于刚开始学习wow插件开发,TOC里面的很多东西没有亲自用过,所以翻译的不见得准确,我会在后续的学习过程中逐步完善该文档。

 

    TOC文件内定义了当前插件的相关信息,如哪些.XML或者.LUA文件需要加载。同时,他也被WOW用来识别一个插件,被显示在WOW的插件列表中并根据他里面的内容加载资源。TOC文件的名称必须和插件所在文件夹的名称相同,否则无法被WOW识别。除了TOC文件以外,其它文件的名称可以随便命名,只要他们的后缀正确并且和TOC里面或者XML文件中<Script> or <Include>节点里列出的文件名称相同就行。
    WOW只会读取文件中每行的前1024个字节,如果文件中有超过1024字节的行,WOW不会报错,但那些多余的字节将被忽略。

规范的标签选项

TOC文件中的每个标签以##开头,部分标签会带有本地化区域环境后缀。每个标签占用一行,标题(Title)和注意事项(Notes)标签可以用其他语言表示。如果想要获取一个完全的本地化区域环境列表,请参考API中GetLocale函数

接口(Interface)
接口数字用来标识本插件支持哪个版本的WOW,如果这里的版本号和WOW的版本号不一致,则WOW默认不会启动该插件。但是如果你强制关掉版本验证(“加载版本不一致的插件”),WOW将忽略掉TOC文件中的接口数字,继续启用该插件。如何获取当前客户端的版本号,请参考http://takewii.com/index.php?q=uggc%3A%2F%2Fjjj.jbjjvxv.pbz%2FUBJGB%3A_Trg_Pheerag_Vagresnpr_Ahzore
## Interface: 30100
表示插件适合的版本号为3.1.0
注意:如果TOC文件中的版本号相对于WOW客户端版本号过低,就算选中了强制加载选项,客户端也不会加载该插件。当出现这种情况的时候,在角色选择界面中的插件管理窗口里面,当前插件会被标注为“Incompatible”

标题(Title)
标题文本用来显示在插件选择界面。当你鼠标移动到插件列表中的当前插件时,标题文本也会显示。在Title后面可以加上一个横线,再在后面跟上区域标识,这样WOW就可以根据当前的语言选项来显示对应语言的标题。
## Title: My Addon
## Title-deDE: Titel
## Title-frFR: Titre
Title同时也支持颜色选项,与我们常见的一段文字中嵌入特殊颜色标识的链接一样,可以将Title中的某些字母用特殊颜色表示。下面这个将会将"-Ace2-"显示成绿色。
## Title: ag_UnitFrames  |cff7fff7f -Ace2-|r

注释(Notes)
当你鼠标移动到插件列表中的当前插件时,注释会显示在标题文本的下面。同标题一样,也可以通过在后面加上区域选项来是WOW在不同的环境下加载不同的NOTES.
## Notes: This is my first AddOn.
## Notes-deDE: Informationen
## Notes-frFR: Texte
Notes: Like 同标题(Title)一样, Notes里面也可以指定颜色.

依赖插件(RequiredDeps)
有些插件使用了第三方插件的一些东西,这个标签是强制要求WOW客户端在加载该插件的时候,先判断指定的插件是否都已经加载,如果其中任何一个没有加载,那么该插件将不被启用。依赖多个插件时,插件之间用逗号隔开。
## Dependencies: someAddOn, someOtherAddOn
你也可以用下面的这种方法表达同样的意思
## RequiredDeps: someAddOn, someOtherAddOn
注意: Dependencies, RequiredDeps, and Dependancies [sic] 都表达同一个意思.

可选依赖模块(OptionalDeps)
可选依赖模块是当前插件用来实现某些特定功能时用到的扩展库或者其他插件。如果WOW在加载插件的时候没有找到它的可选依赖插件模块,那么当前插件依然可以运行,但依赖于可选依赖模块(OptionalDeps)的功能将不能使用。因此,插件必须被设计成在没有可选依赖模块的时候也能正常运行,只是部分功能不能使用。
## OptionalDeps: someAddOn, someOtherAddOn

延迟加载(LoadOnDemand)
在早些版本的时候,当用户登陆WOW的时候,插件就一次性的全部加载了。从1.7版本后,插件可以在使用到的时候再加载,这样避免了一些很少使用的插件在WOW启动时就加载带来的内存浪费。
## LoadOnDemand: 1
## LoadOnDemand: 0

伴随加载(LoadWith)
从1.9版本开始. 当某些插件加载时(这些通常是暴雪公司的UI模块,比如Blizzard_AuctionUI),当前插件也随着加载. 该功能只有在延迟加载(LoadOnDemand)为1的时候才有作用。
## LoadWith: someAddOn, someOtherAddOn

LoadManagers
这个选项从2.1版本开始加入. 如果这里列出的插件有任何一个被加载, 那么你的插件将会被当作延迟加载(LoadOnDemand) (这里可以认为别的插件会在需要的时候负责你的插件的加载). 如果这里列出的插件没有在WOW中出现,那么当前插件将会按照常规形式启动。在AddonLoader中,有关于这个选项的应用实例介绍.
## LoadManagers: someAddOn, someOtherAddOn

存储变量(SavedVariables)
从2150版本接口开始,存储变量成为最新的保存会话间数据的一种方式。这些存储的变量将会在客户端启动或者界面重新加载的时候加载进来。 从现在开始,对插件开发者来说,函数RegisterForSave已经失效,存储变量(SavedVariables) 元标记将代替它. 要注意的是存储变量(SavedVariables) 并不是在OnLoad事件的时候全部加载,因此在将插件文件夹名称作为ADDON_LOADED事件处理的第一个参数传入之前,存储变量的值可能为空。
标记中存储变量的名称以逗号隔开
保存存储变量的文件位置在 /WTF/Account/<account name>/SavedVariables/<addon name>.lua
## SavedVariables: someVariable, someOtherVariable
这个比在脚本中注册变量更强大。即使你的插件被界面禁止、插件发生错误或者版本不匹配,这种方式也能起作用。

SavedVariablesPerCharacter
This tag behaves exactly like SavedVariables except that the variables are saved on a Per-Character basis. This tag only used to use character names to differentiate between characters, but now uses both the realm name and the character name.
The file that stores SavedVariables is
/WTF/Account/<account name>/<realm name>/<character name>/SavedVariables/<addon name>.lua
## SavedVariablesPerCharacter: somePercharVariable
Note: SavedVariablesPerCharacter are not available to any other character. If you need them to be, then use SavedVariables instead.

默认状态(DefaultState)
该选项定义插件安装后是否默认启用。如果设置为disabled,用户必须在角色选择界面那里将插件手动设置成启动。如果没有设置该选项,默认为enabled。
## DefaultState: enabled
## DefaultState: disabled
所有已安装插件的enabled/disabled状态都将被写到文件WTF\Account\{youraccount}\AddOns.txt中, WOW客户端会优先加载该文件,然后再加载老的DisabledAddOns.txt文件, DisabledAddOns.txt仍然被加载是为了保持向后兼容.

安全(Secure)
这个选项从1.11版本开始作为默认UI添加到Blizzard_ AddOns中来. 还不清楚他的确切目的, 有一种可能是告诉客户端是否需要检查插件的签名。
## Secure: 1


不规范的标签选项

It is possible to add more information using the ## directive, and some 3rd party programs even make use of some information provided. Below are some commonly used in addons.
AddOn Metadata Tags
These fields, along with Title and Notes can be retreived using GetAddOnMetadata.

作者(Author)
作者的名字或者电子邮件地址.
## Author: MyName

版本(Version)
插件版本可以是任何字符串,但是由于很多工具自动更新时都将版本号当作数字解析,所以最好至少以数字开头。
## Version: 1.0

X前缀(X-<data>)
所有以'X-'开头的选项
## X-email: Author@Domain.com
## X-Foo: I love pancakes
## X-Foo-esES: Te quiero, mi esposa

一般公认的X-<data>标签
等有空的时候再弄


.toc文件范例
## Interface: 30100
## Title : My AddOn
## Notes: This AddOn does nothing but display a frame with a button
## Author: My Name
## eMail: Author@Domain.com
## URL: http://www.wowwiki.com/
## Version: 1.0
## Dependencies: Sea
## OptionalDeps: Chronos
## DefaultState: enabled
## SavedVariables: settingName, otherSettingName
MyScript.lua
MyAddOn.xml
MyFrame.xml
MyButton.xml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值