猎人常用宏


整理了一些猎人常用的简单的宏。其实宏是个很灵活的工具,好用的宏远远不止下面这些,希望高手们多多补充,众人拾柴火焰高。

另外以下的宏并没有全部经过测试,如果有朋友发现错误也请即时指出。

基础知识简单说下。输入/macro或者在ESC菜单里选macro都可以打开宏的窗口,点New新建一个宏,你可以看见许多图标,选个自己喜欢的图标再起个名字,然后在文本里输入宏的内容,点Complete完成。现在,你就可以把这个图标拖到技能栏里使用了。

---------------------------------------使用物品---------------------------------------

1-自动喂食

下面这个宏会先判断玩家是否处于战斗之中。如对应的格子中没有食物,则会打开相应的背包。

/script if (not PlayerFrame.inCombat) then if (not

GetContainerItemLink(X, Y)) then OpenBag(X); else CastSpellByName("Feed Pet"); PickupContainerItem(X, Y); end end

X/Y分别是包和格子的编号。

5个背包按照排列位置编号如下:

[4][3][2][1][0]

16格包的格子编号如下:

[ 1][ 2][ 3][ 4]

[ 5][ 6][ 7][ 8]

[ 9][10][11][12]

[13][14][15][16]

2-绷带

如果你当前选择的目标是可以对其使用绷带的友好单位的话,则对其使用绷带。

如当前目标是不能被打绷带的单位,或没有选择任何目标的话,则对自己使用绷带。

而且不会对当前目标进行切换,不会中断对当前敌人的攻击。

/script UseContainerItem(X,Y)

/script SpellCastTarget("player")

将第一行换成/script UseAction(25,0,1),则不需将绷带放在背包特定位置,但必须将绷带拖入技能栏的特定位置。25表示技能栏的编号。第一排第一格编号为1,最后一格为12。第二排第一格编号为13,最后一格为24。以此类推。25表示第三排的第一格。

此宏也还有如下的实现方法:

/script UseContainerItem(0,1)

/script if ( SpellIsTargeting() ) then TargetUnit("player"); end

如果想在任何条件下都只对自己使用绷带的话,用如下的宏:

/target "player"

/script UseContainerItem(X,Y)

/script TargetLastEnemy()

同样,这个宏会切换当前目标,中断攻击,盗贼的连击点也会被清空。

下面这个宏也只对自己使用绷带,但在使用后会切换回先前的目标(不管是敌对中立还是友好的)。

/script p="player";t="target";if(not UnitCanAttack(t, p))then ot=UnitName(t);TargetUnit(p);else ot=nil;end;

UseAction(ActionID);if(SpellIsTargeting()) then SpellTargetUnit(p); end if(ot) then TargetByName(ot);end

---------------------------------------更换武器---------------------------------------

MainhandBag:备用主手武器存放背包编号

MainhandBagSlot:备用主手武器存放格子编号

OffhandBag:备用副手武器存放背包编号

OffhandBagSlot:备用副手武器存放格子编号

TwohandsBag:备用双手武器存放背包编号

TwohandsBagSlot:备用双手武器存放格子编号

双手武器 -> (主手武器+副手物品)

/script PickupContainerItem(MainhandBag, MainhandBagSlot)

/script PickupInventoryItem(16)

/script PickupContainerItem(TwohandsBag, TwohandsBagSlot)

/script PickupContainerItem(OffhandBag, OffhandBagSlot)

/script PickupInventoryItem(17)

(主手武器+副手物品) -> 双手武器

/script PickupInventoryItem(17)

/script PickupContainerItem(OffhandBag, OffhandBagSlot)

/script PickupContainerItem(TwohandsBag, TwohandsBagSlot)

/script PickupInventoryItem(16)

/script PickupContainerItem(MainhandBag, MainhandBagSlot)

注意以上几个宏使用之时,鼠标上不要拖有物品,否则会出错。如要避免,可以使用CursorHasItem()来进行预判断。参看下面的几个宏:

单主手武器或双手武器 -> (主手武器+副手物品)

/script if ( not CursorHasItem() ) then PickupContainerItem(mainhandBag, mainhandBagSlot); PickupInventoryItem(16); PickupContainerItem(mainhandBag, mainhandBagSlot); PickupContainerItem(offhandBag, offhandBagSlot); PickupInventoryItem(17); if ( CursorHasItem() ) then PickupContainerItem(offhandBag, offhandBagSlot); end end

(主手武器+副手物品)-> 单主手武器或双手武器

/script if ( not CursorHasItem() ) then PickupInventoryItem(17); if ( CursorHasItem() ) then PickupContainerItem(offhandBag, offhandBagSlot); end PickupContainerItem(mainhandBag, mainhandBagSlot); PickupInventoryItem(16); PickupContainerItem(mainhandBag, mainhandBagSlot); end

---------------------------------------自动切换守护---------------------------------------

注意:你必须已经打开了某个守护,这样下面的宏才能生效

1-肉搏战和猴之守护

可以代替默认的attack,如果你没开猴之守护宏会帮你打开。

/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey"); end

/script if (not PlayerFrame.inCombat) then CastSpellByName("Attack"); end

2-自动射击和鹰之守护

可以取代默认的auto shot,如果你没开鹰之守护宏会帮你打开。

/cast Auto Shot

/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); end

因为游戏中延时的问题,采用这种先射击再开守护的方法比较好

Rank X中的X是你所使用的鹰之守护 等级

3-瞄准射击(也包括其他瞬发的射击)和鹰之守护

可以取代默认的瞄准射击,如果没有开鹰之守护宏会帮你打开。

/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); else CastSpellByName("Aimed Shot(Rank Y)"); end

X是鹰之守护的等级,Y是射击技能的等级

注意,这个宏无法让你判断目标是否超出了射程,因为这个宏的图标不会因超出射程而变红,用瞄准射击的时候要多加注意。而且这个宏的图标也无法反映出射击技能的冷却时间,所以推荐在宏当中使用那些无冷却时间的射击。

参照这个宏,也可以把上面的猴之守护和猛禽攻击(Raptor Strike)或者翅夹(Wing Clip)结合起来——同样要注意它无法反映猛禽攻击的冷却时间。

---------------------------------------pet的控制---------------------------------------

1-放猎人标记并命令pet攻击目标。

/cast Hunter's Mark(Rank X)

/script PetAttack()

2-放mark并且pet跟随,副本用的宏。

/cast Hunter's Mark(Rank X)

/script PetFollow()

3-选择一个队员然后使用宏,自动选择该队员的目标,对目标放mark,pet攻击目标,然后开始autoshot。

/script if (UnitIsFriend("player","target")) then AssistUnit("target"); end

/cast Hunter's Mark(Rank X)

/script PetAttack()

/script if(not PlayerFrame.inCombat) then CastSpellByName("Auto Shot"); end

注意你开始所选择的目标必须是友好的。

4-散射并招回pet,以免pet继续攻击使敌人脱离散射的效果。

/script PetFollow()

/Cast Scatter Shot()

---------------------------------------影遁(NE专用)---------------------------------------

1-影遁的同时躺下,更难被发现……

/cast Shadowmeld(Racial)

/laydown

2-吃喝的同时也影遁-_-

/target "player"

/script UseContainerItem(X, Y);

/script UseContainerItem(X, Y);

/cast Shadowmeld(Racial)

友情提醒:由于游戏中宏面板的换行问题,如果复制/粘贴的宏无法正常工作,请在游戏中自行输入。