Login

UI初学者指南


作者:月色狼影

原文(UI Beginners' Guide)发表于wowwiki.com,由月色翻译并进行内容的填加。版权归属于CWDG

  • 本文让你全面的了解什么是UI?以及一些宏、脚本和插件的初级知识及它们之间的区别。以便更好地使用/创建它们。由于WoW 2.0的变化,所提供的例子功能已经失效。

UI基本概念

UI(User Interface)中文称之为用户界面。《魔兽世界》的“UI”是玩家利用 Blizzard(暴雪) 官方开放的 API接口所制作的程序,需要通过客户端来执行的。

WOW用两种不同的文件来制作用户界面:LUA与XML。LUA文件中包括了真正的代码,用户界面的逻辑。XML文件用以定义用户界面的元素,如,按钮、窗口、文本串等等,并定义了要加载哪些LUA文件。

用户定义的 组件 放在:Interface\AddOns\AddOnName目录下,设置文件保存在WTF\Account\YourName\SavedVariables

/命令

想了解它是如何工作的吗?你必须了解什么是Slash Commands(/命令)。WoW允许你输入一些简单的命令,在“/”后面直接输入命令参数。你也能将这些命令直接输入到对话框中。我们以“/follow”这一命令来举例说明:如果你选中(友方)目标后,在对话框中输入“/follow”(注意请不要输入引号),你现在可以跟随他了。你可以输入“/help”得到帮助列表。CWoW支持中文与英文版两种命令格式。 命令有许多种有些用于做指定的动作,如:/follow、/assist、/cast;有些用于交流,如/yell、/chatlist;有些用于显示信息,如:/who;有些用于表达表情(/laugh、/bow)。有一个特殊的命令:"/script",用于执行脚本程序。我们下面来为你慢慢道来。

Macros(宏)用于建立一些简单的定制动作或任务,是基于游戏中的动作。一个宏是由一系列的/命令组成的,按你所建立宏的顺序来执行。要建立一个宏,可以使用命令“/macro”(注意请不要输入引号),或者点击聊天选项框中的“/宏”。你给宏指定一个名字和一个图标并且输入多行“/命令”。将建立好的宏的图标拖到是动作条中,你可以直接使用。

举例:

/cast 火球术(等级 8)
/yell 我要炸死它!

按此宏可以施放一个8级火球术并且大叫“我要炸死它!”。 感觉怎么样,现在想不想自己试下?

当然宏有它的局限性,它只能用于执行一些非常非常简单的任务。最主要局限在于你不能用一个宏来施展多个魔法(虽然它可能,使用SpellStopCasting)。因此宏不能帮助你自动施放魔法。像其他一些命令一样它的长度不能超过256个字符,这点让人感觉很不爽!

同样你可以参考: 如何创建宏

脚本

通常来说不仅在WoW,而且中型程序也都支持Script(脚本)。脚本通常是一些小程序,它使用一些非常简单的编程语言(被称之为:Scripting Language脚本语言)编写的。脚本用来做一些自动化的事,也有脚本语言用来控制其它程序。

《魔兽世界》内置了一门强大的编程语言:Lua语言。WoW可以编译并且执行用Lua语言编写的小程序。当然,WoW不是一个程序开发环境,不是我们简单地写几句源代码就可以执行的,例如你不能直接输入脚本和执行它(虽然有时可能实现)。而WoW可以在不同的地方调用脚本。

在以下地方:

  • /script [命令]:如果你输入的斜杠(“/”)命令“/script”到消息框输入框,你能在后面编写一个或多个Lua语言声明(即脚本),每句必须由分号(;)结束。注意:在编写过程中请用英文格式标点符号。
  • 宏:脚本可以作为宏的一部分,在宏中可以嵌入多个“/script”命令。
  • 插件(Addons):阅读下面一节内容,重点这些的建立都使用Lua脚本(和XML技术,但现在不用担心这些)。这些方法都可以实现相同的功能。

脚本还能做些什么呢?我们WIKI中有很多Lua脚本资源。通过Lua页面可以找到更多语言信息。或者返回界面定制专区页面查找相关资源。LUA脚本强的一点是它能够比“/命令”执行更多的游戏动作。脚本语言可以调用WoW为脚本语言提供的大量API(Application Programming Interface 应用程序编程接口)。所用的API函数列表及使用方法、参数都在魔兽世界API页面中!

然后我们看一个脚本的例子:

if (IsPartyLeader()) then
  CastSpellByName("火球术(等级 8)");
end

这个脚本非常简单。这个脚本在执行时,先判定你是否是队长,若是,则施放一个等级为8的火球术。这个脚本也可以使用“/script”来执行。即:

/script if (IsPartyLeader()) then CastSpellByName("火球术(等级 8)"); end

你可以将这段直接输入消息框输入框中来执行,当然,也可以把它制作成一个宏来实现。

我们小结一下:脚本是WoW中使用Lua语言编写的一段小程序,能够与游戏交互执行游戏动作。你可以用于游戏的不同部分,如在宏,“/script”命令中,以及用户界面定制与插件的功能实现中。

插件

Blizzard在开发WoW做出一个重要的决定,其《魔兽世界》的用户界面完全可以由玩家定制、修改与扩展。这是完全符合WoW的使用规则并受到Blizzard鼓励的。用户界面修改(UI Mod)与插件(AddOn)实际上是同一个事物,区别仅仅在于它们的名字。通常来讲,“Mods”趋向于只对现有用户界面的功能做一些小的修改,然而插件趋向于增加扩张功能。我们在这统称它们为“插件”(AddOn)。

从一个用户的角度

  • 从用户的角度来看,你只需知道插件是由一个或多个文本文件组成的,以“.toc”、“.xml”或“.lua”扩展名来结尾的。这些文件都放在《魔兽世界》的Interface\Addons文件夹中的(个别游戏原文件除外),或它自身的子目录下。通常情况下,作者将插件以zip或rar压缩格式发布,而你只需要解压安装到WoW目录(Interface\Addons)中就可以了。(如果你还没有Interface\Addons文件夹,不要担心。你只要运行一次游戏就会自动生成的了)。

    注意:当你下载一个插件,而它是“.exe”可执行文件时,千万要小心。你在使用之前最好使用杀毒软件检查,因为它可以在你的机器上做任何事,一个".exe"文件可能包含了木马或者其他病毒。插件应该写成.xml或.lua格式的文件,以便任何人都可以检查这些文件,并且没有办法在其中加入恶意的程序。 这些代码只有在WoW中才能运行,它们无法危害您的电脑,但是可执行文件却可以。 说到这里,实际上有不少插件的作者以可执行文件的形式发布插件。这些程序可能是简单地自动解压插件文件到你的WoW目录(Interface\Addons)中。有些发布版能自动下载插件地更新版本,或上传一些插件收集到的数据信息。 卸载:你可以卸载任何一个插件并且重置恢复到默认WoW UI界面。你仅仅只需要删除WoW中的Interface、WTF和WDB文件夹,或者将这三个文件夹改名,然后重新运行游戏就可以了。

从一个开发者的角度

  • 插件主要包括两种类型的文件:
    • Lua 文件,包含了用户界面的逻辑代码。

    • XML 文件, 主要定义了你该如何说话、按钮位置等视觉,这些元素共同地指向“部件”。

    TOC中列出这些文件(目录)与另外一些文件集合在一起。 如果你已经开始运行程序插件就会加载并且就一直会运行(个别的的插件会部分地动态加载),直到你不想使用它。在wow并非如此,插件都是由事件进行驱动的。即每件事发生都会有事件返回,例如:用户点击了一个按钮;客户端接收一条聊天信息;某人击中人物等等。这些事件传递给widget(部件)以及抓紧他们,你需要在.lua文件调用函数正确位置上嵌入一小段Lua代码。可能在.xml文件中落实一个插件。但获取clunky,并且你需要HTML-编码<以及>字符或更多东西

在CWDG WIKI中你还可以查看更多开发相关内容:


插件开发资料类, 月色狼影

UI初学者指南 (last edited 2008-06-22 07:53:05 by 月色狼影)