Dotcraft 术士宏分享

Submitted by Dot on Sun, 08/15/2010 - 21:08

TBC 时期本人在 NGA 术士区发过一篇宏分享的帖子,反响不错。
如今怀旧服已开,把旧帖整理出来,希望能帮到大家。
本文介绍本人常用的一些组合键、鼠标指向、click 宏及技巧。看完你也应该也能举一反三,做出适合自己习惯、职业的宏。
怀旧服除了焦点相关的,大部分都适用。

这次整理,稍作了一些改动:

  • 用 [noharm] 替换 [noexists][help] ,两者等价,前者更简短;
  • 用 [@XXX] 替换 [target=XXX],两者等价,前者更简短;

一、诱惑、法术封锁整合宏

/targetenemyplayer [noharm]
/clearfocus [mod:alt] 
/focus [@mouseover,exists][@focus,noexists][@focus,dead]
/petfollow [@mouseover,exists][mod:alt]
/use [@focus,harm] 诱惑
/use [@focus,harm] 法术封锁
/use 战争践踏

a,如果有鼠标指向,诱惑/法术封锁鼠标指向,并将其设为焦点 
b,无组合键时,在没有鼠标指向的情况下,诱惑/法术封锁焦点;如果无焦点,则诱惑/法术封锁当前目标,并将其设为焦点;如果有鼠标指向,则返回a
c,按住alt时,无视焦点,诱惑/法术封锁当前目标,并将其设为焦点;返回a
d,野外我喜欢抓个末日守卫玩玩,所以也加进了战争践踏。 

之前尝试过网上比较通用的一个宏

/clearfocus [modifier:alt] 
/focus [@focus,noexists]; [@focus,dead] 
/clearfocus [@focus,help]
/petfollow
/cast [@focus,exists,harm] 诱惑

但这个宏缺乏鼠标指向的功能(至少我个人认为对鼠标指向施法的功能还是很重要的),所以尝试过在最后一行的cast后面加上[@mouseover,harm]来实现诱惑鼠标指向,但缺点也暴露了——就是尽管你诱惑了鼠标指向,但你的焦点目标仍是缺失状态。用实例来解释吧,比如你的当前目标是A,随后又有个目标B出现,你鼠标指向B,使用此宏诱惑,B徽章解掉,这时你可以再用鼠标指向B重复一遍操作,但我想大多数人都会干脆把目标切换成B再使用宏,因为这样可以把B设为焦点,之后利用此宏就可以很方便的诱惑焦点。是不是很麻烦,的确。所以这个宏实际上没什么价值。

说得直接一些,我们要做的就是在这个宏里加入将鼠标指向设为焦点目标的功能。这就是我的宏第2行里的[@mouseover,exists],exists这个条件是必须的,否则没有鼠标指向的话,后面的语句就是废话。

顺便提下,我没有要/clearfocus [@focus,help]这一句。它的作用是避免友方单位被设为焦点,我认为这种做法过于绝对了,很多时候我们需要关注我们的队友。
3.18更新:“/use”后面的“[@mouseover,harm]”一句,以及“[@focus,exists,harm]”中的“exists”都是多余的,删除。
3.21更新:在“/petfollow”后面加入条件“[@mouseover,exists][mod:alt]”。我们知道,魅魔在诱惑一个目标的时候是无法再次施放诱惑的,所以要加入“/petfollow”,作用是让魅魔跟随一次,以打断当前的诱惑,随即再施放诱惑。但实际上这种应用仅仅是为了诱惑另外一个目标,这就导致一个问题——如果我们只是要诱惑一个目标3次,那么单单的“/petfollow”经常会因为我们有意无意的重复点击而白白的浪费一个递减。所以现在我又加入了条件“[@mouseover,exists][mod:alt]”,这么一来,仅仅在有鼠标指向或者按下alt时才会执行“/petfollow”,也就是我们需要让魅魔从当前的诱惑状态中解脱出来转而去诱惑鼠标指向或者当前目标的时候。而对于只是要诱惑一个目标3次的情况,你就可以放心的狂点这个宏了。(当然,我是说是单点,不按alt)

二、一键DEBUFF宏

/targetenemy [noexists][help]
/click MultiBarBottomRightButton2
/use [mod:alt,@mouseover,harm][mod:alt] 元素诅咒;[mod:ctrl,@mouseover,harm][mod:ctrl]语言诅咒;[@mouseover,harm]腐蚀术;
/castsequence reset=combat/target 腐蚀术,痛苦诅咒

我的一键DEBUFF宏,做过很多次改动,这个算是“正式版”吧!

a,按住alt时,如果有鼠标指向,则对鼠标指向施放元素诅咒;没有鼠标指向则对当前目标施放元素诅咒
b,按住ctrl时,如果有鼠标指向,则对鼠标指向施放语言诅咒;没有鼠标指向则对当前目标施放语言诅咒
c,按住shift时,如果有鼠标指向,则对鼠标指向施放虚弱诅咒;没有鼠标指向则对当前目标施放虚弱诅咒(也许你会说这个宏里哪有虚弱诅咒的字样啊,嗯,这个在后面解释)
d,无组合键时,如果有鼠标指向,则对鼠标指向施放腐蚀术(这是专门应付盗贼的);没有鼠标指向则第一次点击对当前目标施放腐蚀术,第二次点击对当前目标施放痛苦诅咒

targetenemy 的意思是切换你附近的敌人,如果你不停的按,它就会不停的切换,这当然不行。所以要加入[noexists],这样它就和startattack类似了,但仍然不如startattack强大,因为如果当前目标是友方的话,targetenemy [noexists]能做的只有告诉你一句“无效的目标”,而startattack则可以自动将目标切换为最近的一个敌人。所以还要在后面加上[help]这个条件。以前使用startattack的时候,诱惑了一个贴身的敌人,上元素诅咒的同时用法杖把敌人敲醒的案例很多,很悲剧!所以后来还是换成了targetenemy [noexists][help]。
click MultiBarBottomRightButton2的意思是点击右下动作条2,那么我的右下动作条2是什么呢?也是个宏,就是这个

/use [mod:shift,@mouseover,harm][mod:shift]虚弱诅咒
现在你关于虚弱诅咒在哪里的疑问可能已经明了了吧,是的,click这个模拟点击宏可以在你执行一个宏的同时调用另一个宏,最普遍的用法就是解决一个宏过长无法保存的问题,我的一键DEBUFF宏就是个最好的例子。那么MultiBarBottomRightButton2这段代码怎么得来的呢?先别管,最后我会告诉你。
3.18更新:在/targetenemy后面中加入了条件[help],这样就可以在目标为友方时自动切换成最近的一个敌人了。

三、宠物的收放

对于术士,宠物的收放很重要,所以我都设了快捷键,而且是很灵活方便的键位——鼠标滚轮,仅仅这样还不够,所以我做了这两个宏,上滚为宏A,下滚为宏B。

宏A

/targetenemy [noexists]
/petattack [@mouseover,harm][]
/petdefensive
   

a,有鼠标指向时,宠物攻击鼠标指向(同样,这也是专门应付盗贼的),并切为防御模式
b,无鼠标指向时,宠物攻击当前目标,并切为防御模式
c,[]是个空条件,它的意义是常规施法(就是对目标或者配合alt自我施法),在这个宏里它等同于[target,exists,harm],那么当然就用[]了,简洁至上。说道简洁,实际上你可以把所有的cast、button和modifier分别改成use、btn和mod。注意:运用"[]"的时候要了解一件事,就是空条件“[]”永远是成立的。所以在一个宏里,“[]”仅仅只能位于最后一组条件的末尾。

宏B

/petpassive
/petfollow
/use [flyable]涡轮加速飞行器;黑色战熊
/dismount [mounted]
/changeactionbar 1

这实际上是个坐骑宏,但我在里面加入了petpassive,petfollow,也就是上马的同时收回宠物(命令宠物跟随),并且切换为被动模式。这么一来,如果你在施法中、战斗中、移动中,就可以利用此宏方便的实现收宠的单一功能。[flyable]还用解释么?

至于最后一句changeactionbar 1,它的作用是将主动作条翻到第一页,我不知道这对你是否有用,但对我来说简直是必须的。因为我把大多非战斗技能都放在第二页,拉糖和集合石、专业技能、炉石等等,这样做的好处是只要翻下页就能利用主动作条的快捷键来执行了,比如键位2对应拉糖和集合石,Q裁缝,E工程,Z炉石,4钓鱼……但麻烦也来了,很多时候钓完鱼忘了翻回第一页,甚至JJC准备时拉完糖也忘掉,开场以后,点暗影之怒,却弹出了急救面板……所以后来就加上了changeactionbar 1,只要一上马,就自动翻到第一页。当然,如果你和我有同样的习惯的话,也可以把它加进技能的宏里,就像我这样

/use [mod:alt]召唤仪式;[mod:ctrl]末日仪式;灵魂仪式
/changeactionbar 1

否则被队友质问“你的暗影之怒呢”的时候,真的很尴尬。

四、自动接受任务/完成任务/自动确认/腐蚀之种/厄运诅咒/交易观察

/click GossipTitleButton1
/click StaticPopup1Button1
/click QuestFrameCompleteButton   
/click QuestFrameCompleteQuestButton
/script AcceptQuest()
/targetenemy
/use [modifier:alt,harm]厄运诅咒;腐蚀之种
/click [mod:alt]MultiBarBottomRightButton6;MultiBarBottomRightButton5

这个宏类似DBM里的奥山自动交物品的功能。

GossipTitleButton1这段代码指的是与NPC交谈时的第一个对话条,想想看,对于70级玩家所接触的大多NPC来说,都只有一个对话条——一个任务,那么这行宏的意思你可以理解为自动打开任务讲述。(如果你需要反复交一个任务,而这个任务是与NPC对话面板上的第二个任务的话,可以把GossipTitleButton1里的“1”临时改成“2”。)

script AcceptQuest()自动打开任务讲述后当然还要自动接受,这句就是。当然也可以像其他几句那样通过click+窗口代码来实现,但这句古老的宏更简短,更经典。

StaticPopup1Button1这段代码很方便,也很危险。你一定和我一样,也为上火焰石总是提示是不是替换而头疼,把鼠标移动大半个屏幕去点击一个“是”的确很烦人,这种提示还包括战场排到了、被人拉了、要放弃一个扯淡的任务……StaticPopup1Button1就是为了解决这个问题,它的意思就是自动点击屏幕上的第一个确认提示。注意:永远是第一个,也就是最上面一个,比如战歌排到了,你不想进,随即出了奥山,那么你点着个宏进的肯定是战歌。总之它还是很方便的,那么危险何在?在于它同样会肯定摧毁精良以下的物品时的确认。那你就要小心了,最好把它设一个不太方便的键位,我是ctrl+鼠标中键。

QuestFrameCompleteButton,QuestFrameCompleteQuestButton
这之后的两宏就很安全了,他们依次是满足任务条件(就是交任务时总会出现的那个“继续”的窗口),以及完成任务。

总之,这个宏最大的作用就是通过狂点它来自动接受任务并完成。“/cast [modifier:alt,harm]厄运诅咒;腐蚀之种”必须放到最后,否则前面的个别语句可能无法实执行。
我在中间加入了 /targetenemy,这样丢腐蚀之种的时候就只用连点这个宏,而不用再去Tab了。另外,将每个按键的功能最大化也是我的原则,所以加上了/click [mod:alt]MultiBarBottomRightButton6;MultiBarBottomRightButton5,它们分别是"五、背包+交易"和“/ins”,这样在目标是友方玩家时这个宏可以起不同的作用——按住alt交易,无组合键观察。

五、背包+交易

/trade
/script OpenAllBags ()
/script ToggleBag(-4)

背包宏。嗯,背包原本是可以设键位的,但我始终认为宏比单一的按键设置表现出色。比如说这个宏,在目标为友方玩家的时候,交易同时打开所有背包;而在没有目标或者目标非友方玩家时,它只打开所有背包(这似乎是废话)。

OpenAllBags ()就是打开所有背包的意思,当然也可以这样

/script ToggleBag(0)
/script ToggleBag(1)
/script ToggleBag(2)
/script ToggleBag(3)
/script ToggleBag(4)

它们分别是打开5个包包。但干吗不用一句OpenAllBags ()来概括呢!

ToggleBag(-4)很有趣,它的特殊之处就是(-4),负的?哈哈,那是用来打开隐藏背包的。隐藏的有哪些?目前只有牌子包以及完整的钥匙链,如果你的钥匙不多,钥匙链是不会显示所有空格的,ToggleBag(-2)则可以打开一个完整的钥匙链,而ToggleBag(-4)就是牌子包了——战场勋章以及公正徽章,你可以拆分它们,拖放到背包,甚至是银行,但这没有任何意义,所以不要想用它来积累100个以上的战场勋章,系统同样会提示过多的,而且只要你一进副本(当然战场其实也是副本),它们又会回到(-4)里。不过有一个用处——你可以和朋友交易,把牌子放在最下面,这肯定会吸引他!

六、吸取法术+暗影防护结界

/targetenemy [noexists]
/click MultiBarBottomLeftButton2
/use [mod:alt]吸取法力;[mod:ctrl]生命通道;[mod:shift]吸取灵魂;吸取生命

这个宏类似上面的一键DEBUFF宏,MultiBarBottomLeftButton2则是指左下动作条2,所以在那里必须也放上这么一个宏:

/castsequence [nomod] reset=0.5 ,暗影防护结界
这一段是抄袭来的,我很喜欢,两个宏结合起来的效果就是

a,如果在移动中,快速点击两下,施放暗影防护结界
b,按住alt时,施放吸取法力
c,按住ctrl时,施放生命通道
d,按住shift时,施放吸取灵魂
e,无组合键时,施放吸取生命

这两个宏加起来其实也不长,拼凑为一个宏也是可以的,但你必须把/castsequence [nomod] reset=0.5 ,暗影防护结界这一句放在前面,这会导致一个小问题。我们知道,如果想让宏在按下组合键时显示对应的技能图标,就必须用问号图标,但因为castsequence [nomod] reset=0.5的存在,图标在无组合键的时候就是个问号,这太影响美观了,所以我通过/click MultiBarBottomLeftButton2来调用,这样在无组合键的时候它显示的就是吸取生命的图标了。

七、恐惧+放逐+奴役

/targetenemy [noexists]
/use [mod:shift,@mouseover,harm][mod:shift]奴役恶魔;[mod:alt,@mouseover,harm][mod:alt]放逐术;[@mouseover,harm][]恐惧

又是一个类似一键DEBUFF宏

a,按住alt时,如果有鼠标指向,则对鼠标指向施放放逐术;没有鼠标指向则对当前目标施放放逐术
b,按住shift时,如果有鼠标指向,则对鼠标指向施放奴役恶魔;没有鼠标指向则对当前目标施放奴役恶魔 
c,无组合键时,如果有鼠标指向,则对鼠标指向施放恐惧;没有鼠标指向则对当前目标施放恐惧

也许你看出来了,这就是我的原则——鼠标指向的优先级总是最大。

八、集成石头宏

/use [mod:shift,btn:2]制造灵魂石;[mod:shift]极效灵魂石;[mod:ctrl,btn:2]制造法术石;[mod:ctrl]特效法术石;[modifier:alt,btn:2]制造火焰石;[mod:alt]特效火焰石;[btn:2]制造治疗石;极效治疗石
/use 16
/click StaticPopup1Button1

a,按住shift时,鼠标右键制造极效灵魂石,左键对目标使用制造灵魂石;
b,按住CTRL时,鼠标右键制造特效法术石,左键自动对住手武器使用特效法术石;
c,按住alt时,鼠标右键制造特效火焰石,左键自动对住手武器使用特效火焰石;
d,无组合键时,右键制造极效治疗石,左键使用。

很多时候在武器上的石头快消失以前,我们要提前上个新的,该死,是否替换的提示又来了,所以我在最后加入/click StaticPopup1Button1,还记得么,刚才说的自动确认的宏。这样,你甚至不用看到那个提示栏的出现就开始施法了。
最新更新,把宏简化了下,现在可以加入/click StaticPopup1Button1了。
   

九、钓鱼+暗影箭

/targetenemyplayer [noexists][help]
/equip [combat][exists]大魔导师的洪流法杖
/use 暗影箭
/equip [nocombat,noexists]塞瑟的石墨鱼竿
/use 明亮的小珠
/use 16
/use 钓鱼

a,如果当前在战斗中或者有目标,就装备上大魔导师的洪流法杖,然后施放暗影箭
b,如果当前没有进战斗并且没有目标,那么它就是个纯粹的钓鱼宏——第一次点击装备上鱼竿,第二次点击使用明亮的小珠,在之后明亮的小珠效果存在的10分钟内,再点都是钓鱼了,效果消失,则自动使用明亮的小珠,依次循环。需要注意的是,如果你当前正在使用明亮的小珠,此时你连续点宏的话,会接着再使用明亮的小珠,而不是钓鱼,这是因为你点太快了,系统还来不及判定,等一等吧,不用太久,跳一下就够了。

十、!的用处

/use !暗影之怒

这个是从别处学来的。这也叫宏?当然,特别之处在于暗影之怒前面的“!”。你应该知道,在使用指定范围的技能(比如术士的暗影之怒、猎人的照明弹、牧师的驱散)时,如果点了两下(这是在紧急的时候经常犯的错误),鼠标指针位置的圆圈就会取消,这样你不得不再点一次,什么,又多点了?那再来。总之你已经延误了战机。如果你想解决这个问题,那就向我这样在暗影之怒前面加个“!”。效果么,自己试下吧。
友情提示:这个“!”是对猎人鹰眼术的强大BUFF!

十一、顺便附上两个简单的宏,我的BUFF宏以及招宠宏

/use [mod:alt,btn:2,@player]魔息术;[mod:alt,@player]侦测隐形;[mod:ctrl,btn:2]魔息术;[mod:ctrl]侦测隐形; [btn:2]灵魂链接;邪甲术

a,按住ALT时,鼠标左键对自己施放侦测隐形,鼠标右键对自己施放魔息术
b,按住CTRL时,鼠标左键对目标施放侦测隐形,鼠标右键对目标施放魔息术
c,无组合键时,鼠标左键邪甲术,右键灵魂链接

/use [mod:alt,btn:2]召唤小鬼;[mod:alt]召唤地狱猎犬;[mod:ctrl,btn:2]打架赛车控制器;[mod:ctrl]基尔罗格之眼;[btn:2]召唤虚空行者;召唤魅魔

a,按住ALT时,鼠标左键召唤地狱猎犬,鼠标右键召唤小鬼
b,按住CTRL时,鼠标左键基尔罗格之眼,鼠标右键使用打架赛车控制器
c,无组合键时,鼠标左键召唤魅魔,鼠标右键召唤虚空行者
d,打架赛车控制器我一直放在包里,不是好玩,是为了收宠用的
e,没玩过恶魔,所以忽略了恶魔守卫,需要的话可以自己复制一句,mod后面改成shift
f,魅魔和地狱猎犬都是PVP中需要的宠物,所以我都设为鼠标左键,只有这样才能通过快捷键来操作。我还有另一个宏,和这个一样,只不过连接了恶魔支配,然后设了键位——小键盘的“+”,离鼠标很近,也很大,单点瞬招魅魔,按住ALT瞬招地狱猎犬

十二、谢谢大家的支持,那我就再加上一个吧,死亡缠绕+侦测隐形+地精起搏器宏
#show 死亡缠绕
/use [@mouseover,harm][harm]死亡缠绕;[help,dead]地精起搏器XL型;[@mouseover,help][]侦测隐形
a,如果鼠标指向是敌人,无视当前目标,对鼠标指向释放死亡缠绕
b,如果没有鼠标指向,而当前目标是敌人,就对目标释放死亡缠绕
c,如果当前目标是友方玩家,并且其已经死亡(但没有释放灵魂),则对其使用地精起搏器XL型(War3里UD英雄DK的死亡缠绕可是除了能杀伤敌人外,还能治疗友军的,而我这个宏让死亡缠绕具备了救人的功能,这才够强大 S25 )
d,如果鼠标指向是友方,并且目标非敌对,对鼠标指向释放侦测隐形(因为我把死亡缠绕放在前面,所以它的优先级大于侦测隐形,如果你的鼠标指向是友方而目标是敌人,施放的将是死亡缠绕)
e,如果没有鼠标指向,而当前目标是友方,就对目标释放侦测隐形
f,如果没有鼠标指向,并且没有目标,就对自己释放侦测隐形

十三、最近更新,加入一个一键排战场宏
/startattack
/use [mod:alt]献祭;[mod:ctrl]灵魂之火;烧尽
/use 驱散魔法
/use 牺牲
/click [nocombat,noharm]MultiBarBottomLeftButton10]

这原本是我的技能宏,但我在后面加入了排战场的功能,就是“MultiBarBottomLeftButton10”里的内容,它是我在左下动作条10上放的一个宏,内容如下:

/click PVPParentFrameTab2
/click [mod:alt]BattlegroundType2;[mod:ctrl]BattlegroundType3;[mod:shift]BattlegroundType4;BattlegroundType1
/click BattlegroundInstance1
/click PVPBattlegroundFrameJoinButton

两个宏结合到一起,作用如下:

a,如果当前没有进战斗,并且目标非敌对,按alt排战歌,按ctrl排阿拉希,按shift排风暴,无组合键排奥山
b,如果当前在战斗中,按alt施放献祭,按ctrl施放灵魂之火,无组合施放烧尽

有一点要说明,我以排奥山为例。利用这个宏,在理想状态下只需点一次就能排到奥山首先可用,什么是理想状态——你的战场面板战场框里的焦点在“奥特兰克山谷”上,而下面副本框里的焦点在“首先可用”上。但很多时候不是这样,比如我们打奥山YY,别人出了9,你没出,你单追了9,这之后你副本框里的焦点就在“奥特兰克山谷9”了,那么下次再排的话就需要把这个宏点两次——第一次将焦点移至“首先可用”,第二次才能执行“加入战斗”。或者你排了别的战场,还是这个例子,你单追了9,估计要等很久,先打个阿拉希玩吧,你将战场框里的焦点点在“阿拉希盆地”上,然后“加入战斗”,之后你战场框里的焦点就在“阿拉希盆地”上了,所以再排奥山也要点两次——第一次将焦点移至战场框里的“奥特兰克山谷”,第二次才能执行“加入战斗”。其间忽略了“将副本框里的焦点移至"首先可用"”这一步,因为我们知道,换个战场排的话,会自动处于“首先可用”上。

我刚承诺过大家一件事是么,嗯,就是怎样得到像MultiBarBottomRightButton2这样的代码,看下面这个宏

/run local f=GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end
保存下来,设个键位(这是必须的),比如我放在第二页,对应主动作条的键位F,然后把鼠标放到你想查询的位置(任何窗口、按钮或者是动作条),按下F,聊天窗口就会出现代码。你弄明白为什么设键位是必须的了么?你可以不设,看看能不能用……

Tags

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.