雪灵龙
漫画连载冲刺中>>>期待
级别: 火花会员
编号: 34582
精华: 3
发帖: 3848
威望: 10 点
配偶: 单身
火 花 币: 15583 HHB
注册时间:2005-03-29
最后登陆:2019-09-10
|
[转贴]WOW宏命令小编
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") http://wow.replays.net/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) 拿起副手武器
|
雪灵龙的博客^ ^! http://blog.sina.com.cn/u/1277833264
画帖 http://bbs.fireemblem.net/read.php?tid=84202&fpage=&toread=&page=1
|
[楼 主]
|
Posted:2007-04-15 11:28| |
顶端
| |