召唤一键输出触发器的相关讨论

6.0召唤技改之后的循环逻辑实在是过于简单,没有什么操作性可言,配合ACT高级触发器即可实现一键输出,下文将会对实现方式进行一些简单的讨论

基础理论

循环逻辑

6.0召唤的循环由“巴哈/不死鸟阶段”和“三神阶段”构成。在“巴哈/不死鸟阶段”,GCD填充为瞬发的GCD技能。除了GCD技能之外,在此期间需要将死星核爆、死亡轮回(天启)和两层溃烂爆发全部打出去。在巴哈/不死鸟的持续时间结束之后,就进入了“三神阶段”,土神阶段为1GCD召唤土神+4GCD的瞬发GCD,风神阶段为1GCD召唤风神+一次3秒读条+4次1.5秒瞬发GCD,火神阶段为1GCD召唤火神+2GCD瞬发GCD+2次2.8秒读条。土神阶段需要每GCD插入土续剑,除此之外没有能力技需要插入。“三神阶段”之后距离下一个“巴哈/不死鸟阶段”还有两个GCD,用一次毁3和一次毁4填充,并且此时能量吸收和灵护(每两次)CD转好,需要把它在此期间打出去。

理论上来说,能量吸收和灵护是接在毁系魔法后面打的,但是实战中由于boss上天等原因,可能会在三神阶段CD就转好了,只需要保证在下一次“巴哈/不死鸟阶段”之前打出去即可。

状态机

我们可以轻松地使用莫尔型状态机来实现这样的逻辑:

  1. 将我们最终需要摆在热键栏上的技能作为输出
  2. 每次开始施法和CD转好的时候进行状态转移
  3. 根据每一种技能的使能情况来决定当前状态,每一种技能能否实行占用状态的一个二进制位。
  4. 开始施法时,将使能复位,CD转好时,或资源可用时(比如能量吸收触发溃烂爆发资源可用)将使能置位。

实现基础

如下方法将状态机转化为实际程序:
利用ACT的高级触发器,每次检测到自己的Start Casting时,或是技能使能置位时设定的定时器复位时执行状态转移,而状态变量可以储存在高级触发器提供的变量池中。

状态转移时,增减对应位置上2的幂次即可。

输出则是利用鲶鱼精邮差向游戏发送文本指令,可以完成对热键栏的设定。

代码

由于重写了状态机的构造思路,老代码都没用了,近来比较忙,等考完了再重写一遍,正好迎接国服6.0适配中文技能名。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器