Lua wow插件

?找回密码
?注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4958|365滚球盘最终比分_365滚球数据_365滚球动画: 0
打印 上一主题 下一主题

【教程】魔兽世界全职业宏命令,想玩好的玩家必看! [复制链接]

Rank: 9Rank: 9Rank: 9

在线时间
2699 小时
注册时间
2008-9-15
积分
2522
跳转到指定楼层
1#
发表于 2009-1-18 02:21:34 |只看该作者 |倒序浏览
简单的说, 宏就是创建一连串的命令集,通过鼠标点击或按下键盘某个按键就让电脑自动执行这一系列命令。


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

看到这里可能玩转电脑的高手们会笑,但确实是这样,不是亲眼目睹我也不敢相信还有人用这样原始的做宏方法。
所以,首先有必要说明在操作系统平台下或游戏中,当不能使用鼠标右键弹出选项菜单时几个键盘组合键功能:

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 目标的目标,例如 /target??targettarget? ?? ?指目标立即切换到当前目标的目标
pet 宠物,例如 /click [pet] PetActionButton1? ?? ?指的是使用宠物技能栏中第一个技能
partyX表示第X个小队队友,例如party1,party2。。。。。。
partypetX 表示第X个小队队友的宠物,例如partypetX1,partypetX2。。。。。。
raidX 表示第X个团队队友,例如raid1,raid2。。。。。。
/cleartarget??清除当前目标
/targetlasttarget??选定上一个目标
/startattack??对当前目标进行连续性攻击直到目标死去或消失,这个宏对近战和带宠职业非常有用!

5.其它一些常用宏命令:
/AFK??暂离,当然也可以输入中文 /暂离
/DND??请勿打扰,还可进行自动365滚球盘最终比分_365滚球数据_365滚球动画,例如 /DND 我有事离开一下,待会再谈!
/1??将聊天频道切换为综合频道
/6??将聊天频道切换为寻求组队频道
例:需要离开电脑一段时间,想把信息传到综合和寻求组队频道,同时令角色马上处于暂离状态并自动365滚球盘最终比分_365滚球数据_365滚球动画宏
/1 我的朋友们注意啦,我有事要离开一会,等会来了再找大伙聊哈
/6 我的朋友们注意啦,我有事要离开一会,等会来了再找大伙聊哈
/DND 我有事离开一下,待会再谈!
/AFK
大家也可以在游戏中查询命令:打开对话框后键入斜杠/,再输入中文单字或英文字母,然后陆续按下“Tab”制表键,会在对话框中分别列出以这个字开头的所有命令。
例如键入字母“/a ”后按几次“Tab”制表键,会依次显示出以字母“a”开头的/assist,/afk,/announce,/ann,/agree等等命令!

6.用操作系统中的“记事本”程序,打开游戏目录中宏的记录文件可直接对宏命令进行编辑。
通用宏文件夹位置: World of Warcraft → WTF → Account → 以您游戏帐号命名的文件夹 → macros-cache.txt
角色专用宏文件夹位置:World of Warcraft → WTF → Account → 以您游戏帐号命名的文件夹 → 以您游戏角色所在服务器命名的文件夹 → 以您游戏角色名称命名的文件夹 → macros-cache.txt

一. 物品使用类宏命令

1.使用装备:/equipslot
例:一键换装宏,下宏的中段数字表示装备部位的编号
/equipslot 16 大元帅的长刀
/equipslot 13 黑手饰物
/equipslot 15 坚定力量披风


2.使用物品:/use
例:法师的一键补充宏,按排列先后顺序使用下列物品
#showtooltip??魔法晶水
/use 魔法晶水
/use 魔法肉桂面包
/use [combat]法力红宝石
/use [combat]法力黄水晶
/use [combat]法力翡翠
/use [combat]法力玛瑙
/use [combat]特效治疗石
注:#showtooltip------指的是这个宏图标显示为该物品或技能;
[combat]------条件宏,这里指的是战斗状态,下文中会详细介绍条件宏的使用。

3.某些特殊道具宏的书写格式
例1:使用饰品
/cast 6级雷矛勋章
例2:使用坐骑
/use 黑色军用机械陆行鸟

二.条件判断类宏命令
1.一般书写格式为:斜杠/命令 + 空格 +[条件参数] 行为名称

例:一键回蓝,优先喝水,当处于战斗中时使用法力红宝石
/use 魔法晶水
/use [combat]法力红宝石

2.多个判断条件的宏命令,每行中各技能以分号隔开,一般书写格式为:

斜杠/命令 + 空格 +[条件1,条件2。。。] 行为名称1;[条件3,条件4。。。] 行为名称2
例:当目标为敌对时使用“变形术”,当不在战斗中并且目标不是敌对时施放“钓鱼”

/cast [harm]变形术;[nocombat,noharm]钓鱼

3.大多条件判断宏的书写都可以在前面加上“no”,使之判断条件恰好相反
例如,mounted的判断条件是正在坐骑上,nomounted的判断条件为不在坐骑上


从2.0开始宏内可用的条件:

help---判断目标是否为友善;
比如“/cast [help]治疗术”,如果目标为友善那么施放治疗术。

harm---判断目标是否为敌对;
比如“/cast [harm]惩击”,如果目标为敌对那么施放惩击。

party---判断目标是否在本小队中;
比如“/cast [party]治疗术”,如果目标在本小队中那么施放治疗术。

raid---判断目标是否在团队中;
比如“/cast [raid]治疗术”,如果目标在本团队中那么施放治疗术。

group---判断自己是否在一个队伍中(小队或团队);
比如“/cast [group]治疗导言”,如果自己在一个队伍中那么施放治疗导言。

group:party/raid判断自己是否在一个指定的集体中:小队/团队;
比如“/cast [group:raid]治疗导言;[group:party]快速治疗”,如果在团队中就施放导言,在小队中就施放快速。

combat---判断你是否在战斗中;
比如“/cast [combat]消失;[nocombat]潜行”,如果在战斗就消失,不在战斗就潜行。

stance或stance:#---判断你是否在姿态中或是否在指定姿态中。#为数字,也就是姿态编号。
比如“/cast [stance]精神鞭挞”,如果在暗影形态就施放鞭挞。“/cast [stance:3]潜行”,如果在猫形态就潜行。

stealth---判断你是否在潜行;
比如“/cast [stealth]背刺;邪恶攻击”,如果在潜行就用背刺,否则邪恶攻击。

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

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

target=---可以把技能目标指定为任何有效的目标,并且可以另你不丢失当前目标!还可以为“none”,用来指定没有目标的时候。“player”,用来指定只对自己施放。比如“/use [target=player] 厚符文布绷带”,无论任何时候都只对自己使用绷带。关于“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:法术名称---判断你是否在引导法术或是否在引导指定的法术。
比如“/cast [nochanneling:奥术飞弹]奥术飞弹”,在这个例子里我把“channeling:奥术飞弹”前面加了“no”,所以这个宏的意思就变成了如果没有在引导奥术飞弹,那么施放奥术飞弹,避免浪费~~~

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

dead---判断目标是否死亡。请注意,这个是判断目标是否死亡。如果你想判断你自己的宠物是否死亡就要写成这样“[target=pet,dead]”。
比如“/cast [target=pet,dead]复活宠物(猎人的复活宠物技能。。。)”。这个宏的意思就是如果你的宠物死亡了那么施放复活宠物。

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


三、关于技能CD或公共CD的相关问题:
上面提到,TBC版单个宏命令中多个同享公共CD的技能不能通过简单分行书写排列施放了,但仍能用一些宏函数将其串接起来使用,下面让我们分析下这个宏:
/施放 致死打击
/施放 英勇打击
这个宏的初衷是希望通过连续点击一个按键就施放“致死打击”或“英勇打击”,但是由于TBC版宏特性改变,
宏首先会检测第一行命令,当条件不满足时这个宏就停止运行了,也就是说当“致死打击”不能用的时候,
不会自动跳到下行施放出“英勇打击”;
即使“致死打击”成功施放,第二次再运行该宏时仍然先检测第一行命令,这样的话上面这个宏其实只能施放“致死打击”单技能,后面的“英勇打击”永远打不出。

那么,还有什么办法能在同个宏中施放多个同享公共CD的技能呢?
这里可用到前面第二大条叙述的条件判断宏来串接各技能;
还有就是使用到TBC版宏命令中的新特征/castsequence
也就是按顺序施放一组事先设定好的法术!值得注意的是序列中一个法术施放失败,后面的法术就不会被施放。
所以这类命令通常与宏的重置命令结合使用。
例:战士希望通过连续点击一个按键顺序施放“致死打击”和“英勇打击”
# show 致死打击
/stopcasting
/castsequence reset=6/target/combat 致死打击,英勇打击
/startattack
详细解释上面这个宏:
# show 致死打击------建立该宏时选择的是个“?”号型图标,这里的作用就是让宏图标中优先显示“致死打击”
/stopcasting------立即打断当前正在进行的法术或动作
/castsequence reset=6/target/combat 致死打击,英勇打击------/castsequence即循序施放多个技能的斜杠命令;reset=6指6秒后重置该宏,当然这里表示时间的数字可以自定;/target指切换目标时重置该宏;/combat指战斗开始时重置该宏; 最后面的技能名就是顺序施放的法术,技能间用逗号隔开
/startattack------连续攻击当前敌对目标,直到该目标死去或消失!

四.建宏时需要注意的事项

1.在建立宏命令时,如果是职业专用宏,最好选择写进角色专用宏里,因为宏数量是有限的,避免占用多个通用宏的位置!

2.若无必要,最好尝试自己编写宏命令,别懒到总是复制人家写好的来用。
在编写的过程中相信你会找到一些乐趣的!
况且简单的复制人家写好的宏命令,在实际使用中经常会遇到这样那样的问题。

3.使用操作系统中的“记事本”程序,打开游戏目录中宏的记录文件可直接对宏命令进行编辑。
通用宏文件夹位置: World of Warcraft → WTF → Account → 以您游戏帐号命名的文件夹 → macros-cache.txt角色专用宏文件夹位置:World of Warcraft → WTF → Account → 以您游戏帐号命名的文件夹 → 以您游戏角色所在服务器命名的文件夹 → 以您游戏角色名称命名的文件夹 → macros-cache.txt

4.新建宏的时候多使用那个“?”号型图标;
写宏的同时在内容中加一行“#showtooltip 技能名”,宏技能图标就会以该法术图标显示,很方便

5.写宏的时候千万别乱添符号
见过许多习惯于写代码的朋友们,往往喜欢在每行结尾加个;号
例:书写错误的法师多用途宏
#showtooltip 寒冰箭
/use [harm]赞达拉英雄护符;
/cast [modifier:alt,harm]寒冰箭(等级 1);[harm]寒冰箭;[modifier:alt]冰甲术;[modifier:ctrl]法师护甲;[nocombat,noharm]造水术;
这个宏本来是功能强大的,唯一的错误就是在每行后面多添加了个;号,导致下行的寒冰箭啦,造水术啦统统放不出!

6.宏命令的书写中,使用的符号应切换到英文输入法时再进行书写!


五.几组通用宏
提供给大家参考,这些宏的具体作用大家就自己去分析吧

一.通用宏
例1:一键回血,要改为一键回蓝的话大家把物品名相对改下即可,当然亦可增添几行命令
#showtooltip??魔法肉桂面包
/use 魔法肉桂面包
/use 奥特兰克冷酪
/use [combat]厚符文布绷带
/use [combat]符文布绷带
/use [combat]优质治疗药膏
/use [combat]强效治疗药水
/use [combat]丝质绷带
例2:右键点击是在小地图上显示附近矿物图标,左键点则打开熔炼面板
#showtooltip??熔炼
/cast [button:2]寻找矿物;熔炼
例3:饰品宏,左键和右键点击分别使用装备在身上的不同饰品
#showtooltip??6级雷矛勋章
/stopcasting
/cast [button:2] 6级雷矛勋章; 赞达拉英雄护符

二.战士宏
例1:宏显示为冲锋的技能图标,当前目标为敌对且未处于战斗中时冲锋,否则施放挫志怒吼
# show 冲锋
/stopcasting
/cast??[harm,nocombat]冲锋
/cast 挫志怒吼


例2:这个宏就不必解释了吧,战士们一看就会明白
/stopcasting
/cast [stance:1,combat,harm]反击风暴
/cast [stance:2,combat,harm]盾墙
/cast [stance:3,combat,harm]鲁莽


例3:宏显示为斩杀的技能图标,当处于战斗姿态或狂暴姿态,目标为敌对并且在战斗中时使用斩杀;当处于防御姿态,目标为敌对并且在战斗中时使用盾击;当前面的条件都不成立时运行该宏就是召唤坐骑!
# show 斩杀
# show 盾击
/stopcasting
/cast [combat,harm,stance:1]斩杀
/cast [combat,harm,stance:3]斩杀
/cast [combat,harm,stance:2]盾击
/use 黑色军用战马缰绳


三.法师宏
例1:此宏较为复杂,具体作用大家就自己分析吧,若能熟练编写该类宏命令一定能使您操作角色更为简便!
#showtooltip 寒冰箭
/use [harm]赞达拉英雄护符
/cast [modifier:alt,harm]火球术;[harm]寒冰箭;[modifier:alt]冰甲术;[modifier:ctrl]法师护甲;[nocombat,noharm]造水术
/stopmacro [target=pettarget, exists]??
/petattack
/click [pet] PetActionButton1

例2:开启或关闭冰箱宏,若冰箱技能尚未冷却时则使用治疗药水

#showtooltip 寒冰屏障
/stopcasting
/cancelAura 寒冰屏障
/cast 寒冰屏障
/use 强效治疗药水

例3:要是宠物存在,使用宠物快捷栏上的第8个技能(我的宝宝第8个技能为被动状态,当然大家可以自己设置)
也就是宝宝立即处于被动状态停止攻击;若当前目标为敌对时则对其施放变形术;当前面的条件均未成立,目标不是敌对且不在战斗中时施放钓鱼。

#showtooltip??变形术
/click [pet] PetActionButton8
/cast [harm]变形术;[nocombat,noharm]钓鱼


四.牧师宏
例1:当鼠标指向的目标或当前目标是友方且未死亡,使用驱散;当鼠标指向的目标或当前目标是敌对且未死亡,使用暗言术:痛;当没有目标且鼠标并未指向任何目标时对自己使用驱散!(前提是界面设置中的自我施法必须启用)

# show??暗言术:痛
/cast [target=mouseover,exists,help,nodead] 驱散魔法; [target=mouseover,exists,harm,nodead] 暗言术:痛; [help,nodead] 驱散魔法; [harm,nodead] 暗言术:痛; [target=player] 驱散魔法

例2:当目标敌对时施放暗言术:痛;当目标友善时施放真言术:盾。并且右键点击时都是对自己施放法术。

# show??真言术:盾
/cast [button:2, target=player] 真言术:盾; [help] 真言术:盾; 暗言术:痛

例3:成功复活后才通知,当暗影形态或战斗中或目标敌对或目标未死亡时,不进行动作;否则施放复活术,并通知正在复活的目标名字。这个宏可避免以前的复活宏因为复活失败却仍然喊话的尴尬。

# show??复活术
/stopmacro [stance:1/combat]
/cast 复活术
/stopmacro [nohelp/nodead]
/大喊 %t起来吧,我的勇士!
/团队 我已复活%t

附:魔兽世界中的表情命令,虽无实战用途,多少也能给游戏添加一些乐趣吧


??

我想,当大家把我的3篇宏教程认真看完之后,应该对宏有个大致了解了吧!
宏命令的编写和运用仅看教程还是不够的,需要在游戏中不断摸索尝试。

最后,希望大家都能编写出高档次的宏,甚至找出我文章里的毛病,那时就是在下向您请教啦!






QUOTE:
如何写一个宏---以术士实例讲解


壹:初步制作
恩。。。如果我是个恶魔术士,我现在想写个瞬招胖子牺牲宏。
第一步,用“/cast”来施放“牺牲”:
/cast 牺牲
这样就写好了,“/cast”也就是“/施放”,作用是可以让你在宏内施放一个技能。而“牺牲”,是术士宠物的一个技能。

第二步,光有牺牲没有瞬招怎么行~牺牲完胖子我还想瞬招一个出来呢。
/cast 恶魔支配
“恶魔支配”,术士无公共CD法术。

第三步,光有瞬招却不招宠物是不行的,所以。。。
/cast 召唤虚空行者
“召唤虚空行者”,不用解释了吧。。。。。。。。

第四步,现在“牺牲”、“恶魔支配”、“召唤虚空行者”都写好了,下面把他们组合起来。
/cast 牺牲
/cast 恶魔支配
/cast 召唤虚空行者
组合起来之后就是这样了,这个宏可以先牺牲胖子,然后使用恶魔支配,然后召唤虚空。一共按键3次。
注意:并不是所有宏都可以这样写的!原因是牺牲和恶魔支配,一个是宠物技能,一个是无公共CD技能,都不占用公共CD,所以这个“傻瓜”格式的宏才会有效。同样,所有无公共CD的技能、物品和宠物技能,都可以只加一个占用公共CD的技能写在一个无任何条件的宏中。比如先使用护符,再放技能的宏!

贰:添加条件
虽然有了瞬招牺牲宏,但是我不想让这个宏单独占我一个宝贵的快捷键。。。所以,我要给这个宏添加几个条件让它在适当的时候能做出适当的动作。具体如下。

第一步:要是这个宏能在我需要瞬招牺牲的时候才会起作用该多好~~~所以我想到了只有在没有宠物的情况下在使用恶魔支配所以,上面的宏就变成了下面这样。
/cast 牺牲
/cast [nopet]恶魔支配
/cast 召唤虚空行者
这个宏里面多了一个“[nopet]”。“nopet”是条件,也就是“没有宠物”的意思。而“[]”的作用就是告诉WOW都有什么是条件,所有写在“[]”里面的东西都是条件。

第二步:我觉得光是在没有宠物的情况下使用“恶魔支配”还是不能满足我的需要,因为使用完牺牲之后宠物并没有消失,而是死亡状态,所以,我又给宏加了一个条件。如下~
/cast 牺牲
/cast [nopet][target=pet,dead]恶魔支配
/cast 召唤虚空行者
这次,宏里面添加了“target=pet,dead”这个条件,但是实际上这是两个条件。首先,“taregt=pet”是一个条件,作用是把你的隐藏目标(隐藏目标其实是我自己起的名字,这个条件的意思就是并不会改变你当前的目标,并且选择一个目标做为将要进行的动作的目标)指向你的宠物。而“dead”的作用就是判断目标是否死亡。而“,”半角逗号,也就是不用任何输入法打出来的逗号,作用为“并且”存在着,所以“target=pet,dead”的实际意思是“把隐藏目标指向你的宠物,并且判断其是否死亡”,白话一点就是“判断你的宠物是否死亡”。
还要说一点~“[nopet][target=pet,dead]”,前面的“[nopet]”和“[target=pet,dead]”的关系为“或者”,当两个“[]”连在一起写的时候都为“或者”。就是说当“[nopet]”不成立的时候会检查“[target=pet,dead]”是否成立,如果“[target=pet,dead]”也不成立那么这个法术是不会被施放的。相反,只要这两组条件中有一个是成立的,那么这个技能就会被施放,这就是“并且”的作用。

基本内容就这么多,个人感觉真的是很少很少,并且非常简单。献给喜欢宏并且想学习写宏的人。
一些基本知识
==========================================================
==========================================================

QUOTE:
身上各个部位编号:
1:头
2:颈
3:肩
4:衬衣
5:胸
6:腰带
7:腿
8:脚
9:手腕
10:手套
11:手指1
12:手指2
13:饰品1
14:饰品2
15:背
16:主手
17:副手
18:远程武器

动作条名称及编号:
主动作条1:ActionButton
主动作条2:不知道。。。。。。。
主动作条3(右1):MultiBarRightButton
主动作条4(右2):MultiBarLeftButton
主动作条5(右下):MultiBarBottomRightButton
主动作条6(左下):MultiBarBottomLeftButton
每个动作条的按钮从左至右都是1~12。
背包及包裹格子编号:
背包从右到左的编号分别是:4、3、2、1、0~
包裹格子的编号是从左至右排列,一个包的第一行分别是:1、2、3、4~
然后是包裹第2行:5、6、7、8~下面几行依次类推。

姿态编号:
? ?? ?? ? |??战士??|??德鲁伊??|  牧师  |  盗贼  | 萨满祭祀
------------------------------------------
姿态 1 |??战斗??|  熊  | 暗影形态??| ??潜行  | 幽魂之狼
姿态 2 |??防御??|  海豹 |     |     |
姿态 3 |??狂暴??|  猫  |     |     |
姿态 4 |? ?? ?? ?? ?| 旅行  |     |     |
姿态 5 |? ?? ?? ?? ?| 枭兽/树??|     |     |
姿态 6 |? ?? ?? ?? ?|  飞行 |     |     |

==========================================================
==========================================================

补充:
默认动作条从第一个按钮到最后一个对应ActionButton1到ActionButton12。
左下动作条对应MultiBarBottomLeftButton1到MultiBarBottomLeftButton12。
类似的,右下为MultiBarBottomRightButton1到MultiBarBottomRightButton12。
右侧第一列从上到下依次为MultiBarRightButton1到MultiBarRightButton12。
左侧第一列从上到下依次为MultiBarLeftButton1到MultiBarLeftButton12。

编写宏,比如我使用右侧第一动作条的3、4两个键放置“一心”和“MT”两个方案。

#showtooltip [noequipped:盾牌]盾墙;剑在人在
/click [noequipped:盾牌] MultiBarRightButton4;MultiBarRightButton3

一些命令的讲解及应用
施放法术相关
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

QUOTE:
/cast [option]
简单的说就是/施放,并且使用这个命令的宏只有一个法术会被施放。现在的这个命令可以加入条件来判定法术是否被施放。比如“/cast [help,combat] 快速治疗”,这个宏的意思是当目标为友善,并且在战斗中,那么施放快速治疗。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/castsequence [option]
连续点击可以按顺序施放指定法术。一个法术施放失败,后面的法术就不会被施放。
专用的条件选相(只有在做这个命令的条件时才会有这样的功用):reset=<#>或target或combat或它们的组合,其他同“/cast”。简单介绍一下<#>/target/combat的作用。
<#>---代表数字,一般都是1到1800,单位为秒。/castsequence reset=120 部落徽记,亡灵意志,这个宏的功能是先使用部落徽记,然后使用亡灵意志。如果120秒后亡灵意志依然没有被施放那么还是使用部落徽记。但是,reset=<#>永远都是在你施放完最后一个法术的时候开始记时。
target---切换目标时重至宏。
combat---战斗开始时重至宏。
比如“/castsequence reset=30/target/combat 腐蚀术,痛苦诅咒,生命虹吸”,意思是依次施放腐蚀、痛苦、虹吸,当最后一个法术施放完(也就是虹吸)30秒之后,或者切换目标,或者脱离战斗都会使序列重至,也就是从头开始。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/castrandom [option]
随机施放法术,比如“/castrandom 变形术:猪,变形术:羊,变形术:龟”。(我变~我变~我变变变!)
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

所有条件都可以在前面加“no”来达到相反的效果!比如“nocombat”,判断你是否不在战斗;“nomodifier”,意思是alt、ctrl、shift都没被按下。
“,”相当于以前的and。比如“/cast [help,combat]快速治疗”,这句的意思就是目标为友方并且在战斗中时使用快速治疗。
“/”相当于以前的or。比如“/castsequence reset=combat/target 腐蚀术,痛苦诅咒”,这句的意思就是当你脱离战斗或切换目标时宏重至,也就是再次从第一个法术开始施放。
几组条件可以以“或者”的形式存在。
比如(以下引用自gzkuru的发表):/cast [help] [target=player] [target=targettarget, help] 强效治疗术 --目标是自己,施放强效治疗术;“或者”目标可以治疗,施放强效治疗术;“或者”目标的目标可以治疗,则对目标的目标施放强效治疗术。

-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
物品&装备

QUOTE:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/use [option]
使用物品或装备,不再需要像以前一样指定包裹或动作条编号了。比如“/use 厚符文布绷带”。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/userandom [option]
随即使用指定的几件物品。比如“/userandom [nomounted] 黑色作战科多兽,死亡军马的缰绳,霜狼嗥叫者的号角,迅捷绿色迅猛龙
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/equip [option]
直接举例说明吧。“/equip [noequiped:复仇法袍]复仇法袍”,意思是如果没装备复仇法袍就把复仇法袍装备上。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/equipslot [option]
这个功能和上面那个类似。但是这个命令主要是为了武器、戒指等可以装备两件的装备而诞生的。
比如:
/equipslot [equiped:多彩之剑] 16 毁灭之刃
/equipslot [equiped:残忍利刃] 17 熔火犬牙
/equipslot [equiped:毁灭之刃] 16 多彩之剑
/equipslot [equiped:熔火犬牙] 17 残忍利刃
这个宏可以把多彩和毁灭、残忍和狗牙互换。“/equipslot”在这里主要就是区分主副手,让宏可以把装备穿到正确的位置。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
目标选定相关

QUOTE:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targe [option]
可以用来选定指定的目标,比如“/targe player”,这个宏会把你的目标选定为你自己。
可用目标:
人物&名字---比如“/target 生命的尽头”那么这个宏就会把目标选定为名字为“生命的尽头”的玩家了(也就是我了),宠物也是如此。如果你在战场,还可以把人物名字后面加上“-服务器名称”,比如“生命的尽头-暮色森林”,这样就选中了“暮色森林”服务器的“生命的尽头”了。
队友&队友宠物:
party1第1个队友
partypet1第一个队友的宠物
party2第2个队友
partypet2第二个队友的宠物
party3第3个队友
partypet3第三个队友的宠物
party4第4个队友
partypet4第四个队友的宠物
raidN和raidpetN---N可为1到40。
mouseover---鼠标经过的目标,或者刚刚经过的目标。比如你现在已经选定了一个目标,同时你把鼠标移到另一个人的身上,然后使用宏“/cast [target=mouseover]恐惧术”,这时被恐惧的人就是你鼠标指向的人而非你的当前目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targetenemy [option]
选定一个敌对目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targetfriend [option]
选定一个友善目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targetparty [option]
选定一个小队队友为目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targetraid [option]
选定一个团队队友为目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targetlasttarget [option]
选定你的最后一个目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/targetlastenemy [option]
选定最后一个对你有敌意的目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/assist [option]
协助~同“/协助”~可选单位同“/target”。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/focus [option]
一直锁定一个目标~比如把这个命令和宠物攻击结合做一个宏。再比如你当前的宠物是MM,并且用这个宏让MM去攻击一个战士,然后你切换了目标,并让MM施放诱惑,这时MM诱惑的目标不会是你当前的目标,而是刚才被锁定的那个战士。
/clearfocus [option]
取消当前被锁定的目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
宠物相关

QUOTE:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petattack [option]
让宠物开始攻击一个目标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petstay [option]
让宠物停在原地。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petfollow [option]
让宠物跟随自己。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petpassive [option]
让宠物进入被动状态。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petdefensive [option]
让宠物进入防御状态。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petaggressive [option]
让宠物进入攻击状态。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petautocaston [option] 法术名称
宠物法术自动施放开启。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/petautocastoff [option] 法术名称
宠物法术自动施放关闭。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
其他

QUOTE:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/startattack
开始攻击。。。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/stopattack
停止攻击。。。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
# show <法术名称 物品名称="">
这个命令可以让你的宏显示指定法术或物品的图标(技能冷却、物品数量、施法材料数量),前提是你的宏必须使用“?”这个图标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
#showtooltip <法术名称 物品名称="">
这个命令可以让你的宏显示指定法术或物品的图标(技能冷却、物品数量、施法材料数量),并且显示物品或法术的详细说明。前提是你的宏必须使用“?”这个图标。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/cancelaura [option]
取消BUFF~比如“/cancelaura 奥术智慧”。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/cancleform [option]
取消某个姿态。比如“/cancleform 巨熊形态”,如果一个德鲁伊在巨熊形态时使用这个宏那么他就会取消形态变回人形。对于战士这个宏是不可以使用的,因为战士时刻都是在一个姿态中,不可取消。。。。。。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/stopmacro [option]
停止宏,可加条件判定。比如:
/cast [harm] 变形术
/stopmacro [noharm]
/p 正在把%t变羊!别去碰它!
如果你的目标不是敌对,那么按这个宏就不会说话。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/click [option]
点击?貌似是的。和“/cast”一样何以加事件判断。先介绍一下下面的两个参数。
ActionButton1这里的1可以改为1-72~也就是你的动作条第一个按钮到第72个按钮。当然,是在你没有使用任何动作条插件的情况下。具体请参照上面的技能栏编号说明。如果你使用了动作条插件,比如“zBar”,并且设置动作条最大按钮数量为12。那么“zBar动作条1”的技能栏编号就是73-84~“zBar动作条2”的技能栏编号就是85-96~依次类推,一般情况下任何动作条都是这样的。(我只是说一般情况下。。。不排除例外)
PetActionButton11可以改为1-10任何一个数,意思就是宠物技能栏的1-10。
下面举个例子:
比如“/click [pet:虚空行者]PetActionButton1”这个宏的意思是如果当前宠物是虚空行者,那么点击宠物技能栏1。这个命令一般都是和下面的两个命令结合使用!
再举个宏套宏的高级例子:
1号宏:
/click [pet]ActionButton1
/click [nopet]ActionButton2
2号宏(对应/click [pet]ActionButton1):
/cast 火焰之盾
/cast 牺牲
/cast 诱惑
/cast 拦截
/cast [harm]法术封锁
/cast [modifier:alt,target=player][help]吞噬魔法
3号宏(对应/click [nopet]ActionButton2)
/cast [nomodifier]召唤虚空行者;[modifier:ctrl]召唤魅魔;[modifier:alt]召唤地狱猎犬;[modifier:shift]召唤恶魔卫士;[nomodifier,button:2]召唤小鬼
要使用这个宏,首先要把2号和3号宏放到指定的位置。
效果:首先这个宏会判断你有没有宠物,有就使用宠物的法术,没有就召唤宠物。结合上面所说过的,不难看出这个宏的意思。(哦~~~~~~原来“/click”还可以这样用啊~~~~~~~~~~)
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/stopcasting [option]
用来打断当前施法。比如你当前正在施放一个需要吟唱类法术(比如火球术),使用“/stopcasting”,法术被中断了。。。。=。=!举这个例子目的只为说明他的作用。当一个法师在吟唱大火球的时候,突然发现敌人解了他的羊正要把他变样。。。那么,这个宏就是时候使用了:
/stopcasting
/cast 法术反制
这个宏会立刻停止你当前的施法并且施放法术反制。个人感觉它比自己移动一下或者跳一下都要好用的多!想具体因为什么就最好自己进游戏试验一下。
这个命令还有一个特别重要的作用。就是可以把无公共CD的多个法术、使用物品和一个需要公共CD的法术连贯起来施放。也就是一个多开宏的中心部分!下面给出一个例子:
/use 13
/stopcasting
/cast 气定神闲
/stopcasting
/cast 炎爆术
这就是一个典型的多开宏。如果没有“/stopcasting”,这个宏就需要点3次才能实现功能。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/dismount [option]
下马。。。同样可以加入条件判定~并且。。。。。下马的速度不是一般的快~~ =。=!!!
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/run
...作用不明。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/in N /频道 内容
延迟说话。N为数字,单位为秒。比如“/in 1 /p 说什么好呢”,这个宏的意思是“1秒后在小队内说:说什么好呢”。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/swapactionbar [option] <动作条编号> <动作条编号>
可以让两个动作条互换~~~~~没什么难理解的吧。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/changeactionbar [option] <动作条编号>
可以翻转到你指定的动作条。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/script SetCVar("targetNearestDistance",10)
其实这不是什么命令,而是一个宏。作用是把搜索范围规定为10码(其实就是规定了范围的TAB~),注意,不是暂时的。当然,要使用这个宏还要在中间加上寻找目标的命令以及在后面把搜索范围再改回来。
比如:
/script SetCVar("targetNearestDistance",5)
/targetlastenemy
/script SetCVar("targetNearestDistance",50)
/cast 摔拌
/targetlasttarget
/cast 自动射击
这只是一个例子,实际应用会不会出现问题我没有测试过。因为我是个术士。
作用是搜索近战范围内的敌人使用摔拌,然后再选定之前的目标并打开自动射击。
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
各职业通用宏

QUOTE:
/console SET targetNearestDistance "50"
将“TAB”能选定目标的最远距离改为50码。

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


/console SET profanityFilter "0"
去掉系统中的敏感词语屏蔽。


/script if UnitClass("target")=="法师" then SendChatMessage("你好,给点水和面包好么?谢谢~~~","Whisper","兽人语",UnitName"Target");if IsAltKeyDown() then InitiateTrade("target");end;end;
M语要水宏。可以分辨职业,不是法师就不会说话。并且可以修改成要其他BUFF的宏。理论上还可以用/click来实现一个判断职业要BUFF的套宏。


/use [harm,target=player] 厚符文布绷带; 厚符文布绷带
summer699编写,不喜欢打开“自动自我施法”的人可以用这个宏。


/use [target=player] 厚符文布绷带
无论目标是谁都对自己使用绷带。


# show 特效治疗石
/stopcasting
/use [combat]特效治疗石
/use [combat]作战治疗药水
/use [combat]特效治疗药水
/use [combat]强效治疗石
/cast [nocombat,noharm,button:2]制造治疗石; [button:3]制造治疗石(等级 4)
一键吃药水宏,不在战斗中是不会吃的。如果不是术士可以把制造石头的那句删除,也就是最后一行。


/targetlasttarget
/cast 亡灵意志
被恐惧后会丢失目标,这个宏的作用就是让你在用亡灵意志的同时选定最后一个目标,也就是刚刚丢失的那个目标。


/use 13
/stopcasting
/cast 法术名称
/stopcasting
/cast 法术名称
这个宏就是典型的多开宏,开饰品+一个无公共CD的法术+一个高伤害法术。


/stopcasting
/use XX手雷
这是一个手雷宏。点击使用手雷,再点击取消手雷并重新回到区域选择。


/script for j=1,10 do PickupInventoryItem(j); PickupContainerItem(0, j); end
/script for j=16,18 do PickupInventoryItem(j); PickupContainerItem(0, j-5); end
/script PickupInventoryItem(18);
一键脱全身装备。


继续一个深奥的宏:
这个宏的作用在五人副本、大型RAID、战场和竞技场中发挥的作用都很显着,及时让大家知道法术被打断的信息。如果竞技场中自己队里的队友加血被反制了,其他人就能及时采取保护措施;如果敌方的治疗被反制了,那么你就能及时和队友加强DPS集中杀掉一个敌人。RAID中有了这个打断怪物施法的信息,一来可以让大家安心DPS,二来还可以省掉了其他人的反制技能。是居家旅行、杀人越货必备良宏。
宏1:为框架设置接收消息的类型
/run MSG_E={"SELF","PET","PARTY","FRIENDLYPLAYER","HOSTILEPLAYER","CREATURE_VS_SELF","CREATURE_VS_PARTY",
"CREATURE_VS_CREATURE"};for i=1,8 do MSG_E="CHAT_MSG_SPELL_"..MSG_E.."_DAMAGE";end
宏2:处理战斗记录消息,并发送聊天信息
/run function EV_M(type) for a,b,c in string.gmatch(arg1,"(.+)打断了(.+)的(.+)") do SendChatMessage("["..string.gsub(a,"^你$",UnitName("player")).."] 打断了 ["..string.gsub(b,"^你$",UnitName("player")).."] 的 "..c,type);end end
宏3:创建接收消息的框架
/run if (not MSG_F) then CreateFrame("Frame","MSG_F",UIParent);end if (MSG_E) then for i=1,8 do MSG_F:RegisterEvent(MSG_E);end end MSG_F:SetScript("OnEvent",function() if (EV_M) then EV_M("YELL");end end);
以上三个宏在进入游戏后按顺序执行过一遍就可以即时提示打断施法的消息。
比如某一时刻一个人打断了另一个人的施法,那么使用这套宏的人就会喊出提示来,效果如下:
[亚伯拉罕]喊道: [阳光美少男] 打断了 [西方必败] 的 恐惧术。
功能很强大吧,不仅玩家打断施法可以提示,就连怪物的打断都可以提示。
下面对以上三条宏分别解释一下功能,如果感觉这几段内容像天书的话可以跳过这几段看后面的:
第一条宏
/run MSG_E={ --初始化全局变量MSG_E设置为一个字符串数组,用来定义接收的消息类型
? ? "SELF", --"CHAT_MSG_SPELL_SELF_DAMAGE"“你的伤害法术”,
? ? "PET", --"CHAT_MSG_SPELL_PET_DAMAGE"“宠物的伤害法术”,
? ? "PARTY", --"CHAT_MSG_SPELL_PARTY_DAMAGE"“队友的伤害法术”,
? ? "FRIENDLYPLAYER", --"CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE"“友方玩家的伤害法术”,
? ? "HOSTILEPLAYER", --"CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE"“敌方玩家的伤害法术”,
? ? "CREATURE_VS_SELF", --"CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE"“怪物对你的伤害性法术”,
? ? "CREATURE_VS_PARTY", --"CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE"“怪物对队友的伤害性法术”,
? ? "CREATURE_VS_CREATURE"}; --"CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE"“怪物对其他人的伤害性法术”;
for i=1,8 do --循环8次
? ? MSG_E="CHAT_MSG_SPELL_"..MSG_E.."_DAMAGE"; --把原来的MSG_E字符串两边加上固定的字符串;
end --for循环结束。
第二条宏
/run function EV_M(type) --定义函数EV_M(Event_Macro),用来从消息中匹配合适的字符串来发送聊天信息
? ? for a,b,c in string.gmatch(arg1,"(.+)打断了(.+)的(.+)") do --根据正则表达式匹配消息中的字符串
? ?? ???SendChatMessage( --调用的这个方法用来发送这样的字符串“[xx] 打断了 [yy] 的 zz。”
? ?? ?? ?? ?"[" --为名字加上中括号以醒目
? ?? ?? ?? ?..string.gsub(a,"^你$",UnitName("player")) --匹配到的a字符串如果只有“你”字,就把它替换成玩家自己的名字
? ?? ?? ?? ?.."] 打断了 [" --中间加上“打断了”
? ?? ?? ?? ?..string.gsub(b,"^你$",UnitName("player")) --匹配到的b字符串如果只有“你”字,就把它替换成玩家自己的名字
? ?? ?? ?? ?.."] 的 " --中间加上“的”
? ?? ?? ?? ?..c, --匹配到的c字符串,往往都是技能的名称,
? ?? ?? ?? ?type --SendChatMessage的第二个参数,值为EV_M函数的参数,是发送聊天信息的方式
? ?? ???); --匹配成功后,发送聊天信息
? ? end --gmatch匹配结束
end --函数定义结束。
第三条宏
/run if (not MSG_F) then --判断一下MSG_F框架是否已经创建过了
? ? CreateFrame("Frame","MSG_F",UIParent); --创建MSG_F框架用来接收消息
end --if语句结束
if (MSG_E) then --这里用if是为了防止弹出Lua错误消息,判断一下第一条宏是否用过了
? ? for i=1,8 do --循环8次
? ?? ???MSG_F:RegisterEvent(MSG_E); --为MSG_F框架注册接收的MSG_E消息类型;
? ? end --for循环结束
end --if语句结束
MSG_F:SetScript( --为MSG_F设置事件执行的脚本
? ? "OnEvent", --指定为哪个MSG_F事件设置脚本,这里设置为“OnEvent”,
? ? function() --函数定义开始
? ?? ???if (EV_M) then --这里用if是为了防止弹出Lua错误消息,判断一下第二条宏是否用过了
? ?? ?? ?? ?EV_M("YELL"); --调用EV_M函数匹配接收到的消息,以“YELL”(大喊)的方式发送聊天信息
? ?? ???end --if语句结束
? ? end --函数定义结束
); --SetScript结束。
上面这几段内容分别解释一下三个宏的功能,下面的内容建议大家尝试一下,因为一些人可能对这个宏实现的效果不够满意。
● 有些人觉得喊出声来不如只显示在自己的聊天记录中,那么可以把第二个宏改成这样:
/run function EV_M(type) for a,b,c in string.gmatch(arg1,"(.+)打断了(.+)的(.+)") do DEFAULT_CHAT_MESSAGE:AddMessage("["..a.."] 打断了 ["..b.."] 的 "..c);end end
● 有些人觉得这套宏不错,在竞技场中可以提醒大家谁打断了谁的施法,但是他却不希望竞技场中的敌人也看到这样的信息,怎么办呢?没关系,笔者在设计这套宏的时候早就考虑到了,把第三套宏改一下:
/run if (not MSG_F) then CreateFrame("Frame","MSG_F",UIParent);end if (MSG_E) then for i=1,8 do MSG_F:RegisterEvent(MSG_E);end end MSG_F:SetScript("OnEvent",function() if (EV_M) then EV_M("RAID");end end);
和之前的第三条宏比较一下
/run if (not MSG_F) then CreateFrame("Frame","MSG_F",UIParent);end if (MSG_E) then for i=1,8 do MSG_F:RegisterEvent(MSG_E);end end MSG_F:SetScript("OnEvent",function() if (EV_M) then EV_M("YELL");end end);
可以看出改动也只是把最后的“YELL”换成了“RAID”,为什么这样换呢,我们都知道WOW有多种聊天方式,有“说”、“大喊”、“小队”、“团队”、“公会”、“战场”等,在这里就可以规定用什么聊天方式发送。下面列举出这套宏所有可以用的聊天方式:
??SAY??说(/s)
??EMOTE??表情(/e)
??PARTY??小队(/p)
??BATTLEGROUND??战场(/bg)
??GUILD??公会(/g)
??OFFICER??官员(/o)
??YELL??大喊(/y)
??RAID??团队(/ra)
??RAID_WARNING??团队警报(/rw)
  有人会问,怎么没有悄悄话和频道?笔者告诉大家,这套宏不支持悄悄话和频道功能,目的是为了不要大家用这个宏扰民吧。
● 还有人说,我用了这套宏了,功能也不错,但我由于某些原因想关掉它的功能,怎么办呢?很简单,有三种方法可以用:
  一,下线再上线后,所有的插件都重新加载了,上次使用过的所有宏的功能全部解除掉了。
  二,使用/console reloadui,这条命令是让插件重新加载,使用过后你会看到进入游戏的画面,不过你放心,你的号不会掉线也不会退出副本和战场,只是插件重新加载了一下,当然使用过的宏的功能也全部解除掉了。
  三,有人说他不想下线也不想重新加载插件,因为这样会把聊天记录给删掉的。没关系,还有更简单的方法,不用下线,也不会重新加载插件,更不会清除聊天记录,只要使用“/run EV_M=nil”就可以了。
您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|Lua wow插件 ??

GMT+8, 2019-10-8 09:13bet36备用线路 , Processed in 0.060083 second(s), 14 queries .

Powered by Discuz! X2 Licensed

? 2001-2011 Comsenz Inc.

回顶部