• 售前

  • 售后

热门帖子
入门百科

[综合] [插件/宏/WA分享] 关于营救宏的机制详解,以及一些示例分享

[复制链接]
ADDJ2017 显示全部楼层 发表于 2024-8-17 23:05:00 |阅读模式 打印 上一主题 下一主题
[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]
  1. #showtooltip
  2. /cast [@player]营救
  3. /target [@mouseover,help,nodead][]
复制代码
鼠标指向友方时对其施放;否则对目标施放,飞向玩家自身位置。
如果鼠标指向和目标都不存在/无效,则会进入点选目标状态。如果这种情况下想要什么都不做,不要进入点选目标状态,可以加上/stopspelltarget。

对当前目标/焦点使用,飞向鼠标指向位置 [del]英勇飞跃,但是要抓一个幸运儿[/del]
  1. #showtooltip
  2. /cleartarget
  3. /cast [@cursor]营救
  4. /target [help,nodead][@focus,help,nodead]
  5. /stopspelltarget
  6. /targetlasttarget
复制代码
第二行会清除玩家一开始的目标。第三行执行后,鼠标进入点选目标状态,第四行会根据条件和优先级点选期望的目标。第五行则恢复一开始的目标。

另一种简单的实现方式:
  1. #showtooltip
  2. /target [help,nodead][@focus,help,nodead]
  3. /cast [@cursor]营救
复制代码
这个宏逻辑更简单,更容易调试。上面那个比较复杂,不知道会不会有某种情况失效。
这个宏会改变玩家选择的目标,如果想要维持目标不变,可以加入/targetlasttarget等,局限性见上面4.2。

组合键:按住ALT则将鼠标指向/目标单位带回自身位置,否则将目标/焦点带向鼠标指向位置
  1. #showtooltip
  2. /cast [@player,mod:alt]营救
  3. /target [@mouseover,help,nodead,mod:alt][mod:alt]
  4. /stopspelltarget
  5. /stopmacro [mod:alt]
  6. /cleartarget
  7. /cast [@cursor]营救
  8. /target [help,nodead][@focus,help,nodead]
  9. /stopspelltarget
  10. /targetlasttarget
复制代码
其实就是之前的两个宏拼接,给第一部分加上了ALT组合键的条件,按住则执行第一部分后停止,否则执行第二部分。

取巧:对鼠标指向的目标使用,飞向目标所在地点 [del]青翠之拥,但是要知道队友在哪[/del]
功能受限:鼠标需要指向场景中的单位。
  1. #showtooltip
  2. /stopmacro [@mouseover,nohelp][@mouseover,dead]
  3. /cleartarget
  4. /cast [@cursor]营救
  5. /target [@mouseover,help,nodead]
  6. /stopspelltarget
  7. /targetlasttarget
复制代码
这个宏取了个巧,既使用了鼠标指向单位,又使用了鼠标指向地点。
“目标的位置”是宏无法实现的效果,但当鼠标指向场景中的友方玩家时,鼠标所在的位置也就是目标所在的位置。
如果鼠标指向的不是场景中的玩家,而是团队框架之类的界面元素,则会将对应的目标带到框架后鼠标实际指向的场景位置。

[h]写在后面[/h]
花了一下午,可能有测试不全面的场景,欢迎反馈。
如果发现有其他常用场景,之后也可以补充在示例里。
回复

使用道具 举报

分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

魔兽世界玩家社区,为广大wower打造专属于自己的精神家园!
  • 小程序

  • 微信公众号

  • 商务合作