AtomMacro

魔兽世界可编程一键宏


目标选择

<p>[TOC]</p> <h5>目标选择</h5> <ul> <li>目标的基本语法为:@ 检测类型 检测参数组,之间以空格分隔</li> <li>目标检测有如下方式:</li> <li>方式1:使用@target为指定目标,可以指定的目标类型为单位类型。 示例: &lt;pre&gt; /spell 腐蚀术 -鼠标指向单位敌对 <h1>unit_enemy mouseover</h1> <pre><code>-鼠标指向单位没有我的腐蚀术 !unit_debuff mouseover 腐蚀术 player -切换目标为鼠标指向单位 @target mouseover</code></pre> <p>&lt;/pre&gt;</p></li> <li> <p>方式2:使用以@开头的目标检测语句 @语句将遍历当前的【成员筛选列表】(如果是该行为的第一条@语句,则为【成员筛选列表】为【我的30码范围内的队友列表,默认优先级为0】)。 根据不同的检测语句,增加/减少列表中成员的优先级。 可以通过@select语句手动筛选检测结果,将优先级小于某数值的过滤掉。也可以在过程中多次使用@select语句 在最后的【成员筛选列表】中,选择优先级较高的(不一定是最高的,规避多个治疗同时使用时,必然会给同一个目标加血的问题)。 优先级小于等于0的成员不会被选中。 示例: &lt;pre&gt; /spell 强效治疗术 --根据损失血量,增加队友优先级。如有3个成员(包括自己), 分别为A(HP 80%) B(HP 60%) C(HP 70%), 则执行后的【成员筛选列表】为 【 A:20,B:40,C:30 】 @injure -根据玩家职责,增加优先级。如果是坦克,优先级+15,例如上面C如果是坦克,经过该语句后【成员筛选列表】变为 【 A:20,B:40,C:45 】 @role 1 15 --筛选 优先级大于等于 40 的队友,经过该语句【成员筛选列表】变为【 B:40,C:45 】 @select 40 --如果最后【成员筛选列表】中的个数多余1个,则在此列表中随机选择一个角色。如上则 B有 40/85 = 47% 概率被选中,C有 45/85 = 53% 概率被选中 &lt;/pre&gt;</p> </li> <li>方式3:通过与行为 /targetenemy 混合使用,可以实现监听,筛选,选取【任意队伍角色的当前目标】的功能。 示例: &lt;pre&gt; --选择一个不是角色当前目标的BOSS,且BOSS身上我的腐蚀术剩余时间小于500毫秒 /targetenemy --角色目标与我的目标不同的BOSS, 优先级+1 @target_other_boss 1 --角色目标身上我的【腐蚀术】剩余时间小于500毫秒, 优先级+1 @target_debuff_time 腐蚀术 500 1 player --只保留优先级大于等于2的成员 @select 2 &lt;/pre&gt;</li> </ul> <h5>附加说明</h5> <ul> <li>目标的选择的操作为附加操作,必须在一个能够触发的按键行为下才会触发切换目标的行为,例如 &lt;pre&gt; /local @目标1 --角色目标与我的目标不同的BOSS, 优先级+1 @target_other_boss 1 --角色目标身上我的【腐蚀术】剩余时间小于500毫秒, 优先级+1 @target_debuff_time 腐蚀术 500 1 player --只保留优先级大于等于2的成员 @select 2 &lt;/pre&gt;</li> <li>上面的脚本并不会触发任何按键行为,也不会切换目标,只是将筛选后的目标储存到一个名为【@目标1】的临时变量里,该临时变量的类型为单元,可以用于后续的@target和条件判断</li> <li>如果我们在后面增加 &lt;pre&gt; /spell 腐蚀术 @target @目标1 &lt;/pre&gt;</li> <li>这时才会触发 腐蚀术按键 和 切换目标按键,这两个按键行为是同时发生的,几乎没有时间间隔( &lt; 20 毫秒 )</li> </ul>

页面列表

ITEM_HTML