WOW: 宏

时间:2022-12-19 15:56:09

1.常用的宏命令

  1.1常用的宏命令

    1.释放技能命令

       /cast

       释放一个或多个技能,可以加入一些条件判断,是最常用的命令

       /castsequence
       依次释放释放数个技能,同样可以加入一些条件判断,常见于所谓的"无脑宏"

        /use
        使用一个物品,可以直接用物品名称也可以用物品栏位置

    2.动作命令

      /cancelform
      取消变形

      /cancelaura
      取消状态或增益

      /startattack
      开始攻击,一般写不写差别不大,释放技能会自动开始攻击的

      /stopattack
      停止攻击,与startattack相反,用于防止破除控制等功能,也不大会用到

      /target /targetenemy
      切换目标,用到的也不多,抓贼宏会用到,更多时候需要的反而是不切换目标的情况下对特定目标释放技能

      /mount
      召唤坐骑

      /dismount
      解散坐骑

    3.语言表情命令

      /1 /2 /3 /4
      在不同的频道里面说话,1综合,2交易,3本地防务,4寻求组队

      /s /y /p /ra /bg
      在不同的范围说话,s说,y喊,p小队,ra团队,bg战场

      /e
      做出一串表情,同时也可以/+内置表情

    4.特殊命令

      #showtooltip
      显示技能描述,可以指定技能名或是缺省,让你的界面更有可读性

      /focus
      指定某个目标为焦点目标

      /clearfocus
      清除焦点目标

      /stopmacro
      停止宏,可加入条件判断

      /console /script
      控制命令,抓贼宏会用到

  1.2常用的条件判断

    1.目标条件判断

      help noharm
      目标为友方

      harm nohelp
      目标为敌方

      exists
      目标存在

      dead nodead
      目标死亡/存活

    2.自身条件判断

      stance:1/2/3/4/5/6 form:1/2/3/4/5/6
      处在某形态中,对应为
      野性:1熊,2水栖,3豹,4旅行,5飞行
      平衡:1熊,2水栖,3豹,4旅行,5枭兽,6飞行
      恢复:1熊,2水栖,3豹,4旅行,5树,6飞行

      combat nocombat
      战斗中/非战斗中

      stealth nostealth
      潜行中,非潜行中

      mod:alt/shift/ctrl
      按下功能键alt/shift/ctrl,可缺省

      swimming noswimming
      游泳中/非游泳中

      flyable noflyable
      可飞行/不可飞行

      indoors outdoors
      室内/室外

    3.其他条件判断

      @ target=name/player/focus/targettarget/mouseover/raid#/party#/arena#
      选定目标指定名字/自己/焦点/目标的目标/鼠标指向/团队#号/小队#号/竞技场#号敌人

      reset=#/target/combat/shift/alt/ctrl
      用于/castsequence中,设定重置条件,可以是#秒/切换目标/进入战斗/按下shift/按下alt/按下ctrl

  1.3简单的宏知识

    1.宏内容
      宏可以取名和设置图标,如果设置为?图标的话就是自动选择宏技能的图标
      宏最长不超过255个字符,每个英文字母是一个字符,汉字是两个字符
      如果包含汉字且超过了255个字符但没超过255个字,在保存时是不会出现问题的,但是下线以后会丢失宏内容

    2.标点符号
      除去技能名之外所有的标点符号英文字母都是半角的
      技能名之间一般用";"间隔,而castsequence中队列里的技能名则用","间隔
      需要同时满足的条件由中括号"[]"包裹,","间隔

    3.技能名
      技能名必须正确,可以打开技能书shift+点击技能来获取技能名
      如果分辨率不够的话也许会导致技能书和宏菜单不能同时打开,可以尝试调节UI缩放

2.实例

  2.1简单宏

    1.对特定目标释放技能
      #showtooltip
      /cast [@目标名,exists] []技能名
      此宏会对特定目标释放所定的技能,目标不存在的话就直接释放技能
      如果没有同名的那么系统会选择一个"某种程度上比较相近"的人
      同时也可以写player,raid#之类的,详见第一部分

      例:
      Code:
      #showtooltip
      /cast[@哀木涕,exists][]生命绽放

    2.喊话宏
      /频道 喊话内容
      在指定频道喊话
      频道可以是:
      s(说)y(喊)1(综合)2(交易)3(本地防务)4(组队)p(小队)ra(团队)bg(战场)e(表情)

      例:
      Code:
      /1FL10人便当1-3缺1T,9=1来的带装等成就MMM

    3.变形宏
      #showtooltip
      /cast !变形技能
      可以在人形态释放来变形,也可以在变形状态下重新变形来解减速等等

      例:
      Code:
      #showtooltip
      /cast!熊形态

    4.简单的循环
      #showtooltip
      /castsequence reset=条件1/条件2 技能1,技能2,技能3
      依次释放技能,技能名之间用","间隔
      条件可以是
      #(秒数)target(切换目标)combat(进入战斗)shift/alt/ctrl(按下shifit/alt/ctrl)

      例
      Code:
      #showtooltip
      /castsequencereset=6/combat痛击,横扫,挫志咆哮,横扫

    4.双技能宏
      #showtooltip
      /cast [条件]技能1;技能2
      符合条件就释放技能1,否则就释放技能2
      技能名之间用";"间隔
      条件可以是自身条件也可以是目标条件
      可以用来节省空间,制作也极为简单

      例1:
      Code:
      #showtooltip
      /cast[stance:1]激怒;猛虎之怒

      例2:
      Code:
      #showtooltip
      /cast[harm]安抚;解除腐蚀

    5.使用物品宏
      #showtooltip
      /use 物品
      使用物品
      可以直接打物品名字也可以是物品位置编号
      编号对应:
      6(腰带)10(手套)13(饰品上)14(饰品下)15(披风)

      例:
      Code:
      showtooltip
      /use6
      /e绝尘而去

      6.取消buff宏
      /cancelaura 增益名
      取消buff用,例如取消保护,疾跑奔窜连放

      例:
      Code:
      #showtooltip
      /cancelaura急奔
      /cast[stance:3]狂奔怒吼(猎豹形态);狂奔怒吼(熊形态)

  2.2进阶
    以上是各种最基本的宏,那么我们能不能将这些宏拓展开来呢?
    条件更复杂,技能数量更多,多种不同的语句糅杂在一起,那就可以实现更多的功能

    1.分支选择宏
      "对特定目标释放技能宏"可以实现目标的选择,那么能不能加入判断,使得不同条件下对不同的目标施放呢?
      [@player,mod:alt]
      按住alt的话对自己释放
      用了宏的话系统内置的自我施法按键(alt)就不好用了,所以很多技能都会加上这一个条件来人工实现这个功能
      [@mouseover,harm/help,exists]
      对鼠标指向的目标释放
      这是很多治疗喜爱的宏,可以免去不断切换目标的麻烦
      其中,harm和help则根据技能需要改动
      [@focus,mod:shift]
      按住shift则对焦点目标释放
      PvP非常常用且有用,shift也可以换成alt或是ctrl
      [@targettarget,harm/help,exists]
      对目标的目标释放
      这里需要注意的是这个harm和help所指的不是目标的属性,而是目标的目标的属性
      例如如果目标是boss,则对目标的目标施放治疗
      那么这里应该写的是help而不是harm,很多人都会觉得是:目标是harm的,所以转向目标的目标;这是不对的
      以上列举了几个常见的,你也可以自己试着写一写,"在某个条件下则以某人为目标"
      条件和目标的词汇则在第1部分里面有详细的介绍
      下面便可以把所有你认为会出现的条件写到一起了
      条件判断是从左到右的,也就是把你觉得应该先进行判断的条件写到左边

      #showtooltip
      /cast [@目标1,条件1] [@目标2,条件2] [@目标3,条件3] []技能
      最后的结果就是
      如果满足条件1,则对目标1释放,否则
      如果满足条件2,则对目标2释放,否则
      如果满足条件3,则对目标3释放
      这里建议最后加上一个空的中括号,来避免条件限制太死,有时候放不出技能的情况
      还有如果不写目标的话则默认为@target对当前目标,所以一般"@target"都省略掉了

      例:
      Code:
      #showtooltip
      /cast[@player,mod:alt][@mouseover,help,exists][help,exists][@targettarget,help,exists][]回春术

    2.复杂变形宏
      在"变形宏"上再加上各种条件判断,实现多种变形一键完成
      常用的条件有
      [swimming]水栖形态
      水里用水栖
      [flyable,nocombat]迅捷飞行形态
      飞行需要能飞且不战斗
      [outdoors,noflyable,nocombat]大型棕色科多兽
      不能飞那就只能坐骑了
      [outdoors,noflyable,combat]旅行形态
      要是还是战斗的话就旅行
      [indoors]猎豹形态
      室内就只能猎豹了
      然后我们直接把以上的全部加到一起,就得到了最终的宏

      Code:
      #showtooltip
      /cast[swimming]水栖形态;[flyable,nocombat]迅捷飞行形态;[outdoors,noflyable,nocombat]大型棕色科多兽;[outdoors,noflyable,combat]旅行形态;[indoors]猎豹形态
      事实上还有一个化简的问题
      例如说/cast [combat]猎豹形态;[nocombat]旅行形态
      后面那个nocombat需要吗?不需要
      因为判断从左至右进行,判断到第二个的时候就说明第一个没有通过了,那么combat没有通过必然是nocombat了
      但由于实际情况有很多条件并列,导致判断某个条件是否需要就比较复杂,有些人可能会绕不过来
      下面给出前面宏的化简结果

      Code:
      #showtooltip
      /cast[swimming]水栖形态;[flyable,nocombat]迅捷飞行形态;[outdoors,nocombat]大型棕色科多兽;[outdoors]旅行形态;猎豹形态
      当然,还可以加上"!"来防止连按又变回来,注意"!"放在技能名前面
      再给一个我自己用的变形宏,尝试下能不能看得懂

      Code:
      #showtooltip
      /cast[flyable,nocombat,nomod]!迅捷飞行形态;[form:4,nomod,outdoors][nomod.nocombat,outdoors][noform,outdoors]!旅行形态;[swimming,nomod]!水栖形态;[form:1,nomod]!巨熊形态;[form:3,nomod]!猎豹形态;      [form:5,nomod][nomod,indoors]!生命之树
      /cancelform[form:6][mod]
      由于宏太长不得已把stance换成form了,效果一样

    3.简单循环中夹杂条件判断的宏
      下面我们再来给castsequence语句加点条件判断
      你也可以理解为把"简单循环宏"和"双技能宏"结合起来
      #showtooltip
      /castsequence [条件1] reset=重置条件A1/重置条件A2 循环A; reset=重置条件B1/重置条件B2 循环B
      循环之间用";"分隔
      而每个循环则写作
      技能1,技能2,技能3
      同一个循环里的不同技能用","分隔
      无脑宏什么的就不说了,这里举个野性冲锋的例子:
      Code:
      #showtooltip
      /castsequence[stance:3]reset=10野性冲锋(猎豹形态),毁灭;野性冲锋(熊形态)
      作用就是释放对应形态的冲锋,猫跳后再按就是接免费毁灭
      这里的reset=10是因为免费毁灭buff持续10秒

    4.其他的一些命令
      /focus
      这条命令有3个作用
      1.没有焦点目标的时候将目标设置为焦点目标
      2.有焦点目标的时候将焦点目标更改成当前目标
      3.当前目标为空时清空焦点目标
      同时这条命令也是可以加条件判断的,如果不加判断的话非常容易误改了焦点
      不过判断中的@仅针对判断语句的对象,会被设为焦点的永远是当前目标
      同时配套的还有清空焦点目标
      /clearfocus
      这是一个最常见的焦点宏:没焦点就设焦点,按住alt强制设焦点,焦点死亡就清除焦点
      Code:
      /focus[mod:alt][@focus,noexists]
      /clearfocus[@focus,dead]
      这些命令还可以加进针对焦点目标的技能宏里

      例:
      Code:
      #showtooltip
      /focus[mod:alt][@focus,noexists]
      /clearfocus[@focus,dead]
      /cast[@focus,mod:shift,harm,exists][@mouseover,harm,exists][]旋风