在普通焦点致盲宏:
#showtooltip
/cast [target=focus,exists]致盲;致盲
的基础上修改出:
#showtooltip
/clearfocus [target=focus,exists,dead,nomodifier:shift]
/focus [modifier:shift][target=focus,noexists]
/cast [target=focus,exists,nodead]致盲;致盲
宏效果:无焦点或当前焦点目标死亡时,点击则对当前目标发动致盲,并同时将其设定为焦点;有焦点且焦点目标活动时,点击则对焦点目标发动致盲,加按SHIFT则将当前目标改设为焦点,并对其发动致盲。
/Cast [target=focus,harm,exists,modifier:alt]致盲; [target=mouseover, harm, exists]致盲; 致盲 不丢目标的致盲宏,结合了焦点命令,按住ALT盲焦点,其次盲鼠标指向目标,如果前两者条件都不够,那么盲当前目标。可以根据个人习惯把ALT改成CTRL或者SHIFT。
盗贼的宏设置
关于宏:
几个魔兽宏命令(盗贼练级专用)
主手上毒
/script UseContainerItem(0,2); PickupInventoryItem(16);
副手上毒
/script UseContainerItem(0,2); PickupInventoryItem(17);
主副手武器切换
/script PickupInventoryItem(16);PickupInventoryItem(17)
练级
/script if ( GetComboPoints() >= 4 ) then CastSpellByName("剔骨(等级
4)"); else if
(UnitMana("player") >= 40 ) then CastSpellByName("邪恶攻击(等级 4)"); end
end
(解释:当连击点数小于4且能量点数大于40时使用邪恶攻击,连击点数达到4时使用剔骨,你可以把代码
中的“4”改为你想要的数字,符合各人不同的要求,本宏最适合练级)
吃食物时隐身
/script UseContainerItem(0,3);
/施放 潜行(等级 2)
(作用:进食时隐形,危险地带防止被偷袭)
一键上绷带
/script UseContainerItem(0,1)
/script TargetUnit("player")
说明:
绷带放(右边数起)第一个包左上位置数起的第一个格子 绷带第二个 食物第三个
以上宏中涉及到的技能等级根据各人不同的技能等级进行修改 如你的 潜行等级为3 则要将
潜行(等级 2)改为 潜行(等级 3) 依次类推
换背包里武器后实施技能的宏
/script GameTooltip:SetInventoryItem("player",
GetInventorySlotInfo("MainHandSlot")); if(GameTooltipTextRight3:GetText()~="匕首")
then CastSpellByName("邪恶攻击(等级 X)") else PickupContainerItem(0,1)
PickupInventoryItem(16); end
上面这个是使用险恶的时候主手使用背包第1个第1格的剑
/script GameTooltip:SetInventoryItem("player",
GetInventorySlotInfo("MainHandSlot")); if(GameTooltipTextRight3:GetText()~="剑")
then CastSpellByName("背刺(等级 X)") else PickupContainerItem(0,1)
PickupInventoryItem(16); end
这个是用背刺的时候主手使用背包第1个第1格的匕首
/script GameTooltip:SetInventoryItem("player",
GetInventorySlotInfo("MainHandSlot")); if(GameTooltipTextRight3:GetText()~="剑")
then CastSpellByName("伏击(等级 X)") else PickupContainerItem(0,1)
PickupInventoryItem(16); end
这个是用伏击的时候主手使用背包第1个第1格的匕首
注:当你使用背刺的时候你现在主手拿的是匕首那么第1个背包的第一格是放的剑
当你使用险恶的时候你主手就换上刚才你背包1第一格的剑了那你现在背包1第一格中就是你刚才使用背刺的时候拿的匕首,副手装备不受影响
相应技能处可以根据自己喜好随意修改,基本可以将所有技能都通过该宏实施.如果不想将武器放在第一个背包第一格,可以在PickupContainerItem(0,1)进行修改,(等级那里就不用说了吧.........)
---------------------------------传说中的分割线---------------------------------------
给自己绷带不灭灯的宏
/script UseItemByName("绷带名")
/script if ( SpellIsTargeting() ) then TargetUnit("玩家名");end
END
---------------------------------传说中的分割线---------------------------------------
盗贼的法宝----上毒
左手:
/script UseItemByName("速效毒药 III")
/script PickupInventoryItem (17)
END
右手:
/script UseItemByName("速效毒药 III")
/script PickupInventoryItem (16)
END
关于盗贼宏的基础知识,不必看懂,了解一下:
: 一直看各种宏的教学,没有一片足够清晰严格的。
在这些教学里,函数的变量和作用都没有说明,宏的语法也没有说明,这样对玩家自己改进宏十分不利。
那些写宏教程的也很奇怪,难道都不屑于说明语法么?或者就是直接从国外网站照样copy过来的?
恩,对大多数人可能不管黑猫白猫复制下来能用的宏就万事ok了...但我个人不喜欢不求甚解的态度,
而且看见过的多数拿出来分享给别人用的宏,用计算机专业的标准衡量,代码往往冗余,这就意味着
效率的损失,也就意味着片刻的延时,或许片刻就是生死的分界线....
这篇宏的经验文章写给那些想多了解一些宏的知识的玩家,
如果不想自己动手写宏的玩家不用往下看。
1,宏的基本常识
宏是一个脚本,发送到服务器端执行。这个脚本由一组命令序列构成,长度不超过255个字符。
序列中的每一个命令,由一个/ 开头,例如/say /script 等等。
/script 后面跟随脚本特有的语句和函数。
你可以罗列多个/script命令在一个脚本里,也可以在一个/script命令中写多个函数,这都可以。
因为宏就是依次执行所有的命令,所以不需要在宏的最后添加end 标记,或在命令之间加;
事实上,end标记 是if语句的组成部分,你在写if语句时才用到end关键字。命令和命令之间用
换行或; 隔开都可以,我喜欢用换行..呵呵,省掉不必要的; 代码也清楚些
常用的if语句语法如下:
/script if [条件表达式] then [命令序列] end
or
/script if [条件表达式] then [命令序列1] else [命令序列2] end
这里条件表达式不需要在外面套括号,和C,java的习惯不同,应该是为了减少不必要的字符数,
毕竟WOW宏有长度限制。
条件表达式 中 相等用 == , 否定用not, 不等于可以写 not (A == B),
暴雪没有提供!= 作为不等于,很奇怪。 例子:
if sword == GetInventoryItemLink("player", 16) then ....
if not (sword == GetInventoryItemLink("player", 16)) then ....
注1,这里的sword是全局变量。每一个全局变量的生命周期是一次登陆中从声明变量到退出魔兽,
通常在每次登陆后额外运行一个设定宏来设定我们所需要的全局变量。
注2,GetInventoryItemLink()是一个取装备link的函数,
GetInventoryItemLink("player",
number)是从人物身上取装备的link,number代表人物装备画面的不同槽,
头部,颈部,依次递增,于是16代表主手武器,17代表副手武器
GetInventoryItemLink("player", 16) 就代表了主手武器的link
2,盗贼专用宏的编制思路,
其实用宏就是为了切换武器,既不放弃匕首的背刺和伏击,也能用高攻的单手剑,达成两全其美的效果。
一般有两种风格的切换宏,
1,主手剑副手匕首,用背刺,伏击时把匕首换到主手。用其他技能时把剑换到主手。
2,主手剑副手剑,背包里放一把匕首,用背刺,伏击时,把背包里的匕首换到主手。用其他技能时把剑换回来。
前一种方案的切换武器的宏如下:
PickupInventoryItem(16) PickupInventoryItem(17)
还记得吧,16代表主手武器,17代表副手武器。
PickupInventoryItem就是相当于打开人物装备面板(Inventory, 按C)
做点击数字对应位置的动作。这个宏很简单,
就是先点击主手武器,然后鼠标上应该有主手武器,然后点击副手武器,
这时候两把武器就会交换。瞬间执行的效果当然就是瞬间交换,但这个宏有能够感觉得到的明显延时,
因为PickupInventoryItem这个函数执行比较慢。推荐用下一个方案。
后一种方案的切换武器的宏如下:
PickupContainerItem(0, 1) PickupInventoryItem(16)
PickupContainerItem(0, 1)
PickupContainerItem是从背包里取装备,第一个参数指背包,第2个参数指背包里的槽位,
这里的约定是0代表主背囊,然后从右向左,依次是1,2,3,4
背包里槽位从上到下,从左往右排序,注意!从1开始。这和一般从0开始的习惯有点不同。
因此PickupContainerItem(0, 1) 就是点取我主背包上数第一排左数第一格的物品。
然后PickupInventoryItem(16) 放到主手位置,
然后把原先主手位置的物品PickupContainerItem(0, 1)放到背包里。完成一次武器交换。
这个切换动作明显比前一个更快。推荐使用,而且副手因此可以保持用高DPS的剑,有助于提高攻击效率么,当然,你爱在副手保持什么武器都可以,呵呵。
现在我们有了一个基本的切换宏,但每次用技能都手工切换很难忍,我们继续实践很多人想到过的,
为特定技能写不同的宏,保证不同技能使用合适的武器。
基本思路是用全局变量记录主手使用的剑,在用不同技能时判断主手位武器是剑或否,看情况切换。
全局变量的设置宏:
/script setglobal("sword", GetInventoryItemLink("player", 16))
/script SendChatMessage("主手剑"..sword, "say", this.language,"")
第二句命令把你的主手武器说出来,让自己能够看见。如果碰巧是匕首在主手(例如上次断线不巧等等),就切换一次,重新运行设置宏。保证sword变量对应自己的主手剑。
先用邪恶攻击举例:我们要保证每次邪恶攻击都使用高攻击的剑,所以先判断主手武器,如果需要切换就切换,然后执行邪恶攻击。
/script if not (sword == GetInventoryItemLink("player", 16)) then
PickupContainerItem(0, 1) PickupInventoryItem(16)
PickupContainerItem(0, 1) end
/script CastSpellByName("邪恶攻击(等级 5)")
但类似写背刺的宏会有问题,背刺的有效性判断在宏执行之前,
这就使得流传的一些背刺宏需要连按两下,第一下只能完成切换,第二下才能背刺,这很是不方便。
凿击宏如下:
/script CastSpellByName("凿击(等级 3)")
/script if ( sword == GetInventoryItemLink("player", 16) ) then
PickupContainerItem(0, 1) PickupInventoryItem(16)
PickupContainerItem(0, 1) end
背刺宏如下:
/script CastSpellByName("背刺(等级 5)");
/script PickupContainerItem(0, 1) PickupInventoryItem(16)
PickupContainerItem(0, 1)
如果敌人已经晕了,而我在他背后,例如偷袭之后,
那么这个宏连按两下,也可以起到第一下切换,第二下背刺的效果。
通常偷袭后是连续邪恶攻击攒点还是背刺伤害 要视情况而定,所以偷袭的宏后面我没有加固定切换的
代码。
再来几个: /script if ( GetComboPoints() >= 5 ) then
CastSpellByName("剔骨(等级 8)"); else CastSpellByName("背刺(等级 8)");
end
/script if not (dagger == GetInventoryItemLink("player", 16))
then CastSpellByName("邪恶攻击(等级 8)") end
说明:这个宏刚刚做好,首先判断目标身上是否有5星,如果有,则剔骨。如果没有,且主手是匕首而且能量大于60,则背刺,如果主手不是匕首,则邪恶攻击。测试有效。但是背刺要在目标背后。注意宏的格式,不要有回车。
/script CastSpellByName("背刺(等级 9)")
/script if not (dagger == GetInventoryItemLink("player", 16))
then CastSpellByName("邪恶攻击(等级 8)") end
说明:跟上面那个差不多,不判断5星剔骨而已。
/施放 冷血
/script SpellStopCasting();
/施放 剔骨(等级 8)
/Script UseContainerItem(0,1);
/Script TargetUnit("player");
说明:绷带给自己,不丢星。其中绷带放在主背包第1个格。也就是最左上的格。注意:把宏里的/scrip t中p和t中间的空格去掉。
其实盗贼操作并非很复杂,这些宏可以帮助你更好的练级,如果不能用,肯定是格式不对,自己研究一下,其实就是很简单的脚本语言--------
顺便说一下,宏不是万能的,比如这个riad专用的宏:
/施放 佯攻(等级4)
/施放 背刺(等级9)
这个宏可以保证佯攻10秒cd一好就使用,但是这样会影响伤害输出的,个人感觉至少降低15%,有经验的贼自己知道什么时候佯攻,自己控制节奏,根据暴击的次数----所以不要迷信。