1、由于CastSpellByName()和TargetUnit()在2.0被禁用,所以2.0之前的大部分宏将无法使用。现在,宏写法也有了很大的变化。没有宏可以检查Buff,Debuff,冷却,血量,魔法,怒气,能量。但是,大家也不用太惋惜,现在的宏可以实现许多新的功能,并且非常强大。
2、在使用一些宏之前请先检查你的按键设置。系统默认Ctrl 1到10是使用宠物技能栏,而Shift 1到6是选定动作条。有些宏在使用时由于自己的设置有可能和这些默认的按键冲突,解决办法为改宏或者改掉系统默认的按键设置。
3、把这篇文章一字不漏的看完,那么95%的宏你都可以自己写了。
二、上手教程
简单的说,宏就是创建一连串的命令集,通过鼠标点击或按下键盘某个按键就让电脑自动执行这一系列命令。
在进入游戏之前,特别是用全屏模式进行游戏的,需要掌握一些基本知识。曾经在网吧看过一位玩家做宏,他把网站上别人写好的宏用一张纸抄写下来,然后进入游戏宏设置中一字字敲下,途中发现某些宏用不了,又退出游戏打开网站查询,拿笔记在纸上再次进入游戏尝试。。。。。。
看到这里可能玩转电脑的高手们会笑,但确实是这样,不是亲眼目睹我也不敢相信还有人用这样原始的做宏方法。
所以,首先有必要说明在操作系统平台下或游戏中,当不能使用鼠标右键弹出选项菜单时几个键盘组合键功能:
1.“Ctrl”控制键 “C”键---复制
2.“Ctrl”控制键 “V”键---粘贴
3.“Ctrl”控制键 “X”键---剪切
4.“Ctrl”控制键 “A”键---全选
5.“Windows”键(即操作系统图标的按键一般位于“Ctrl”控制键与“Alt”换档键之间) “D”键---最小化所有任务到任务栏并显示桌面。
6.“Windows”键 “Tab"制表键---在任务栏打开的各项任务间进行切换。
大家好,我是3区狂风峭壁服务器侏儒小法师陈真,谢谢大家能看我的文章!
下面让我们在游戏中一步步设置宏命令:
一.进入游戏后按“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:<item>-判断某件物品是否在装备中。<item>可以是装备栏编号、装备分类(武器、副手。。。)、装备子类(双手剑、法仗等等。。。)
target=<unit>-可以把技能目标指定为任何有效的目标,并且可以另你不丢失当前目标!<unit>还可以为“none”,用来指定没有目标的时候。“self”,用来指定只对自己施放。比如“/use [target=self] 厚符文布绷带”,无论任何时候都只对自己使用绷带。
actionbar:<number>-判断当前动作条是否被列出。<number>可为1、2、3、4、5、6~
pet:<pet type 或 pet name>-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
链接: https://pan.baidu.com/s/153stxIg9sDMjEvBMiaJRXA