注:本文系属Beginning Lua with World of Warcraft Addons(翻译)
简介
附加组件 (插件)是一个令人兴奋地话题,它可以让你修改游戏来提升游戏体验。只有少数网游允许修改UI(User Interface 用户界面),例如魔兽世界(wow)你可以彻底修改UI或者添加。
有成千上万的有效附加组件和宏命令可以再互联网上中找到,在魔兽世界里你也许正在使用很多的插件和宏命令,但是你知道它们是如何工作的吗?事实上所有的玩家都在使用的这些,但是只有很少一部分人可以自己动手编写插件或修改的现有的插件,你很快也会成为它们的一员!
插件几乎可以修改游戏UI每个方面。有许多简单小巧的插件增强了界面。例如:你可以用几行代码在聊天框前实现时间戳的功能,你将会在第6张看到如何实现;你可以在第4张看到如何在聊天中添加链接提示。当然有成千上万行代码组成的大插件,你将会编写一个先进的功能完全的多人德州扑克游戏插件
Lua编程语言被魔兽世界使用,它小巧、强大、易学。本章结束后你就会了解到Lua的概要。
这些基础知识可以使你写出第三张的第一个Hello world插件。真正的乐趣在第四章才正开始,你会编写第一个真正使用的插件就如我们刚刚提到的聊天框提示.
让我们开始吧!
CHAPTER 1
本章将讨论几个很基本关于Lua及魔兽世界插件在我们下一张学习Lua语言之前。同时也介绍几款非常有用的工具,我们在整本书都会使用的。
Lua是什么?
Lua 是一个编程语言是巴西里约热内卢天主教大学的Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo1993年开发。Lua在葡萄牙语里指的是“月亮”,发音为“LOO-ah”,Lua采用MIT授权条款,MIT是相对宽松的软件授权条款:只要有版权声明和许可你可以用Lua做任何事
Lua的特点:可扩展性,简单性,效率和可移植性。非常容易的写出增加功能性的模块,也非常容易的把它当做脚本语言嵌入到游戏中。脚本语言是一种在另一个较大的应用程序的特定部分所使用的编程语言。魔兽世界(C++编写)使用Lua来开发界面。有很多游戏使用Lua来运行用户界面或脚本配置文件(“战锤Online”和"孤岛惊魂")。但是我们可以使用Lua写出整个游戏,有很多可以使用的扩展库和框架wxWidgets (wxLua), the .NET Framework (LuaInterface), 3D 引擎有基于Lua的OGRE (Lugre) 。这些扩展也称为绑定,因为它们将Lua扩展成为一个更强大、复杂的框架或库。
Lua是简单易学,语法很简单明了。人们可以阅读和理解不知道对任何小的Lua脚本语言。所以没有编程知识的人们就可以使用Lua来配置文件。 Lua是一种动态类型语言,这意味着编程时自由和灵活。您将将会了解更多的特性第2章。尽管简单,但是Lua是一个非常强大的多范型编程语言。它提供必要的,实用和面向对象的范例来为你编写脚本提供参考。我会告诉讲解这些范例在下面的章节。您也不必考虑内存管理;的Lua提供了一个很好的增量垃圾收集器。垃圾收集器是在脚本和释放先前程序占用的内存之间交错运行的程序,增量意味着它一直运行,渐进方式工作。
尽管这是一个功能齐全的强大的多范型语言,但是Lua运行起来非常快。Lua 5.1实用的虚拟机(编译Lua代码并执行它)是所使用的脚本语言在最快的。还有一个基于on the fly即时编译器(一种程序,将Lua飞速的转换为本地机器编码)更快。
Lua快速编译并执行成千上万行的脚本代码而且十分容易的处理大量数据。它可以编写脚本用来创建其他的由包含很多的项的庞大的表构成Lua脚本,或者创建持久性数据。 lua的编译器可以快速加载,编译这些数据文件。如果你认为你需要安装几兆的软件使得Lua可以在本地运行,再考虑下吧。Lua虚拟机仅仅有160 KB,而编译器才200KB。 (Lua 5.1.4 on Windows x86)
Lua是纯ANSI C编写,所以它是非常轻便。它几乎可以运行在每一台你听说知道或者不知道的机器和操作系统,例如,Lua中已经成功地在乐高的Mindstorms NXT的平台上编译。.
一个好地方来获取有关Lua的其他信息网站:
WOW Addons是什么?
魔兽世界的UI可以用Lua和UML修改 XML是一种强有力的数据描述语言,在前五章你不用考虑你是否有没基础。我们可以使用高度自定义的所谓的扩展插件来更换整个默认的UI。LUa 常被当做脚本语言使用,xml 可以用简单的方式来生成GUI元素。
暴雪娱乐公司 WOW开发商,提供了很丰富的UI API(应用程序编程接口,一系列的函数可以上使用,通过脚本语言与与游戏通信,例如Lua)使得用户可以为游戏的每个部分编写脚本。有插件几乎包含了从元素更换和迷你游戏的聊天工具动作条像宝石迷阵
bots: 病毒介绍 Bots是一种能执行外部命令的自动运行型木马。
MOD是英文单词modification(意为修改)的缩写,它是游戏的一种修改或增强程序。
暴雪认为用户开发插件过于强大,因为他们接近机器人。像Decursive插件能够检查RAID中减益效并一键驱散他们。另一个插件让治疗职业只需使用一个键就可以选择最佳目标和释放治疗法术。治疗职业使用这些MODS只要重复地按相同的键就可以在战斗中发挥完美。另外mod甚至允许你运行某些预定义的路径,如在熔火之心跑尸。
因此,补丁2.0限制涉及“安全码”的某些行动,这是从默认的UI代码。受限制行动的目标,施法和运动相关的功能。然而,许多功能仍可能在某些情况下使用,所以还是有可能创建RAID框架mod。但它不再可能编写像刚才提到的战斗中自动化作战相关的任务插件。
默认的用户界面提供了游戏中普通用户需要的所有功能,但扩展可以提供高级的功能或不同的主题。图1-1显示了游戏默认的用户界面。一个大量修改的用户界面,用户界面截图所示的样子几乎什么都可以替换。
图二的UI全部被更改了,更改游戏默认的字体使得游戏看起来完全是另一款游戏。你会看到小地图、动作条和提示框。
玩家们可以去网站下载一个插件并安装它,但是在1150万的魔兽世界玩家中只有很少的人可以编写MODS。你读过这本书后将成为这为数不多的一员。你可能迫不及待,那么让我们看到一些书中使用的有用的工具。