
盖特系统最初是作为武器时序控制器设计的,主要用于实现武器充能、过渡等阶段性状态变化。其核心机制是通过|StageX|阈值和|Rate|参数来控制武器的升档/降档时序。随着Mod社区的研究探索,这套系统被创新性地应用于多武器切换场景,并衍生出许多令人惊叹的创意应用。
进入正题。
下面展示一下完整的盖特逻辑。为了同步计数,偶数武器继承了奇数武器,仅将抛射体改为|AA=YES|

以下为盖特逻辑相关的词条。

WeaponX和EliteWeaponX完全可以使用相同的武器
|TurretCount|:炮塔数量限制,启用|WeaponX|多武器系统
使用|WeaponX|系统(包括盖特逻辑)必须满足|TurretCount≥1|,这是基础要求,否则
因为|Report|而关联到0070DF8A而报错炸掉。同时会让主武器|Primary|和副武器|Secondary|无效,精英武器同理。
|IsGattling|:是否由盖特逻辑控制|WeaponX|的分配。
Aircraft类战机无法正常使用盖特逻辑,仅会使用|Weapon1|。
|WeaponStages| 决定盖特逻辑有几个阶段
以|StageX|控制盖特计数器多少以内为此阶。
[X]阶保持到计数器达到多少后转到下一阶,[X]有效范围受制于|WeaponStages|的值。
剩余部分用我画的图片来继续说明,以三阶盖特为例|WeaponStages=3|

每个使用盖特逻辑的单位都有一个[计数器]:
攻击状态使用|RateUp|:每帧增加的计数值,[计数器]上升▲。
非攻击状态使用|RateDown|:每帧减少的计数值,[计数器]下降▼。
特殊情况:若|RateDown=0|,则停止攻击时立即重置到初始档位。
武器切换规则:
武器按 序列号(12, 34, 56, …) 逐级切换,每档对应一个计数器阈值(StageX)。
对地武器:奇数编号(1, 3, 5, …)。
对空武器:偶数编号(2, 4, 6, …)。
最高档位:
当盖特计数器≥倒数第二档阈值时(如上图|Stage2|),使用最终武器(即最高档位|Stage3|所使用的武器)。
停止攻击后,|RateDown| 和最高档位数值(如上图|Stage3|)决定掉档速度(即延迟时间)。
循环盖特(Ares引擎词条|Gattling.Cycle|):
启用后,最高档位(上图中|Stage3|)不再作为终点,而是在维持一段时间(由最高档位|Stage3|的数值决定)后自动重置至初始档位(即|Weapon1和2|所在的|Stage1|阶段)。
跳阶规则:
循环模式下必然跳阶(从 StageN 直接回到 Stage1)。
非循环模式(默认) 则不会跳阶,而是逐步升档或掉档。
如果不满足|WeaponCount|≥|WeaponStages*2| 那么你也将得到一个精致的0070DF8A。
Stage1 ≤ Stage2 ≤ ... ≤ StageN
Phobos引擎已补全优化盖特逻辑的武器选用限制,可以让奇数偶数武器分别使用不同|Verses|的弹头来攻击,如下演示。

优化LandTargeting=2的索敌机制,并让盖特单位无法攻击时正常降档
每日构建版Phobos引擎已支持步兵使用该逻辑,未来会添加进DevBuild#48版。

代码和坦克完全一样,同样需要使用|TurretCount|启用
比如我们要调用光棱坦克[SREF]的精英武器[SuperComet],里面仅有音效指定语句|Report=PrismTankAttack|并没有开火动画|Anim=XXX|,我们只需要增加一个空动画,并将|Report=PrismTankAttack|移到art的[XXX]动画块中即可。

GIF无法播放音乐,就不演示了……
再次提醒,一定要养成拆分文件的习惯,不要在原rulesmd.ini或artmd.ini内随意修改,除非你真的知道在改些什么。
顺道讲一下单位的开火坐标吧,需要在Artmd.INI或其拆分文件内修改

如果使用了多武器系统,主副武器系统和其坐标也是不使用的。
关于这个FLH,我画个草图给个参考吧,高(H)就不画了。

篇幅有限,其详细机制请前往DIYWiki内搜索“FLH”查看,建筑开火坐标稍有不同,可搜索|PrimaryFirePixelOffset|查看。
https://wiki.ra2diy.com/w/3.art%E8%AF%8D%E5%85%B8

原版不循环盖特与《心灵终结》循环盖特天启复刻。
代码就不放了,如果学到这里还不会,那还是劝你放弃吧,毕竟比红警好玩的游戏可太多了。

具体请参考DIYWiki资料,搜索|IsGattling|有示例代码。
https://wiki.ra2diy.com/w/2.%E5%8D%95%E4%BD%8D%E5%B1%9E%E6%80%A7rules%E8%AF%8D%E5%85%B8#IsGattling
虽然我实现了基于|Verses|的多武器,但是强攻友军时操控性极差,会有发呆,卡顿问题,偶尔还需频繁重新下达命令,不过对敌还是没什么问题的。

难绷的时序系统,连续两次轮空蜘蛛和鲍里斯……

代码来啦!不过只展示必要词条,抛射体/弹头/特效什么的自己添加:

当然同样具备蛋疼的特质,比如档位归零后会重新索敌,如果敌方在转阶段前就进入低射程范围内,就仅会触发一阶段假武器等等

难望其项背……Orz
利用|TurretCount|和|WeaponCount|启用多武器逻辑,启用多少只看|WeaponX|,也就是盖特的|WeaponStages|没有用上的武器也可以通过Ares引擎的|NoAmmoWeapon|等用起来。

虽然Ares/Phobos引擎对其进行了功能扩展,但盖特系统受限于原版简陋的设计性,存在诸多硬性限制和缺陷。现代引擎(如Kratos/WIC)提供了更先进、更自由的多武器实现方案,彻底摆脱了|StageX/Rate|等时序参数的约束。这些新方案不仅解决了原版的兼容性问题,还大幅简化了配置流程。不过作为原版经典逻辑,盖特系统在复刻传统单位行为时仍具参考价值。

此为WIC引擎的多武器功能演示,可去我的动态查看详情↓↓

期待您的点赞