首页 > 代码库 > Gladius插件分析
Gladius插件分析
功能:竞技场对手框体
使用了Ace3库
1、文件分为三部分:Embeds.xml;Gladius.lua+Localizations.lua+Options.lua;Modules\***
2、Embeds.xml库部分:
AceSerializer-3.0 可以把任意变量序列化成一个字符串,并用字符串恢复原有变量值
DRData-1.0 控制递减数据库
3、Gladius.lua+Localizations.lua+Options.lua,后面两个是老东西,多国语言和插件配置界面;Gladius.lua定义了一套模板,Gladius:NewModule(key, bar, attachTo, defaults, templates),传入模板就可以创建出对应的xxx条模块。Gladius.lua主要就是管理这些模块,包括EnableModule、DisableModule、竞技场进入退出事件处理、提供角色单位信息、整体界面拖动等等
4、Modules\***,框体上每个显示或者提示部分是模块化的,模块文件内容可以很容易看出它自己是怎么适配上Gladius.lua的,传入模板调用Gladius:NewModule获得模块,然后补全管理需要的函数OnEnable、OnDisable、GetAttachTo、GetFrame、Update、Show、Reset、Test和GetOptions,其中GetOptions是Options.lua在用。它们要监视的事件在OnEnable可以很容易看见。总共有15个模块:
HealthBar.lua 血条
PowerBar.lua 法力能量条
CastBar.lua 施法条
Auras.lua 光环
ClassIcon.lua 职业图标
Trinket.lua 饰品
Highlight.lua 目标和焦点的高亮选择框
Clicks.lua 点击施法,具体是创建一个框体,然后用SetAttribute给它赋值"unit"、"macro"、"spell"、"macrotext"、attr.modifier.."type"..attr.button等等
TargetBar.lua 目标条
Tags.lua xxx条上的文字,HealthBar、PowerBar、TargetBar
Announcements.lua 通知消息,包括开场对手组合提示、低生命值、吃喝、复活
DRTracker.lua 控制递减跟踪,用到了DRData-1.0的GetSpellCategory、NextDR、GetResetTime等
Timer.lua 冷却计时
Layout.lua 界面布局数据导入导出,LibStub("AceSerializer-3.0"):Serialize,LibStub("AceSerializer-3.0"):Deserialize
Dispel.lua 驱散技能冷却提示
Gladius插件分析