宏学研究:宏学(Macrology)第二版 下篇 翻页宏

时间:2021-05-10 17:39 作者:佚名 手机订阅 神评论

新闻导语

实现这样一个状态机需要解决一个问题:如何判定技能状态的改变而翻页?因为技能状态的改变除了连击中断以外,都来自技能释放,所以将释放某改变技能状态的技能与翻页绑定是不增加操作量的最好选择。

翻页宏

所谓翻页宏,早期是利用/hotbar change指令进行翻页,让各技能状态分别使用一条热键栏,让多条热键栏轮流利用1号热键栏上的便捷键位,实现键位节省和误触防止。

实现这样一个状态机需要解决一个问题:如何判定技能状态的改变而翻页?因为技能状态的改变除了连击中断以外,都来自技能释放,所以将释放某改变技能状态的技能与翻页绑定是不增加操作量的最好选择。随之而来的问题是,如何让这个改变技能状态的技能绑定在宏里后仍然进入技能队列?思路仍然相同,要设法点击普通技能热键。在aswc宏中,我们依靠用set覆盖宏来实现这一热键创造。但是翻页宏中,热键栏在按下宏的瞬间切换,因此,我们并不需要set,只需要在翻页后同一个位置放上普通技能热键就可以了。

整个过程就是双击宏2次:(第一下)按下宏-翻页-(第二下)按到翻出来的技能热键-进入技能队列。

同样,考虑当前没有硬直,本身就可以释放技能的时候,为了避免双击键间的时间损失,在最前端加上一行/ac。

整个宏非常简单,以第一栏第三格阵风为例:(武士6是阵风后的技能状态所用的热键栏)

/micon 阵风

/ac 阵风

/hotbar change 6

就这么点。这个宏指令很简单,复杂的是你的构建逻辑。你要想清楚这个技能状态应该干什么,不应该干什么,发生意外时可能要干什么,怎样排布键位最合理,并预设好热键栏。上面的这个例子中,在武士6上,应该在与第三格的阵风宏同位的第三格上放上阵风,其最近的2或4格上放上最应该使用月光,整栏上不该放花车、士风、雪风。为了月光后再次开始新的连击,或防止一些原因导致连击中断,应该在1格上放置翻到刃风状态的宏,并把其他可能插入的能力技、特殊战技(比如燕飞、风雅)都保持其出现,防止紧急情况发生时无法找到这些技能。

这只是系统的一个状态,你需要把所有状态及其相互翻页都设计好才能顺利运行。武士单体本来应该有打出刃风后、打出雪风后、打出士风后、打出阵风后、打出花车后、打出月光后、明镜止水中7种状态,但是我们可以通过适度整合来减少状态数。打出雪风、月光、花车后都是无连击状态。打出刃风后如果打雪风,那下一个又该打刃风,这样翻页没有多大意义,所以我们将刃风、雪风、月光、花车后作为同一个状态。

因此武士单体的技能状态最少有4种。我们将刃风和雪风、士风宏、阵风宏放在一条热键栏上(起始状态)、刃风宏、士风和花车放在一条热键栏上(花闪状态)、刃风宏、阵风和月光放在一条热键栏上(月闪状态)、刃风宏、雪风、月光、花车放在一条热键栏上(明镜止水状态)。刃风是所有连击的起点,所以至少需要起始状态翻到花闪状态/月闪状态的2个宏,翻到明镜止水状态的一个宏以及翻页返回起始状态的一个宏。如果将风雅、满月和樱花加入系统,需要更多的宏来调整。下面是一个实际效果演示:

注:这个演示的热键栏编号没有改变,是因为用了change的copy代,马上要讲。

刚才我说过早期的翻页宏是利用/hotbar change的,就是说现在已经有了更好的选择,之所以介绍早期形式是因为这种翻页宏简单明了,便于调整,直观可见,很适合逻辑想象力不足的新手。但是这种宏有一些很不方便的地方。/hotbar change只能在本职业内翻页,并且会保持热键栏的share状态。刚才介绍的武士翻页宏体系有4个状态,需要4条热键栏,放其他能力技大概需要1-2条热键栏,放一些别的热键,比如切职业,情感动作,技能监控需要……很多热键栏,现在你10条热键栏用完了。我现在还想再弄一条热键栏来显示O7S的时间轴宏而且不想删掉别的热键栏,怎么办?/hotbar copy是更好的选择。我们可以将武士的四种状态存储在武士4567上,然后打开share4567,就可以翻页宏和界面UI互不干扰了。因此我们的宏也相应的改变一下形式,还是以上面那个第三格的阵风为例:

/micon 阵风

/ac 阵风

/hotbar copy 武士 6 武士 1

还是那么简单的语句,它在系统设计和运行效果上与/hotbar change式翻页没有什么差别,但是在设置上有个小问题。现在操作热键栏固定为武士1,它是个显示器,当你进入月闪状态,它就显示武士6上的内容,当你进入明镜止水状态,它就显示武士7上的内容,如果你想修改一下上面的内容,在显示器上修改是没有作用的。你必须要到对应的储存热键栏上去修改。另外,copy式翻页宏消耗的热键栏比change式翻页宏多一条,因为copy式翻页宏需要一个额外的不能储存热键的显示器1,而change式中1可以储存热键。如果实在对这个缺点很烦恼,你也可以在每一个状态翻走之前加一个反存,但这需要更多的宏,因为你需要区分从花车返回刃风与从月光返回刃风来保证反存到正确的位置。

这个逻辑系统初学者建构是比较困难的,这里我介绍一种思维模式:

1.制作一个调试用宏,绑定特别的UI存档,把1-10号热键栏整齐的排列,将所有热键栏全部显示,关闭所有热键栏的share,显示热键栏编号,显示未设置的格子。

2.选择一个合适的职业,把想要做宏系统的热键排布成想要的样子。

3.制作合适的链接用宏,将关键链接热键替换为宏。

总结一下,change式翻页宏的优点在于修改能够立刻保存,逻辑比较直观,而copy式翻页宏对热键栏的消耗更多,修改起来更复杂,但可以调用更多隐藏的热键栏,大大增加可用热键栏数目,并实现更多复杂的功能。

最后我们讨论一种特殊情况:根据当前技能状态不同,使用同一个技能后会进入不同技能状态,如星灵易位、演武。这种情况下我们需要区分几种状态,分别用不同的宏。以星灵易位为例,需要区分冰转火星灵与火转冰星灵。显然冰转火星灵在冰状态栏上,火转冰星灵在火状态栏上,但是星灵易位只有一个技能,我们不希望一个技能占2个键位,所以我们做一点小操作。在翻页后为了保证星灵移位释放成功,我们需要星灵移位以普通技能热键的形式出现,但设置时或一会需要再次星灵易位时我们又需要它变回宏。你可以在翻页前将拟翻到页反存到它处,翻页后立刻set星灵易位(注意热键栏编号变化),wait1后将反存的热键栏复位回来。如果是copy式翻页宏,可以不用反存。

例如:(change式)

/micon 星灵易位

/mlock

/ac 星灵易位

/hotbar copy黑魔法师6 黑魔法师 10(反存)

/hotbar change 6

/hotbar set 星灵易位 6 5

/wait 1

/hotbar copy 黑魔法师 10 黑魔法师 6

(copy式)

/micon 星灵易位

/mlock

/ac 星灵易位

/hotbar copy黑魔法师10 黑魔法师 1

/hotbar set 星灵易位 1 5

/wait 1

/hotbar copy 黑魔法师 10 黑魔法师 1

由于wait1,你需要保证这个宏不被打断,否则你的宏系统就崩溃了,所以建议加上宏锁。如果你的循环里还有别的宏,你可以把复位绑到那个宏上,或者你也可以手动复位。当然,滚动宏也是个办法。通过增加一个辅助热键栏,每次星灵易位时交换冰火热键栏,具体方法,想像一下将两杯水交换杯子的方法。我会在后面讲解。

aswc一键连击宏

这个思路起源于4.0新PVP系统。官方把各个职业的各套连击整合到了一个键位上,跟随连击状态自动切换。显然,这是非常科学的设计,PVE同样也想要做到这样。用宏同样可以做到类似的系统,我们先分析一下这样做要解决哪些问题。

首先是解决切换连击阶段。连击阶段是一个技能状态,它同样是只因打出技能和连击中断而切换。所以我们同样将技能与切换指令绑定。我们在这里直接沿用aswc宏的思路,aswc喊话宏的最后一步/hotbar copy是为了将宏恢复原样,如果我们修改一下,让下一个连击状态被复制过来就大功告成了。

最后考虑如果打出一段中间连击后长时间的转阶段导致的连击中断问题,在最后加上/wait 11后跳转回无连击状态。本来是这样最好,但是我不建议加,因为这个宏的wait1一旦被打断系统就会崩溃,所以我们要加宏锁,而这个设计需要允许宏被打断,这两个需要是冲突的。

整个过程需要按宏2次:(第一下)按下宏-技能热键覆盖宏-(第二下)按下技能热键-进入队列-1s经过-转到下一个连击状态

以第一栏第二格的脉冲枪为例:

/micon 脉冲枪

/mlock

/ac 脉冲枪

/hotbar set 脉冲枪 1 2

/wait 1

/hotbar copy 龙骑士 5 龙骑士 1

同样,你需要预设热键栏,建立合理的技能状态热键栏及其相互转换。在上面的例子中,脉冲枪的下一段开膛枪应该做成与之相似的,链接到樱花怒放的宏然后放在与脉冲枪宏同位的第5栏第二格上。其他热键应该保持一致。

下面是一个武士的aswc一键连击演示:

这种方案中连击的每一个技能都要做宏,并且有一些比较麻烦的问题。aswc一键连击虽然很方便,但容错率很低,需要做大量的弥补失误准备。

你必须控制按键连打的速度,不要在CD转好1s前就开始激情连打,或是连打超过1s以上,否则可能会发生技能未成功释放就已转到下一段的问题。一个折中解决方案是在宏的最后加上wait1(延长宏锁),这可以减少你太过提前按键的机会,但仍然不能完全解决问题。

如果不幸的事故发生了,在技能打出前连击状态就切换了,你还需要一个回退宏让你重新能够打出刚才的技能,如果反应够快还可以避免损失。为了节约回退宏的个数,我们可以利用反存,固定回退到中转栏,而每次按宏时将当前栏反存到中转栏。

因为这个原因,我们不推荐不熟练的玩家使用aswc一键连击,这个宏系统更适合操作精确的玩家,因为aswc一键连击是容错率很低的宏,你必须防止误点、漏点,并在合适的时候以合适的频率点击合适的次数。一般来说,我们认为,远距离瞬发技能是最不容易发生事故的。因为读条技能可能会中途断条,近战技能可能会因为射程差一点点摸不到怪。即使这样,你仍然可能遭遇Boss突然飞天遁地导致技能释放失败的情况,需要熟练掌握复位方法。

一字排开

有一些职业爆发阶段技能非常繁多但是顺序基本固定,而我们在需要一边处理机制一边爆发时很容易手忙脚乱。有玩家会选择拉出一栏,从左往右依次摆技能,爆发用鼠标从左往右点。如果能移到键盘上,并且只有爆发时显示,不爆发即隐藏可能更好一点?因此,我们可以使用这种一字排开宏来简化操作。

最典型的例子是机工,在野火阶段机工需要打出一大堆技能,如果正好赶上处理复杂机制,过热少一弹时有发生。三弹姑且不论,二弹野火的野火爆发几乎是固定的。而机工进入野火阶段的标志就是喷火。因此我们可以给喷火绑定一个宏,切换到野火状态热键栏,将野火阶段的技能按顺序从左到右摆放到操作栏上。喷火结束后,只需要从左到右依次使用技能就可以打出野火爆发。野火爆发的最后一个技能是冷却,我们用一个宏绑定它,将操作栏恢复到非野火状态配置。

这个宏虽然可以把复杂的钢琴爆发变成从左到右按技能,但也存在一些缺陷。假如在之前的战斗中发生了一些意外,例如虹吸弹由于Boss上天推迟了3s,本来固定的爆发安排就会改变。这种问题你无法设计进去,所以你最好同时准备一套不依靠一字排开的热键栏(*请保证理解爆发循环原理再使用一字排开宏),或者将可以移动位置的技能放到一字排开范围外。其中还有些其他问题请自行摸索。

下面是一个用一字排开打召唤开场爆发的实例:

注:巧用第二键位,可以在已经更变了默认热键的情况下继续1234567890-=滚键盘。

考虑更复杂的情况。爆发阶段并不严格固定的循环,如果可以在爆发开始前预知,可以设置一个宏,将几种不同的爆发路径依次切换。以三弹野火为例,你可以做4种不同的喷火宏对应无触发、触发2、触发3、触发23,然后用切换宏切换当前操作栏上的喷火宏。当然直接这样设计的话需要消耗8个宏,这实在是夸张的消耗。用滚动宏可以大幅减小这个消耗,具体的方法我会在后面介绍。


相关阅读:最终幻想14,交流,攻略

论坛大图推荐