WOW用两种不同的文件来制作用户界面:LUA与XLM。LUA文件中包括了真正的代码,用户界面的逻辑。XML文件用以定义用户界面的元素,如,按钮、窗口、文本串等等,并定义了要加载哪些LUA文件。
Bilzzard的文件保存在 Interface\FrameXML 下,用户定义的 组件 放在:Interface\AddOns\AddOnName目录下。
除非你确实搞得定,轻易不要去更改GlueXML文件,有可能会破坏WOW的UI系统。
1 Slash Commands / 命令
2 Macros 宏
3 Scripts 脚本
4 User Interface Mods and AddOns 用户界面 MOD与AddOn插件
5 Cosmos, Gypsy, CT_Mod 等常用的插件
6 独立与绿色的插件
/命令
WOW像其它网游一样,用大家熟悉的“/命令”的格式,如选定目标后,在对话框中输入“/follow”,就会跟随目标,"/help"是求助。WOW中文版支持中文与英文两种命令的格式。与我们定制开发有关的命令列表我会发在跟贴中。
命令有好几种,有些用于做指定的动作,如/follow, /assist, /cast,有些用于交流,如/yell,
/chatlist,有些用于显示信息,如:/who,有些用于表达表情(/laugh, /bow)。
有一个特殊的命令:"/script",用于执行脚本程序,我们在下文中细解。
Macros 宏
宏用于建立一些简单的定制动作或任务,宏利用现成的游戏中的动作。一个宏是一系列 /命令 组成,按顺序执行。要建立一个宏,可以用命令:/macro来建立一个宏,可以给宏指定一个名称,一个图标。建立好的宏也可以通过快捷按钮栏调用。
宏:
/cast Fireball(Rank 1)
/yell "放火烤它!"
这个宏放一个火球,然后大叫一声:)
宏有一些局限,它只能用于执行非常简单的任务。最主要的一个局限是你不能用宏来施展多个魔法。这些限制了你不能用宏做很多自动化的事。就像其它一些命令不能超过256个字符,很不爽的!
脚本Scripts
我们知道,许多软件中都支持脚M$ Office、Internet Exploler等。脚本通常是一些小程序,用一些非常简单的语言来写(脚本语言)。脚本用来做一些自动化的事,也有用脚本语言来控制其它程序。
魔兽世界内置了一个强大的编程语言:LUA语言。WOW可以执行用LUA写的小程序。但WOW不是一个程序开发环境,不是我们简单地输入程序然后执行它。WOW在不同的地方调用脚本:
- /script 命令:用/script命令可以直接运行LUA语言,在/script后输入LUA语句,每个语句之间用分号;分开。
- 宏:脚本可以作为宏的一部分,在宏中可以嵌入多个/script命令。
- 用户界面定制与插件:WOW的用户界面定制与插件都用了LUA脚本语言(还用XML)
脚本能做什么呢?我会用专门的贴子给大家介绍LUA这个强大的脚本语言。LUA脚本强的一点是它能够比“/命令”执行更多的游戏动作。脚本语言可以WOW为脚本语言提供的大量函数(API应用编程接口)。(API清单我在整理中)
让我们看一看这个简单的脚本:
if (IsPartyLeader()) then
CastSpellByName("Fireball(Rank 1)");
end
这个脚本在执行时,先判定你是否是队长,是的话,则放一个火球术。这个脚本也可以用"/script"来执行:
/script if (IsPartyLeader()) then CastSpellByName("Fireball(Rank
1)"); end
你可以直接在对话栏中输入这个命令,当然,你也可以将它写在一个宏中。
总结一下:脚本是WOW中用LUA语言写的一段小程序,能够与游戏交互执行游戏动作。你可将脚本用于游戏的不同部分,如宏中、“/script”命令中,以及用户界面定制与插件中。
用户界面修改Mod与插件AddOn
在开发WOW时,暴雪有一个重要的决定,就是,其用户界面完全可以定制、修改与扩展。用户界面修改UI Mod与插件AddOn实际上是同一个东东,它们的不同之处只在于名字?,通常来说,Mod指的是一些对已有用户界面的功能作一些修改的小东西,而AddOn是扩展的一些功能。为了简化,在以后我们统称两者为“插件”,或者它的英文名AddOn。
AddOn是用LUR脚本语言编写的,并用了XML技术。插件不仅仅能在屏幕中加一些有趣的按钮与窗口,还可以做许多功能强大的事情,我们在以后将详细给大家讲解如何开发插件。
从用户的角度来看,你只要知道插件是一些文本文集件,以".xml" 或".lua"扩展名为结尾。
这些文件应该放在WOW的Interface或者它的子目录下。通常情况下,AddOn以ZIP压缩文件方式发布,而你只需以解压缩方式安装到WOW的目录下。(当你在你的机器上没有看到Interface目录,不用担心,WOW这个目录在缺省情况下是没有的,你想使用插件时,你建一个就成了。
注意:当你下载一个插件,而它是EXE文件时,千万要小心。因为EXE是可执行文件,它可以在你的机器上干任何的事,一个EXE文件中可能含了病毒与木马。WOW的插件应该写成XML或LUA文件,所有人都可以检查这些文件,并且没法加入恶意的程序,因为AddOn仅能做一些WoW中的操作,它无法执行其它程序,破坏你的电脑。
说到这里,实际上有不少插件的作者以可执行文件EXE的形式发布插件。这些程序可能简单地自动解压缩文件到WOW安装目录。有些发布版能自动下载最新版本的插件,或者上载一些插件收集到的数据。
卸载:要卸载插件非常简单,只需将Interface目录整个删掉就成!
Cosmos, Gypsy, CT_Mod 等著名插件包
网上找一找WOW的插件,你会看到Cosmos、Gypsy、CT_Mod等等,这些都是一些著名的插件包,它们包启了大量插件。这些插件的作者(工作组)是WOW社区中值得尊敬的玩家,他们的努力为我们提供了许多非常有用的插件(虽然当中有一些插件不怎么样),并且整理与汇总这些插件打成包。
大家可以放心地使用这些包,这些插件是合法的,也是暴雪认可的。但是官方不会对这些插件有任何技术支持。你可以下载试一下,选择你喜欢的插件。
注意:这些流行的插件有不少是互相冲突的,所以你可能不能将它们混在一起用。
独立,绿色的插件,
你会在网上看到一些插件标榜自已是“独立的”或者“绿色的”。通常情况下,插件会修改一些标准的核心用户界面文件(官方发布版的文件)以调整界面功能,当不同的插件做同样的修改时就会导致冲突。一个绿色的插件不修改任何已有文件,它仅仅加入自已的文件。这就保证了这些插件能互相兼容,共同使用。
此外,有许多插件依赖于其它插件的功能。举例来说,Cosmos包中的大部分插件是不能单独使用的,它必需与整个包一起用。一个“独立的”插件意味着它是完整的,可以单独使遥的,不需要其它插件的。
说到这儿,从插件开发者的角度看,你会发现许多插件做的事情很类似。通过修改已有插件的功能,或者利用现成的公共的“库”可以很快地开发出新的插件。所以为什么有些插件库都依赖于一些公共的组件,如SEA函数库等。这些组件松成了一些核心插件,如果你下载的插件需要这些组件时,你可以去下载这些核心插件,并安装到WOW的目录下。
就象现在有许多游戏都依赖于PC上的DirectX。通过利用DirectX的功能,可以比较方便地开发游戏。因此,我们在运行游戏时需要DirectX。同样,在我们用一些插件时,也可能需要这些公共的核心插件。
可用于编写宏的命令集合:
/assist [name] - Assist your target or the named unit if specified /cast name - Cast the named spell, which may include the rank in parenthesis /afk [message] - Toggle yourself as "away from keyboard" /dnd [message] - Toggle yourself as "do not disturb" /duel [name] - Request a duel with your target, or the named unit if specified /yield - Surrender to your opponent in a duel /emote message - Emote the message (e.g. /emote picks his nose -> [slouken] picks his nose) /follow - Automatically move to follow your current target /guild message - Send the message to your guild chat /ignore name - Toggle ignoring the named unit /inspect - Inspect your target /invite [name] - Invite your target or the named unit to your group /join name - Join (or create) the named chat channel /leave name - Leave the named chat channel /logout - Sit down and logout /ffa - Set "free for all" loot policy /master name - Set the named unit to be the master looter /roundrobin - Set "round robin" loot policy /party message - Send the message to your party chat /played - Show how much time your character has been online /pvp - Enable PvP for the next 5 minutes /raid message - Send the message to your raid chat /random num - Roll a random number between 1 and num /reply message - Send the message to the last player to whisper to you /say message - Send the message to people around you /target name - Target the named unit /time - Show the current game time /trade - Initiate a trade with your target /uninvite name - Remove the named unit from your group /whisper name message - Whisper the message to the named unit /who - List the players around your level in the current zone 可用于编写宏的表情与动作命令全集: /agree /amaze /angry /apologize /applaud /bark /bashful /beckon /beg /bite /bleed /blink /blush /boggle /bonk /bored /bounce /bow /brb /burp /bye /cackle /calm /cheer /chicken /chuckle /clap /cold /comfort /commend /confused /congratulate /cough /cower /crack /cringe /cry /cuddle /curious /curtsey /dance /drink /drool /duck /eat /eye /fart /fidget /flex /flop /frown /gasp /gaze /giggle /glare /gloat /greet /grin /groan /grovel /growl /guffaw /hail /happy /hello /hug /hungry /insult /introduce /jk /kiss /kneel /laugh /laydown /lick /listen /lost /love /massage /moan /mock /moo /moon /mourn /no /nod /nosepick /panic /peer /pity /plead /point /poke /ponder /pounce /praise /pray /purr /puzzle /raise /rasp /ready /roar /rofl /rude /salute /scared /scratch /sexy /shake /shimmy /shiver /shoo /shout /shrug /shy /sigh /sit /slap /sleep /smile /smirk /snarl /s****er /sniff /snub /soothe /spit /stand /stare /stink /surprised /surrender /talk /talkex /ta*** /tap /taunt /tease /thank /thirsty /threaten /tickle /tired /train /unused /veto /victory /violin /wave /welcome /whine /whistle /work /yawn 还有两个: /console 执行控制台命令 /script 执行LUA脚本语言命令
|