基础知识简单说下。输入/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)
温馨提示:答案为网友推荐,仅供参考