魔兽世界玩家社区APP官网
标题:
[插件/宏/WA分享] 关于营救宏的机制详解,以及一些示例分享
[打印本页]
作者:
ADDJ2017
时间:
2024-8-17 23:05
标题:
[插件/宏/WA分享] 关于营救宏的机制详解,以及一些示例分享
[h]1. 基础[/h]
与一般的治疗技能不同,营救的基础使用方式:先点击选择地点,(无目标时)再点击选择目标单位。
在符合目前的治疗习惯,不提前选择目标的情况下,减少操作步骤有两个基本方向:鼠标指向选择单位(自动选择地点),或者鼠标指向选择地点(自动选择单位)。
[h]2. 关于地点选择[/h]
使用
/cast [
@cursor]营救
,可以自动选择鼠标指向的地点。当存在目标时,会直接对目标施放;不存在目标时,会进入点选目标单位状态。
使用
/cast [
@player]营救
,可以自动选择玩家自身所在的地点。但与上面不同,无论是否存在目标,都会进入点选目标单位的状态。
注:这可能是因为
[
@player]
的双重含义,除了自身地点外,还能表示法术选择自己为目标。
[h]3. 关于目标单位选择[/h]
在/cast中使用@条件可以指定法术目标,一般搭配help和nodead条件。
例如:
/cast [
@mouseover,help,nodead][]营救
- 对鼠标指向单位/当前目标施放,无目标时进入点选状态
/cast [
@focus,help,nodead]营救
- 对焦点施放
/cast [
@嘉里克船长,help,nodead]营救
- 对指定名字的目标施放
局限性
:与
[
@cursor]
和
[
@player]
无法共存,执行后会进入手动点选地点状态。
在营救命令前使用
/target
命令选择目标。存在目标时,后续的
[
@cursor]
即可对目标施放。
例如:在
/cast [
@cursor]营救
之前使用命令
/target [
@focus]
,就会先将焦点单位选为目标,然后自动对其施放。
局限性
:如2.2所说,
[
@player]
在有目标的情况下仍然需要手动点选,此时先选目标没有效果。
在等待手动点选目标单位的状态下,使用
/target
命令,可以选择本次施放的目标单位,且不会真正改变玩家的目标。
例如:使用
/cast [
@player]营救
,会进入点选目标状态。如果在后面跟上
/target [
@focus]
,就会自动对焦点施放。
局限性
:如2.1所说,存在目标时
[
@cursor]
会直接对目标施放,不会进入点选目标状态。因此如果期望的单位优先级大于当前目标,这种情况需要额外处理。
[h]4. 其他可能用到的[/h]
/stopspelltarget
命令:退出点选目标状态。
例如:不存在目标时,
/cast [
@cursor]营救
会进入点选目标状态,此时后面加
/stopspelltarget
可以直接退出。
/stopmacro
命令:停止后续命令执行,可搭配条件使用。
例如:
/stopmacro [nohelp][dead]
,执行到这行命令时如果当前目标不能营救,后续的所有命令都会跳过。
/targetlasttarget
、
/targetlastenemy
:选择上一个选中的目标/选择上一个选中的敌方目标。
可用于
/target
指定目标施放营救后切换回之前的目标,可以根据个人习惯使用。
例如:选择敌方为目标的情况下,使用宏对鼠标指向的友方单位施放营救(在宏中切换了友方为目标),结尾用
/targetlasttarget
,可将目标改回原本选中的敌方。
但并非所有情况都有预想中的效果,比如鼠标指向的单位就是原本的目标时,
/targetlasttarget
反而会将目标更改为其他单位。
另一种使用方式是:在
/cast
命令前使用
/cleartarget
清除目标,在
/cast
命令后使用
/target
点选想要的目标,再使用
/targetlasttarget
恢复最开始选择的目标。
[h]5. 一些示例[/h]
对鼠标指向/目标单位使用,飞向自身位置
[del]信仰飞跃,但是是物理搬运版[/del]
#showtooltip
/cast [@player]营救
/target [@mouseover,help,nodead][]
复制代码
鼠标指向友方时对其施放;否则对目标施放,飞向玩家自身位置。
如果鼠标指向和目标都不存在/无效,则会进入点选目标状态。如果这种情况下想要什么都不做,不要进入点选目标状态,可以加上/stopspelltarget。
对当前目标/焦点使用,飞向鼠标指向位置
[del]英勇飞跃,但是要抓一个幸运儿[/del]
#showtooltip
/cleartarget
/cast [@cursor]营救
/target [help,nodead][@focus,help,nodead]
/stopspelltarget
/targetlasttarget
复制代码
第二行会清除玩家一开始的目标。第三行执行后,鼠标进入点选目标状态,第四行会根据条件和优先级点选期望的目标。第五行则恢复一开始的目标。
另一种简单的实现方式:
#showtooltip
/target [help,nodead][@focus,help,nodead]
/cast [@cursor]营救
复制代码
这个宏逻辑更简单,更容易调试。上面那个比较复杂,不知道会不会有某种情况失效。
这个宏会改变玩家选择的目标,如果想要维持目标不变,可以加入/targetlasttarget等,局限性见上面4.2。
组合键:按住ALT则将鼠标指向/目标单位带回自身位置,否则将目标/焦点带向鼠标指向位置
#showtooltip
/cast [@player,mod:alt]营救
/target [@mouseover,help,nodead,mod:alt][mod:alt]
/stopspelltarget
/stopmacro [mod:alt]
/cleartarget
/cast [@cursor]营救
/target [help,nodead][@focus,help,nodead]
/stopspelltarget
/targetlasttarget
复制代码
其实就是之前的两个宏拼接,给第一部分加上了ALT组合键的条件,按住则执行第一部分后停止,否则执行第二部分。
取巧:对鼠标指向的目标使用,飞向目标所在地点
[del]青翠之拥,但是要知道队友在哪[/del]
功能受限
:鼠标需要指向场景中的单位。
#showtooltip
/stopmacro [@mouseover,nohelp][@mouseover,dead]
/cleartarget
/cast [@cursor]营救
/target [@mouseover,help,nodead]
/stopspelltarget
/targetlasttarget
复制代码
这个宏取了个巧,既使用了鼠标指向单位,又使用了鼠标指向地点。
“目标的位置”是宏无法实现的效果,但当鼠标指向场景中的友方玩家时,鼠标所在的位置也就是目标所在的位置。
如果鼠标指向的不是场景中的玩家,而是团队框架之类的界面元素,则会将对应的目标带到框架后鼠标实际指向的场景位置。
[h]写在后面[/h]
花了一下午,可能有测试不全面的场景,欢迎反馈。
如果发现有其他常用场景,之后也可以补充在示例里。
欢迎光临 魔兽世界玩家社区APP官网 (https://khd.huaijiufu.com/)
Powered by Discuz! X3.5