字号:

WOW宏命令小编 PK爱好者读

时间:2007-03-07 14:41 作者:kaka 手机订阅 参与评论(0) 【投稿】
文 章
摘 要
觉得好的话顶一下

WOW宏的入门知识去这里看:
www.worldofwarcraft.com/info/basics/macros.html
WOW的宏函数库可以去这两个地方查:


http://www.cosmosui.org/texts/BlizzardCommands.xml
http://www.wowwiki.com/index.php/World_of_Warcraft_API
相信很多人都知道WOW中的斜杠/和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比如:/Kneel是让你跪下来的动作而/say就是最基础的对话动作
  我们现在用一个宏把他们串起来:


第一行内容:“/Kneel”
  第二行内容:“/say 如果你不嫁给我,那么我就一辈子不起来…” ”
  这样你的人物就会先下跪再说:如果你不嫁给我,那么我就一辈子不起来…
宏可以应用所有WOW中已经定义了的斜杠/和表情命令,更要命的是,宏甚至可以应用人物的魔法和技能,


只需要在宏的定义过程中应用/cast命令,下面是已知的一些常用命令:


/Assist 这是个援助进攻的命令。当你的队伍同时面对几个敌人时,只要点击自己的队友(一般是队伍中的战士),然后使用这个命令,你的目标就会变成战士所选中的目标。大家集中火力消灭一个起!


/Cast 这是个使用技能的命令。当你在宏命令里输入/Cast 技能名(技能等级)或者只要按住Shift同时用鼠标点击一下你想要输入的技能的图标。例如当你是一个战士,想制作一个使用战斗怒吼的宏时,你可以输入/Cast Battle Shout(Rank 1)或者是直接按住Shift点击Battle Shout这个技能的图标。当然你可以在一个宏的不同行上输入几个技能,那么当你使用这个宏时,几个技能就会一起释放出来,再用不着你像章鱼一样同时按下几个键了 。


%t 这个符号也许会经常出现在你的宏命令里,它是一个代码,代表你当前所选中的人名。例如,你在宏里写下这么一句。(注意:后面要加一空格。) “/g %t ,今天天气真好,有没兴趣和我一起上山采蘑菇…”
  如果你点中一位名叫苯笨的玩家,那么当你按下这个宏时,你就会说:“笨笨,今天天气真好,有没兴趣和我一起上山采蘑菇…”


/Target 这是一个自动选择目标的命令,你可以在宏里输入/Target (xxx),那么当你按下这个宏时,你将自动选定这个叫xxx的目标。


/in 这是一个延时命令,时间以秒为单位.同时它不支持攻击指令.格式:/in 3 dance 三秒后跳舞,如/in 3 dance,就是在3秒后跳舞,
  /say start!
  /in 3 say 3s later
  /in 6 say 6s later
1。允许你在窗口和全屏状态之间切换


/script SetCVar(gxWindow, 1 - GetCVar(gxWindow));
  /console gxRestart


2。对于法师,必须要有的:将“X”换为你目前的变形术等级(下同);用它替换掉变形术技能。当你在队伍之外时使用它会得到“你不在队伍中。”的信息,但在队伍中的时候其它同伴会了解到你将释放的变形术目标。


/p Sheeping >>> %t <<<
  /cast Polymorph (Rank X)


3。作为一个术士,这是在队伍中使用的宏:首先将目标转为拖怪手或者坦克正在攻击的目标,然后命令宠物向前攻击,跟着一个虚弱诅咒。


/assist 队伍中的拖怪手或者坦克的名字
  /script PetAttack();
  /cast Curse of Weakness (Rank X)


4。从背包和袋子里切换身上的武器


/script if ( not CursorHasItem() ) then PickupContainerItem(, );


PickupInventoryItem( ); end


bag# - 使用哪一个袋子的物品(0、1、2、3、4。0是背包)


slot# - 袋子里的位置(从0至左上)


equip# - 16 是主要武器, 17 是副武器
 5。这个宏治疗队伍里你指定的人,如果你不在队伍中它会治疗你自己。然后会自动将目标切换回你最后一个敌人。它同时还会使用队聊提醒队友你会治疗哪一个人。


/script if (UnitName(target) ~=nil and UnitIsFriend(player,target)) then


CastSpellByName(Heal(Rank X)) SendChatMessage(Incoming Heal to %T, Party) else


TargetUnit(player) CastSpellByName(Heal(Rank X)) TargetLastEnemy(); end
6。加速任务显示速度


/script QUEST_DEscriptION_GRADIENT_CPS = 600000
  /script RegisterForSave(QUEST_DEscriptION_GRADIENT_CPS)
  /script DEFAULT_CHAT_FRAME:AddMessage(quest text will scroll faster now);


7。消除等待接受任务的时间


/script AcceptQuest()


8。这个宏可以在路上自动护送玩家做任务。


/assist [player name]
  /cast 法术(Rank X)
  /target [player name]
  /follow [player name]
9。切换主副武器,详情看第四条


/script PickupInventoryItem(16); PickupInventoryItem(17);


10。在没有目标或者目标是敌人的时候给自己加增益魔法或治疗。



  CastSpellByName(Spell Name(Rank X));


if ((SpellIsTargeting()) and (not UnitIsFriend(player,target)))


then


SpellTargetUnit(player);


end;


TargetLastEnemy();


11。切换双手武器与单手+盾或者双手挥舞武器


/script PickupInventoryItem(17);if(CursorHasItem()) then PickupContainerItem


(4,2);PickupContainerItem(4,1);PickupInventoryItem(16);else PickupContainerItem


(4,1);PickupInventoryItem(16);PickupContainerItem(4,2);PickupInventoryItem(17);end


12。设定“真实鼠标视野”


/script CameraOrSelectOrMoveStart(arg1);


想取消就再次输入。


13。切换近程技能栏和远程技能栏


/script CURRENT_ACTIONBAR_PAGE = 2;
  /script ChangeActionBarPage();
  /cast aspectofmonkey (just use the left click)


/script CURRENT_ACTIONBAR_PAGE = 1;
  /script ChangeActionBarPage();
  /cast aspectofhawk (just use the left click)


14。牧师对队友的一键加血,比如一号键给第一队友加血,二号键给第二队友加血,免除了还要鼠标确


定目标的操作。依次类推,从第一个人到最后一个


给队友1加血:
  /script TargetUnit(GetPartyMember(1))
  CastSpellByName(Heal(Rank X)) TargetLastEnemy()


给队友2加血:
  /script TargetUnit(GetPartyMember(2)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()


给队友3加血:
  /script TargetUnit(GetPartyMember(3)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()


15。一键解决喂养宠物:这个宏会从最左边的袋子里的第一个位置拿出食物喂养宠物,如果所在的位置


没有食物,它会自动打开袋子。


/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(4, 1)) then


OpenBag(4); else CastSpellByName(Feed Pet); PickupContainerItem(4, 1); end end


16。术士宏


1)如果目标生命大于20,释放抽取生命法术,否则使用灵魂抽取。
  /script if (UnitHealth(target)>20) then CastSpellByName(Drain Life(Rank X)) else


CastSpellByName(Drain Soul(Rank 2)) end;


2)虚弱诅咒版本
  /script if (UnitMana(target)>0) then CastSpellByName(Curse of Tongues(Rank X)) else


CastSpellByName(Curse of Weakness(Rank X)) end;



  17.先治疗自己,然后自动选中上次的敌人
  /target Pugar //选择自己,假设自己的名字是Pugar
  /cast Lesser Heal (Rank 1) //施展次级治疗rank1
  /script TargetLastEnemy(); //重新选择刚刚选择的敌人
  /script AttackTarget(); //攻击,等同于右键点击敌人



  18.对于一个术士很有用的宏:首先将目标转为拖怪手或者坦克正在攻击的目标,然后命令宠物向前攻击


,跟着一个虚弱诅咒。
  /assist 队伍中的拖怪手或者坦克的名字
  /script PetAttack();
  /cast Curse of Weakness (Rank X)


19.等治疗完之后提醒别人注意下自己有可能被怪打,不加延时的话,就没这个效果了。
  /p healing %T, need 3s, dont run away
  /cast heal (rank 1)
  /in 4 p cured %T 300HP,please notice the enemies turn on me^_^


20.在路上自动护送朋友做任务。


/assist [player name]
  /cast 法术(Rank X)
  /target [player name]
  /follow [player name]


函数的使用比较简单,学习过编程的都比较容易上手,基本的用法是在函数前加/script 来使用。比如
  /script CURRENT_ACTIONBAR_PAGE = X;
  /script ChangeActionBarPage();
  就是将你的快捷栏翻到第X页。

  函数库中有许多函数都是非常有用和方便的,比如一次打开所有包包:

  /script OpenAllBags();

  配合关闭包包的函数,一次关闭所有包的宏也可以实现:

  /script CloseBag(0);
  /script CloseBag(1);
  /script CloseBag(2);
  /script CloseBag(3);
  /script CloseBag(4);

  怎么样,下次你卖东西的时候不会一个个开包关包了吧?

  使用函数还不是最恐怖的,恐怖的是WOW的宏是可以用条件判断的,看下面这两个:
  /script if ( GetComboPoints() >= 3 ) then CastSpellByName(Rip(Rank 2)); else if (

  UnitMana(player) >= 40 ) then CastSpellByName(Rake(Rank 1)); end end

  据说这个包含if,then的宏可以让盗贼实现自动根据combo点数来使用技能(未测试),其中还使用了角

  色MANA值的调用,恐怖吧?还有这个查找spell的宏:
  function GetSpellIdByItsName(myWantedSpell, myWantedRank)
  local spellId = 1;
  local spellBook = spell;
  local spellName, rankName;
  spellName, rankName = GetSpellName(spellId, spellBook);
  while (spellName ) do
  if ( ( spellName == myWantedSpell ) and ( ( not myWantedRank ) or ( rankName = myWantedRank

  ) ) ) then return spellId; end
  spellName, rankName = GetSpellName(spellId, spellBook);
  end
  return -1;
  end

  里面可以自己定义function,还使用了while,do这样的循环,是不是让你想到了N种应用的可能呢?

  遗憾的是,目前官方似乎没有提供延时的宏,所以在战斗中使用多种有延时的技能是无法实现的(无延时的技能可以实现同时使用),类似换其他武器-使用技能或法术-换回武器这样的功能也无法实现,

  (所谓用宏实现剑盾战士换双手武器MS再换回来是行不通的),不过使用COSMOS的朋友可以用/in 来实现非战斗指令的延时,比如
  /in 3 say hi 就会在3秒后说句hi。

  /in 6 /script MoveForwardStart(arg1);
  就会在6秒后向前跑。

  虽然法术和技能无法用/in指令来延时,但这样已经很强大了,比如,你可以编出各种运动的宏,如兜后,转身等。PVP时估计是必不可少的。

  下面是一个玩家写的双手武器战士自动逃跑的宏:
  /script UseContainerItem(0, 2);ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown

  (12);ActionButtonUp(12);
  /cast Thunder Clap(Rank 1);
  /script TurnLeftStart(arg1);
  /in 1 /script TurnLeftStop(arg1);ToggleAutoRun();


  使用这个宏的条件:在大包包第二格放了回复药,快捷栏第11,12分别是一单手一盾的快捷方式。

  使用这个宏后,角色自动喝回复药,装备上盾,使用Thunder Clap(这三个动作同时进行),向后转180度后开自动跑步键逃走。其中技能等可以根据需要自己改。怎么样,是不是很夸张啊,哈哈。

  还有一些有用的宏:

  切换装备,

  双手切换单手并换第二个快捷栏,快捷栏第11,12分别是一单手一盾的快捷方式
  /script ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12);
  /script CURRENT_ACTIONBAR_PAGE = 2;
  /script ChangeActionBarPage();
  单手切换双手并换回第一快捷栏,快捷栏12是一双手武器快捷方式
  /script ActionButtonDown(12);ActionButtonUp(12);
  /script CURRENT_ACTIONBAR_PAGE = 1;
  /script ChangeActionBarPage();

1.友好魔法

1.A 对友好单位或自己施法
/cast 治疗术(等级1)
/script TargetUnit("player")


如果你当前选择的目标是可以对其使用此魔法的友好单位的话,则对其使用魔法。
如当前目标是不能接受此魔法的单位,或没有选择任何目标的话,则对自己使用魔法。
而且不会对当前目标进行切换,不会中断对当前敌人的攻击。

将 “治疗术(等级1)” 换成任何能对友好单位释放的魔法与技能。

如在最后再加上如下代码
/script if ( UnitName("target") ~=nil and UnitInParty("player","target") ) then SendChatMessage("<治疗 %T >", "PARTY"); end


则在治疗队友时,在party中发出相应的信息。

将<治疗 %T>换成任何你喜欢的信息,%T表示接受治疗的目标的名字。
将UnitInParty换成UnitIsFriend,则对任何友好单位施法时都发出信息。

将"PARTY"换为"EMOTE",则以自定义表情的方式发出信息。如SendChatMessage(" 将在3秒内治疗 %T", "EMOTE"),则别人在聊天窗口中看到:"汉客将在三秒内治疗小郎"

将"PARTY"换成"WHISPER", "COMMON", UnitName("target"),则采用密语形式对你施法的目标发送信息。"COMMON"表示密语所用的语言种类。下面是一个语言列表:

Common 人类语,联盟通用语
Orcish 兽人语,部落通用语
Dwarvish 矮人语
Gnomish 侏儒语
Darnassian 暗夜精灵语

还有其他的一些实现方法如:
/cast 治疗术(等级1)
/script if SpellIsTargeting() then TargetUnit("player")



/script if ( not UnitIsFriend("player", "target") ) then CastSpellByName("治疗术(等级1)"); end
/script if ( SpellIsTargeting() ) then SpellTargetUnit("player"); end



/script if (UnitName("target") ~=nil and UnitIsFriend("player","target")) then CastSpellByName("治疗术(等级1)") SendChatMessage("即将治疗 %T", "Party") else TargetUnit ("player") CastSpellByName("治疗术(等级1)") TargetLastEnemy(); end


并不值得推荐。而且后一个宏会切换当前目标,中断攻击。

1.B 只对自己使用
如果想在任何条件下都只对自己使用治疗的话,用如下的宏:
/target "player"
/cast 治疗术(等级1)
/script TargetLastEnemy()


但这个宏同样有切换当前目标,中断攻击的弊病。


1.C 对特定队员施法
下面的这个宏只对队伍中的第一名队员施法。party1,party2,party3,party4分别指代队伍中的其他4名成员。也可以结合组队相关中的目标设置宏来使用。
/script if (UnitName("party1") ~= nil) then CastSpellByName("治疗术(等级1)") SpellTargetUnit("party1") SendChatMessage("即将治疗 >>" .. UnitName("party1") .. "<< (3.5s)", "Party") TargetLastEnemy(); end



1.D 按目标的职业分别使用不同魔法
下面是圣骑士的一例。如果目标职业为盗贼或战士则使用力量祝福,否则使用智慧祝福。
/script class = UnitClass("target"); if ( ( class == "Rogue" ) or ( class == "Warrior" ) ) then
CastSpellByName("Blessing of Might(Rank 1)"); else CastSpellByName("Blessing of Wisdom(Rank 1)"); end



1.E 按目标等级使用不同级别的魔法
下面牧师的一例,对目标使用其所能接受的最高等级的“圣言术:韧”
/script P="Power Word: Fortitude(Rank " S={1,2,14,26,38} if (UnitLevel("target") ~= nil and UnitIsFriend("player","target")) then for j=5,1,-1 do if (UnitLevel("target") >= S[j]) then CastSpellByName(P..j..")") return end end end


下面是60级的牧师的实例,另外一种实现方法,语句书写略为不同,更为易读。
/script r=6;l={1,12,24,36,48,60};t=UnitLevel("target");if (t==0) then t=UnitLevel("player");end;if UnitIsFriend("player","target") then for j=r,1,-1 do if (t>=l[j]-10) then CastSpellByName("Power Word: Fortitude(Rank "..j..")");break;end;end;end


下面是60级德鲁依的一例,使用对方能接受的最高级野性印记。实现方法和上面2例略有不同:
/script r=7;l={1,10,20,30,40,50,60};if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target");for j=r,1,-1 do if (t>=l[j]-10) then CastSpellByName("Mark of The Wild(Rank "..j..")");break;end;end





2. 判断HP,MP,连击点量

2.A 按HP消耗量不同使用不同治疗魔法
在下面的例子中,宏会对玩家自己的HP消耗量进行判断,如小于200则不使用治疗,并在聊天窗口中提示:"health is good",如消耗两大于200小于400,使用3级的Flash of Light治疗,如大于400,则使用5级的Holy Light进行治疗。你也可以用当前的HP量进行判断。
/script x="player";d=UnitHealthMax(x)-UnitHealth(x);if (d>200) then if (d<400) then CastSpellByName("Flash of Light(Rank 3)") else CastSpellByName("Holy Light(Rank 5)") end;SpellTargetUnit(x);else DEFAULT_CHAT_FRAME:AddMessage("Health is good"); end;



2.B 根据目标HP量决定是使用灵魂抽取还是抽取生命
术士根据目标HP量决定是使用灵魂抽取还是抽取生命。大于20则使用抽取生命,否则使用灵魂抽取。
/script if (UnitHealth("target")>20) then CastSpellByName("Drain Life(Rank X)") else CastSpellByName("Drain Soul(Rank 2)"); end



2.C 根据敌人是否使用魔法来决定是使用结舌诅咒还是虚弱诅咒
下面这个是根据敌人是否使用魔法(使用魔法的敌人其MANA肯定大于0)来决定是使用结舌诅咒还是虚弱诅咒。
/script if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues(Rank X)") else CastSpellByName("Curse of Weakness(Rank X)"); end



2.D 根据连击点的多寡和能量的多少来决定使用技能种类
下面是德鲁依猫形态(盗贼也是一样)根据连击点的多寡和能量的多少来决定是使用Rip还是Rake。如连击点大于等于3,则使用Rip,如连击点小于3并且能量有40点以上,则使用Rake。
/script if ( GetComboPoints() >= 3 ) then CastSpellByName("Rip(Rank 2)"); else if (UnitMana("player") >= 40 ) then CastSpellByName("Rake(Rank 1)"); end end

7.宠物相关(猎人、术士)

下面的一些宏虽是对应猎人,术士只需稍加改动就可以用了。

7.A 施放猎人印记的同时宠物攻击
/cast Hunter‘s Mark(Rank 1)
/script PetAttack()



7.B 切换到宠物正在攻击的目标并施放毒蛇刺击
/script TargetUnitsPet("Player")
/assist
/cast Serpent Sting(Rank 1)



7.C 召回宠物并使用散射
此宏是有散射技能的玩家所必需的。
/script PetFollow()
/Cast Scatter Shot()



7.D 选择目标,开始攻击
如果当前目标是友好目标,则协助目标。使用猎人印记,宠物攻击,如果没有在战斗状态,开始自动射击。如果目标是敌人的话,则直接使用技能。此宏在SOLO组队中都比较实用。
/script if (UnitIsFriend("player","target")) then AssistUnit("target"); end
/cast Hunter‘s Mark(Rank X)
/cast PetAttack()
/script if(not PlayerFrame.inCombat) then CastSpellByName("Auto Shot"); end



7.E 喂食

最简单的一键喂食,把食物放入对应的背包格子中。
/cast Feed Pet
/script PickupContainerItem (Bag,Slot)




下面这个会先判断玩家是否处于战斗之中。如对应的格子中没有食物,则会打开相应的背包。
/script if (not PlayerFrame.inCombat) then if (not
GetContainerItemLink(Bag, Slot)) then OpenBag(Bag); else CastSpellByName("Feed Pet"); PickupContainerItem(Bag, Slot); end end




8.判断目标身上是否有特定BUFF

8.A 猴之守护+物理攻击
下面的宏会先判断玩家身上是否加有猴之守护,如果没有,使用猴之守护。如果玩家未在战斗状态,则开始物理攻击。也可以把Attack换为Raptor Strike。
/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



8.B 鹰之守护+自动射击
]而这个则是先开始自动射击,再判断身上是否有鹰之守护的效果,没有的话,使用鹰之守护。
/cast Auto Shot
/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); end



8.C 鹰之守护+瞄准射击
瞄准射击的版本
/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); else CastSpellByName("Aimed Shot(Rank Y)"); end




9.影遁相关(暗夜专用)

9.A 藏身
影遁的同时躺下,藏身之用……
/cast Shadowmeld(Racial)
/laydown



9.B 进食
吃饭喝水的同时影遁,也是出于安全考虑……
/target "player"
/script UseContainerItem(FoodBag, FoodSlot);
/script UseContainerItem(DrinkBag, DrinkSlot);
/cast Shadowmeld(Racial)




10.切换技能栏

/script CURRENT_ACTIONBAR_PAGE = X
/script ChangeActionBarPage()



将3换成你想切换到的技能栏页数

此宏可以有这样的用法
/cast Aspect of the Monkey
/script CURRENT_ACTIONBAR_PAGE = 3
/script ChangeActionBarPage()


切换技能栏的同时使用猴之守护。

还可以加上前面的BUFF判断
/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey"); end
/script CURRENT_ACTIONBAR_PAGE = 3
/script ChangeActionBarPage()


D 战士逃跑宏
这是一个战士逃跑的时候使用的宏,首先使用包中的药水,换上盾牌(此例中其换武器的快捷位于技能栏第一页第11和12格)。使用Thunder Clap减低敌人速度,然后转身逃跑。
/script UseContainerItem(Bag, Slot);ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12)
/cast Thunder Clap(Rank 1)
/script TurnLeftStart(arg1)
/in 1 /script TurnLeftStop(arg1);ToggleAutoRun()



一套十二连招的宏给大家举例子,由2个宏组成,分别叫运行宏和启动宏。

运行宏内容:

/script AQ.x()

启动宏内容:

/script AQ={};AQ.i=1;AQ.x=function() AQ[AQ.i]() end

/script AQ[1]=function() CastSpellByName("潜行"); AQ.i=2 end

/script AQ[2]=function() CastSpellByName("伏击(等级6)"); AQ.i=3 end

/script AQ[3]=function() CastSpellByName("致盲"); AQ.i=4 end

/script AQ[4]=function() CastSpellByName("消失(等级2)"); AQ.i=5 end

/script AQ[5]=function() CastSpellByName("冷血)"); AQ.i=6 end

/script AQ[6]=function() CastSpellByName("伏击(等级6)"); AQ.i=7 end

/script AQ[7]=function() CastSpellByName("预备"); AQ.i=8 end

/script AQ[8]=function() CastSpellByName("致盲"); AQ.i=9 end

/script AQ[9]=function() CastSpellByName("消失(等级2)"); AQ.i=10 end

/script AQ[10]=function() CastSpellByName("伏击(等级6)"); AQ.i=11 end

/script AQ[11]=function() CastSpellByName("冷血"); AQ.i=12 end

/script AQ[12]=function() CastSpellByName("剔骨(等级8)"); AQ.i=1 end

效果为潜行+伏击(等级6)+ 致盲+消失(等级2)+ 冷血+伏击(等级6)+ 预备+致盲+消失(等级2)+ 伏击(等级6)+ 冷血+剔骨(等级8)。每按一次运行宏的图标,发一招,从第一招开始,到最后一招结束,按次序来。每次进游戏或重新发连招,点下启动宏图标。天赋学了强化伏击,预备,冷血,主动。2个50%以上爆发的伏击,1个100%爆发的伏击,1个4-5星剔骨(主动75%使得伏击+2个组合点),威力很大:没有晕,不会被下士首饰破解;伏击与剔骨之间可以用加速跑追杀,其它招对手很难避开。

看了以上2个宏,注意把技能和等级替换,把多余行去掉,最后i=1。就可以编出属于自己的宏。

猎人宏命令设置


自动选最近目标
说明:(寻找最近目标+宠物防御模式+宠物攻击+猎人印记+自动攻击)(以上动作同时进行)
快捷键Tab
/script TargetNearestEnemy()
/script PetDefensiveMode()
/script PetAttack()
/施放 猎人印记(等级 3)
/施放 攻击


2.印记目标/雄鹰
说明:(自动射击+宠物攻击+雄鹰守护/猎人印记)同时进行
如果身上有灵猴守护则施放雄鹰守护 如果有雄鹰守护则施放猎人印记
快捷键Q
/施放 自动射击

/script PetAttack()
/script for i=1,16,1 do if (UnitBuff("player",i)~=nil) then if (string.find(UnitBuff ("player",i),"Mon")~=nil) then CastSpellByName("雄鹰守护(等级 4)");break;end end if(i==16) then CastSpellByName("猎人印记(等级 3)");end end

3.射击 SOLO模式(保留长冷切时间的技能)
说明:(如果无自动射击则开启自动射击+宠物防御模式+宠物攻击+智能钉刺)+奥术射击+多重射击
快捷键E
/script if(not IsAutoRepeatAction(40)) then CastSpellByName("自动射击"); end
/script PetDefensiveMode()
/script PetAttack()
/script UseAction(8)---------------------将此介绍的宏(8.智能钉刺)放在物品栏8
/施放 奥术射击(等级 6)
/施放 多重射击(等级 3)



4.射击 PK模式 (使用长冷切时间的技能)
说明:(如果无自动射击则开启自动射击+宠物防御模式+宠物攻击+急速射击)+震荡射击+智能钉刺+狂野怒火+多重射击+奥术射击+胁迫
快捷键R
/script if(not IsAutoRepeatAction(40)) then CastSpellByName("自动射击"); end

/script PetDefensiveMode()

/script PetAttack()
/施放 急速射击

/施放 震荡射击
/script UseAction(8)---------------------将此介绍的宏(8.智能钉刺)放在物品栏8
/施放 狂野怒火

/施放 多重射击(等级 3)

/施放 奥术射击(等级 6)
/施放 胁迫


5.近身攻击
说明:做到用一个按键切换灵猴守护+使用近战技能
/script UseAction(6)----------------------将此介绍的宏(6.切换灵猴守护)放在物品栏6
/script UseAction(7)----------------------将此介绍的宏(7.近身技能)放在物品栏7
/施放 胁迫

/施放 狂野怒火


6.切换灵猴守护
说明:如果身上没有灵猴守护则施放灵猴守护,有则使用猛禽一击
快捷键6:将此宏放在快捷栏6
/script for i=1,16,1 do if (UnitBuff("player",i)~=nil) then if (string.find(UnitBuff("player",i),"Mon")~=nil) then CastSpellByName("猛禽一击(等级 6)");break;end end if(i==16) then CastSpellByName("灵猴守护");end end


7.近身技能
说明:(如果目标没有被摔拌则施放摔拌,有则猛禽一击+宠物攻击)+猫鼬撕咬
快捷键7:将此宏放在快捷栏7
/施放 猫鼬撕咬(等级 3)
/script local T; for i=0,15,1 do T=UnitDebuff("target", i); if (T and string.find (T,"Trip")) then break; end; end; if (T and string.find (T,"Trip")) then CastSpellByName("猛禽一击(等级 6)"); else CastSpellByName("摔绊(等级 2)"); PetAttack() end



8.智能钉刺
说明:首先判断目标是否牧师/圣骑士,如果是则使用宏(9.吸魔钉刺),否则使用宏(10.毒蛇钉刺)
快捷键8:将此宏放在快捷栏8
/script class = UnitClass("target"); if ( ( class == "牧师" ) or ( class == "圣骑士" ) ) then UseAction(9); else UseAction(10); end


9.吸魔钉刺
说明:自动判断目标是否已有吸魔钉刺,如果有则宠物攻击,如果没有则加上
快捷键9:将此宏放在快捷栏9
/script local T; for i=1,16,1 do T=UnitDebuff("target", i); if (T and string.find (T,"AimedShot")) then break; end; end; if (T and string.find (T,"AimedShot")) then PetAttack(); else CastSpellByName("蝰蛇钉刺(等级 2)"); end;


10.毒蛇钉刺
说明:自动判断目标是否已有毒蛇钉刺,如果有则宠物攻击,如果没有则加上
快捷键10:将此宏放在快捷栏10
/script local T; for i=1,16,1 do T=UnitDebuff("target", i); if (T and string.find (T,"Quickshot")) then break; end; end; if (T and string.find (T,"Quickshot")) then PetAttack(); else CastSpellByName("毒蛇钉刺(等级 6)"); end;



11.跳放冰冻陷阱/爆炸陷阱
说明:跳放陷阱不容易被察觉
快捷键C
/script U=UseAction Jump()

/施放 冰冻陷阱(等级 2)


12.找JY宠物
说明:方便抓JY宠物,如果目标野兽在40码内就有显示目标头像
/target 巨型火鸟

/script if UnitExists("target") then Jump();end


13.假死陷阱
说明:按一下是假死+宠物停止攻击收宠+清除目标,按第2下是冰冻陷阱。可以在15秒的毒蛇钉刺过后使用
/script TargetLastEnemy()

/script PetPassiveMode()

/script PetFollow()

/script ClearTarget()

/施放 假死

/施放 冰冻陷阱(等级 2)
/script TargetLastEnemy()


14.使用绷带
说明:使用绷带后,不丢失目标。
/script TargetUnit("Player");

/use 厚魔纹绷带

/script TargetLastEnemy();

/script PetDefensiveMode() 绷带

请把宠物食放在从左向右数第二个包,第一行自左向右数第一格

/script UseContainerItem(3,1)
/script TargetUnit("player")
/guild/ftghdkp/
http://guild.cc.16t.cn/code_member/

1 选目标放标记

说明:SOLO可用,组队少用
代码:
/script if (not UnitExists("target")) then TargetNearestEnemy();end
/施放 猎人印记(等级 1)

2 假死:

说明:假死后当前目标不会消失,但假死刹那间则已经清除当前目标而提高成功率。因为使用中发现,假死后,当前目标消失的话,起来后还得重新选定目标,不太方便,故故作此改进

代码:
/script PetFollow()
/script ClearTarget()
/施放 假死
/script TargetLastEnemy()

答疑:
第一行收回BB,一般情况下,BB也已经在挨打,或者在打怪,收回到身边有什么用吗?
答:这个假死,是为了手动放陷阱。BB攻击敌人,则不能放陷阱。这是游戏规定的,放陷阱必须在非战斗状态。如果不收,BB设成被动模式,则挨打,顶怪,没办法。如果收回,则怪追BB打,BB跑得快,挨打就少了,当BB跑回身边,再过小会,8S差不多也过去了,放冰陷,然后治疗BB,或绷带。

3 驱散射击:

收宠驱散后,取消自动攻击状态,但当前目标冰变。因为使用中,经常一驱散后,宠也收了,可是自己立马又给我敌人一次攻击,把敌人打醒了,很不方便,故作此改进

/script PetFollow()
/施放 驱散射击
/s 困惑4S!挨打解除
/script ClearTarget()
/script TargetLastEnemy()

楼主~~为什么驱散的宏怎么不好用~~问题是使用以后宝宝是回来了~可是没有使用技能~~能帮忙解决吗?????谢谢了!!!!
答:驱散宏,我的写法是最常用的。当用驱散时,目标不受攻击的情况下,困惑4S,如果受攻击,则解除。我用驱散,主要是为了让敌困惑4S,以拉开距离或治疗BB或吃喝或绷带。所以,用本宏前,不要用毒箭,也不能让队友用痛苦之类的DOT。如果你非想再接着加技能,实现起来很简单,只要下面再加:/施放 毒蛇刺击(等级 1)

4 喂宠
宏1:
请把宠物食放在从左向右数第二个包,第一行自左向右数第二格
5个背包按照排列位置编号如下:
[4][3][2][1][0]]
6格包的格子编号如下:
_____[1][2]
[3][4][5][6]
16格包的格子编号如下:
[ 1][ 2][ 3][ 4]
[ 5][ 6][ 7][ 8]
[ 9][10][11][12]
[13][14][15][16]

/施放 喂食宠物
/script PickupContainerItem(3,2)

喂宠的宏是不是缺什么?我使用这个宏之前还必须使用喂养宠物这个技能,不然的话使用宏就直接把物品拿在手上了。
答:这个宏肯定可以用。我一直在用的。我放上来的宏全部是试验成功后才放的。至于你说的问题,可能是因为在战斗中你用了这个宏,或者对应格子里没有宠物愿意吃的食物。我自己也碰到过同样问题。只要重新把宏图标从/m中拖出到动作栏上,便可恢复正常。请放心使用。注意,如果宏正常,图标上有英文字的,是宏的名字。如果图标变成了普通的食物图标,则出错了,要重新拖一下。

宏2推荐!)
说明:改进的喂养宠物宏
作用:如果3,2有食物,自动喂食,如果没有,自动打开3号背包。按语句讲,还应该有战斗中宏无效的作用,但上机验证没有通过,不知何故,请大家指教。本人怀疑PlayerFrame.inCombat已经在CWOW1.62无效所致。

/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(3, 2)) then OpenBag(3); else CastSpellByName("喂养宠物"); PickupContainerItem(3, 2); end end

5 绷带

请把宠物食放在从左向右数第二个包,第一行自左向右数第一格

/script UseContainerItem(3,1)
/script TargetUnit("player")

6 协助
宏1:
前提:选中的当前目标为队友或自己

/script AssistUnit("target")
/施放 猎人印记(等级 1)

宏2(推荐!)
感谢:二区月光林地小D:随风的丫头。在其帮助下,我在加基森边上,完成了本宏的测试
作用:自动协助第一个队友,比前一个版本的方便些。如果想协助第4个队友,请把"party1"必为"party4"。一般,我把战士设为协助对象。

/script AssistUnit("party1")
/施放 猎人印记(等级 1)

6 解散/召唤宠物

/施放 解散宠物
/施放 召唤宠物

7 拉怪

(组队拉怪用。注意:先要选中一个敌人)

/script if UnitExists("target") then SendChatMessage(">>"..UnitName("target").."[lvl "..UnitLevel("target").."]<<","say");end
/施放 猎人印记(等级 1)

8 宠物攻击/追击

注意,4是指宠物技能共四个中的左边的第一个,我一般放“突进”,点击一下就用一次技能

/script PetAttack()
/script CastPetAction(4)


9 鹰守/猴守切换

/script for i=1,16,1 do if (UnitBuff("player",i)~=nil) then if (string.find(UnitBuff("player",i),"Mon")~=nil) then CastSpellByName("雄鹰守护(等级 1)");break;end end if(i==16) then CastSpellByName("灵猴守护");end end

10 副本报告巡逻队来了(注意:先用鼠标指在视野内的怪身上,按该宏的快捷键即可)

/script p="mouseover"
/script if UnitExists("target") then if (UnitIsEnemy("player",p) ) then SendChatMessage("巡逻队>>"..UnitName("target").."[lvl "..UnitLevel("target").."]<<来了","say");end end 11 装死放冰冻陷阱

由于时间上的要求,一般没法一次性成功。所以一般不做这样的宏,也建议别用这样的宏。非要做的话,就这样吧。只不过要一直按键,一直到冰陷放出为止。
用本宏的建议:自己与怪拉开点距离,宠顶,自己枪打。当必要时,则按宏。一般来说,这样操作,都能成功。

/script PetFollow()
/script ClearTarget()
/施放 假死
/施放 冰冰陷阱(等级 1)

打人的时候再点就是不出假死,但是非战斗状态的时候点了就只放陷阱.也没有假死,晕...
答:首先,这个宏,只要你能手动放出假死并放出陷阱的话,这个宏也一定能成功。
其次,关于你的问题,我想解释一下。要放假死,如果不抵抗而且身上没有让你假死不了的敌方技能,无论你是否战斗中进行中,假死就能成功。在这种情况下,用我的宏,至少能成功假死。如果假死成功,必须要有8S不受攻击,也不攻击别人(包括宠物不攻击),才能放陷阱,一般来说,这时肯定能成功安放陷阱
。用宏的话,也一样能实现。你为什么不成功,原因:战斗中,如果宠物没设成被动模式,则不会成功,如果宠物受攻击,不攻击,是否影响假死后放陷阱,我不太清楚;后来,只出陷阱,不假死,我估计是你的假死冷却时间还没结束。
总之,这个宏,你只要手动能放出陷阱,宏也可以。


12 摔绊宏:

经使用效果的比较,发现下面的写法有效性高,而且动作帅得多

/施放 摔绊(等级 1)
/script Jump()
/script ToggleAutoRun()

13 报告自已坐标:

可以一定程度上代替插件的坐标显示功能,方便那些不用插件的朋友,现在可以凑合着找特定坐标的东西了。使用方法:鼠标放在视野内任何地方,按宏键

/script x, y = GetPlayerMapPosition("player");Msg="(x,y)"..string.format("%d",x*100).." ,"..string.format("%d",y*100).." )", "say"); end

14 快捷寻找精英BB

当在刷新点附近转悠时,先把“断牙”改为BB的名字,不时按一下这个宏,如果BB在以玩家为圆心的半径至少41码(经验证,感觉应该更大)的圆形区域内刷新,则BB头像出现在屏幕左上玩家自己头像右边,且玩家会跳一下。试验时,我没骑马,成功了。如果骑马了,感觉也可行。由于本人爱好招BB,经常为了招个心仪的BB用几天时间,感觉在到处转悠寻找目标时,很不方便。于是想出这么个招,好使!嘿嘿!该招是在荒芜之地招38级JY红狼巴那布斯(Barnabus)时,大约是第5天,想到的,特此纪念,嘿嘿。可恨为什么猎人只能养三个宠啊!!痛苦!!

/target 断牙
/script if UnitExists("target") then Jump();end

15 鹰守/豹守切换

/script for i=1,16,1 do if (UnitBuff("player",i)~=nil) then if (string.find(UnitBuff("player",i),"JungleTiger")~=nil) then CastSpellByName("雄鹰守护(等级 1)");break;end end if(i==16) then CastSpellByName("猎豹守护");end end

16 冰冻陷阱:

建议组队使用

/施放 冰冻陷阱(等级 1)
/s 冰陷阱!别打冰住的怪,能冰10S!

17 冰霜陷阱:

建议组队使用

/施放 冰霜陷阱
/s 霜陷阱!请在陷阱上顶怪,布衣开战2S后动手! 术士宏设置

/script CastSpellByName(‘Hellfire(Rank 3)‘)
SendChatMessage(‘(Hellfire)‘, ‘PARTY‘);

使用地狱火同时通知队友

/script CastSpellByName(‘Ritual of Summoning‘)
SendChatMessage(‘ Click portal once and dont move.‘,‘SAY‘)
SendChatMessage(‘(Summoning) %T‘,‘PARTY‘)
SendChatMessage(‘(Summoning) %T‘,‘RAID‘);

拉人以后说“点传送门,不要移动”,同时通知队友和raid大队

/script CastSpellByName(‘Enslave Demon(Rank 3)‘) SendChatMessage(‘(Enslave Demon) %T‘, ‘PARTY‘);

奴役恶魔的同时通知队友奴役的对象

/script CastSpellByName(‘Banish(Rank 2)‘) SendChatMessage(‘(Banish) %T‘, ‘PARTY‘);

放逐的同时通知队友放逐的对象

Additional macros:

the most important one. period.
/assist [playername]

援护队友攻击

curse caster in party situation:
/script
if (UnitMana(‘target‘)>0) then
CastSpellByName(‘Curse of Tongues(Rank 2)‘)
else if (GetNumPartyMembers() > 0) then
CastSpellByName(‘Curse of Shadow(Rank 2)‘)
else CastSpellByName(‘Curse of Agony(Rank 6)‘)
end end;

组队时打击敌人的施法者:当敌人为魔法型单位时使用结舌;否则如果组队时候使用暗影诅咒,SOLO时候使用痛苦

Bolts spell
/script
if (UnitMana(‘player‘)>363) then
if (UnitHealth(‘target‘)>10) then
CastSpellByName(‘Shadow Bolt(Rank 9)‘)
else
CastSpellByName(‘Shadowburn(Rank 6)‘) end
else
CastSpellByName(‘Shoot‘) end;

当自己魔超过363时判断:目标的血大于10则使用暗影箭,小于10则使用暗影燃烧。没363魔就用棒子射击。——本条语句在暗影燃烧CD时候会出问题。

This one has the bad side effect of failing to cast anything because Shadowburn is cooling down.

Summon
/raid Summoning %t, 2 people need to r-click the portal ONCE.
/cast Ritual of Summoning

也是拉人的

seduce
/script CastPetAction(6)

将女王的魅惑拉到自己的面板上控制。
curse caster in party and solo situations, assumes there are mages in party:
/script
if (UnitMana(‘target‘)>0) then
CastSpellByName(‘Curse of Tongues(Rank 2)‘)
else if (GetNumPartyMembers() > 0) then
CastSpellByName(‘Curse of the Elements(Rank 3)‘) else
CastSpellByName(‘Curse of Agony(Rank 6)‘)
end
end;

前面那个组队语句的改进版,暗影诅咒改成了元素诅咒,视有否法师而定

For my alt char when using imp (who is posting)
/cast Shadow Bolt(Rank 2)
/script PetAttack()

For my alt char when using VW:
/cast Curse of Agony(Rank 1)
/script PetAttack()

自动控制宠物攻击。简化操作而已。
技巧:做个用healthstone的macro,就不用每次从袋子里面拖出来了-----by jackies

/use healthstone

微型生命石 /use Minor Healthstone
小型生命石 /use Lesser Healthstone
普通生命石 /use Healthstone
大型生命石 /use Greater Healthstone
巨型生命石 /use Major Healthstone 战士宏设置

下面先是战士2个实用宏的介绍
打绷带的宏来自MOXIAOMI

昨天晚上回去做了个 呵呵中英文结合的哈哈 可以用 大家可以试试
绷带要求放在主背包的第1个位置,切记!

施放破胆怒吼后给自己绷带,然后目标转向最后攻击者(没有最后攻击者会转向附近目标)
/施放 破胆怒吼
/target 自己
/script UseContainerItem(0,1)
/script TargetLastEnemy()


给自己绷带,然后目标转向最后攻击者(没有最后攻击者会转向附近目标)
/target 自己
/script UseContainerItem(0,1)
/script TargetLastEnemy()

2个宏的最后1句/script TargetLastEnemy() 有没有都不影响宏的使用,因为自动转换目标也许不是你期望的目标

双持和武器转换的宏 来自cutu

我练级时候一般双挥,遇到怪闪避,大家必然压制,但是单手武器伤害小,所以及时切换成双手武器压制,效果更好。这里说一下我用的宏,希望对大家有点帮助

/script PickupInventoryItem(16) 16是指主手武器
/script PickupContainerItem(4,4) 4,4指第4背包的第4个位置
/script PickupInventoryItem(17) 17指副手武器
/script PickupContainerItem(4,5) 4,5指第4背包的第5个位置
/script UseContainerItem(4,1) 4,1指第4背包的第1个位置,这里我放的是双手武器
/施放 压制(等级 3) 这句话请不要复制进去,而需要打开法术书,按住shift点击压制图标,会自动写入宏里面,因为我想不是所有人都正好压制等级为3

以上将主副手武器放到第4背包的4,5位置然后拿起双手武器压制。之后呢,自然要换成双挥,所以就有下面这个宏

/script PickupInventoryItem(16)
/script PickupContainerItem(4,1) 把双手武器放回第4背包的第一个位置
/script UseContainerItem(4,4) 拿起主手武器
/script UseContainerItem(4,5) 拿起副手武器
加入17173玩家俱乐部,100%领《原神》月卡、《王者荣耀》888点券、《魔兽世界》T恤等周边好礼!
加入方式:微信关注“17173服务号”

热点推荐

游戏头条