找回密码
 初始化身份识别芯片
搜索
查看: 2619|回复: 6

关于模块船不会闪现的疑问

[复制链接]

巡洋大副

发表于 2025-1-27 21:33:33 | 显示全部楼层 |阅读模式
我发现模块船闪现、驱动器这些位移技能玩家手操是没有问题,但ai不会自主使用。比如兽耳助手里面的多模块辐射,你让军官开他就只会傻乎乎的对炮。但原版的单舰辐射军官开起来就会闪现。不知道这是为什么。

战列舰长

发表于 2026-10-13 13:03:16 | 显示全部楼层
我这边已经找到原因了,原因是ai使用闪现前有一个碰撞阻挡判定要判定闪现路径落点是否阻挡。而模块船自身的模块会阻挡自己的闪现判定。让ai一直判定失败认为有阻挡不能用闪现。

势力巨擘

???

发表于 2026-10-13 13:25:44 | 显示全部楼层
很有趣的现象,但作为一个刚好特别喜欢做模块船的新人modder,我也有一些自己的猜测……
检查一下对应模组的ship_data.csv,然后尝试找到模块的数据,看看hints一栏里面有没有写MODULE
因为按理说模块本身在被摧毁之前是不会被认为和本体有碰撞的才对,除非游戏并不觉得这是一个模块……
//错误:目标与在人之领现存登记或历史记录中的已登记的生物特征不匹配,无法获取身份信息。
建议:上传数据进行临时分类?处理中。//-错误//-错误//-正在重新定向页面//
愿我们终于忆中的故土重逢.
May the last to the dust.
//ERROR:NullException//处理您的请求时遇到了未知错误,请根据人之领 信息安全标准 升级您的Tripad后再次尝试

势力巨擘

???

发表于 2026-10-13 14:32:12 | 显示全部楼层
好了,进一步结论出来了:
我临时修改了我自己两种舰体前方有模块的主力舰的战术系统,然后进行了测试,发现应该是displacer的战术系统AI的问题,因为我这边测试发现burndrive,phaseteleporter都是会正常使用的,唯独辐射同款的闪现(也就是displacer)不会
猜测是displacer这个战术系统自身AI局限性将模块判断为了舰船从而被阻挡,因此拒绝使用
261E97B99CE7062B63B9DA0B7E702C0A.png 6B4C8E480089990093A3F05DE23B8BCB.png A877781EE14BAAF4B7DC8F305F2F7853.png
此处展示一下确认到成功使用战术系统的截图,但改成displacer就不会使用了
这也是为何原版的闪现放模块船上ai不会使用的原因。  详情 回复 发表于 2026-10-13 16:15
你的猜测是对的,在使用ai进一步深入源码分析后发现,原版 `displacer`:`type:DISPLACER`、`aiType:PHASE_DISPLACER`、`range:300`,AI 是引擎类 `com.fs.starfarer.combat.ai.system.voidsuper`。它在激活前要做一  详情 回复 发表于 2026-10-13 16:13
你的猜测是对的,在使用ai进一步深入源码分析后发现,原版 `displacer`:`type:DISPLACER`、`aiType:PHASE_DISPLACER`、`range:300`,AI 是引擎类 `com.fs.starfarer.combat.ai.system.voidsuper`。它在激活前要做一  详情 回复 发表于 2026-10-13 16:13
//错误:目标与在人之领现存登记或历史记录中的已登记的生物特征不匹配,无法获取身份信息。
建议:上传数据进行临时分类?处理中。//-错误//-错误//-正在重新定向页面//
愿我们终于忆中的故土重逢.
May the last to the dust.
//ERROR:NullException//处理您的请求时遇到了未知错误,请根据人之领 信息安全标准 升级您的Tripad后再次尝试

战列舰长

发表于 2026-10-13 16:13:11 | 显示全部楼层
希尔贝拉 发表于 2026-10-13 14:32
好了,进一步结论出来了:
我临时修改了我自己两种舰体前方有模块的主力舰的战术系统,然后进行了测试,发 ...

你的猜测是对的,在使用ai进一步深入源码分析后发现,原版 `displacer`:`type:DISPLACER`、`aiType:PHASE_DISPLACER`、`range:300`,AI 是引擎类
`com.fs.starfarer.combat.ai.system.voidsuper`。它在激活前要做一次 落点净空判定 ,遍历战场上每一艘 Ship
(只跳过战机、穿梭舱、自身):

- 判定①:落点到该船距离 `< 该船碰撞半径 + 本舰碰撞半径 + 50` → 判为不净空,直接 return;
- 判定②:该船前方 30° 锥内含落点、且与本舰 同属主 (非残骸)→ 阈值再加 500。

这个循环没有排除本舰自己的子模块。

战列舰长

发表于 2026-10-13 16:13:40 | 显示全部楼层
希尔贝拉 发表于 2026-10-13 14:32
好了,进一步结论出来了:
我临时修改了我自己两种舰体前方有模块的主力舰的战术系统,然后进行了测试,发 ...

你的猜测是对的,在使用ai进一步深入源码分析后发现,原版 `displacer`:`type:DISPLACER`、`aiType:PHASE_DISPLACER`、`range:300`,AI 是引擎类
`com.fs.starfarer.combat.ai.system.voidsuper`。它在激活前要做一次 落点净空判定 ,遍历战场上每一艘 Ship
(只跳过战机、穿梭舱、自身):

- 判定①:落点到该船距离 `< 该船碰撞半径 + 本舰碰撞半径 + 50` → 判为不净空,直接 return;
- 判定②:该船前方 30° 锥内含落点、且与本舰 同属主 (非残骸)→ 阈值再加 500。

这个循环没有排除本舰自己的子模块。

战列舰长

发表于 2026-10-13 16:15:20 | 显示全部楼层
希尔贝拉 发表于 2026-10-13 14:32
好了,进一步结论出来了:
我临时修改了我自己两种舰体前方有模块的主力舰的战术系统,然后进行了测试,发 ...

这也是为何原版的闪现放模块船上ai不会使用的原因。

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2026-11-6 00:24

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio | IP地址位置数据由纯真CZ88提供支持

快速回复 返回顶部 返回列表