自动攻击
数据编辑器中目前一共有三种技能机制:智能施法、自动施法与连续施法。它们主要用来实现一般RTS和MOBA游戏中的智能施法、自动攻击和普攻攻击机制。以下说明一下这三种施法机制的严格定义:
智能施法:智能施法是一种辅助用户选择目标的手段,对于需要选择目标的技能,用户若原地按下技能按钮,且不将其拖出并选择目标,则智能施法机制会依照作者所配置的规则从附近的单位当中选出一个最符合条件的目标。此外,对于向量目标技能、地面目标技能、单位或地面目标技能等等允许在没有单位目标的情况下“空挥”的技能,智能施法若无法找到符合条件的目标,则会尝试原地使用技能。每个技能的智能施法规则都可以在技能的高级属性中配置。
自动施法:自动施法是一种在无需ai辅助的条件下令单位自动对附近目标使用指定技能的机制。每个单位同时只能有一个技能激活为自动施法,当该单位处于没有被下达任何指令的“闲置”状态下时,会频繁地尝试对附近符合自动施法条件的目标单位使用这个技能。
- 自动施法状态是一个可开关的状态,一个被配置为可自动施法的技能不一定激活着自动施法。
- 自动施法激活状态可以通过触发器API来设置。
- 可在数据编辑器的高级属性中配置一个技能是否可自动施法。
- 可在数据编辑器的高级属性中配置一个技能是否默认激活自动施法。
- 可通过“技能.设置自动施法状态”来激活或者关闭一个技能的自动施法。
- 与智能施法不同,自动施法不会在找不到符合规则的目标的状况下“空挥”。
- 自动施法支持多个技能同时开启自动施法,在这种情况下,单位会按照技能顺序尝试自动施法。并在无法自动施法某个技能时尝试自动施法其他技能。
- 自动施法技能在被替换技能时的,自动施法的技能被替换后会保留原有的自动施法状态(如果新技能允许自动施法),并在被替换回来后也保持正常运作。
连续施法:连续施法指的是当用户主动使用某一个技能后,系统自动连续使用这个技能,直到失去目标、技能无法再使用,或者被用户主动打断的机制。
- 用户可以通过移动或者使用其它技能来取消连续施法。
- 在默认状态下,被设置为连续施法的单位会对用户所指定的原始目标单位连续使用原技能,直到目标死亡。此外,我们增加了额外的选项,使作者可以改变连续施法的目标选择规则,允许后续的连续施法使用自动施法规则选择技能的目标。在此模式下,连续施法会持续到附近不再有符合自动施法条件的单位后才停止。
- 可在数据编辑器的高级属性中配置一个技能是否会连续施法。
- 可通过勾选“连续施法使用自动施法目标规则”,来将连续施法时的目标选择规则修改为与自动施法的规则一致。(注意,此时并不需要激活自动施法)。
自动施法与连续施法的各种组合方式:
自动施法+连续施法+激活自动施法状态+不勾选“连续施法使用自动施法目标规则”: 当单位处于闲置状态时,会自动对附近自动施法范围内符合条件的单位使用技能,但附近若有多个目标时,途中可能改变目标。而当用户手动下达使用技能的指令后,这个技能会锁定用户所指定目标并连续施放,直到连续施法状态被取消。这是绝大部分RTS游戏,如《魔兽争霸III》和许多塔防游戏默认普攻行为。
只勾选连续施法: 单位只会在用户主动使用了该技能后连续对同一目标使用这一技能直到目标死亡或被用户取消。这是许多PC上的Moba游戏中关闭自动攻击后的默认普攻行为。如《DotA2》。
自动施法+连续施法+不激活自动施法状态+勾选“连续施法使用自动施法目标规则”:单位只会在用户主动使用了该技能后连续使用这一技能,但可能会更改目标,持续使用这一技能直到附近无法再找到符合条件的目标单位或被用户取消。
- 这是许多手机上的Moba游戏的默认普攻行为。不同的游戏可能有不同的细节差别,例如:在自动施法规则中,将“优先上一次施法的目标”规则提到最前:
- 单位会在进入连续施法状态后,优先对上一次施法的目标进行连续施法,直到这个目标死亡或者脱离自动施法所设置的范围后才选择其它目标。这是《英雄联盟》等游戏的默认普攻行为。
- 在自动施法规则中,将“优先最近的目标”规则提到最前:单位会在进入连续施法状态后,优先对与它最近的符合条件的目标进行连续施法。这是《王者荣耀》等游戏的默认普攻行为。