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