SPT Triggered Effects——跨物品类别触发效果系统
治疗弹、增益刀、恢复手雷……
这些以前听起来比较离谱的玩法,现在已经完成了基础功能验证。
目前已经接入并测试了五类物品:
-
子弹;
-
医疗物品;
-
食物和饮料;
-
刀具及近战武器;
-
手雷及其爆炸、破片。
这五类物品都可以通过同一套规则结构和效果执行系统,触发生命、能量、水分以及游戏内针剂 Buff 等效果。
这套功能是做什么的?
这套系统主要解决一个问题:
把物品类别和效果类型拆开。
原本子弹主要负责造成伤害,医疗物品负责治疗,食物负责恢复能量和水分,刀具和手雷则有各自固定的伤害逻辑。
现在,我为这些物品增加了一套额外的事件触发机制。
不同物品可以在弹药命中、一次使用动作正常完成、近战命中,或爆炸与破片产生有效伤害事件时,执行配置好的效果。
需要说明的是,这套系统是在物品原有逻辑之外追加执行配置效果,并不会默认替换弹药、近战武器或爆炸物本身的伤害。因此,治疗弹或恢复手雷在当前实现下仍可能保留原有伤害。若要制作完全不造成伤害的版本,还需要进一步调整原始伤害逻辑,并确保对应的命中或伤害触发事件仍然能够正常产生。
例如:
-
子弹命中后为目标恢复生命;
-
子弹命中后添加针剂 Buff;
-
医疗物品的一次使用动作正常完成并结算后,恢复能量和水分;
-
食物或饮料的一次使用动作完成后获得临时增益;
-
刀具命中后添加特殊状态;
-
手雷爆炸或破片产生有效伤害事件后,触发恢复效果。
这些效果可以单独使用,也可以组合在同一个物品上。
例如,一发特殊弹药可以同时设置为:
恢复命中目标的生命+恢复能量和水分+添加一个针剂 Buff+一定概率附带副作用
系统支持为整条规则以及其中的单个效果分别设置触发概率。
一、子弹触发效果
子弹命中目标后,可以根据弹药 ID 执行对应规则。
目前已经验证:
-
改变命中目标的生命值;
-
改变命中目标的能量和水分;
-
为命中目标添加针剂 Buff;
-
多个效果同时执行;
-
不同弹药使用不同规则。
因此可以用来制作治疗弹、增益弹、带有异常状态的弹药,或者同时具有收益与副作用的实验弹药。
在命中或伤害事件能够正常成立的前提下,效果可以作用于队友或敌人,具体取决于实际命中对象、物品规则以及 Fika 房间设置。
二、医疗物品触发效果
医疗包、绷带以及其他医疗物品,可以在一次使用动作正常完成并结算后执行额外效果。
目前已经验证:
-
额外恢复生命;
-
改变能量和水分;
-
添加针剂 Buff;
-
添加正面或负面状态;
-
同时执行多个效果。
例如,可以设计一种恢复能力较强的医疗物品,在治疗的同时补充能量和水分,但使用后附带某种负面状态。
系统会判断本次使用动作是否正常完成。中途取消时,不会结算本次使用动作对应的附加效果,避免通过重复取消动作反复触发。
三、食物和饮料触发效果
食物和饮料同样会在一次使用动作正常完成并结算后触发附加效果。
目前可以附加:
-
生命值变化;
-
能量和水分变化;
-
针剂 Buff;
-
正面或负面状态;
-
多种效果组合。
这部分可以用来制作战斗口粮、强化饮料、实验食品,或者在恢复基础属性的同时提供短时间战斗增益。
也可以为效果加入代价,例如增益结束后降低能量,或者附带其他负面状态。
四、刀具和近战武器触发效果
近战武器会在实际命中目标后,根据当前使用的刀具执行对应规则。
目前已经验证:
-
改变命中目标的生命值;
-
改变命中目标的能量和水分;
-
为命中目标添加针剂 Buff;
-
添加正面或负面状态;
-
单次命中执行多个效果。
这部分可以实现带毒刀具、命中后为目标添加增益或其他特殊状态的近战武器,也可以制作带有辅助效果的特殊装备。
刀具之间的差异不再只体现在伤害、攻击距离和攻击速度上,也可以通过命中效果形成不同的用途。
五、手雷、爆炸和破片触发效果
手雷的爆炸伤害和破片命中也已经接入触发系统。
目前可以执行:
-
生命值恢复或减少;
-
能量和水分变化;
-
针剂 Buff;
-
正面或负面状态;
-
多个效果组合。
因此可以设计附带恢复效果的手雷、通过爆炸或破片命中为目标添加增益的手雷,或者附带特殊状态的爆炸物。
当前触发入口仍然来自实际产生的伤害事件。也就是说,如果目标没有产生有效的伤害事件,对应的附加效果也不会触发。在多破片、多部位命中的情况下,一次爆炸可能产生多次独立事件。
这部分仍在继续测试,后续会根据实际表现完善触发次数限制和去重逻辑,避免某些手雷因为破片数量过多导致效果叠加失控。
共用的效果系统
五类物品并不是分别编写了五套固定逻辑,而是共用同一套效果执行系统。
目前支持的效果包括:
-
生命值变化;
-
能量变化;
-
水分变化;
-
直接伤害;
-
正面状态;
-
负面状态;
-
游戏内 Stimulator(针剂)Buff;
-
多效果组合;
-
规则触发概率;
-
单个效果触发概率。
系统可以调用游戏数据库中现有的针剂 Buff 组,并将它们附加到不同物品上。
因此,原本属于针剂的效果,也可以通过弹药、医疗物品、食物、刀具或手雷触发。
关于 Fika 联机兼容
本轮对子弹、医疗物品、食物与饮料、刀具和手雷的验证,全部是在 Fika 联机战局 中完成的,并不是只完成单机测试后再推测联机兼容性。
当前测试中,五类物品的数值效果、针剂 Buff 和多效果组合均能在联机环境中正常触发。
联机使用时,各成员需要安装相同版本的:
-
插件 DLL;
-
效果规则文件;
-
Buff 清单;
-
相关客户端配置。
如果成员之间的规则或插件版本不同,可能出现属性显示和实际效果不一致的问题。
另外,依赖命中或伤害事件的功能仍然会受到 Fika 房间设置影响,例如 Friendly Fire、伤害是否成立、多弹丸和多破片判定等。这套系统不会主动绕过 Fika 本身的房间规则。
游戏内属性显示与客户端适配
除了实际触发效果,我也在处理物品详情界面的属性显示。
这部分并不是简单地给物品增加几行说明文字。
EFT/SPT 现有客户端的物品属性显示链路,主要用于展示游戏中已经定义好的固定属性。插件规则中额外加入的生命、能量、水分、触发概率,以及通过规则额外调用的针剂 Buff,并不会自动出现在物品详情界面中。
也就是说,即使效果已经能够在战局内正常触发,客户端仍然无法直接识别并显示这些自定义内容。
因此,我需要额外适配物品属性的生成、注入和刷新流程,将插件中的效果规则转换成客户端能够显示的属性信息,并处理物品状态发生变化时的界面更新。
当前已经验证:
-
正面效果使用蓝色显示;
-
负面效果使用红色显示;
-
可以显示效果数值与触发概率;
-
装弹、退弹后属性仍然保留;
-
弹药合并、拆分后属性不会丢失;
-
重复刷新物品时不会无限添加相同属性;
-
在当前测试配置下,界面显示内容与实际运行规则保持一致。
这部分适配的目标,是让玩家在使用物品之前,就能直接看到它包含的附加效果、具体数值和触发概率,而不是只能进入战局后通过实际触发来判断效果。
可以做出哪些玩法?
目前已经能够规划的内容包括:
-
治疗弹和远程支援弹药;
-
为队友添加临时 Buff 的增益弹;
-
通过爆炸或破片命中触发恢复、增益效果的手雷;
-
带毒刀具以及其他附带正面或负面状态的近战武器;
-
带有针剂效果的食物和饮料;
-
强力但存在副作用的医疗物品;
-
围绕医疗、支援和状态效果设计的联机装备。
这些只是比较直接的用法。
由于触发方式和效果类型是分离的,后续可以通过规则组合出更多用途,不需要为每一种特殊物品单独编写插件逻辑。
后续计划
下一步准备将这套系统与物品数据库修改工具联动,提供图形化配置界面。
计划中的基本流程是:
-
选择需要修改或者克隆的游戏物品;
-
选择弹药命中、一次使用动作正常完成、近战命中、爆炸或破片命中等触发方式;
-
添加生命、能量、水分或针剂 Buff;
-
设置数值和触发概率;
-
预览生成的数据库与插件规则;
-
检查物品 ID 和 Buff 名称;
-
生成客户端配置及联机安装包。
这样在制作特殊物品时,就不需要手动编写大量 JSON 配置。
当前测试环境
本轮开发和验证使用的环境为:
-
SPT:
4.0.13 -
EFT Build:
40087 -
SPT Triggered Effects:
0.2.0-alpha.5.5 -
Fika Client:
2.3.9 -
Fika Server:
2.3.5
目前只能确认这套版本组合已经完成测试。
SPT、EFT 或 Fika 更新后,内部接口和运行逻辑可能发生变化,因此其他版本需要重新构建和验证。
当前开发状态
目前五类物品的基础触发链路已经跑通,生命、能量、水分、针剂 Buff 以及多效果组合均完成了实际验证。
接下来主要处理以下内容:
-
多弹丸和多破片的触发次数;
-
极端情况下的重复事件;
-
联机成员之间的配置一致性;
-
不同版本的兼容测试;
-
安装包和文件校验;
-
示例规则与使用文档;
-
图形化配置工具。
当前版本仍然处于开发和测试阶段,更适合个人使用或配置统一的私人联机环境,暂时不会作为正式稳定版本发布。
碎碎念
目前,治疗弹、特殊状态刀具、恢复手雷这些玩法,已经有了实际可运行的基础。
其实早在两年前第一次发布作品时,我就参考过论坛里的相关帖子,尝试验证“子弹触发 Buff”是否可行。可惜当时技艺不精,对游戏内部逻辑和插件开发也知之甚少,最终没能把这条触发链路跑通。
如今已经毕业,学识和开发经验也比当时增长了许多。再次回头做这件事,当年那些看似虚无缥缈的宏大设想,终于不再只能停留在设想里,已经可以从一条触发链路、一套规则开始,一点点变成真正能够运行的功能。
后续我会继续完善边界情况、配置工具、安装流程和版本兼容,并根据测试结果逐步增加可以直接使用的示例规则。
大家也可以聊聊,还想看到哪些特殊物品和玩法。
比如:















太强了
牛的
6666666666666