http://blog.sina.com.cn/blshaman[订阅]
字体大小: 正文
TBC萨满宏向导(2007-12-03 18:37:22)
 

 


TBC的某些宏指令和接口的改变,之前的宏可能无法正常运作,例如之前很好用的一些if/then形式的宏。同时比如一些插件也不能再使用了,所以萨满也有必要预先对新的系统有些认识。
最重要的问题,就是竞技场,有消息称比较高等级的竞技场竞赛将限制插件的使用,但未提到限制宏的使用。因此心存高远的萨满也有必要对此了解一些。
本文将分成2部分,首先会介绍一下TBC的宏的一些基础信息,关于宏的详解,各位可以先参考UI区的索引贴里和宏相关的几个帖子
[ http://bbs.ngacn.com/read.php?tid=492263 ]
不再赘述。各位可以找来看看相互比较印证下。
[ http://bbs.ngacn.com/read.php?tid=772487 ]
这是lostcup 翻译过第一版的Neuro's Macro Guide,不厚道地全文借用。根据最近的更新有增补和修订。
其次,会介绍一些萨满常用宏的样本,各位可以根据自己的需要,参照第一部分介绍的基础信息进行修改。

在WoW 2.0中,宏和插件将会有翻天覆地的改变,一系列条件选项将可以被应用于以下斜杠命令:/startattack, /stopattack, /stopcasting, /cast*, /use*, /cancelaura, /changeactionbar, /equip*, /pet*, /target*, /cleartarget, /focus, /clearfocus, /assist and /click commands ,以及/castsequence。首先讲解如何应用它们。

(note:虽然多数例子都使用了"/cast",但事实上这些条件选项对前面提到的所有斜杠命令都有效。)


在2.0中,目前所用的大多数宏都将被废弃,因为在战斗中,任何用到CastSpellByName()或者TargetUnit()的宏都将不再有作用。更进一步的,多数“傻瓜逻辑”的宏也不会再有效。但是,你现在可以通过新的宏条件选项来实现许多流行宏的功能。

现在,使用“/cast”(“/施放”)非常简明,命令格式就是“/cast <spellname>”(施放最高等级的法术)或者“'/cast <spellname>(Rank <#>))”。比如说:

/cast Healing Wave
/cast Healing Wave(Rank 3)

在新的系统中,你依然可以使用原来的这些格式,不过你现在可以加入条件选项来使得“/cast”更加灵活。“/cast”的新格式是:“/cast [<第一组条件选项>] <第一个法术名称>; [<第二组条件选项>] <第二个法术名称>; [<第三组条件选项>] <第三个法术名称>;...”。

现在让宏运作起来的方式就像这样:第一组条件选项被检测,如果它们成立,则第一个法术被施放,如果它们不成立,则第二组条件选项被检测,如果这个成立了,下一个法术被施放,如此下去。但是,你必须牢记,只有一个法术会被施放。当一组条件选项被检测到成立时,相应的法术就会被施放,宏也就此结束.

目前可使用的条件选项有:
help - 检测目标是否为友善
harm - 检测目标是否为敌对
combat - 检测你是否在战斗中
stance或stance:# - 检测你是否在姿态中,或是否在某个特定的姿态中(详见下)
stealth - 检测你是否潜行
modifier或modifier:shift|ctrl|alt - 检测命令被执行时是否某个特定的键被按下
equipped:<item> - 检测某个物品是否被装备。<item>可以是任何有效的装备槽,物品分类,或者物品子类
target = <unit> - 特殊条件选项,它把当前目标改变为任何有效的单位(详见下)
actionbar:<number> - 检测当前动作条是否为列出的那个
pet:<pet type 或 pet name> - 检测宠物是否存在。可以接受宠物类型(枭,熊,小鬼)或者名字(Fluffy,我家坏坏)作为条件。不带条件则检测是否有任何宠物存在。
mounted,swimming,flying - 检测是否在坐骑上,游泳,或者飞行中
indoors,outdoors - 检测是在室内还是室外
button:<#> - 检测某个特定的按钮被用来触发法术,默认为1(详见下)
channeling:<spell> - 检测你是否正在使用某引导法术,如果没写出具体的法术名,那么会检测是否有任意的法术被引导。
exists 和 dead - 检测目标是否已经死亡,或是否真的存在
party - 检测目标是否是你的小队成员。
raid - 检测目标是否是你的团队成员。
group - 检测你是否在集体中。
group:party/raid - 检测你是否在指定类型的集体中(小队或团队).

对于条件选项的一些额外技巧:
你可以在任何条件选项前加上“no”来得到反效果,比如,“nocombat”则在脱离战斗的情况下成立。
用逗号“,”来分隔条件选项作用和“and”一样,当条件选项同时成立时执行。
用斜杠“/”来分隔条件选项作用和“or”一样,当其中一个条件选项成立时执行。
在宏编辑器里按“?”图标将强制宏以当前法术的图标显示。

(note:在2.1.0的测试服务器中,关于“条件”的内容有如下一些改动。
*新条件选项flyable - 检测你是否处在能使用飞行坐骑的地域。
*/dismount命令(下马)也能被宏条件支持。
*对于一个单一的行动,可以将几个条件子句合并。只要其中一个条件子句成立,行动便会履行。)

例如:

/cast [target=target,help,nodead] [target=targettarget,help,nodead] [target=player] Healing Wave

 

/castsequence的说明:
这个指令允许你在一次次点击某个宏时,将其中定义的一系列法术逐个施放,格式如下:
/castsequence reset=N/target/combat/shift/alt/ctrl <spell1>, <spell2>, <spell3>
-当你第一次点击这个宏时,它施放列表中的第一个法术,第二次点击的时候,施放第二个法术,以此类推。当它施放完最后一个时,又回到起始点开始循环。
-如果法术无法施放(冷却,超出距离,法力不足等等情况下),序列就不会走到下一个法术,下一次你再点这个宏的时候,它会再度尝试施放第一个法术.
-你可以给这个宏附加之前提到过的条件选项,但只能对整个序列起作用,不能作用到每一个。
-"reset=N/target/combat/shift/alt/ctrl“这部分是设置这个宏的重置。“reset=combat”为一个指定的数字,标示的是多少秒以后重置。“reset=target”,那序列将在你改变目标时就重置到起始位置。你也可以设置“reset=combat”,每当你脱离战斗,这个序列就会被重置了。其余的几个则表示你使用时是否按住了特定的按键。

条件选项button:<#>说明:
条件选项[button:<#>]运作起来类似于修改按键。一般来说,当你左键点击一个按钮,它就执行(宏)里面所有的动作,然而,如果你设置了button条件选项,你可以改变宏在特定按键上的表现。

默认按键是1,鼠标左键。注意,如果你通过按键绑定来触发一个宏,它会认为是通过鼠标左键点击触发。被编号的按键有:
1 或 左键
2 或 右键
3 或 中键
4 或 按键4
5 或 按键5
...以及其他一切在“安全声明头文件”中定义的按键。

关于target=<unit>的说明:
是一个特殊的条件选项,它并不检测条件是否成立,而是改变施法的目标以其他条件选项的目标。“unit”可以是任何有效的unit类型.
有关unit类型,如下


基本unit
"focus" - 当前玩家利用/focus指令标定的目标.
"player" - 当前的玩家
"pet" - 当前玩家的宠物
"partyN" - 除玩家外的第N位小队成员(N=1,2,3,4)
"partypetN" - 除玩家外第N位小队成员的宠物(N=1,2,3,4)
"raidN" - 团队索引中的第N位成员(N=1,2,3,...,40)
"raidpetN" - 团队索引中的第N位成员的宠物(N=1,2,3,...,40)
"target" -当前选定的目标
"playertarget" - 当前玩家的目标
"mouseover" - 当前(或最近)鼠标悬停的对象
"none" - 空值
"npc" or "NPC" - NPC

-关于unit's target
你可以附加target后缀。比如"targettarget","partypet2target","party1target"等等


任何一个指令都有默认的target,那就是“target”,例如
/cast [help] Healing Wave
即相当于
/cast [target=target, help] Healing Wave
除非你加入一个[target=unit]条件选项,默认则就是你的当前目标。

/Equipped条件选项
参数可以是一个可装备的物品分类,或一个可装备的物品子类, 或一个物品槽。


-物品分类及子类列表
Armor 护甲
*Cloth 布甲
*Idols 圣像
*Leather 皮甲
*Librams 圣典
*Mail 锁甲
*Miscellaneous 包括火焰石,法术石,项链,戒指,饰品
*Shields 盾牌
*Totems 图腾
*Plate 板甲

Projectile 弹药
*Arrow 箭
*Bullet 子弹

Weapon 武器
*Bows 弓
*Crossbows 十字弓
*Daggers 匕首
*Guns 枪
*Fishing Pole 钓鱼杆
*Fist Weapons 拳套
*One-Handed Axes 单手斧
*One-Handed Maces 单手锤
*One-Handed Swords 单手剑
*Polearms 长柄武器
*Staves 法杖
*Thrown 投掷武器
*Two-Handed Axes 双手斧
*Two-Handed Maces 双手锤
*Two-Handed Swords 双手剑
*Wands 魔杖



 


-物品槽列表:
Two-Hand 双手
Bag 包
Shirt 衬衫
Chest 胸部
Back 背部
Feet 脚
Finger 手指
Hands 手
Head 头部
Held In Off-hand 副手物品
Legs 腿部
Neck 颈部
Ranged 远程
Off Hand 副手
Shoulder 肩部
Tabard 徽章
Thrown (ranged slot items like thrown daggers) 投掷(远程槽物品例如投掷匕首)
Trinket 饰品
Waist 腰部
One-Hand 单手
Main Hand 主手
Wrist 手腕



stance:#条件选项
当姿态编号没有给出时,则在玩家处于任一姿态都成立(注意,战士永远都处于某个姿态中)。如果给了编号,则检测该姿态是否被激活。
每个职业的特定姿态都有不同的编号,如下:
萨满: 1.幽灵狼
战士:1. 战斗 2. 防御 3. 狂暴
牧师:1. 暗影形态
德鲁伊:1. 熊 2. 水栖 3. 猫 4. 旅行 5. 枭兽/树
盗贼:1. 潜行
圣骑士的光环在宏条件选项系统中将不再被作为姿态处理。
请记住,如果跳过了某个姿态(例如作为战士却没有做防御姿态的任务),姿态编号将会递减,比如狂暴姿态的编号会变成2号。

一些简单的宏样板和说明

/use [target=self] Heavy Netherweave Bandages
无论当前目标是什么,这个宏只会对自己使用厚虚空布绷带

/castsequence [noequipped:Shields, equipped:Off Hand] Windfury Weapon, Flametongue Weapon
当没装备盾牌的且装备了副手武器时,即双持一键上不同buff

-牛头人践踏治疗宏
# show War Stomp
/castsequence [target=player] reset=120/combat War Stomp, Lesser Healing Wave

“# show War Stomp”这一句是指定图标。castequence指令会依次使用列举的法术War Stomp和Lesser Healing Wave,而“reset=120/combat”表示这个宏重置时间是120s (即践踏冷却时间)或是一场战斗结束。
依次使用大地之力,优雅,和法力之泉,你可以把它在raid或者farm使用(PVP还是推荐手动施放图腾)
/castsequence reset=10 Strength of Earth Totem, Grace of Air Totem, Mana Spring Totem;

请注意,无论怎样,castsequence语句还是需要你多次点击。

一个用于次级治疗波(Lesser Healing Wave )的宏
/cast [modifier:alt,target=player] Lesser Healing Wave; [target=target,help] Lesser Healing Wave; [target=targettarget,help] Lesser Healing Wave; [target=player] Lesser Healing Wave

第一部分的意义:按着alt按键使用宏时,将对自己施放LHW。
第二部分的意义:判断当前目标是否为友好目标,是则施放LHW。
第三部分的意义:判断当前目标的目标是否为友好目标,是则对目标的目标施放LHW。
第四部分的意义:当前几个部分失效(比如没有选择目标,或者目标在施法距离之外。),那么对自身用LHW。
实际上,以TBC 默认UI本身的情况来看,自我施法的功能完全可以取代第一部分。但就不同目标(尤其是对目标的目标,比如raid mt)使用这个宏还是有些作用。

在2.1.0的测服中,对于括号内的条件判断语句进行了优化,你可以把这个宏变得更简洁。如下:
/cast [modifier:alt,target=player] [target=target,help] [target=targettarget,help] [target=player] Lesser Healing Wave

当然,你也可以把Lesser Healing Wave 换成 Healing Wave或者Earth Sheild等法术。
比如这个:
/cast [modifier:alt,target=player] [target=target,help] [target=targettarget,help] [target=player] Earth Shield

那么可以在此基础上写NS+治疗波(NS + Healing Wave)宏

/stopcasting
(/use Zandalarian Hero Charm )
/cast Nature's Swiftness
/stopcasting
/cast [modifier:alt,target=player] [target=target,help] [target=targettarget,help] [target=player] Healing Wave

注意括号的部分则是在NS+HW时候,同时使用饰品,举出的是ZHC,ZG的护符。
同样,你也可以把一些瞬发的技能加入,比如嗜血、图腾等等,还有改过以后的兽人天赋血怒(blood fury)但缺点是还是得按好几次。


-坐骑及幽灵狼
/cancelaura Swift Brown Wolf
/cast [nocombat, outdoors, nostance]Horn of the Swift Brown Wolf; [combat]Ghost Wolf; [stance:1]Ghost Wolf

使用这个宏时,如果你出于非战斗状态,那么会开始骑乘(举的例子是狼)。如果进入了战斗状态,那么会施放幽灵狼,再次使用会解除骑乘或狼形态。


-利用一个键位和简单语句来减少键位,例如
#show Storm Strike
/cast [nomodifier] Storm Strike
/cast [modifier:ctrl] Earth Shock
/cast [modifier:alt] Frost Shock
直接点按键,使用SS,按ctrl和按alt,则分别是地震以及冰震


/cast [target=none] Purge
这将施放净化且等待你点中一个目标,无论你当前是否选中了一个目标
我们也可以将之与防御性的法术结合。
/cast [target=none,harm] Purge; [target=none,help]Cure Poison

再看这个宏
/cast [button:1,target=none] Cure Poison; [button:2,target=none] Cure Disease
这个宏的作用是,左键点击目标使用清毒,右建点击使用祛病。如果你习惯先选择目标,就把语句中“target=none”换成“target=target”
或者

/cast [target=mouseover] Cure Poison
你的鼠标放再目标上,就会对其施放技能。

或者结合上文内容利用辅助的按键
/cast [nomodifier, target=mouseover] Cure Poison
/cast [modifier:ctrl ,target=mouseover] Cure Disease



新的宏命令:
/castsequence - 按顺序施放一组事先设定好的法术(详见下)
# show <spell> - 显示所列出法术的宏返回值
# showtooltip <spell> - 显示列出法术的工具栏信息.

(note:在2.1.0的测试服务器中,
*/castsequence, /cast, /castrandom, /use, /userandom, /equip, /equipslot 这些命令支持背包、技能栏的编号。
*#show 和 #showtooltip指令,可以给予条件,这方面的内容将进行升级。
*#show and #showtooltip指令的参数,不仅仅是法术,也可以指定具体的技能格,得到相关的信息反馈
*新命令:/cancelform

加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...