WOW玩了不少日子,坛子也泡了不少,找来找去也没有看到几个实用的宏教程,像我等新人而言,宏怎么编我不管,我只想知道怎么用就行了,为此,小弟在这里转载一点我所知道的DZ宏,与各位江洋大盗们共勉之!
发3个自己用着的盗贼宏!~
双手互换(基本上贼都知道)我把他放在Q键 和CS中换枪键一样!~
/script PickupInventoryItem(16); PickupInventoryItem(17);
潜行+换手(要求是主手 拿的是单手剑或棰 不是主手绑定那种)
/施放 潜行(等级 3)
/script PickupInventoryItem(16); PickupInventoryItem(17);
背刺+换手(我潜行后一般用伏击 所以伏击后仍然是主手拿的匕首 副手是剑 =回能量 到90 凿击)
/施放 背刺(等级 4)
/script PickupInventoryItem(16); PickupInventoryItem(17);
其实这些是简单的宏 编起来也很简单
还可以在每个宏下面打/say 黑暗终于来临,你们的末日到了!
这样在你用这个宏的时候你的人就会说这么一句话了
哈哈
/script function ss() if e("player")>39 then o(39,1);end;end;function ev() if e("player")>34 then o(26,1);end;end;function ra() if e("player")>9 and IsUsableAction(1)==1 then o(38,1);end;end;
[color=Green]ss()是当能量大于39时邪恶攻击;ev()是能量大于34时剔骨;ra()是还击激活使用还击;请注意:把还击技能放在快捷栏第1格
/script function getfear(a) local r=0;for i=1,16,1 do b=UnitDebuff("player",i);if b~=nil then if strfind(b,a) then r=1;end;end;end;return r;end;function ak() if p()>4 then ev() else ss();end;end;o=CastSpell;p=GetComboPoints;e=UnitMana;s=SpellStopCasting;
[color=Green]getfear(a)是判断某种debuff是否存在于自己身上。a表示的是该debuff的icon名关键字。返回1表示debuff存在,返回0表示debuff不存在。ak()是邪恶攻击5星放剔骨;o,p,e,s是常用关键字的定义,用于减少宏的长度。
/script function will() if (getfear("PsychicScream")==1 or getfear("GolemThunderClap")==1 or getfear("Possession")==1 or getfear("MindSteal")==1) then uw();end;end;function cd(a) local x=GetSpellCooldown(a,1);if x<=0 then o(a,1);end;end;
[color=Green]will()是如果被牧师,ss,战士恐惧,或者被女妖媚惑,自动使用亡灵意志或徽章解。cd(a)是取得某个技能时候冷却,如果冷却,使用该技能。注意:will()目前只能侦测4种debuff,因为没人陪我决斗取icon字符
/script function ui() if GetInventoryItemCooldown("player", 13)==0 then UseInventoryItem(13);end;end;function uw() local z=GetSpellCooldown(1,1);if z<=0 then o(1,1) else ui();end;end
[color=Green]ui()如果饰品1冷却,使用它。uw()如果亡灵意志冷却,使用它,否则使用饰品
]/script function us() if getfear("Polymorph")==1 then ui();end;end;function heal() if UnitHealth("player")<1800 then UseContainerItem(0,2);end;end
us()用饰品解变羊;heal()当血小于1800,使用行囊第2个物品(可以放药水,治疗石在那)。
]/script [color=Purple]heal();ra();will();us();cd(31);cd(34);[/color]if CheckInteractDistance("target",3) then if UnitHealth("target")>10 then ak();else if p()>1 then ev() else ss();end;end;else o(8,1);end
[color=Green]这个宏就是前的方法的调用。前面看明白了,这里很简单。紫色部分,可以根据需要修改删除。
紫色部分:heal(); ra(); will(); us();见上面b1~b5介绍。cd(31)是佯攻,cd(34)是乱舞。
后面部分:如果距离大于28使用弓射,28以内邪恶攻击+剔骨。当怪物血少于10%的时候,只要连击点>=2就使用剔骨。o(8,1)是弓射击。
(为什么是28呢?因为黑龙,老10,似乎15码都能攻击。而目前暴雪只提供了5,10,28的判断。所以你想改成10的时候,请把CheckInteractDistance("target",3)的3改2。改5码就把3改1)
测试你的技能编号的宏(当然,你也可以自己在技能书上数,从1开始):
紫色部分请自己替换,34是技能编号,夜月是你自己的名字。[/color]
/script spellname=GetSpellName([color=Purple]34[/color],1);SendChatMessage(spellname,"WHISPER",this.language,"[color=Purple]夜月[/color]")
盗贼常用宏的说明
MACRO 9 ‘非冤布毒术1‘ Spell_Arcane_PortalUnderCity.blp
/script UseContainerItem(0,9); PickupInventoryItem(16);
END
MACRO 10 ‘非冤布毒术2‘ Spell_Arcane_PortalDarnassus.blp
/script UseContainerItem(0, 10);PickupInventoryItem(17);
END
MACRO 19 ‘潜行‘ Ability_Ambush.blp
/施放 潜行(等级 3)
/script GameTooltip:SetInventoryItem(‘player‘, GetInventorySlotInfo(‘MainHandSlot‘)); if(GameTooltipTextRight3:GetText()~=‘匕首‘) then PickupInventoryItem(16) PickupInventoryItem(17); end
END
MACRO 24 ‘背刺‘ Ability_BackStab.blp
/script GameTooltip:SetInventoryItem(‘player‘, GetInventorySlotInfo(‘MainHandSlot‘)); if(GameTooltipTextRight3:GetText()==‘匕首‘) then CastSpellByName(‘背刺(等级 5)‘) else PickupInventoryItem(16) PickupInventoryItem(17); end
END
MACRO 26 ‘邪恶攻击‘ Spell_Shadow_RitualOfSacrifice.blp
/script GameTooltip:SetInventoryItem(‘player‘, GetInventorySlotInfo(‘MainHandSlot‘)); if(GameTooltipTextRight3:GetText()~=‘匕首‘) then CastSpellByName(‘邪恶攻击(等级 6)‘) else PickupInventoryItem(16) PickupInventoryItem(17); end
END
MACRO 29 ‘消失‘ Ability_Vanish.blp
/施放 消失(等级 1)
/script GameTooltip:SetInventoryItem(‘player‘, GetInventorySlotInfo(‘MainHandSlot‘)); if(GameTooltipTextRight3:GetText()~=‘匕首‘) then PickupInventoryItem(16) PickupInventoryItem(17); end
END
MACRO 35 ‘绷带‘ Spell_Holy_HolyBolt.blp
/script UseContainerItem(0, 5)
/script TargetUnit(‘player‘)
END
MACRO 36 ‘目标信息‘ Ability_CheapShot.blp
/script if UnitClassification(‘target‘)==‘elite‘ then SendChatMessage(‘‘.. UnitLevel(‘target‘) .. ‘+ ‘ .. UnitName(‘target‘), ‘party‘) else SendChatMessage(‘‘ .. UnitLevel(‘target‘) .. ‘ ‘ .. UnitName(‘target‘), ‘party‘); end
END