>[danger] 所有標簽都要以"##"開頭,到行尾結束 提供了有關AddOn的基本信息。
以`#`開頭的行被視為注釋,并且被WoW忽略。
另外兩行(不是以開頭`##`)告訴WoW哪些文件屬于AddOn(此處`eCoordinates.lua`和`eCoordinates.xml`)。
例子:
~~~
## Interface: 60200 -- 游戲版本(必須)
## Title: eCoordinates -- Name shown when viewing AddOn list.
## Version: 1.0 -- Version number (if there are multiple versions)
## Notes: Simple GPS -- AddOn tooltip on loading screen.
## Author: eSaith -- Not required; author of
?eCoordinates.lua -- .lua 讓WoW知道它正在尋找什么Lua文件(必須)
eCoordinates.xml -- 加載xml文件
~~~
## Interface:
```
格式:##Interface:11200
```
這里Interface表示插件對應的游戲客戶端的版本號,如果插件的Interface號和當前游戲客戶端版本號不一致,那么游戲默認不會加載插件,但你可以在插件管理面板中手動加載"過期插件",這樣游戲就會忽略Interface
獲取當前客戶端版本號游戲兩天礦輸入 /dump GetBuildInfo() 第四個就是版本號啦
或者 /run print((select(4, GetBuildInfo())))
## Title:
格式:
```
##Title: My Addon
##Title-zhCN: 我的插件
```
Title表示插件的名稱,也就是插件管理面板里顯示的那個。支持多語言定義,默認為英語。其他語言要在Title后面加上后綴,就像上面那樣。zhCN表示簡體中文,zhTW就是臺灣的繁體中文。前面2個小寫是語言,后面2個大寫是國家和地區。
還有個好玩的東西就是顏色,WoW支持字串形式的顏色定義。插件面板默認字體顏色是黃,你可以根據自己的喜好自行定義文本顏色,這里就用到顏色字串。顏色字串以"|c"開頭"|r"結束。中間是16進制αRGB顏色代碼和要顯示的文本。比如我要將"我的插件"幾個字顯示為藍色。那么就應該是:
```
##Title: |cff0000ff我的插件|r
```
其中|c表示接下來的8位字符是顏色代碼,以α(alpha透明度)、R(紅)、G(綠)、B(藍)順序排列。前面2位ff表示被著色的文本完全不透明,但需要指出的是并非所有的地方都支持透明。之后就是著色的文本了,這里就是"我的插件",|r表示顏色結束,如果沒有結束標記,那么WoW將顏色代碼以后到這一行結束的全部文本都進行著色。
值得一提的是,這個顏色字串應用相當廣泛,包括人物ID也可以,這也是為什么暴雪禁止使用符號和數字以及英文漢字混合的原因了,當然也是考慮到搜索的方便。
## Note:
格式:
```
## Notes: This is my first AddOn.
## Notes-zhCN: 這是我的第一個插件。
```
只有Title和Notes標簽支持其他語言,除此之外都要用英語書寫。Notes包含插件的說明內容,就是對插件功能的簡單描述,將出現在插件管理面板中鼠標經過的地方。
## Dependencies``
## RequiredDeps:
格式:
```
## Dependencies: someAddOn, someOtherAddOn
## RequiredDeps: someAddOn, someOtherAddOn
```
Depend是依賴的意思。為了讓插件更好地工作,某些插件開發者會使用第三方庫或其他現成的插件作為基礎和輔助,這么做的有點就是節約了開發成本,也使開發過程簡便了許多,不足的地方就是,要讓插件正常工作,系統必須確保所依賴的文件都要存在,否則,如果任何依賴的庫或插件缺失,當前插件加載都會失敗。依賴的名稱即依賴插件的名稱,也就是目錄文件夾的名稱。如果需要依賴多個庫或插件,彼此用逗號","隔開。注意大小寫一致。
注: Dependencies、RequiredDeps、Dependancies[sic]結果是一樣的。
## OptionalDeps:
格式:
```
##OptionalDeps: someAddOn, someOtherAddOn
```
`可選依賴`是當前插件為了實現某些附加功能而依賴的外部庫或插件,但如果依賴的東西不存在,那么當前插件也可以正常工作,但是使用可選依賴的插件必須寫明當依賴不存在的時候也可以工作。
## LoadOnDemand:
格式:
```
## LoadOnDemand: 1
## LoadOnDemand: 0
```
從1.7開始,插件可以用命令來加載,而不用非得在用戶第一次登錄的時候加載。如果啟用這一功能,此插件則必須在未來某個時候被另一個插件加載。這是為了避免加載一些特殊的不常用的插件而導致內存資源占用,非常有效。副魔助手(Enchantrix)就用到了這一特性。
## LoadWith:
格式:
```
## LoadWith: someAddOn, someOtherAddOn
```
1.9新加的。和LoadOnDemand一起用,這使你的插件跟隨某個插件一起被加載(通常是暴雪的UI模塊,像Blizzard_AuctionUI)。
## SavedVariables:
格式:
```
## SavedVariables: someVariable, someOtherVariable
```
從Interface版本2150開始有的(統一存放的變量),保存的變量是當前流行的存儲不同人物角色的方式。這些變量在客戶端啟動或UI重載(reload)時被載入。SavedVariables標簽現以取代RegisterForSave函數,后者已經不再受客戶端支持。注意在OnLoad事件過程中,SavedVariables并未完全加載所以必須假設包含nil(空)值直到以插件文件名為參數的ADDON_LOADED事件被觸發。
這比以前那個為保存注冊變量的腳本強的多,因為即便你的插件被禁用或因為錯誤、版本不匹配等問題沒有加載,SavedVariables依然會被保存。
## SavedVariablesPerCharacter:
格式:
```
## SavedVariablesPerCharacter: somePercharVariable
```
這個標簽和SavedVariables工作方式一樣,只不過是給予每個角色創建的。以前這個標簽只能用角色名來區分不同的角色,現在可以根據服務器和角色名一起來區分了。
## DefaultState:
格式:
```
## DefaultState: enabled
## DefaultState: disabled
```
這里的enabled/disabled狀態被寫在WTF\Account\{youraccount}\AddOns.txt里,{youraccount}部分是你的帳號名。并且這個文件會覆蓋的DisabledAddOns.txt,后者為了保持兼容仍然會被老版本的加載。
## Secure:
格式:## Secure: 1
這個標簽被添加到Blizzard_UI(1.11中作為默認UI一部分)。它的確切目的無從知曉,但一個可能就是它告訴客戶端是否要為插件尋找一個簽名。
非標準標簽:
用##標示還可以添加更多額外的信息,某些第三方插件甚至使用自行提供的信息。下面是一些常用的標簽:
插件元數據標簽:
這些標簽和Title、Notes放在一起,并可用GetAddOnMetadata("addon", "field")來調用。
## Author:
格式: ## Author: MyName
作者的名字,也可以是Email地址。
## Version:
格式: ## Version: 1.0
插件的版本號。可以是任何字符串,因為自動更新的工具會解析數字,所以最好是以數字版本開頭。
## X-\<data>:
格式:
```
## X-email: Author@Domain.com
## X-Foo: I love pancakes
## X-Foo-zhCN:偷心賊
```
任何以X-開頭的標簽。
## Ace2注視標簽:
和Ace不一樣,Ace2直接從TOC文件提取插件元數據,特定的域(field)進行特定的處理,即Version和X-Date,那么你就可以用CVS和Subversion關鍵字例如$Rev$作為它們的值。
除了正經域以外,它還可以尋找下列自定義的域。
## X-Date:
格式: ## X-Date: 12-06-2007
插件的發布日期。
## X-eMail
格式: ## X-eMail: frankcupid@hotmail.com
## X-Website:
格式:## X-Website: http://maplezone.spaces.live.com
插件的網站。
## X-Category:
格式: ## X-Category: Raid
插件的Ace2目錄。
此目錄在AceAddon.lua中聲明。
local CATEGORIES = {
["Action Bars"] = "Action Bars",
["Auction"] = "Auction",
["Audio"] = "Audio",
["Battlegrounds/PvP"] = "Battlegrounds/PvP",
["Buffs"] = "Buffs",
["Chat/Communication"] = "Chat/Communication",
["Druid"] = "Druid",
["Hunter"] = "Hunter",
["Mage"] = "Mage",
["Paladin"] = "Paladin",
["Priest"] = "Priest",
["Rogue"] = "Rogue",
["Shaman"] = "Shaman",
["Warlock"] = "Warlock",
["Warrior"] = "Warrior",
["Healer"] = "Healer",
["Tank"] = "Tank",
["Caster"] = "Caster",
["Combat"] = "Combat",
["Compilations"] = "Compilations",
["Data Export"] = "Data Export",
["Development Tools "] = "Development Tools ",
["Guild"] = "Guild",
["Frame Modification"] = "Frame Modification",
["Interface Enhancements"] = "Interface Enhancements",
["Inventory"] = "Inventory",
["Library"] = "Library",
["Map"] = "Map",
["Mail"] = "Mail",
["Miscellaneous"] = "Miscellaneous",
["Quest"] = "Quest",
["Raid"] = "Raid",
["Tradeskill"] = "Tradeskill",
["UnitFrame"] = "UnitFrame",
}
# 其他注釋標簽:
## Email:
格式: ## eMail: Author@Domain.com
插件作者Email地址。
## URL:
格式: # URL: http://wow.mywebsite.com/
插件或作者的網站地址。
.toc文件樣例:
## Interface: 20300
## 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
myAddOn.xml
MyFrame.xml
MyButton.xml
## eMail
## UIType 插件類型
- 基礎
- 循環
- 迭代器
- ipairs與pairs 的區別
- 流程控制if
- 函數
- 運算符
- 字符串
- 數組
- table(表)
- 模塊與包
- 魔獸插件
- 初學介紹
- api
- Global API
- Widget API
- 窗口小部件類層次結構(Widget Class Hierarchy)
- 動畫(Animation)
- 透明度(Alpha)
- 線條縮放比例(LineScale)
- 平移(Translation)
- 線平移(Line Translation)
- 路徑(Path)
- 旋轉(Rotation)
- 縮放(Scale)
- 紋理坐標平移(TextureCoordTranslation)
- 框架 :Frame
- 瀏覽器(Browser)
- 按鍵(Button)
- Item按鈕(ItemButton)
- 檢查按鈕(CheckButton)
- 檢測(Checkout)
- 顏色選擇(ColorSelect)
- 冷卻(Cooldown)
- 編輯框(EditBox)
- 戰爭迷霧(FogOfWarFrame)
- 游戲工具提示(GameTooltip)
- 消息框(MessageFrame)
- 小地圖(Minimap)
- 模型(Model)
- 玩家模型(PlayerModel)
- 電影模型(CinematicModel)
- 換裝模型(DressUpModel)
- 戰袍模型(TabardModel)
- _模型場景(ModelScene)
- 電影Frame(MovieFrame)
- 根小部件(Root Widgets)
- UIObject衍生品(UIObject Derivatives)
- 動畫衍生品(Animation Derivatives)
- FontInstance
- 地區衍生品(Region Derivatives)
- 幀衍生品(Frame Derivatives)
- 特殊(Special)
- Events(游戲中變化的事件)
- WoWAPI
- Global Function Groups
- 帳戶(Account)
- 成就(Achievements)
- 動作條(Action Bars)
- Action Buttons
- 插件(AddOns)
- 冒險指南(Adventure Guide)
- 神器(Artifact)
- 拍賣行(Auction House)
- 黑市AH
- 魔獸代幣(WoW Tokens)
- Azerite
- 背包(Bags)
- 容器(Containers)
- 庫存(Inventory)
- 銀行(Bank)
- 公會銀行(Guild Bank)
- 理發店(Barber Shop)
- 書籍(書籍)
- 日歷(calendar)
- 相機(Camera)
- 頻道(Channels)
- 聊天窗口(Chat Window)
- 社區(communities)
- 語音聊天(Voice Chat)
- 推特(Twitter)
- 角色(Character)
- 角色表(Paper Doll)
- 試衣間(dressing room)
- 活動(Movement)
- 指定目標(Targeting)
- 死亡(Death)
- 過場動畫(Cinematics)
- 職業(class)
- 天賦(Talents)
- 收藏(Collections)
- 坐騎(Mount Journal)
- 寵物(Pet Journal)
- 玩具箱(Toy Box)
- 傳家寶(Heirlooms)
- 外觀(Appearances)
- 戰斗記錄(Combat Log)
- 戰斗寵物(Combat Pets)
- 同伴(Companions)
- Contribution Collection
- 貨幣(Currency)
- 光標(Cursor)
- 客戶支持(Customer Support)
- 知識庫(Knowledge Base)
- 設備管理器(Equipment Manager)
- 擴展(Expansions)
- FrameXML
- 好友(Friends)
- Who List
- 真實身份證(Real ID)
- 招募朋友(Recruit-a-Friend)
- 駐軍(Garrisons)
- 建筑物(Buildings)
- 戰利品(Trophies)
- 追隨者與任務(Followers & Missions)
- 團隊(Groups)
- Raid Groups
- Raid Profiles
- 組查找器(Group Finder)
- 突襲者(Raid Finder)
- 公會(Guild)
- 檢查(Inspection)
- Instances
- 場景(Scenarios)
- Mythic+
- 入侵(Invasions)
- 海島探險(Island Expeditions)
- Items
- 按鍵綁定(Key Bindings)
- Modifiers
- 劫掠(Looting)
- 失控(Loss of Control)
- 宏命令(Macros)
- 郵件(Mail)
- 地圖(Maps)
- 飛行管理員(Flight Master)
- 追蹤(Tracking)
- 商人(Merchant)
- 銘牌(Nameplates)
- 寵物大戰(Pet Battles)
- 申請書(Petitions)
- 專業(Professions)
- 考古(Archaeology)
- 附魔(Enchantments)
- 雕文(glyphs)
- 物品插口(tem Socketing)
- PvP
- 競技場(Arena)
- 戰場(Battlegrounds)
- 世界戰場(World Battlefields)
- 爭吵(Brawl)
- 戰爭游戲(War Games)
- 戰爭模式(War Mode)
- 任務 (Quests)
- 任務日志(Quest Log)
- 任務選擇(Quest Choices)
- Task Quests
- 閑聊(Gossip)
- 探險地圖(Adventure Map)
- 戰爭戰役(War Campaigns)
- 種族(Races)
- 境界(Realms)
- 報告(Reporting)
- 聲望(Reputation)
- 報廢的機器(Scrapping Machine)
- 法術(Spells)
- Spell Book
- 商店(Shop)
- 召喚(Summoning)
- 系統(System)
- 網絡(Network)
- 控制臺(Console)
- 日期時間(Date & Time)
- 調試(Debugging)
- 圖形(Graphics)
- 語言環境(Locales)
- 腳本分析(Script Profiling)
- 安全執行(Secure Execution)
- 聲音(Sound)
- Sound Drivers
- Talking Head
- 交易(Trading)
- 訓練師(Trainer)
- 遷移(Transmogrification)
- 空白存儲(Void Storage)
- 講解(Tutorials)
- UI對象(UI Objects)
- 框架(Frame)
- 字體(Font)
- 質地(Texture)
- 混合(Mixin)
- 咒語(SpellMixin)
- ItemMixin
- 物品位置(ItemLocationMixin)
- PlayerLocationMixin
- 模型場景(ModelScene)
- 未分類
- UI窗口小部件管理器(UI Widget Manager)
- 單位(Units)
- 光環(Auras)
- 玩家(Players)
- 實用程序(Util)
- 車輛(Vehicles)
- Classic Specific Functions
- 獵人寵物(Hunter Pets)
- 專業(Professions)
- 手工制作(Crafting)
- @PvP
- 模擬器
- 訓練師(Trainer)
- 8.x API
- 控制臺(Console)
- 召喚(Summoning)
- See also
- 外部鏈接(External links)
- Widget handlers(UI交互事件)
- ScriptObject
- AnimationGroup
- Animation對象
- Alpha對象
- Scale
- LineScale
- Translation
- LineTranslation
- Path
- Rotation
- TextureCoordTranslation
- Frame
- Browser
- Button
- CheckButton
- ItemButton
- Checkout
- ColorSelect
- Cooldown
- EditBox
- FogOfWarFrame
- GameTooltip
- Model
- PlayerModel
- CinematicModel
- DressupModel
- TabardModel
- MovieFrame
- ScrollFrame
- Slider
- MessageFrame
- Minimap
- ModelScene
- OffScreenFrame
- POIFrame
- ArchaeologyDigSiteFrame
- QuestPOIFrame
- ScenarioPOIFrame
- SimpleHTML
- StatusBar
- UnitPositionFrame
- WorldFrame
- 入門
- .toc
- .lua
- .xml
- 示例
- 自動邀請插件
- 完整例子:顯示任務坐標
- eCoordinates.toc
- eCoordinates.xml
- eCoordinates.lua
- 開發幫助組件
- AddOn Studio編輯器
- 暴雪自帶調試工具
- DevTools調試插件
- wowlua
- 魔獸宏
- 戰斗寵物命令
- 暴雪界面命令
- 聊天命令
- chat substitutions
- 角色指令
- 開發者工具
- 表情動作
- 戰斗命令
- 公會命令
- 小隊與團隊命令、
- 寵物命令
- PvP的命令
- 系統命令
- 目標函數
- 命令
- 被禁用的命令
- 宏條件
- 裝備物品編號