跪求您把问题问清楚。。。
看了半天没看懂
命令条件语
下面给出一张条件总表,每一个条件在后面我都会再给出更详细的介绍。
i.
总表
WOW2.0在对宏命令系统的更新中,宗旨就是把玩家从按“一键万能宏”按到手抽筋的状态中“解脱”出来。不过有一些宏的用法是被官方认可了的,它们获得了“玻璃渣祝福”的效果——可以通过使用条件语来重现。
下面列出宏命令系统中支持的所有条件语。如果你需要的判断条件没有在此列出,那么就不可能通过该条件来执行安全化命令的动作。这是中央的死龟腚,谁都没办法,不过以后也有可能会再增加一些。
help 目标可以接受增益法术
harm 目标可以受到攻击
exists 目标存在
dead 目标已经挂了
stance:0/1/2../n 玩家在某姿态下
stealth 玩家在潜行状态下
modifier:shift/ctrl/alt 某功能键被按下
button:1/…/5/<虚拟按键号> 宏通过某键点击执行
equipped:<装备类型> 玩家装备了某类型物品,参见《装备类型》
channeling:<法术名称> 玩家正在引导某法术
actionbar:1/…./6 当前技能栏为某动作栏
pet:<宠物名称或类型> 玩家当前宠物为某宠物
combat 玩家正在战斗状态
mounted 玩家在骑乘状态
swimming 玩家在游泳
flying 玩家在飞行状态
flyable 玩家正处在一个允许飞行的地界
indoors 玩家在室内
outdoors 玩家在户外
party 目标在玩家的小队中
raid 目标在玩家的小队或团队中
group:party/raid 玩家在某集体中(小队/团队)
ii.
敌/友(help / harm)
没什么好说的,保留空地一块,等待补充。
iii.
存在(exists)
如果目标存在条件为真。比如[exists],如果你没有目标,该条件就不成立。而对于[target=focus, exists],如果你设置了焦点目标,条件就成立。不过很多情况下该条件用不到,因为[help],[harm],[dead],[party]和[raid]条件成立的情况下,[exists]条件是必定成立的。
iv.
死亡(dead)
如果判断对象已经挂了,条件就成立。
v.
姿态(stance:0/1/2/…/n)
姿态是指对技能能否施放有影响的状态,比如战士的姿态,小德、萨满、暗牧的形态,盗贼的潜行状态。而骑士的光环、猎人的守护都算是姿态。单独用[stance]是指在任意一种姿态下,就相当于[stance:1/2/…/n]这样把所有姿态列出来,对战士来说就是永远成立的。而[stance:0]就相当于[nostance]表示不在任何形态下。而[stance:0/3]就表示在形态3下或者不在任何形态下。
姿态的编号和面板上的顺序是对应的。下面给出各职业的姿态表:
编号 小德 战士 暗牧 盗贼 萨满
1 熊形态 战斗姿态 暗影形态 潜行 幽灵狼
2 海豹形态 防御姿态
3 豹形态
4 旅行形态
5 枭兽/树形态
6 飞行形态
注意:上面给出的是全表。如果少了某个姿态,其下方的形态就依次上移。我承认,我这话是针对小德说的……
下面给出例子:
/cancelform [nostance:0/1/3]
/cast [stance:1/3] 精灵之火(野性);[nostance] 精灵之火
如果在熊/猫形态,施放精灵之火(野性);在人形态,施放精灵之火;在其他形态就先退出,然后施放精灵之火(WOW2.3以后可以这样,2.3之前该宏只能退出形态)。
vi.
潜行(stealth)
对于盗贼来说由于[stance]的存在反而显得多余。这个是给暗夜、法师、猫德用的,我的意思是它可以用来判断影遁、隐形和猫的潜行。
vii.
功能键状态(modifier:shift/ctrl/alt)
它是节省技能栏的好帮手,可以让一个宏对不同功能键做不同动作,比如:
/cast [modifier, help] [modifier, target=targettarget, help] 快速治疗; [help] [target=targettarget] 强效治疗术
该宏会依次判断你的目标和目标的目标是否友善,条件成立的话,如果按下了某功能键,施放快速治疗,否则施放强效治疗术。
当然也可以指定特定的功能键。[modifier:shift/ctrl]表示Shift或者Ctrl被按下;如果想表示两个键同时按下则可以这样实现:[modifier:shift, modifier:ctrl]。
但是要注意这样一种情况,比如你的宏是通过A键执行的,然后根据Shift来做判断。但是你的Shift+A被设置了另外一个动作,那么你按下Shift+A的时候,执行的就是其对应的动作,而不是你的宏。另外,modifier可以被简写做mod以节省空间。
viii.
功能键变量
虽然说mod指定的只能是shift、ctrl或alt,但是还可以通过一些系统变量来间接指定。比如SELFCAST这个系统变量,是指“自我施法功能键”,默认值为alt,可以通过某些插件修改,表示按下该键后执行的动作都是针对玩家自身的。下面看这个例子:
/cast [modifier:SELFCAST, target=player] [target=mouseover] [ ] 强效治疗术
这样的话,不管你系统设置的自我施法键是什么,宏命令都会正常执行。下面给出其他的一些系统变量,括号内为默认值,后面为中文含义:
AUTOLOOTTOGGLE(shift) 自动拾取键
STICKYCAMERRA(ctrl) 镜头跟随
SPLITSTACK(shift) 物品堆叠分离
PICKUPACTION(shift) 拖动技能栏按钮
COMPAREITEMS(shift) 物品比较
OPENALLBAGS(shift) 打开所有背包
QUESTWATCHTOGGLE(shift) 任务追踪
ix.
点击状态(button:1/2/…/5/<虚拟按键号>)
与[modifier]类似,[botton]可以根据不同的鼠标点击按钮做不同动作。1为左键,2为右键,3为中键,4和5则对应五键鼠标上另外两个扩展键。如果是通过键盘触发宏,那么也相当于左键点击。比如我的坐骑宏:
#show迅捷绿色机械陆行鸟
/userandom [nobutton:2, flyable, nomounted] 黑色狮鹫; [nomounted] 黑色战豹, 迅捷绿色机械陆行鸟
/dismount [noflying] [button:2]
非右键键点击时,如果没在坐骑上就召唤坐骑;如果右键点击并且不在飞行状态则取消坐骑。而虚拟按键号一般可以忽略,有些动作条插件可以在不同条件下向宏按钮提供不同的虚拟按键号,具体情况请查看插件说明,我们在此不作讨论。
x.
装备(equipped:<物品类型>)
[equipped]条件可以判断指定类型的物品是否被装备。物品类型号可以是装备栏名称,物品类别或者物品子类别。比如我根据盾牌装备状态判断该用盾击还是拳击:
#show [equipped:Shields] 盾击; 拳击
/cast [equipped:Shields,stance:1/2] 盾击; [equipped:Shields] 防御姿态; [stance:3] 拳击; 狂暴姿态
利用[equipped]这里的#show可以根据装备显示不同的图标。下面的伪代码用来解释上面/cast命令的执行过程:
if 装备了盾牌 and 在防御姿态 then
/cast 盾击
else if 装备了盾牌 then
/cast 防御姿态
else if 在狂暴姿态 then
/cast 拳击
else /cast 狂暴姿态
下面再给出一个变态的压制宏作例子:
/equip [noequipped:Two-Handed Axes] 水晶熔铸战斧
/cast [nostance:1] 战斗姿态; [equipped:Two-Handed Axes] 压制
xi.
引导中(channeling:<技能名称>)
在引导法术的状态下,如果施放另外一个法术将会打断施法。这个条件语就是用来防止这一情况的。当然,它还有些其他的用途,比如只打断特定的引导技。只用[channeling]的话表示正在引导任意技能,或者后面可以指定任意个引导技能的名称表示正在引导其
中一个。
注意:引导和吟唱是两码事,[channeling]条件只对引导技能,如奥书飞弹、吸取生命、精神鞭笞等有用。
xii.
技能条(actionbar:1/…/6)
系统默认的界面中有一个主技能条,可以翻页。而用这个条件就可以根据当前技能页作出不同反应。比如猎人可以拿来把守护做成姿态:
/swapactionbar 1 2
/cast [actionbar:1] 雄鹰守护; 灵猴守护
这样就可以切换1号和2号两个技能页,换到1页时施放雄鹰守护,2页时则施放灵猴守护。
xiii.
宠物(pet:<宠物名称或类型>)
对任何有宠职业来说这个条件都很有用,它可以根据你宠物状态来执行动作,可以根据宠物名字,也可以是类型(比如Voidwalker,Boar,Imp,Wolf等),如果只用[pet]的话表示带着任意宠物。比如法师可以根据是否有水宝宝施放不同的霜星:
/cast [pet] 冰冻术;冰霜新星
xiv.
战斗(combat)
如果在战斗状态则条件成立。
xv.
行动方式、室内外状态(mounted, swimming, flying, indoors & outdoors)
这些都无庸赘述,要说的就是它们都是对玩家自身状态的判断,而不是目标。
xvi.
允许飞行 (flyable)
用于判断是否处在可以使用飞行坐骑的地区。
xvii.
小队/团队队友(party/raid)
判断目标是否是自己的小队或团队中的队友。
xviii.
在小队/团队中(group:party/raid)
注意和前面的区别。这个用于判断玩家自己是否处在小队或团队中,并且团队包括小队。这对加状态很有用,比如:
/cast [group, nomodifier] 奥术光辉; [help] [target=player] 奥术智慧
如果在队伍中,施放奥数光辉;如果按下功能键或者不在队伍中则施放奥术智慧。