欢迎光临散文网 会员登陆 & 注册

FF14 宏的打断(填坑)

2021-08-04 21:39 作者:塔萨达爹  | 我要投稿

在专栏 手残党的福音:热键栏更换宏 的注意事项第1条中,我提到了宏的打断问题,熟悉FF14宏机制的大佬们应该非常了解这个问题,但刚接触宏的光呆们可能还不了解,今天有闲,专门说一下这个问题,算是填坑吧。

宏这种东西,不仅限于FF14,魔兽世界等游戏中也有,也不仅限于游戏,很多软件中也有,最常见的比如Excel、Word等。宏本质上是一段程序,一段语法简单、功能相对单一的程序,这段程序的作用是告诉系统你要做的一系列操作,使系统在接下来的一段时间内不经干预就可以执行预定操作。熟练使用Excel之类办公软件的同学应该很容易理解宏的这个本质,看了我上一篇生产宏专栏的同学通过观察我分享的生产宏也很容易明白。

既然宏是一段程序,那它的执行就需要时间,尤其是含有“等待”命令的宏(在FF14宏中,“等待”命令是告诉系统在执行完上一个操作之后等待多长时间再执行下一个操作,单位是秒)。那么问题来了,如果在当前正执行的宏A还没执行完的时候,我又让系统执行另一个宏B,会发生什么情况?会执行完宏A再执行宏B吗?还是两个宏并列执行互不干扰?FF14既没有采取顺序执行的策略,也没有采取并列执行的策略,FF14默认的处理方式是立刻终止宏A的执行,转而开始执行宏B,此时我们就会说:“宏A被打断了”,这就是FF14里宏的打断概念。需要注意的是,宏A和宏B可以是同一个宏,也就是说,如果你按了一个宏,在这个宏还没执行完的时候,你又按了一次这个宏,系统就会立刻终止之前的执行过程,然后重新从头开始执行这个宏,我给这事起了个名叫"宏的自身打断"。在专栏 手残党的福音:热键栏更换宏 中,我就是通过配合使用“等待”命令和宏的自身打断来实现稳妥的热键栏更换的,这一点在注意事项第1条中有详细的说明。

如果不希望正在执行的宏被打断怎么办?FF14也给出了解决方案:只要在不希望被打断的宏中加上“/锁定宏指令”这个声明,这个宏就不会被其他宏、也不会被自身打断了,在这个宏执行完之前,所有的宏都无法执行,如果你试图执行,系统会在消息栏给你一个“在当前宏指令结束前无法发动其他宏指令”的错误提示。

锁定宏指令

总结一下,在FF14中,同一时间只能执行一个宏,如果在某个宏正在执行时按了其他的宏或者又按了一次这个宏,那么会有两种情况:如果这个宏是可以被打断的,系统会立刻打断这个宏的执行过程,转而执行你后来按的宏;如果这个宏不可以被打断,系统会继续执行这个宏,对你后来按的宏不予执行,并且给你一个错误提示。在不同的情况下使用不同的宏打断策略,能实现很多功能,具体的应用需要大家在理解原理的情况下自己挖掘,如果我在今后分享的宏中利用了宏的打断或不可打断特性,也会特别说明。

下一个要填的坑是动作条折叠宏。像我一样使用热键栏更换宏的玩家会占用额外的动作条来存放职业技能,对某些循环特别复杂的职业来说,占用得会格外多,这样就挤占了共用动作条的数量,而动作条折叠宏可以减少共用动作条的需求量,意义很大。即使不使用热键栏更换宏,动作条折叠宏也可以极大减少当前显示的共用动作条数量,使界面更加简洁。这种宏很多前辈大佬已经讲过了,但我看评论区发现还有很多人不明白,所以想再讲一下,关键是让大家明白原理,毕竟这种宏是需要大家根据自己的需求去定制的。填坑时间待定吧,这算是个大工程。

FF14 宏的打断(填坑)的评论 (共 条)

分享到微博请遵守国家法律