欢迎来到美丽华魔兽分享站! |
宏命令的基础宏以及逻辑1253
发表时间:2024-05-01 00:10 1、宏命令的逻辑: (1)宏是为了实战需求服务的,所以请准确地符合逻辑地描述你想要实现的功能,包括什么条件下对什么目标施放什么技能,各个条件的优先级(多个条件同时满足时算谁的)等等。 (2)保证功能正确的前提下,尽量简化宏的书写,一来便于阅读,二来我们只有255个字符限制。 (3)宏是为了简化操作而制作的,但是我主张一条原则:在战斗中不允许出现按对了技能快捷键却放出了错误的技能或者给错了对象的情况。不论是由于按键频率还是设计不科学的原因都是不允许的。 (4)容错性,有这样的情况存在:发呆造成的损失比放了一个效果偏差的技能的损失更大。我们也追求在这样的情况下宏能选择后一种动作执行而不是站在原地僵直。 2、基础宏命令实例以及解释: 1、想要一次按键释放多个技能,首先必须保证这N个技能中,只有一个是占用公共冷却(GCD)的,他们的释放顺序,CD与否都不影响其他技能,如这样的宏: /cast 寒冰箭 /cast 火球术 它只会卡在“寒冰箭”而不继续往下执行,并且报错“正在公共冷却”(我还得等一会之类的),而 /cast 燃烧 /cast 火球术 是可以完全释放的(动作是开启燃烧和施放火球)因为燃烧和火球术不占用GCD,还有一个特例是: /cast 冲锋 /cast 盾牌猛击 虽然上一篇文章说了宏不能判断距离,但是对冲锋为不占用GCD的技能也不会影响盾牌猛击的释放。 2、选择目标 /target是最简单的选择目标命令,它可以简写为/tar (原则二),格式为: /tar <单位名称或单位标识符> 如果你填的是单位名称,它的检索范围挺大的,你可以一直抽筋按它来看看周围是否存在这个单位(比如说灵魂兽,或者没有潜行的敌对阵营玩家),或者也可以用来从一堆玩家中选中一个NPC。 我们用的更多的是单位标识符,这里有一个常用列表: bossN(N=1,2,3,4)——按照屏幕右方的首领框体排序的1-4个 focus——焦点 mouseover——鼠标指向的那个单位 partyN(N=1,2,3,4)——按照小队框体排序的1-4位队友 pet——你的宠物 player——自己 raidN(N=1...40)——团队成员1-40(没用过大约是按照团队标签1-8队的排序) target——当前目标(若不指定则默认) 实例: /tar focus 解释:选中焦点目标 /tar pet 解释:选中宠物 /tar mouseover 解释:选中鼠标指向的那个目标 /tar boss1 解释:选中第一个BOSS 注意target可以跟在任何一个正确的标识符后面来表示它的目标,而且可以无限叠加,就用上面的例子: /tar focustarget /tar pettargettarget /tar mouseovertarget /tar boss1target (这多半是当前坦克) 关于“目标”其他的宏命令: /assist——选中目标的目标,它等价于 /tar <单位名称或单位标识符>target /cleartarget——清除当前目标 /clearfocus——清除当前焦点 /targetlasttarget, /targetlastfriend 和 /targetlastenemy——选中上一个目标、上一个友善目标、上一个敌对目标 /targetenemy 和 /targetfriend——按照一定循环选中一个敌对目标、友善目标;它等价于Tab的效果。后面加参数1反向。 /targetparty 和 /targetraid——按照距离循环选中小队队友或者团队成员,后者我们做随机铺雾会用到。注意这两个命令在一个宏中都只能使用一次。 3、控制宠物 /petattack——让宠物去攻击你的当前目标(相当于Ctrl+1),也可以跟单位名称或标识符 /petfollow——切换跟随 /petpassive, /petdefensive 和 /petaggressive——切换反应状态:被动、防御、主动攻击(这个现在有比较大的变动,不知道是否有改动) /petautocaston 和 /petautocastoff——打开、关闭技能的自动释放,参数为技能名称,至于点一下开再点一下关的功能需要用到后面的模拟点击。 4、宏图标 如果宏图标选择问号,则系统会默认把当时按下该宏会释放的第一个技能的图标、CD显示在宏图标上。 而在宏开头加上#show 技能名称 则可以手动指定宏使用哪个图标,甚至和内容完全不相关都可以。 而#showtooltips则是多了一个功能:显示技能说明。 另外他们都可以使用命令条件语做判断,这个我们后面说。 实例:在宏的最开头输入:#showtooltips 火球术 则会显示火球术的图标以及冷却CD 5、装备物品 /equip——装备物品,和右键点击包里的装备等效 /equipslot 位置 物品——把指定物品放到指定位置上,双持职业的武器,戒指,饰品会用到,另外对换饰品位置可以直接写成/equipslot 13 14 /equipset 套装名——装备套装 6、 队列施法或使用物品 /castsequence 表示按照队列顺序释放技能,按一下放一个,队列走完则跳回开头,技能名称用逗号隔开,cast后面能写什么这里就能写什么,如: /castsequence 火球术,寒冰箭,闪现,冰锥术 (注意逗号是英文的逗号) 除此以外还可以在技能队列前添加reset来手动指定重置条件: /castsequence reset=n/target/combat/shift/alt/ctrl 技能队列 n表示n秒钟没有执行该宏则重置队列,target表示目标切换时,combat表示离开战斗时,后三个表示带功能键按下时,他们之间用“/”链接,为或关系,如: /castsequence reset=3/target A,B,C /castsequence 也可以使用命令条件语,加在reset前即可。实例部分我们还要讲解如何用/castsequence近似地实现“哪个好了用哪个”的功能。 7、随机施法或使用物品 最常用的就是随机坐骑,类似于队列施法,把随机施法的物品、法术列表跟在后面即可。如: /castrandom 玛瑙云端翔龙,缚寒冰霜征服者,奥妮克希亚座龙,黑色灵翼幼龙 8、自动攻击 你只能控制自动攻击的开始(/startattack)和停止(/stopattack),一般用来加在一些法术技能宏里面,因为它们不会触发自动攻击。 怀旧服近战用的很多,基本每个技能都可以绑定一个。例如: /startattack /cast 旋风斩 9、移除增益效果 它等效于右键点击右上角BUFF栏的图标,参数为BUFF名称,比较常用的有: /cancelaura 保护之手 /cancelaura 拯救之手 /cancelaura 圣盾术 10、中止施法 顾名思义,打断当前的施法(然后做一个别的动作),通常的用法为: /stopcasting /cast 法术反制 可以中止当前的施法,立即使用“法术反制” 11、终止一个宏 /stopmacro 当它被执行时这个宏就会停止往下执行,即写在它后面的语句都是无效的,所以通常它都会带条件语进行一定程度的判断。或者有时也作为执行它后面语句的统一条件使用。 12、设置焦点 用法和target类似,执行之后焦点(focus)成为存在(exsits)状态。你可以用 [@focus] 条件对这个目标进行判断和动作。 13、模拟点击 格式为:/click 按钮名称 指定按键。 作用等效于鼠标点击该按钮。 常用动作条的名称:#为按钮序号
用这样一个宏获取当前鼠标所指的按钮名称: /run local f=GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end 结果会显示在聊天窗口中,注意如果你用了一些动作条插件,它的结果会显示为插件动作条的名称,如果更换了动作条插件就会失效,所以写宏的时候最好暂时禁用插件。 第二个参数可以指定用哪个键点击指定按钮: LeftButton(左键,默认) MiddleButton(中键) RightButton(右键) Button4(侧键1) Button5(侧键2) 例如:用右键点击右侧右边动作条的第一个按钮: /click MultiBarRightButton1 RightButton |