最后的堡垒,DiscordMods!


先来看看我初步调定的UI吧。

这是休息状态的:

(Click for Large View)

这是战斗状态的,多了三组动作条:

(Click for Large View)

好,开始插件介绍。Discord ModsLozareth开发的一组WoW UI插件。此人无疑一定是一个程序员,而且是非常勤快的程序员,属于做事比得到结果更有乐趣的家伙。目前他一口气更新了他的几个插件,但是还处于β阶段,问题有一些——幸而基本不影响一般使用——所以他更新的也很勤,1、2天就放个新版本(-_-bbb),没事要多去他的beta versions页面看看,拉新的版本回来更新。

Discord Unit Frames

先来看看DUF。这是一个定制人物窗口的插件。

输入:/duf 回车,打开DUF的主窗口。

这里一下子堆满了整个屏幕的frame,其中,最上面一行从左到右是(这只是我的设计,你可以完全不按照这个来布局,这里我只是说明有这些东西):self(玩家自己)、pet(玩家自己的宠物)、target(目标,也就是你选中的角色)、target of target(目标选中的那个角色);在self下面有一列4个,是party(小队,你的队友,最多4个),他们各自的右边,pet下面是一列4个,是party pets(队友的宠物们,如果有的话)。所有这6类就对应DUF设置窗口上部的6个按钮,点下对应的按钮就开始设置对应frame的功能。

设置窗口的左边一列,先来看下面的6个按钮:
Misc Options: 这里你可以设置一些全局性的属性,例如你要是嫌这个窗口太大可以改变Option Window Scale。这里比较重要的是下面的Save/Load功能,你可以建立和管理多个配置(profile),随时可以回到某个配置。所有这些配置都保存在WTF目录的那个SavedVariables里面。

Contect Colors: 在很多情况下你的frame中元素会根据你出在环境的不同而变化,这里就是设置这种颜色编码的,例如表示难度、友好度的不同颜色。

Unlock Elements: 缺省情况下你是不能改变画面上这些frame元素的位置的,但是按下这个按钮,你就可以随意的拖放每个frame中的每个元素:文本、颜色条、图标、肖像等等。再按一次又重新锁定。
Unlock Frames: 按下这个按钮你就可以拖放整个frame,frame内部的各个元素都固定。再按一下恢复锁定。
Quick Save: 快速保存配置,配置名就是你的ID。
Quick Load: 快速提取配置,配置名就是你的ID。

这些按钮上面有N个选项(根据你选取的frame种类会有小小的差别,主要是最下面的几项),这就对应每个frame中的那些小元素。例如:Portrait就是你的肖像,而icon是各种小图标,还有表示HP、MP、EXP的颜色条(bar),以及文本(text)。

下面就用几个例子来说明这些元素的设定属性,其他看上去纷繁复杂,其实大体都差不多。

1、Frame Options

Hide: 就是整个frame不显示,要是搁在其他元素上,就是那个元素不显示。
Flash When Health Is Low: HP低的时候会闪烁这个frame,什么叫HP低?可以在Misc Options里设置(Low Health Threashhold)。
Show Default Frame(s): 就是显示游戏缺省的frame,有时你需要在游戏缺省的frame基础上增加些东西,那么这个就很有用。
Mouseover Color: 鼠标移上去就变色?就用这个设置,点击颜色放个可以修改颜色。
Mouseover Group: 鼠标移上去就显示另外一组元素,这类功能我都不喜欢,所以也没试。

Height/Width/Scale/Alpha: frame的高、宽,还有显示比例(可以让某个frame按照一定比例缩放显示)和透明度。注意这里指的是这个角色那个底框,而不是它上面其他的那些元素,那些元素在其他项目中设定。

Hide Background: 隐藏底框的背景,也就是让它的背景透明。这个对于icon类的元素特别有用。例如PvP状态icon是一个盾牌,如果不隐藏背景,就会有个背景颜色,要是这个颜色和底框不一样你就会看到一个方块块,多难看。
Background Color: 如果你确实需要设置背景色,那么就在这里设置。
Background Alpha: 背景的透明程度,越大越透明,0的话就是一个实心的色块了。
Background Padding: 这个按字面意思似乎是背景周围的填充大小。。。具体还没试。

Disable Tooltip/Custom Tooltip: 设置frame的tooltip提示信息,可以关闭也可以自己设定。

Color Context: 如果想使用一些上下文场景相关的颜色编码的话,设置这里。

Left-Click/Right-Click/Middle-Click: 鼠标点击的行为。

Connect Frames/Method/Spacing: 讲这个frame和别的frame连接起来,可以一起拖动,例如pet和它的主人,这里可以设置是否连接,和谁连接,连接后之间的空隙大小。

Border Color/Border Style/Border Alpha: 关于框体的边框,可以设置颜色、样式和透明度。

Copy Setting from: 很有用的功能!你可以设置好一个frame,然后用这个把它复制给其他frame,再做微调就行了,可以大大简化定制工作——毕竟你的self、targte、party等之间大部分设置是一致的嘛。

2、Buff Frame

基本设置:

Buff Frame是典型的子元素,它是整个frame的一个子frame,所以设定和上面说的frame本身的设置略有区别。

左边一列都一样,看右边,有两个不一样的。

Nudge: 精确定位系统,可以逐象素的移动元素,也可用于对齐几个元素。下面的XY,坐标原点是屏幕左上角,WoW的屏幕是第四象限,所有X为正,Y为负。

Attach: 这个元素和哪个frame绑定,Attach Point和Attach To是设置绑定的位置的,Attach Point是当前元素的某个顶点,Attach To则是它要绑定的那个frame(Attach Frame)的某个顶点,绑定的效果就是这两个顶点保持重合。

特定设置:

这个部分往往就不同类别的元素差别较大,但是都是很少几个,以这个buff frame为例,包括:

Size: 一共有几个显示buff的格子。
Reverse Fill Direction: 从左向右还是从有向左的显示。
Vertical Layout: 横排还是竖排。
Two Rows/Columns: 分两行(列)显示。
Spacing: buff图标之间的空隙大小
Max Buffs Shown: 最多显示几个buff。

3、Text Boxes

所有的文本框都是一样的,一个frame中你可以最多设置10个文本框。

基本设置:

跟buff frame、icon等一样。

特定设置:

Text这个格子最关键,你可以填入一般的文本和$打头的变量,这些变量在运行时自动转换为这个frame对象的实际值。例如$nm代表他/她/它的名字等。点击Text Variables按钮可以打开一个很大的列表,里面是所有被DUF支持的变量及其含义。

Maximum Number of Characters: 最多显示字符数,超出的会被截断,以免破坏总体显示效果。
Horizontal Justification: 水平对齐方式,左、右还是居中。
Vertical Justification: 垂直对齐方式。
Font: 字体,在DUF_Fonts.xml这个文件中定义了几个字体,可以在这里选择。
Text Color: 文字颜色
Font Height: 字体大小。
Hide If Unit Doen’t Use Mana: 如果这个frame的对象没有mana的,那么就不显示。这个也比较有用,很多怪物、NPC、宠物根本没有魔法的,老是挂个0/0的魔法值在那里显得不够专业。

好,举一反三触类旁通,还有不清楚的提问,我会放到HOWTOs里去。

Discord Action Bars

DAB的作用时定制动作条,基本上无所不能——剩下的关键是你对自己角色的理解和你的战术设计问题了。

输入/dab 回车,打开DAB的主窗口。

可以看到DAB允许你设置10个动作条,4个系统内置的bar(other bars),还有一些浮动按钮。

1、Misc Options

还是先来看Misc Options。

开始是一组选项,例如是否显示快捷键,是否显示cooldown时间等。下面是动作状态显示,例如红色代表超出有效范围等,你可以改变这个颜色设定。

下面是变型动作条和鬼魂条,选择某个动作条专门给这两种特殊状态使用。

这里还可以设置这个主设置窗口的显示比例(跟DUF一样)。

下面是两个专项设定:
Time To Hide on Mouseout: 有些bar你会设置为鼠标移上去才显示,对于这种bar,鼠标移开后过多久才隐藏,可以在这里设定。
Cooldown Count Threshhold: 你可以设置cooldown的时间显示到某个数值才显示,例如10秒才开始倒计时,免得一直闪上几分钟烦人。

2、Action Bars

选择左边任意一个bar,就开始设置对应编号的bar了——装好之后他们都堆在屏幕中间,既可以立刻隐藏掉一堆,只留下4、5个——一般也就够了吧。

每个bar可以设置:Bar、Background、Control Box、Label。

这是主要的设置界面。这里说明关键的属性。
Hide: 这个本来是不用说的了,但是这个部分我觉得作者设计上有些问题,下面会提到。
Hide Empty Buttons: 没设定的格子不显示出来。
Collapse Empty Buttons: 也是不显示没设定的格子,但是除此以外,还会把设定了的格子向左(下)堆积,就像空格子被删除了似的。

以下是一组关于何时显示这个bar的设定。我刚才说的设计问题就在这里,这里比较混乱,界面很不清晰,而且实现也有问题,似乎是通过判断条件然后修改上面那个Hide属性来做的!也就是说,我没有设置Hide,但是由于下面设定的条件,一旦条件满足就给我自动把Hide打上勾了。这个在软件设计上是个很大的问题,叫做属性的不独立性,严格说就是第一范式都没有满足 -_-bbb 说远了,回到这里,先来看看几类条件。

Hide When an Action Button is Pressed: 有动作按钮被按下是就隐藏。
Auto-Attack When Using an Action: 目前还不知道是啥意思。
Show When In Combat: 只有处于战斗状态才显示。
Show When Out Of Combat: 只有不处于战斗状态才显示。
Show For Friendly Target: 选中友好的对象时才显示。
Show For Hostile Target: 选中敌对的对象时才显示。
Only One Condition Must Be True: 这个选项也是语焉不详,试了下不知道是什么意思。
Show When Mouse Moves Over the Bar: 鼠标移上去才会显示。
Show While A Key Is Pressed: 任何键按下就显示。

可以看出这里很多条件是既不互斥也不一定互容的,也就是说你设置了比较复杂的条件组合后要想搞清楚啥时这个bar能看到不是件容易的事情。。。不过好在最常用的也就是那么集中情况,需要组合条件的也不多。我现在用的是Show When In Combat这种,我有几个bar是只有战斗时才看得到的,凭此才把常用动作压缩为两条,作为常显的放在屏幕底部。

Right-click Bar/Middle-click Bar: 点击之后显示出另一个bar,这个看上去很酷,但是其实并不实用,虽然省位置,但是多了一次点击,操作难度加大。

Default Target: 某个bar可能是专门为自己做的,那么在没有选中target的情况下点了其中的按钮,就会为自己释放。这类操作可以用这个“缺省目标”类实现。

下面是一组显示样式的设置:

Button Size: bar中按钮的大小(边长)。
Button Transparency: 按钮的透明度,还是越大越不透明,设为0你就看不到这个bar了。
Horizontal Spacing: 按钮的水平间隔。
Vertical Spacing: 按钮的垂直间隔。
Buttons Rows: 分几行显示这个bar。
Cooldown Font Size: 显示cooldown的字体大小。

Nudge: 精确定位bar的位置。参见DUF的说明。

Attach: bar也可一绑定到某个frame,可以设置绑定点(参见DUF的说明),以及和这个frame的X、Y间距(offset)。

Use For Shapeshift Form: 偶小术士不会变型啊。。。
When I Shapeshift: 同上。

设置bar的背景,可以使用颜色、贴图(texture)、透明度、边框等属性调整。我懒得动他,这都是锦上添花的进阶功能,不说了。

除了前面提到的bar显示隐藏条件设定外,还可以使用一个叫做Control Box的界面元素来显示、隐藏对应的bar,这个Control Box也是完全可以定制的,这个比较简单,跟前面的一些设定类似,也不说了。

最后,每个bar都可以带一个小标签,显示在bar的周围(Control Box则是随便你显示在哪里都可以),这个label可以设置显示文字、颜色、大小等,也可以设定与bar的位置关系。

3、Other Bars

这是指系统内置的宠物动作条、变型动作条、背包条、主菜单条。

在这里你可以选择其中之一,显示或隐藏它,也可一设定横排竖排、分行等。基本上是前面那些属性的子集。

4、Floaters

浮动按钮是另外一个很强大的功能,使得你可以突破10个bar的限制,建立一大堆小型的动作按钮组合。

浮动按钮的来源还是动作条(界面上似乎只能有120个按钮),你必须减少某些动作条的按钮,减下来的按钮才能用于建立floater。在这里可以设置每个工具条的按钮数量。

然后到设置floater的界面。Free Buttons后面显示你可以使用的free button的数量。点击最上面的Convert按钮就会建立一个floater,Select a Floater to Edit那个框会显示它的编号,编号是从120开始逆序往前排(汗。。。估计是按钮的内部ID)。然后你就可以把技能或者物品拖到左边那个格子里啦,下面的设置跟bar的设置基本一样,就不说了。

5、Macros

这是DAB的另一个强大功能。你可以选择一个事件,然后针对它写一个脚本。DAB提供了一组接口来让你控制那些bar的行为,例如隐藏、显示啊什么的。这让你可以编写动态的UI,适应不同的情况显示不同的动作条。具体可以参见这片介绍:On Event Macro Examples(英文的。。。没时间翻译,要是有人有兴趣的话,我可以晚点翻出来)。

Group Buttons

Group Button的功能就是在self、pet、target、party等frame旁边定制一个动作条(是完全独立的,不占用标准的动作条),点击就针对对应的对象释放。这个其实使用DAB也可以实现,但是麻烦一点。所以想省事的就用这个。

也是打开一堆小bar和一个设置界面。从这里可以看到,可以针对自己、队友、友好/敌对目标、低HP状态、宠物、队友宠物设置不同的bar,每个bar最多可以包含20个按钮,足够用了。设置也很简单,看下面:

点击左边的Mini Spellbook按钮,打开包含你的所有技能的列表,把图标拖过来就行了。

点击每个按钮的Option按钮可以打开按钮设置画面。上面是Cast Option,这里有很多有用的设置,其实感觉主要针对治疗系比较有价值,其他的似乎一般用不到。
Assist Unit Before Casting: 施法前进入协助模式。
Annouce Spellcast: 在聊天窗口声明讲要施法,这里可以在下面的Annouce Option设置多种提示格式,也可以在这里选择不同的Anounce模板(使用编号标记的)。
Auto-Update to Next Rank: 这个比较省事,它会自动使用这个法术最高级的那个技能。但是我的术士很多技能升级后名字都不一样了(例如侦测次级隐形升级成了侦测隐形不知道能否实现)。
Prevent Re-buff: 自动检查,已经有的状态就不再释放——这个也是双刃剑,经常是某个状态快到时而未到时提前re-buff,所以要慎用。
Scale Buff’s Rank to Target’s Level: 根据目标级别选择这个法术的何时级别。。。但是什么是合适级别呢??这个大概也是需要慎用的。
Prevent Overhealing/Prevent Overkill: 防止过度治疗。还不清楚具体含义,偶没有治疗法术的说。。。
Cast Lower Rank When Mana’s Low: MP不足时降级使用低级技能,这个。。。我不是很信任电脑的智能,还是自己判断吧。
Cancel Spellcast if Target is Healed: 如果有别人在针对同一对象释放治疗魔法,那么就cancel施法。这个也很奇怪,我是不敢打开的。

这是显示设置。一般都很简单,搞清楚DAB那些这个就是小菜了。但是有一个要注意:When Out of Context。我不知道它判断的依据是啥,但是它基本上都认为是out of context,也就是说你要是按照缺省设置这里是Hide,那么你永远看不到任何bar -_-bbb 这个可能是个bug。所以我的设置是超出上下文场景的话就Grey Out,虽然是灰的,但是还是可以点的。

这里是设置Announce的,可以设置5种模板和两个特定提示,然后在按钮的option种选用就行了。这里的脚本是标准的WoW宏,例如$t表示当前动作的目标对象等。下面还有一些选项,都很简单,就不说了。

最后是Misc Options。这里有很多是和Group Buttons不相关,但是和施法有关的选择,我也没有一一试过,所以暂时不说明了,有兴趣的可以自己试试。

HOWTOs

Q: 我怎么看不懂啊,都是英文的!
A: 首先解释一下我很多插件都选择英文的原因:1、大部分优秀的插件都是老外写的(唉),英文版更新较快,而且如果如果你有个喜欢的插件但是汉化的作者突然停止汉化了(或者总是拖很久才出汉化版本)你还是要回去使用英文版(两个人都give up的概率总小过一个人);2、很多汉化版本引入了新的bug,尤其是翻译不得当带来的难以使用。3、需要时可以打开这些窗口告诉老爸老妈你在学习英语(-_-bbb)。不过,有些插件是中英文不通用的,例如我的那个术士的插件,它查找”Warlock”来确定你是不是一个术士,可是CWoW中使用的是“术士”,所以这种必须使用中文版本,好在这个插件是个很不错的玩家做的,比较精细。OK,如果你一定要使用中文的,我这里选择的,有界面的软件统统都有中文版本,你只要Google:<插件名> 魔兽世界,基本上就可以找到了。