ACT高级触发器食用指南

本文最后更新于 2024年5月8日 中午

1. 事前准备

首先需要准备ACT,并安装Triggernometry插件

打开之后,在插件选项卡中进入Triggernometry窗口,即可编写你的自定义触发器

2. 简单的触发器设置

2.1 设置分组

首先,我们以技能CD监控为例,编写一个简单的触发器。

首先,右键本地触发器,新建一个分组。

新建分组

分组除了可以方便我们整理触发器之外,还可以对触发器进行一些简单的分类。例如,现在我们编写的是战职的CD监控,那么我们可以建立三级分组,分别设置只有在战职触发、只在远敏职业触发、只在舞者触发。只需要右键分组,并选择编辑按钮,即可对分组进行设置。如下图所示:

远敏职业分组

接下来,我们就可以开始编写一个简单的触发器了。首先,触发器的本质其实就是匹配游戏的输出日志,并作出对应的响应,有点类似于QQ机器人的逻辑。

2.2 显示技能

由于是编写技能CD监控,我们需要先在游戏中显示自己的技能。如下图所示,设置显示自己的技能:

显示使用技能

例如这里我就是在“战斗”窗口中显示自己发动了什么技能。当我们切换到战斗窗口,就可以看到自己发动的所有技能:

显示技能

现在,我们只需要将这个句子复制下来,就可以在触发器中进行监控了。

2.3 编写触发器

我们右键分组,选择添加触发:

新建触发器

触发器的名字随便起,只要方便你辨认就行,在正则表达式一栏,将刚刚聊天栏内的技能复制过来:

触发器设置

接下来我们就要设置触发器具体执行什么动作,点击下面的添加动作(add action),动作类型有很多,例如系统音效就是“嘟”的响一声。我们这里先选择TTS:

添加动作

在播读内容中写上你希望ACT报的文字,下面可以调播读音量和语速。点击test action按钮可以试听一下TTS效果,编辑好之后点击添加添加动作。

TTS设置

保存好的触发器现在长这个样子,点击保存更改就可以保存你的触发器了。现在回到游戏,再跳一个小舞,可以听到在你按下了标准舞步的时候,ACT报了你刚刚设置的文字。

触发器界面

2.4 延时设置

我们希望做技能CD监控,显然还需要做一个延时的处理,例如标准舞步的CD是30秒,那么我希望在28秒的时候提醒我CD快好了,怎么做呢?

回到我们刚刚编写好的触发器,右键动作(注意是动作),打开编辑窗口:

编辑动作

切换到计划任务选项卡,在这里,我们就可以设置延时,即下图中③所示,代表27000毫秒后(CD转好还剩3秒)执行这个动作。此外,建议将②处改为中断之前的队列,这样当你再按了一次这个技能的时候,触发器就会刷新时间。主要是针对那些有多层充能的技能:

设置触发器动作延时

完毕之后点击保存更改,别忘了动作和触发器都要保存。回到游戏,再次按下标准舞步,就可以听到在CD还有3秒钟转好的时候TTS播报的语音提示了。

需要注意的是触发器实际上是存在一定的延时的,比如在我的电脑上,我设置的是27秒延时,但是体感上是在28秒的时候才播报的,因此建议在设置好之后实际使用一下,再根据实际情况进行微调。

3. 进阶设置

3.1 缺省匹配

可以看到刚刚的触发器我们是直接把聊天栏的内容复制了过来,这是带着玩家ID的,那万一我们改名了,或者想把我们编写好的触发器分享给别人,很显然它就不能正确的匹配到信息了,怎么办呢?

由于我们已经知道了这里使用的是正则表达式进行匹配,那么最简单粗暴的方法就是:

缺省匹配

把前面ID部分删了就好了。

3.2 频道号与变量

但是现在还有一个问题,虽然在我们当前编写的技能CD监控中基本上不会碰到这种情况,但是当你写别的一些触发器的时候也许就会碰上,是什么呢?

大家可以试试,现在手动在说话频道或者其它什么频道把这段匹配字句打一下,你会发现它也激活了触发器。

这显然是不行的,我们只要匹配对应的消息,不是只要文字对就匹配的。怎么办呢?在处理这个问题之前,我们先来了解一下触发器中的局部变量。

3.2.1 变量

首先,我们将触发器的正则表达式进行一下修改,在前面加上(?<player>.*),这里的player也可以是其它的变量名称:

获取变量

然后我们再添加一个新动作,动作类型选择显示消息框,在“消息的文本”处,填上${player},同理,这里的变量名只要跟你上面设置的一致即可:

显示变量

接下来点击move up将这个动作移到最上面,或者直接取消勾选我们之前设置的那个动作,否则这个新的动作就要等到27秒后,TTS播报完才会执行:

调整动作顺序

现在我们回到游戏,再按一下标准舞步,可以看到弹出来了一个窗口:

消息弹窗

这里实际上就是将我们上面触发器中缺省的文本赋值给了player变量,然后在弹窗中显示了这个变量。我们注意这里的082B,这就是我们要找的频道号

这里有可能你没看到弹窗,实际上可能是由于游戏全屏或其他原因,导致弹窗并没有置顶显示。如果遇到这种情况,可以按alt+tab切换窗口来显示这个弹窗。

3.2.2 频道号

实际上我们聊天栏中显示的所有不同的消息,都是分别归属于不同的频道,当然这个是隐性的,我们日常是看不到的,但是现在我们就可以通过频道号来实现仅仅匹配某一类频道中的文本,例如我们上面已经知道了技能信息的频道号是082B,那么现在,我们就可以修改正则表达式成这样:

带频道号的正则表达式
1
082B::(?<player>.*)发动了“标准舞步”。

同理,对于其它想要查询频道号的信息,也可以用这个办法去显示。查询完毕之后记得将这个显示弹窗的动作删除掉即可。

3.2.3 使用案例

这里再展示一个栗子,监听收藏品采集,并通过TTS播报刷新的资源是什么:

限时收藏品采集

3.3 带条件的触发器

还是以技能CD监控为例,这次我们尝试监控诗人的毒DOT,我们知道诗人存在两种上毒的方法,其一是手动续两个毒dot,其二是当56级学会伶牙俐齿之后通过该技能一次性刷新两个毒的CD。

那么,我们怎么通过一个触发器就完成对毒DOT的监控呢?这就需要用到触发器条件这一功能了。我们还是先写好基础的触发器语句,但是这回我们把技能部分也留空,接下来切换到触发器条件选项卡,默认会有一个未启用的空白分组,我们右键它,选择添加一个条件:

添加条件

可以看到,默认的空白条件是这样的:

空白条件

触发器支持一些对字符串和数字的简单对比,我们点开运算符的下拉菜单可以看到可用的所有逻辑运算符:

逻辑运算符

这里我们需要实现的是匹配字符,因此我们选择左侧必须与右侧的正则表达式匹配,而左侧填入变量skill,右侧是要匹配的技能名称,如下图所示:

接下来我们将上述的5个技能全部添加为条件,而条件组类型就选择至少有一个为真(也就是或运算)即可,同时别忘了把计划任务改成中断之前的队列。完成的界面如下图所示:

触发条件
计划任务
动作

这样,我们就完成了一个简单的续毒提示触发器,只要我们使用了上述5个毒dot类技能中的任意一个,就会在40秒后提醒我们续毒。

当然,不仅仅是触发器可以设置条件,动作也是可以设置条件的,这里我就不再赘述,大家自行根据实际需求运用即可。

3.4 显示字幕

除了TTS之外,我们还可以通过字幕的形式来显示变量信息。以3.2.3中的采集触发器为例,有可能TTS播报的时候我们去干别的了,那我们希望触发器除了TTS之外还能够把消息打在公屏上(不是),如下图所示:

字幕显示

我们打开触发器,新建一个动作,动作类型为文本显示(Aura):

文本显示

我们现在要做的是显示文本,因此操作就是激活或修改指定的文本 Aura。

接下来是唯一标识符,这个Aura可以理解为一个全局变量,也就是说我们可以从别的触发器中访问到这个资源,因此这里的唯一标识符就相当于是这个全局变量的变量名,切记不可重复。我们这里就起名为资源,言简意赅。

然后是显示的文本,这个好理解,就是你要显示什么。这里我们让他显示source变量中获取到的文本。如下图所示:

设置文本信息

下面就是调整文本的字体、字号、颜色、位置等等。点击字体旁边的小齿轮按钮,可以设置文本的颜色、背景颜色和轮廓颜色:

设置文本颜色

这里光设置了轮廓颜色还不够,记得要把下面的文本轮廓的复选框也勾选上才会显示轮廓。

点击边上的浏览按钮可以设置字体和字号。

最后就是设置你要让文本在哪里显示。直接点击“使用即时设置”按钮,你会看到有一个小方块显示出来,初始大概长这样:

使用鼠标左键拖动它,将光标放置在角落上可以调整大小,这样就可以直接把文本框放到你想要的位置上。调整好位置和大小之后,右键这个文本框,选择保存,就可以保存它的坐标位置了:

保存调整好的文本框

这样我们就设置好了显示文本的动作,记得保存:

这样我们就可以看到,当刷新资源点的时候,TTS播报了语音提示,同时字幕会一直显示刷新的具体资源,就像最开始演示的那样。

3.5 Aura变量

依旧以上面的收藏品采集为例子,我们也不希望这个字幕一直挂在这里,比如当这个采集点消失了或者我们已经去挖完了,想让这个文本消失,可以做到吗?

可以看到,无论是时间到了还是采集完毕,都有这么一句通知:

无法继续感知未知的草场……

那么我们就来监听这一句消息,通过查询可知该消息的频道号为083B,那么就新建触发器,匹配文本为:

1
083B::无法继续感知(?<source_1>.*)

这里的变量名理论上还是可以叫source的,但是为了防止混淆所以起了不一样的变量名。

下面新建动作,类型还是文本显示(Aura),但是这回我们的操作变为了停用指定的文本Aura:

停用Aura资源

我们前面说过,Aura就类似程序中的全局变量。因此这里的操作就好理解了,我们在这里通过同样的唯一标识符来找到这个文本Aura资源,然后停用它,这样这个文本框就不会显示了,去找一个矿挖一下,可以看到在挖完之后,文本就消失了:

4. 结语

除此之外,在动作类型中还有很多其它的操作,但是基本上逻辑都殊途同归,只不过是执行的操作不一样了而已。例如通用JSON操作动作可以像目标URL发送带参POST请求,依此可以完成例如与QQ机器人联动等等类似的操作。


ACT高级触发器食用指南
https://www.aye10032.com/2022/04/11/2022-04-11-FF14-trigger/
作者
Aye10032
发布于
2022年4月11日
更新于
2024年5月8日
许可协议