第一章 宏命令的函数说明
前言=废话:
我和我老婆都在玩魔兽,她是牧师,人见人爱。我是法师,也是人见人爱(面包、水、开门……我倒….)。她所在的公会最近黑翼开荒,在我写这篇文章的前晚刚过黑翼老三。前些天,服务器中使用宏的人突然多了起来。当她看到游戏中种种以宏命令编写的有趣动作和对话后。遂以抓耳挠腮之势(当然是抓我的耳,挠我的腮,强烈抗议此女人特权)要求鄙人也为她写出一套个性鲜明、人见人爱的宏。经过一些日子的研究,有所心得。才有了下面的这些文字。旨在辅导广大低手快速进阶,和广大高手一同探讨。独乐乐不如与众乐乐。
其中很大一部分是从网上搜集整理的资料。看到眼熟的段落可以跳过了。下文所述的范例因为职业所限,有些未经过严格测试。有错误请指正,有不足请补充,有问题我更改。有鲜花请拿过来。
本人是个做办公软件的,最近写用户手册有点上瘾。HOHO~
1.1什么是宏
宏是一组命令的一个集合,通过单点触发多个动作按顺序执行。比如战斗中发布命令:法师在变羊的时候喊出被变怪物的名字,提醒队友不要再做重复的事情;德鲁伊在施放激活的同时告诉队友已经对谁施放了激活等等。几个简单得动作便可以用一个宏来完成。
你说啥?
“打字也不算麻烦?”
“等要了你的命就会很麻烦了”。^_^
另(你烦不烦啊……):大家对魔兽得宏命令要有一个正确的认识。不要觉得很简单或是看也不看就说太难,不懂!魔兽世界的宏命令同样继承了魔兽世界易于上手,难于精通的特点。简单的宏完全不需要有任何程序基础就能编写出来,看个例子先:
下面这个宏摘自老婆的经典语录――
/Y %t,给你个圈圈去做神仙吧!
/施放 真言术:盾(等级 9)
这个宏的效果是给目标加上个9级的盾,然后用红字喊:<目标名字>,给你个圈圈去做神仙吧!
是不是很简单啊?是不是?是不是啊?
当然,我在前面说了,还有难于精通的。让我们再看个例子:
这个宏摘自网上
CastSpellByName("Spell Name(Rank X)");
if ((SpellIsTargeting()) and (not UnitIsFriend("player","target")))
then
SpellTargetUnit("player");
end;
TargetLastEnemy();
这个宏的效果是在没有目标或者目标是敌人的时候给自己加增益魔法或治疗。
在这个宏里面用到了if和then的条件判断语句。
有没有吓到你呀?
没有??
再看下面这个,同样摘自网上
function GetSpellIdByItsName(myWantedSpell, myWantedRank)
local spellId = 1;
local spellBook = "spell";
local spellName, rankName;
spellName, rankName = GetSpellName(spellId, spellBook);
while (spellName ) do
if ( ( spellName == myWantedSpell ) and ( ( not myWantedRank ) or ( rankName = myWantedRank ) ) ) then return spellId; end
spellName, rankName = GetSpellName(spellId, spellBook);
end
return -1;
end
里面可以自己定义function,还使用了while,do这样的循环语句,是不是让你想到了些什么呢?
好了好了,我想你们已经被我吓到了,我的目的达到了。^_^
注(大家无语了吧!):魔兽世界的宏命令有些9城已经汉化(不知道是不是9城进行的汉化),在编写宏的时候可以直接使用中文。如“/cast”与“/施放”就是相同的命令。而有些宏命令却只能使用英文。在此表示强烈BS。
本章最后说一下版本,在写这篇文章的时候魔兽的版本是1.9.4,升级后宏命令如有变动则不在此说明之列(此句属于免责的废话)。
从下一章开始,我们正式进入魔兽宏命令的制作教程,大家要有心里准备哦
未完待续......