- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序员快速入手指南
作者:炽火 Zero ℃
原文发表于:猫扑魔兽板块实用资料区
引言
本文将以一般的软件编程的眼光审视魔兽插件。剥去其难解的外皮,让你有个清晰的大致了解。
“一针见血”是技术性教学文章的最高境界 —— 炽火
魔兽插件的架构
插件工程 —— 每个插件就是一个项目(或称为工程)。目录位置: 魔兽目录\Interface\Addons\项目名\工程描述 —— 即后缀名为Toc的文件。描述工程的必要信息,也是项目载入时的总入口。屏幕布局 —— 布局描述使用XML文件。使用各种标签代表特定对象(控件),并描述相互位置及各种特征属性。功能脚本 —— 脚本文件使用LUA语言。使用WoW提供的API函数编写代码实现各种具体操作。
TOC —— 工程描述文件
后缀名为toc的文件就是工程文件,包含工程的基本信息。主要包含以下内容:
1 ## Interface: 适用的魔兽版本号
2 ## Title: 显示的标题(默认语言)
3 ## Notes: 显示的说明(默认语言)
4 ## Title-zhCN: 特定语言的标题(简体中文)
5 ## Notes-zhCN: 特定语言的说明(简体中文)
6 ## Author: 作者
7 ## Version: 版本
8 ## Dependencies: 依赖的插件
9 ## RequiredDeps: 必须依赖的其他插件, 与上项作用相同
10 ## OptionalDeps: 可选倚赖, 一般为库.
11 ## SavedVariables: 统一存放的变量
12 ## SavedVariablesPerCharacter: 按角色存放的变量
13 ## LoadOnDemand: 1 插件在启用状态下不被加载, 必须在游戏内由另一个插件LoadAddOn()调用加载, 通常为存放数据用.
14 ## LoadWith: 当指定插件加载时才加载,前提是
15 ## DefaultState: disabled 默认状态
16 ## Secure: 安全, 只有暴雪插件才能被标记为安全
17 ## LoadManagers: 加载管理器, 通常是另一个插件(例子: AddonLoader, DBM)
18 ## X-Email: 如题
19 ## X-*: 以X-开头的标记通常为自定义标记, 请遵守这个准则.
20 # 注释1 dklasjfkasdj
21 Script.lua -- 脚本文件
22 % 注释2 dskajfklasdjfklsdaj
23 Layout.xml -- 布局文件
‘#’ 和 ‘%’ 为行注释符号。
而以##开头的注释行可就不光是好看的了,这些都是插件的工程描述标记,要是不注意插件根本就不会载入。
示例中彩色的标记表示标准标记,每个标准标记都有特定功能。其它eMail, Author等为扩展标记,只有注释功能。
工程标记之后的部分为包含文件列表,脚本文件和布局文件,数量随意,但每种至少要有一个:一个lua或一个xml。
包含文件列表中的顺序对应着载入顺序,非常要紧!!!! 请将所有文件保存为UTF-8 NOBOM, 否则有可能会导致读取错误. 可以用专业文本编辑器修改编码及换行符, 如果你不知道什么是文本编辑器, 可以使用开源的Notepad++.
建议你多下几个插件,打开看看,参考一下。
XML —— 屏幕布局描述文件
在魔兽插件中使用XML来描述UI的屏幕布局。
注释符号:!-- 注释内容 -- 。
如果要写中文注释,必须在XML文件开头添加一行:?xml version=1.0 encoding=UTF-8?
XML文件主要内容
一个XML文件往往包含以下内容:
!-- Ui标签是包含所有其它标签的根标签 --
Ui xmlns=/wow/ui/
xmlns:xsi=/2001/XMLSchema-instance
xsi:schemaLocation=/wow/ui/
C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd
Script file=localization.lua/ !-- 在此载入用于汉化的lua文件 --
Frame name=zBar parent=UIParent !-- 一个Frame框架 --
Scripts !-- 脚本部分,用于处理事件 --
OnLoad
zBar_OnLoad();
文档评论(0)