文档库 最新最全的文档下载
当前位置:文档库 › 简单易懂的魔兽世界宏教程

简单易懂的魔兽世界宏教程

由于现在插件功能日益强大,所以以前很多实用的宏,现在用插件就可以做到。但对于懒人一些宏还是很实用的。这是写给做宏新手用的文章,因为文章比较老了,部分不适用的已经删除,希望大家见谅。这里只写下一些基础的东西,对于如三合一、二合一的,或者一些比较复杂的宏没有写出来,个人不建议用复杂的宏,宏就是方便我们操作的,复杂的宏使用起来反而不是很灵活。但是也有些做宏高手还是可以写出比较好的宏。

现在懒人都比较喜欢现成的,之后我也会结合当前版本,给大家做个各职业实用宏的合集。

敬请期待

上手教程

简单的说,宏就是创建一连串的命令集,通过鼠标点击或按下键盘某个按键就让电脑自动执行这一系列命令。

在进入游戏之前,特别是用全屏模式进行游戏的,需要掌握一些基本知识。曾经在网吧看过一位玩家做宏,他把网站上别人写好的宏用一张纸抄写下来,然后进入游戏宏设置中一字字敲下,途中发现某些宏用不了,又退出游戏打开网站查询,拿笔记在纸上再次进入游戏尝试。。。。。。

看到这里可能玩转电脑的高手们会笑,但确实是这样,不是亲眼目睹我也不敢相信还有人用这样原始的做宏方法。

所以,首先有必要说明在操作系统平台下或游戏中,当不能使用鼠标右键弹出选项菜单时几个键盘组合键功能:

1.“Ctrl”控制键+“C”键---复制

2.“Ctrl”控制键+“V”键---粘贴

3.“Ctrl”控制键+“X”键---剪切

4.“Ctrl”控制键+“A”键---全选

5.“Windows”键(即操作系统图标的按键一般位于“Ctrl”控制键与“Alt”换档键之间)+“D”键---最小化所有任务到任务栏并显示桌面。

6.“Windows”键+“Tab"制表键---在任务栏打开的各项任务间进行切换。

下面让我们在游戏中一步步设置宏命令:

一.进入游戏后按“Esc”键或点主菜单图标可打开游戏主选单,点选“宏命令设置”。

当然亦可敲下“回车”键在对话框中输入/MACRO也能打开宏命令设置界面。

二.打开宏命令设置面板后,如果想建立的是角色专用宏,还必须先点上方“通用宏”旁边的角色“专用宏”,在选“新建”后打开建立新宏的面板:

三.输入宏的名字,选取一个宏图标后点“确定”,就建立了一个新宏。

这里需要注意的是,当选取的是第一个“?”号形的图标时,该宏图标将以宏内容中输入的法术技能图标显示。

四.点击宏命令主面板上方中的宏图标,在下方输入宏内容,然后将这个宏图标拖放到快捷技能栏里,就能使用了。

五.宏命令内容的输入:

1.宏的内容中每项命令以分行的形式隔开,这里说的分行并不是说宏面板上写到一定数量后顺列到下行,而是指在宏内容中敲下“回车”键后所进行的分行。在中文版的WOW中不论是输入中文或英文命令,只要输入字符正确均能使用,一般在宏中使用英文不必区分大小写。想把某个技能写进宏中,只需打开技能面板后点击宏内容中想要输入的地方,然后按住“Shift”上档键同时点击法术技能图标就可以;想把背包中某件物品名写进宏中亦是同理。

例:暗夜精灵在喝水的同时施放影遁(宏中的斜杠/+“use"+空格+物品名是物品使用宏的一般格式,当然后面的物品名也可换成魔法面包等等)

/坐下

/use魔法晶水

/施放影遁(种族特长)

2.行为命令宏内容的一般书写格式:斜杠/+空格键+技能名(或行为内容)

书写技能的时候若在后面加上(等级X),将使用特定等级的法术,仅书写技能名时默认使用最高等级的法术

例:猎人在标记敌对目标的同时喊话提醒队友

/大喊我已进行标记大家集中火力消灭他!

/施放猎人印记

在写宏中大家以后还会经常用到“%t”这个字符,“%t”表示你当前目标的名字。

例:猎人在标记一只野猪的同时喊话提醒队友

/大喊我已标记%t大家集中火力消灭他!

/施放猎人印记

3.在TBC中当某个技能带有公共CD时(近战一般是1秒,法系1.5秒),也就是施放某个法术时其他大部分技能图标也会跟着绕一圈的时间,这种带有公共CD的技能在宏内容中仅仅依靠简单分行顺序施放的方法是不行的。

例如:战士想通过连续按宏在压制不能使用时施放英勇打击(在TBC的宏规则中当“压制”处于冷却时间或不可用导致施放失败后,第二次按该宏就会继续重复运行第一行的“/施放压制”,不能自动跳过尚未放出的技能转到第二行宏命令)

所以,下面这个宏是失败的:

/施放压制

/施放英勇打击

但是,仍可通过简单分行顺序施放编在同个宏中的技能命令,条件是“技能为瞬发并且这几个技能间不同享公共CD”,比如冷血和伏击。

例:战士在施放血性狂暴,当血性狂暴技能尚未冷却时再次运行该宏就施放战斗怒吼(“cast”等于“施放”)

/cast血性狂暴

/cast战斗怒吼

另外,虽然同享公共CD,但释放条件不同的技能仍然可用各种宏函数串接起来顺序施放,在以后的教程中会谈到这类宏内容的设置。

4.选择和切换目标宏,这在游戏中是较为频繁使用的!

目标选择宏一般书写格式为:宏函数+空格+目标内容

例:不论当前目标是什么或者没有目标,立即切换到指定目标加BUFF

/target角色名字

/cast奥术智慧(等级3)

一些常用的目标选择宏函数有:

target选定目标,例如/target冬狼

targettarget目标的目标,例如/targettargettarget指目标立即切换到当前目标的目标

pet宠物,例如/click[pet]PetActionButton1指的是使用宠物技能栏中第一个技能

partyX表示第X个小队队友,例如party1,party2。。。。。。

partypetX表示第X个小队队友的宠物,例如partypetX1,partypetX2。。。。。。

raidX表示第X个团队队友,例如raid1,raid2。。。。。。

/cleartarget清除当前目标

/targetlasttarget选定上一个目标

/startattack对当前目标进行连续性攻击直到目标死去或消失,这个宏对近战和带宠职业非常有用!

5.其它一些常用宏命令:

/AFK暂离,当然也可以输入中文/暂离

/DND请勿打扰,还可进行自动回复,例如/DND我有事离开一下,待会再谈!

/1将聊天频道切换为综合频道

/6将聊天频道切换为寻求组队频道

例:需要离开电脑一段时间,想把信息传到综合和寻求组队频道,同时令角色马上处于暂离状态并自动回复宏

/1我的朋友们注意啦,我有事要离开一会,等会来了再找大伙聊哈

/6我的朋友们注意啦,我有事要离开一会,等会来了再找大伙聊哈

/DND我有事离开一下,待会再谈!

/AFK

大家也可以在游戏中查询命令:打开对话框后键入斜杠/,再输入中文单字或英文字母,然后陆续按下“Tab”制表键,会在对话框中分别列出以这个字开头的所有命令。

例如键入字母“/a”后按几次“Tab”制表键,会依次显示出以字母“a”开头的/assist,/afk,/announce,/ann,/agree等等命令!

6.用操作系统中的“记事本”程序,打开游戏目录中宏的记录文件可直接对宏命令进行编辑。

通用宏文件夹位置:WorldofWarcraft→WTF→Account→以您游戏帐号命名的文件夹→macros-cache.txt

角色专用宏文件夹位置:WorldofWarcraft→WTF→Account→以您游戏帐号命名的文件夹→以您游戏角色所在服务器命名的文件夹→以您游戏角色名称命名的文件夹→macros-cache.txt。身上各个部位编号:

1:头

2:颈

3:肩

4:衬衣

5:胸

6:腰带

7:腿

8:脚

9:手腕

10:手套

11:手指1

12:手指2

13:饰品1

14:饰品2

15:背

16:主手

17:副手

18:远程武器

动作条编号:

主动作条1为1--12

主动作条2为13--24

主动作条3(右1)为25--36

主动作条4(右2)为37--48

主动作条5(右下)为49--60

主动作条6(左下)为61--72

背包及包裹格子编号:

背包从右到左的编号分别是:4、3、2、1、0~

包裹格子的编号是从左至右排列,一个包的第一行分别是:1、2、3、4~

然后是包裹第2行:5、6、7、8~下面几行依次类推。

二宏命令讲解:

/cast

简单的说就是/施放,并且使用这个命令的宏只有一个法术会被施放。现在的这个命令可以加入条件来判定法术是否被施放。比如“/cast [help,combat] 快速治疗”,这个宏的意思是当目标为友善,并且在战斗中,那么施放快速治疗。

可用的条件:

help-判断目标是否为友善;

harm-判断目标是否为敌对;

combat-判断你是否在战斗中;

stance或stance:#-判断你是否在姿态中或是否在指定姿态中;

stealth-判断你是否在潜行;

modifier或modifier:x(x可为shift、ctrl、alt 或者是它们的组合)判断某个或某几个按键是否被按下。

equipped:-判断某件物品是否在装备中。可以是装备栏编号、装备分类(武器、副手。。。)、装备子类(双手剑、法仗等等。。。)

target=-可以把技能目标指定为任何有效的目标,并且可以另你不丢失当前目标!还可以为“none”,用来指定没有目标的时候。“self”,用来指定只对自己施放。比如“/use [target=self] 厚符文布绷带”,无论任何时候都只对自己使用绷带。

actionbar:-判断当前动作条是否被列出。可为1、2、3、4、5、6~

pet:-pet type为宠物类型;pet name为宠物名字。如果不填写宠物类型或名字则判断宠物是否存在。

mounted-判断是否在坐骑上。

swimming-判断是否在游泳。

flying-判断是否在飞行中。

outdoors-判断你是否在室外。

indoors-判断你是否在室内。

button:<#>判断某个特定按钮是否被用来触发技能。<#>可为1(鼠标左键)、2(鼠标右键)、3(鼠标按键3,也就是鼠标滚轮向下按,不是向上滚也不是向下滚)、4(鼠标按键4,多键鼠标专用)、5(鼠标按键5,多键鼠标专用)。默认为1。

channeling-判断你是否在引导法术。

channeling:法术名称-判断你是否在引导特定的法术。

exists-判断特定目标是否存在。

dead-判断目标是否死亡。

stance:<#>-判断是否在姿态中,默认为1(只写stance不写编号为默认)。牧师的暗影形态,盗贼的潜行都为1。

战士:1战斗、2防御、3狂暴

德鲁伊:1熊、2海豹?、3猫、4旅行、5枭兽/树

equipped:装备名称/类型/子类型-判断某件装备是否在装备中。比如“/cast [equipped:魔杖] 射击”,这个宏的意思是如果装备魔杖就使用射击。

/castsequence

连续点击可以按顺序施放指定法术。一个法术施放失败,后面的法术就不会被施放。

常使用的条件选相:

reset=<#>或target或combat或它们的组合,其他同“/cast”。

简单介绍一下<#>/target/combat的作用。

<#>-代表数字,一般都是1到1800,单位为秒。/castsequence reset=120 部落徽记,亡灵意志,这个宏的功能是先使用部落徽记,然后使用亡灵意志。如果120秒后亡灵意志依然没有被施放那么还是使用部落徽记。但是,reset=<#>永远都是在你施放最后一个法术的时候开始记时。

target-切换目标时重至宏。

combat-战斗开始时重至宏。

所有条件都可以在前面加“no”来达到相反的效果!比如“nocombat”,判断你是否不在战斗。

“,”相当于以前的and。比如“/cast [help,combat]快速治疗”,这句的意思就是目标为友方并且在战斗中时使用快速治疗。

“/”相当于以前的or。

/castrandom

随机施放法术,比如“/castrandom 变形术:猪,变形术:羊,变形术:龟”。(我变~我变~我变变变!)

/use

使用物品或装备,不再需要指定编号。比如“/use 厚符文布绷带”。

/userandom

随即使用指定的几件物品。

三目标选定:

/targetenemy

选定一个敌对目标。

/targetfriend

选定一个友善目标。

/targetparty

选定一个小队队友为目标。/targetraid

选定一个团队队友为目标。/targetlasttarget

选定上个目标。

/targetlastenemy

选定上个敌对目标。

/assist

协助~同“/协助”。

四宠物类:

/petattack

宠物攻击。

/petstay

宠物停止。

/petfollow

宠物跟随。

/petpassive

宠物被动形态。

/petdefensive

宠物防御形态。

/petaggressive

宠物攻击形态。

/petautocaston 法术名称

宠物法术自动施放开启。

/petautocastoff 法术名称

宠物法术自动施放关闭。

五其他

/focus

一直锁定一个目标~比如把这个命令和宠物攻击结合做一个宏。再比如你当前的宠物是MM,并且用这个宏让MM去攻击一个战士,然后你切换了目标,并让MM施放诱惑,这时MM 诱惑的目标不会是你当前的目标,而是刚才的那个战士。

# show <法术名称/物品名称>

这个命令可以让你的宏显示指定法术或物品的图标。

/cancelaura

取消BUFF~比如“/cancelaura 奥术智慧”。

/stopmacro [option]

停止宏,可加条件判定。这里有一个特殊的例子:

/cast [harm] 变形术

/stopmacro [noharm]

/p 正在把%t變羊!別去碰它!

如果变形术施放失败,那么就不会在小队内说话。

/click

点击?貌似是的。和“/cast”一样何以加事件判断。

实例:/click [pet:虚空行者]PetActionButton1

还要说的一个重点内容:“PetActionButton1”,1可以改为1-10任何一个数,意思就是宠物技能栏的1-10。

最后,送大家两个宏:

/console SET targetNearestDistance "50"

将“TAB”能选定目标的最远距离改为50码。

/console SET targetNearestDistanceRadius "50"

将“TAB”能选定身后目标的最远距离设为50码,不过并不推荐这么做,20就够了。

学习实践这个帖子的小经验和小问题

学习实践这个帖子的小经验和小问题,终于可以用简体字了,我真不易..

因为在tf玩,所以下面有繁体字,技能名有出入...

先谈经验:

1.不要直接copy 别人的代码到以下文件中:

"盘符:\Program Files\World of Warcraft\WTF\Account\帐号名\服务器名\人物名\macros-cache.txt"

容易出问题,我就遇到过2行代码,死活不灵,在游戏里重新输入一遍,就好了=..=

2.在宏里加一个"#showtooltip",看技能效果很方便,特别是"3吸取"那种宏,开始不熟悉快捷键可以看看.

3.不要乱添分号";":

但凡与写代码沾一点边的人,一行字结尾不加个";"就全身不舒服.....以懒人练级宏为例:

#showtooltip

/castsequence [nomodifier] reset=combat/target 生命虹吸,痛苦詛咒,腐蝕術,獻祭,吸取生命,吸取生命;

/cast [modifier:alt]吸取靈魂;[modifier:ctrl]吸取法力;[modifier:shift]吸取生命;

这是一个错误的示范,加了";",后面的3吸取就没有效果了,要去掉....

4.宏的图标选择,请多试试图标选择面板里的第一个"问号图标".

以亡灵意志宏为例,图标选择"?",如果看看macros-cache.txt,图标名就是"INV_Misc_QuestionMark"

#showtooltip

/stopcasting

/cast [nomodifier]防護暗影結界;[modifier:alt]亡靈意志

这个宏在我的技能栏1的第5格上,按5就是暗防,按alt+5就是反恐.

当选择问号图标并拖到技能栏以后,问号图标就显示"防護暗影結界"的图标了,会显示该技能cd,当你按下"alt"(注意还不是"alt+5"),该图标自己变化为"亡靈意志",并且显示的是"亡靈意志"的cd.

上面经验3里那个宏我就用的问号图标,特方便看现在该施放哪一个技能了.懒要懒出境界,好比ui区的一个版主..

再来谈谈问题:

问题1:

在上面经验4的宏,按下ctrl或者shift时候,图标仍然是"防護暗影結界",但下面这个宏:

#showtooltip

/cast [nomodifier]生命分流;[modifier:alt]魔甲術;

如果按下ctrl或者shift时候,图标却变化为"?",当然手指抬起后,会正常不影响使用,不知是我个体的原因,还是什么,还请大家帮忙看看.

问题2:

在放火雨,或者搓暗蛋的时候,我想打断咒语吟唱,一般是后退2步,有没有宏可以直接打断?

/stopcasting 可以打断炉石,但是不能打断火雨什么的.

如果没有这种宏,能让我后退一步的宏也可以=..=

问题3:

在wow2里我想在施放一个技能时候随机说一句话的宏如何写,前面那个绑定石头的好像不合适,以前那个跑龙套的喊话宏好像也不好用.

比如:

#showtooltip

/stopcasting

/cast 恐惧术

宏的函数库

1.发送消息

1.1 SendChatMessage("message","system","language","channel")

作用:发送一条聊天消息

参数:

"message":要发送的消息

"system":聊天消息想要发送的类型,可使用:

"SAY":说

"WHISPER":密语,必须在参数"channel"中指明密语对象的名字,可配合函数UnitName("unit")使用

"CHANNEL":频道,必须在参数"channel"中指明频道的编号,省略时为”综合”

"GUILD":工会

"PARTY":小队

"RAID":组团

"YELL":大喊

"language":使用的语言,若无参数"channel"时可省略。

在CWOW中可使用”通用语”、”兽人语”等。亦可指定WOW中使用的其它语言,准确的语言名可使用函数GetDefaultLanguage(“unit”)获得。

参数"language"指定的语言仅对发送者生效,接受者将以其默认语言接收。

1.2 GetDefaultLanguage(“unit”)

作用:返回参数”unit”指定的单位所使用的默认语言

2.字符运算

2.1 strfind(“string”,”pattern”)

作用:在字符串”string”中寻找字符(串)”pattern”

返回值:若找到,返回2个值,开始位置、结束位置;若找不到,返回nil

2.2 format(“formatstring”,value,…,…)

作用:使用value,…,…提供的值,按照”formatstring”指定的格式,建立字符串

“formatstring”中常用的格式:

%s:字符串

%d:整数

%f:浮点数

3.好友/屏蔽

3.1 AddFriend("name")

作用:将指定名字的玩家加入好友列表

参数:

"name":玩家的名字,可使用函数UnitName("unit")获得

3.2 AddIgnore("name")

作用:将指定名字的玩家加入屏蔽列表

3.3 DelIgnore("name")

作用:将指定名字的玩家从屏蔽列表中删除

3.4 AddOrDelIgnore("name")

作用:切换指定名字的玩家的屏蔽状态

4.组队

4.1 InviteToParty("unit")

作用:邀请参数”unit”指定的单位加入小队

4.2 InviteByName("name")

作用:邀请指定名字的玩家加入小队

4.3 UninviteFromParty("unit")

作用:将参数”unit”指定的单位踢出小队

4.4 UninviteByName("name")

作用:将指定名字的玩家踢出小队

4.5 LeaveParty()

作用:离开小队

4.6 UnitInParty("unit")

作用:判断参数”unit”指定的单位是否和玩家在同一小队中4.7 GetNumPartyMembers()

作用:返回除玩家外的队友数

4.8 GetNumRaidMembers()

作用:返回包括玩家在内的团友数;若未组团,返回0

4.9 GetPartyMember(N)

作用:返回指定号码的队友的名字

返回值:若该队友不存在,返回nil

5.地图位置

5.1 GetZoneText()

作用:返回地区名

5.2 GetSubZoneText()

作用:返回分区名;若玩家并未位于一分区内,返回空值(并非nil值)

5.3 GetMinimapZoneText()

作用:返回小地图上显示的区域名。若玩家位于一分区内,相当于函数GetSubZoneText();若玩家并未位于一分区内,相当于函数GetZoneText()

5.4 SetMapToCurrentZone()

作用:将世界地图设置到玩家所位于的地区

5.5 SetMapZoom(continent)

作用:将世界地图设置到参数continent指定的大陆

参数continent:

0:整个世界

1:卡里姆多

2:东部王国

5.6 GetPlayerMapPosition("unit")

作用:返回参数”unit”指定的单位在当前地图中所处的坐标

参数:

"unit":可使用”player”、”partyN”及”target”。”target”仅能用于友好单位。

返回值:若可用,返回2个值,X轴坐标、Y轴坐标,返回值位于0~1区间;否则,均返回0

6.物品

6.1 PickupContainerItem(bag,slot)

作用:鼠标左击,参数bag指定的背包中、参数slot指定的格子

参数:

bag:背包的编号,0~4,自右向左

0:最右侧的背包(出生时自带的16格包)

4:最左侧的背包(猎人的箭袋、子弹袋)

slot:背包格子的编号,1~16,自左向右,由上而下

1:最上排最左侧格子

2:最上排最左2格子

6.2 PickupInventoryItem(id)

作用:鼠标左击人物属性窗口中,参数id指定装备格子

参数:

id:装备格子的编号

1:头

2:颈

3:肩

4:衬衣

5:胸

6:腰带

7:腿

8:脚

9:手腕

10:手套

11:手指1

12:手指2

13:饰品1

14:饰品2

15:背

16:主手

17:副手

18:远程武器

6.3.1 UseContainerItem(bag,slot)

作用:鼠标右击,参数bag指定的背包中、参数slot指定的格子6.3.2 UseInventoryItem(id)

作用:鼠标右击人物属性窗口中,参数id指定装备格子

6.4 CursorHasItem()

作用:判断指针当前是否持有物品

6.5 OffhandHasWeapon()

作用:判断副手是否装备了武器(盾不是武器)

6.6 AutoEquipCursorItem();

作用:自动装备指针当前持有的物品

6.7 DeleteCursorItem()

作用:摧毁指针当前持有的物品

6.8.1 GetContainerItemLink(bag,slot)

作用:返回参数bag指定的背包中、参数slot指定格子的物品链接6.8.2 GetInventoryItemLink("unit",id)

作用:返回参数”unit”指定单位的、参数id指定装备格子的物品链接6.9 GetContainerItemInfo(bag,slot)

作用:返回参数bag指定的背包中、参数slot指定格子的物品信息6.10 IsBagOpen(bag)

作用:判断参数bag指定的背包是否打开

6.11 ToggleBag(bag)

作用:打开/关闭参数bag指定的背包

6.12 CloseBag(bag)

作用:关闭参数bag指定的背包

6.13 OpenBag(bag)

作用:打开参数bag指定的背包

6.14CloseAllBags()

作用:关闭所有的背包

6.15 OpenAllBags()

作用:打开/关闭所有的背包

7.运动

7.1 MoveForwardStart()

作用:向前移动。仅能由函数MoveForwardStop()停止。

7.2 MoveForwardStop()

作用:停止向前移动

7.3 MoveBackwardStart()

作用:向后移动

7.4 MoveBackwardStop()

作用:停止向后移动

7.5 StrafeLeftStart()

作用:向左移动

7.6 StrafeLeftStop()

作用:停止向左移动

7.7 StrafeRightStart()

作用:向右移动

7.8 StrafeRightStop()

作用:停止向右移动

7.9 TurnLeftStart()

作用:向左转动

7.10 TurnLeftStop()

作用:停止向左转动

7.11 TurnRightStart()

作用:向右转动

相关文档