有人会做宏吗?
魔兽新人吧
全部回复
仅看楼主
level 8
骑仕猎人 楼主
想学一下
2012年10月16日 02点10分 1
level 12
我只会最基础的。。然后在高级的上面修改一些[委屈]
2012年10月16日 02点10分 2
level 9
我会做饭
2012年10月16日 03点10分 3
level 5
我会做人
2012年10月16日 03点10分 4
你确定你会?
2012年10月22日 12点10分
level 7

时所选中的目标。配合“/cast”命令可以做出:
------------------
/Assist
/cast 技能名称(技能等级)
------------------
这么一个宏。关于/cast 技能名称(技能等级)可以用Shift+鼠标左键代替。
别外/Target 这是一个自动选择指定目标的命令。(对指定单位释放特定魔法)
-------------------
/Target 角色的名字
/cast 技能名称(技能等级)
-------------------
再来一个.
----------------
/施放
技能名称(技能等级)
/script SendChatMessage("<开始攻击%T >", "PARTY")
----------------
这个是说你在施放一个特定技能时它可以自动提示:开始攻击某某。的信息。
其中的PARTY可以换成:EMOTE这样则以自定义表情的方式发出信息。则别人在聊天窗口中看到:小三开始攻击某某。
还可以换成"WHISPER", "COMMON", UnitName("target"),则采用密语形式对你施法的目标发送信息。"COMMON"表示密语所用的语言种类。
Common 人类语,联盟通用语
Orcish 兽人语,部落通用语
Dwarvish 矮人语
Gnomish 侏儒语
Darnassian 暗夜精灵语
----对友好单位或自己施法----
/施放
技能名称(技能等级)
/script TargetUnit("player")
-------------或---------------
/施放
技能名称(技能等级)
/script if SpellIsTargeting() then TargetUnit("player")
----------------同理后面可以加上-------------------
/script if ( UnitName("target") ~=nil and UnitIsFriend("player","target") ) then SendChatMessage("<帮助了 %T >", "PARTY");
end
----------------------------------------------------------------------------------------------
UnitIsFriend的意思是对任何友好单位施法时都发出信息。将UnitIsFriend换成UnitInParty,则对队友单位施法时发出信息。
如果想在任何条件下都只对自己使用治疗的话,用如下的宏:
--------
/target "自己的人物名称"
/施放
技能名称(技能等级)
--------
--------按目标的职业分别使用不同魔法----------
/script class = UnitClass("target"); if ( ( class == "职业" ) or ( class == "另一个职业" ) ) then
CastSpellByName("技能名称(技能等级)"); else CastSpellByName("技能名称(技能等级)"); end
---------关键看if or then else--------
懂了吧。
------------------------
/script if (UnitMana("target")>0) then CastSpellByName("(Rank X)") else CastSpellByName("(Rank X)"); end
------------------------
(UnitMana("target")>0)当选的目标的mana大于0。then CastSpellByName("
技能名称(技能等级)")就使用此技能.else CastSpellByName("技能名称(技能等级)"); end如果不是就使用另一种技能。
---------------------------------------------------------------------------------------------------------
注:攻击也算一种技能,它可以自己连续进行.值得一提的是:假设then后你填攻击.如果中途UnitMana("target")变动到了另一个符合的条件.宏
不会自动选择第2种施法方式.你需要再按一下宏的热键或打一次命令。
-------------------------------同理---------------------------------
/script if (UnitHealth("target")>1) then CastSpellByName("技能名称(技能等级)") else CastSpellByName("攻击"); end
---------------------------------------------
原理相同..这次是UnitHealth.在("target")>1的情况下用指定技能,<=1时直接打一下下搞定.
---------------------------------------------
/script x="player";d=UnitHealthMax(x)-UnitHealth(x);if (d>y) then if (d<z) then CastSpellByName("
技能名称(技能等级)") else CastSpellByName("
技能名称(技能等级)") end;SpellTargetUnit(x);else DEFAULT_CHAT_FRAME:AddMessage("提示的信息自己填"); end;
2012年10月16日 03点10分 6
level 7
宏会对玩家自己的HP消耗量进行判断,如HP的消耗小于y则不使用技能,并在聊天窗口中提示:"相关信息",如消耗量大于y小于z,使用then后面的技能,如大于z,则使用else后的技能。
先看UnitHealthMax(x)-UnitHealth(x);这段的UnitHealthMax和UnitHealth可以改成UnitMana等.后面的if (d>n) then if (d<n)是要你自己填
的.then和else后面填上相关技能.AddMessage("提示的信息自己填")
-----------------------按目标等级使用不同级别的魔法-------------------------
下面牧师的一例,对目标使用其所能接受的最高等级的“圣言术:韧”
/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
Fortitude应该就是圣言术:韧。Rank " S={1,2,14,26,38}和j=5,1,-1 do有什么关系?
-----------------------具体别的没看懂-----------------------------
/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
--------------------------这个同理而且比较易懂-----------------------------
r=6;l={1,12,24,36,48,60}就是说把Fortitude(圣言术:韧)分为6个阶段.t=UnitLevel("target");你选的目标if (t==0) 因为t==0所以就是说
目标无效。then t=UnitLevel("player");自动选择自己做目标。if UnitIsFriend("player","target") 如果选的目标是可以进行的(buff只对
UnitIsFriend有效)then for j=r,1,-1 do if (t>=l[j]-10)这段不好说.应该是个比例吧.现在wow的玩家级数都在60lv内.所以看不懂的不用理
会.如果自己要改此宏估计j=r,1,-1 do if (t>=l[j]-10)这个不用改变.then CastSpellByName("Power Word: Fortitude(Rank
"..j..")");break;end;end;end要改.改一下Fortitude就好。
---------------------以上都是以60级的牧师的实例Fortitude(圣言术:韧)满级-------------------------
/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
-----------------------以上是以60级德鲁依的一例,使用对方能接受的最高级野性印记--------------------------
-------------------------根据连击点的多寡和能量的多少来决定使用技能种类----------------------------------
下面是德鲁依猫形态(盗贼也是一样)根据连击点的多寡和能量的多少来决定是使用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
-----------------------------不多说了同理------------------------------
************************下面看一些关于背包与物品的*******************************
Bag:物品存放背包编号
Slot:物品存放格子编号
-------------------------
背包位子编号是 4 3 2 1 0
背包里物品的位子编号是 1 2 3 4
5 6 7 8
------------------对友好单位或自己使用物品---------------
/script UseContainerItem(x,y)
/script TargetUnit("player")
----------------下面分析------------------------
UseContainerItem(x,y)中的x是背包的编号,y是格子的编号。把它们换成对应物品位置的编号。
将第一行换成/script UseAction(z,x,y),则不需将物品放在背包特定位置,但必须将物品拖入技能栏的特定位置。z表示技能栏的编号。第一
排第一格编号为1,最后一格为12。第二排第一格编号为13,最后一格为24。以此类推。
-----------------------如果想在任何条件下都只对自己使用特定物品--------------------------
/target "player"
/use "物品名称"
------------------------一次使用多个物品---------------------------
/script UseContainerItem(x,y)
/script UseContainerItem(x,y)
-----------------------n次------------------------
前可+/target "player"后可+/script TargetUnit("player").有些物品不+也可.但要自己选择目标.
*********************************武器相关**********************************
MainhandBag:备用主手武器存放背包编号
MainhandBagSlot:备用主手武器存放格子编号
OffhandBag:备用副手武器存放背包编号
OffhandBagSlot:备用副手武器存放格子编号
TwohandsBag:备用双手武器存放背包编号
TwohandsBagSlot:备用双手武器存放格子编号
------------------------对主手武器或双手武器使用使用相关物品-------------------------
/script UseContainerItem (Bag,Slot)
/script PickupInventoryItem (16)

2012年10月16日 03点10分 7
字太多懒得看了!
2012年10月16日 18点10分
level 9
膜拜……
2012年10月16日 04点10分 8
level 11
好长长长........
2012年10月16日 09点10分 9
level 11
宏其实挺简单的。。
2012年10月16日 11点10分 10
level 9
我是鼠标流。除了wasd,常按的技能键只有一个。其他全部鼠标点。
2012年10月16日 13点10分 11
1