【FF14】ACT Triggernometry/高级触发器 入门之章3
想要自己写触发器?那么快点进来看看吧!
特此声明:本文仅为想要“编写属于自己的触发器”的人们提供帮助,不代表作者本人支持/认可ACT触发器等轮椅。

由于大部分FF玩家并非计算机相关专业,因此本文的绝大部分内容都会使用个人认为便于各位理解的词语进行讲解。本文为入门之章3(入门之章2:https://www.bilibili.com/read/cv21384654),后续还会更新。在看完本章节后,你应该能做到:使用鲶鱼精。本章节分为以下几个部分:认识鲶鱼精,使用鲶鱼精的两种方式,游戏内宏指令,本地标点和一些练习题。
大部分的内容鲶鱼精作者已经讲过了,所以这篇其实是鲶鱼精复习+入门之章期末考,学完这个你应该就能写绝大部分副本的触发器了。那么我们正式开始。

认识鲶鱼精
鲶鱼精邮差是一个用于拓展ACT与相关插件的功能的插件。可以接收Triggernometry高级触发器等插件传递过来的游戏文本指令,并投递至游戏内执行。
仅限于最终幻想14自己支持的、可以在游戏内由宏或由文本聊天栏中输入并执行的指令。如/em(自定义情感动作) /greet(打招呼) /focustarget(显示焦点目标)等,不支持任何游戏本身不提供的文本指令。
可以用于解决目前游戏内现有宏指令系统的一些不便之处,例如复活喊话宏、翻页宏、死而不僵提醒宏等。
此外,也支持接收标点工具PaisleyPark的标点指令,在游戏内进行本地标点。
感谢NGA大佬 我没玩过,但我在哔哩哔哩看过。
由于是B站专栏,无法提供下载链接。鲶鱼精请自行在NGA搜索并下载。

使用鲶鱼精的两种方式
1.通用JSON操作

点击添加动作,并选择通用JSON操作。出现以上界面。
目标URL填写 http://127.0.0.1:(这里写你准备启用的端口号)/command
准备发送的内容填写你要写的宏指定,比如你要在小队频道发你好就写/p 你好,需要给自己标记攻击1就写/mk attack1 <1>。以此类推,所有游戏支持的宏指令都可以写。
其他不用管。
2.命令回调操作

点击添加动作,并选择命令回调操作。出现以上界面。
Callback name写操作的名称,如果是发送游戏内宏指令就写command,如果是本地标点就写place。

游戏内宏指令
例1 使用无敌时自动在小队频道发送“(技能名)发动!”
首先在战斗状态开一次无敌然后找到对应日志行(15或1A行),将其写为正则表达式。新建触发器,写必须是你放的无敌的条件,写入你写好的正则(我写的正则为 ^.{14} ([a-zA-Z]+ )?1[56]:.{8}:(?<CasterName>[^:]+?):(2B|1E|E36|3F18):(?<Action>[^:]+?):)。添加动作,通用JSON操作或命令回调操作(具体用什么看个人习惯,我习惯用通用JSON操作),如下图所示(这个触发器因为是自己用的,为了在国际服正常显示使用了日汉字)。



例2 当忍者搓出兔子,将搓出兔子的玩家id发送至小队频道
找到兔子的日志行,将其写为正则表达式。然后添加动作,通用JSON操作或命令回调操作(具体用什么看个人习惯,我习惯用通用JSON操作),如下图所示


例3 任何玩家被点绝OP2.5的狙击式波动炮时,按优先级标记攻击
我们首先需要在机制开始前就知道小队中每个玩家的id以及他们在你小队列表中的位置。(这个就不演示了,就大致说一下)。我的思路是在战斗开始的时候发宏,我的宏是:

再将其写为正则表达式,即可获取每个队友的id和位置。

之后找到狙击式波动炮的日志行,将其写为正则表达式。然后添加动作,通用JSON操作或命令回调操作(具体用什么看个人习惯,我习惯用通用JSON操作),如下图所示


例4 在绝O2.5中为无点名的玩家标记禁止1和2

因为太懒了还没写,加上绝O也不打了(要是还在打O肯定也没时间更新这个啦!),这里就只提供我的思路了。

本地标点
我们用绝神兵的点来演示。新建触发器,添加动作,命令回调操作,Callback name输入place,Callback parameter输入以下内容
{"Name":"究极神兵绝境战","MapID":0,"A":{"X":100.8771,"Y":9.536743E-07,"Z":82.41628,"ID":0,"Active":true},"B":{"X":118.813377,"Y":9.536743E-07,"Z":98.87351,"ID":1,"Active":true},"C":{"X":99.95222,"Y":0.0,"Z":118.287018,"ID":2,"Active":true},"D":{"X":82.2875,"Y":0.0,"Z":99.7309647,"ID":3,"Active":true},"One":{"X":100.186066,"Y":0.0,"Z":99.2162247,"ID":4,"Active":true},"Two":{"X":0.0,"Y":0.0,"Z":0.0,"ID":5,"Active":false},"Three":null,"Four":null}
我们以A来讲解。
"A":{"X":100.8771,"Y":9.536743E-07,"Z":82.41628,"ID":0,"Active":true}
"标点名字(可以随便写,真正决定标哪个的是id)":{"X":X坐标,“Y”:Y坐标,"Z":Z坐标,“ID”:标的点(用法是A算作0,往后的标点以此类推),"Active":true或false,代表该标点是否可见}
那么如何获取某个点在某个副本内的坐标呢?这就得自己想办法了。
如果想要更详细的了解标点(和其他日志行),请看我的另一篇专栏:https://www.bilibili.com/read/cv21873374

练习题
在完成入门之章三个章节全部的学习后,你应该已经能自己写出绝大部分副本的触发器了。所以这既是练习题,也算是期末考试,如果能靠自己的能力写出,就说明你已经理解入门这三章的内容了。(至于参考答案?这个看缘分,我也不知道我什么时候回去玩FF14)
标记和优先级练习
1.在绝巴哈P2中,为第二次火连线标记禁止。
2.在绝龙诗P6中,为4名复仇之炎(黑色分散)标记攻击,2名纠缠之炎(白色分摊)标记止步,其他2个无点名的玩家标记禁止。
3.在万魔殿炼狱篇第四层中的支配者机制时,为每轮踩塔的玩家按优先级标记攻击。
4.在绝亚P1麻将中,将所有玩家的麻将点名数字按从小到大的顺序发送到小队频道。
组合机制练习
1.在欧米茄时空狭缝阿尔法篇第二层中龙爹做出2次动作后,为玩家TTS播报龙爹将会释放的技能。
2.在绝OP2男女出现后,根据男女各自的形态为玩家TTS播报男女机制。
3.在绝亚P1麻将中,将吃易伤后再被飞机劈/冲而死亡的玩家发送到小队频道。
本地标点练习
1.不使用别人的标点,在刚进入副本时标出万魔殿炼狱篇第三层中场外的标点(提示:在副本结束后,原本的场地会变大,所以场外的点是可以合法标记的)。
2.在绝亚P3放置结晶时,标出四个放置结晶的准确位置。
3.在绝巴哈P3天地踩塔时取消A标点防止看A为塔,在天地踩塔结束后再标上。