如此强悍的连续作战能力,太喜欢了{:tieba_03:},希望以后能有更多种武器,尤其是导弹类,目前比较少
船插切换不能内置吧,还有能不能把有的船插效果写出来
请问长夜是怎么获取的,没找到{:4_91:}
在任务发现了失落舰船后来到人联首都星系,开加速直冲人联首都那颗球,被一支舰队追击,触发任务被人联舰队检查交战,还没开战就报错弹出
9742041 INFOcom.genir.renderer.bridge.context.TextureManager- Loading DDS texture 14691/22786 [..\mods\人类联合帝国 v1.0.9\graphics\su_47\fx\silent_wave.png]
9742075 INFOcom.genir.renderer.bridge.context.TextureManager- Texture loading time: 24.79ms
9742559 INFOorg.boxutil.manager.CombatRenderingManager- 'BoxUtil' rendering plugin join layer: 'ABOVE_PARTICLES_LOWER'
9742645 ERROR com.fs.starfarer.combat.CombatMain- java.lang.UnsupportedOperationException: UnsupportedOperationException: GL44.glBindTextures
java.lang.UnsupportedOperationException: UnsupportedOperationException: GL44.glBindTextures
at com.genir.renderer.bridge.opengl.GL44.glBindTextures(GL44.java:93)
at org.boxutil.define.GLWrapper$Texture.glBindTextures(GLWrapper.java:7241)
at org.boxutil.units.standard.attribute.MaterialData.putShaderTexture(MaterialData.java:102)
at org.boxutil.backends.shader.BUtil_EntityImpl$Mesh.processSpriteEntity(BUtil_EntityImpl.java:160)
at org.boxutil.backends.shader.BUtil_EntityImpl$Mesh.processMeshCurrentLayout(BUtil_EntityImpl.java:546)
at org.boxutil.backends.core.gameloop.BUtil_SharedRenderingPass.drawEachLayer(BUtil_SharedRenderingPass.java:90)
at org.boxutil.backends.core.gameloop.BUtil_CombatEFS$Renderer.render(BUtil_CombatEFS.java:113)
at com.fs.starfarer.combat.entities.CustomCombatEntity.render(Unknown Source)
at com.fs.starfarer.combat.entities.BaseEntity.render(Unknown Source)
at com.genir.renderer.overrides.LayeredRenderer.renderOnly(LayeredRenderer.java:32)
at com.fs.graphics.LayeredRenderer.renderOnly(Unknown Source)
at com.genir.renderer.overrides.CombatEngine.renderLayer(CombatEngine.java:63)
at com.genir.renderer.overrides.CombatEngine.render(CombatEngine.java:53)
at com.fs.starfarer.combat.CombatEngine.render(Unknown Source)
at com.fs.starfarer.combat.CombatState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
做到月光倒影,提示找kk,去了和无人舰队打完,说是能在遗弃舰上摸到异常灵能模块,没摸到,然后去恒星边上的废弃空间站没反应了,点进去只有离开,是卡什么了?{:tieba_34:}
xuehuheshan 发表于 2026-10-4 00:29
做到月光倒影,提示找kk,去了和无人舰队打完,说是能在遗弃舰上摸到异常灵能模块,没摸到,然后去恒星边上 ...
更新最新版本,这个已经修复了
KK剧情做完是不是就结束啦~
好耶
我移除了英仙座冠军mod后载入时崩溃:
java
java.lang.RuntimeException: Hullmod with id not found for faction
at com.fs.starfarer.api.impl.campaign.CoreLifecyclePluginImpl.verifyFactionData(...)
at ... onGameLoad(...)
崩溃原因
游戏在加载存档 save_XHZ_8464736910730250676 时,要验证派系数据。
结果发现:
派系:Imperium_of_Man,也就是 人类联合帝国
它引用了一个船插/hullmod:pc_observer_zero_cp
但当前游戏里找不到这个 hullmod
所以直接抛异常,存档加载失败。
简单说:
人类联合帝国这个 mod 的数据里,写了一个叫 pc_observer_zero_cp 的 hullmod,但提供这个 hullmod 的 mod 没加载、版本不对,或者这个 hullmod 已经被删了。
谁的问题?
从名字看:
pc_ 前缀很可能来自 Persean Champion / 英仙座冠军 / PC 相关 mod
Imperium_of_Man 是 人类联合帝国 v1.0.10
日志里也能看到 PC 相关东西:
text
PerseanChampionRegister
PCFont
PCIME
PCArenaPlugin
说明你装了 Persean Champion 相关 mod。
但 pc_observer_zero_cp 这个 hullmod 没被注册成功。常见原因:
人类联合帝国更新了,但 Persean Champion 没更新
Persean Champion 更新了,移除了 pc_observer_zero_cp,但人类联合帝国还在引用它
你删掉/禁用了提供 pc_observer_zero_cp 的 mod
mod 加载顺序导致 hullmod 没注册
人类联合帝国的 faction 文件是旧版,和当前 PC mod 不匹配
前面那些 TerraformingMastery: Unapplying... 刷屏和 Google Drive 版本检查超时,都不是崩溃原因,只是噪音。
怎么排查
先到你的 mods 文件夹里搜索:
text
pc_observer_zero_cp
推荐用 Notepad++、Everything、grep 之类工具搜整个 mods 文件夹。
重点看:
text
mods\人类联合帝国 v1.0.10\data\world\factions\Imperium_of_Man.faction
或者类似 faction 文件里,是不是有:
json
pc_observer_zero_cp
如果搜得到,说明是人类联合帝国在引用它。
然后再搜哪个 mod 定义了它,通常在:
text
data\hullmods\hull_mods.csv
或者某个 .hullmod 文件里。
如果搜不到定义,那就是提供它的 mod 缺失或版本不对。
解决方案
方案 1:恢复/更新提供 pc_observer_zero_cp 的 mod
优先找这几个 mod 的最新版:
Persean Champion / 英仙座冠军 / PC 相关
人类联合帝国 v1.0.10
特别是如果人类联合帝国和 PC 有联动,两个 mod 必须版本匹配。
方案 2:更新人类联合帝国
如果人类联合帝国新版已经不再引用 pc_observer_zero_cp,更新后可能就能读档。
方案 3:临时编辑 faction 文件,移除这个 hullmod 引用
先备份,然后打开:
text
mods\人类联合帝国 v1.0.10\data\world\factions\Imperium_of_Man.faction
搜索 pc_observer_zero_cp,把相关行删掉或注释掉。
但注意:这会改变派系数据,可能影响人类联合帝国舰船配置。只建议用来救存档或测试。
方案 4:禁用人类联合帝国或 PC 相关 mod
如果二选一,可以开新档测试。但旧存档可能因为缺派系/船插而坏,先备份。
最推荐做法
按这个顺序:
备份存档和 mod 列表
在 mods 里全局搜索 pc_observer_zero_cp
找到它是谁引用的、谁应该提供的
更新或恢复对应 mod
如果找不到,编辑 Imperium_of_Man.faction 临时移除该 hullmod 引用
再加载存档测试
这次不是显卡、内存问题,就是 mod 数据缺失/版本不匹配。核心冲突是:
text
人类联合帝国<->Persean Champion / PC 相关 hullmod
先把 pc_observer_zero_cp 这个 hullmod 找回来,或者把引用它的地方去掉,游戏就能继续读档。
————————————————————————————分割线——————————————————————————————
我重新添加英仙座冠军mod后载入游戏听到主菜单音乐并且对应按钮位置有音效,但是屏幕停留在载入界面未响应:
text
99397 ERROR com.fs.starfarer.combat.CombatMain
java.lang.RuntimeException: Hullmod with id not found for faction
也就是说:游戏在读档加载阶段校验派系数据时,发现 Imperium_of_Man 这个派系引用了一个不存在的船插/hullmod:pc_observer_zero_cp,于是直接崩溃。
关键判断
崩溃发生在:
CoreLifecyclePluginImpl.verifyFactionData → onGameLoad
这是读档时的派系数据校验,不是战斗崩溃。
出问题的派系是:
Imperium_of_Man,对应你的 人类联合帝国 v1.0.10 mod。
缺失的 hullmod ID 是:
pc_observer_zero_cp
pc_ 前缀很像 Persean Champion / 英仙座冠军 的船插 ID,例如“观察者协议”相关。
日志里 Persean Champion 确实加载了,但当前版本/当前 mod 组合中没有注册 pc_observer_zero_cp 这个 ID。
所以根本原因是:人类联合帝国的派系配置或你的存档中,错误引用了 Persean Champion 的船插 pc_observer_zero_cp,但当前加载的 Persean Champion 版本里没有这个 hullmod,或者 ID 不一致。
常见触发情况:
中途更新/回退/增删了 Persean Champion 或 人类联合帝国。
人类联合帝国的 faction 文件错误硬编码引用了 pc_observer_zero_cp。
Persean Champion 的版本变化,移除了或改了该船插 ID。
存档保存时存在该船插,现在 mod 环境已经对不上。
解决办法
优先备份存档和 mod。
在 mods 和存档里搜索这个字符串:
text
pc_observer_zero_cp
重点检查:
text
D:\Starsector\mods\人类联合帝国 v1.0.10\data\world\factions\Imperium_of_Man.faction
D:\Starsector\mods\人类联合帝国 v1.0.10\data\config\exerelinFactionConfig\Imperium_Man.json
D:\Starsector\mods\persean_champion\data\hullmods\hull_mods.csv
D:\Starsector\saves\save_XHZ_8464736910730250676\campaign.xml
如果发现 Imperium_of_Man 的派系文件或 Nexerelin 派系配置里写了:
text
pc_observer_zero_cp
但 persean_champion 的 hull_mods.csv 里根本没有这个 ID,就把这一项删掉,或者改成实际存在的 hullmod ID。
如果只在存档 campaign.xml 里找到,可以备份后删除相关条目。但这个风险较高,改之前一定备份。
最稳妥的做法:
回退到保存这个存档时的 Persean Champion 和 人类联合帝国 版本。
或者更新这两个 mod 到互相兼容的版本。
如果不会改文件,可以暂时禁用其中一个测试,但当前存档可能已经依赖该派系数据,禁用后不一定能救回。
其他日志内容说明
日志里大量 SSL 证书错误、版本检查失败、JNA 注入失败、贴图缺失、FOB 派系关系错误、TerraformingMastery 重复输出等,都不是这次崩溃的直接原因。真正导致游戏中止的是最后那个:
text
Hullmod with id not found for faction
结论:这是 mod 兼容/派系数据引用错误,不是硬件或原版游戏问题。修复方向是删除或修正 Imperium_of_Man 对 pc_observer_zero_cp 的引用,并确保 Persean Champion 与人类联合帝国版本匹配。
小濠子 发表于 2026-10-5 15:13
我移除了英仙座冠军mod后载入时崩溃:
java
java.lang.RuntimeException: Hullmod with id
我研究了一下,黑屏是驱动问题,修好了,崩溃在更新mod后也好了,没事了()
求问, 最后拿了60dp的 奇点 驱逐舰是最后的剧情了么.
好像没遇到过介绍里最大的那艘船. {:tieba_30:}
如何手动开启任务线和跳过部分剧情?
长夜不能捞吗,打完说全体远离然后就没了
游戏过程中,发现一个bug,我用ai检查了一下,具体如下
# 「永夜」脊炮命中无 bounds 目标导致战斗崩溃(NPE)
> AI 使用说明:由 AI 助手协助整理撰写
## 环境
- 游戏版本:0.98a-RC8
- Mod:人类联合帝国 v1.0.11
## 表现
战斗中弹出 Fatal 窗口,战斗随即中断:
```
Fatal: Cannot invoke "com.fs.starfarer.api.combat.BoundsAPI$SegmentAPI.getP1()" because "seg" is null
Check starsector.log for more info.
```
`starsector.log` 中的完整堆栈:
```
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.combat.BoundsAPI$SegmentAPI.getP1()" because "seg" is null
at data.scripts.weapons.Silent_ForeverNightSpinalGunOnHit.onHit(Silent_ForeverNightSpinalGunOnHit.java:39)
at com.fs.starfarer.combat.entities.Missile.notifyDealtDamage(Unknown Source)
at com.fs.starfarer.combat.E.A.D.o00000(Unknown Source)
at com.fs.starfarer.combat.E.oOOO.super(Unknown Source)
at com.fs.starfarer.combat.E.oOOO.super(Unknown Source)
at com.fs.starfarer.combat.CombatEngine.advanceInner(Unknown Source)
at com.fs.starfarer.combat.CombatEngine.advance(Unknown Source)
at com.fs.starfarer.combat.CombatState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
```
触发条件:「永夜」脊状炮(`silent_forever_night_spinal`)的弹体命中一个**无护盾**目标时。
## 根因
文件:`data/scripts/weapons/Silent_ForeverNightSpinalGunOnHit.java`
第 38–39 行:
```java
var seg = getNearestSegmentOnBounds(point, targetShip);
var dir = Vector2f.sub(seg.getP1(), seg.getP2(), null); // seg 可能为 null
```
`getNearestSegmentOnBounds()`(第 74–93 行)沿用了 LazyWizard 的工具方法,注释里也写着
`// Fallback in case entity somehow lacks any segments in its bounds`,但兜底并未实现:
- 第 78 行 `SegmentAPI closestSeg = null;` 遍历结束后**直接 return**——当目标 bounds 内没有任何线段时,返回的就是 null;
- 第 76 行 `entity.getExactBounds()` 自身返回 null 的情况同样未判断(会先在第 80 行 `bounds.update(...)` 处再抛一次 NPE)。
调用方第 39 行拿到 null 后立即执行 `seg.getP1()`,抛出 NPE。由于异常发生在 `Missile.notifyDealtDamage` 内,被 CombatMain 捕获后直接弹 Fatal 并中断战斗。
目标 bounds 为空的现实来源:部分舰船 hull 未定义 `"bounds"`,或使用空贴图占位(如 `graphics/fx/empty.png`)——典型是隐形无人机、护盾体一类的辅助单位。这类目标 `getExactBounds()` 没有任何线段,就会走进 null 分支。命中带护盾的目标走的是第 43 行的另一条分支(纯角度计算),因此不受影响。
同 mod 的 `data/scripts/util/SilentUtil.java` 中相同形式的遍历是有 `if (potTarget.getExactBounds() == null) continue;` 兜底的,可见此处属于遗漏。
## 修复建议
给第 38–41 行加空值兜底,fallback 直接复用第 43 行护盾分支已有的角度算法:
```java
var seg = getNearestSegmentOnBounds(point, targetShip);
// 某些无 bounds / 空贴图的舰船(隐形无人机等)没有线段,seg 会是 null
if (seg != null) {
var dir = Vector2f.sub(seg.getP1(), seg.getP2(), null);
float delta = Misc.getAngleInDegrees(dir);
renderer.dirOffset = delta - targetShip.getFacing();
} else {
renderer.dirOffset = Misc.getAngleInDegrees(point, targetShip.getLocation()) - 90f - targetShip.getFacing();
}
```
同时建议在 `getNearestSegmentOnBounds()` 内补上 bounds 自身的判空:
```java
final BoundsAPI bounds = entity.getExactBounds();
if (bounds == null) return null;
SegmentAPI closestSeg = null;
```
改动只影响特效朝向,不涉及伤害结算;无 bounds 的目标退回「命中点 → 目标中心」的方向,视觉上等价。
## 补充
该缺陷位于 `jars/Silence.jar` 内,只改 `src/` 不生效——日志会提示
`Class already loaded (perhaps from jar file, ...), skipping compilation`,
需要重新编译并打包 `jars/Silence.jar`。
大佬,我想问一下我用的狐狐移动殖民地开局,然后就不能触发任务了,是不是和进星系永远有一个自家市场的原因?我试过开发者模式强行触发任务,阶段0无法生效,真有阶段一开始有效,而且会一直报告内存泄露,能不能把任务触发的那个无市场条件删了?
确认完毕:本次日志是一次约 5.4 小时的长会话,末尾的战斗空指针就是崩溃点。分析如下。
## 结论:游戏崩溃 = 「人类联合帝国」mod 的武器脚本空指针(NPE)
日志最后一行(时间戳 19564736,游戏运行约 5.4 小时后,战斗中)是崩溃点:
```
ERROR com.fs.starfarer.combat.CombatMain
java.lang.NullPointerException: Cannot invoke "BoundsAPI$SegmentAPI.getP1()" because "seg" is null
at data.scripts.weapons.Silent_ForeverNightSpinalGunOnHit.onHit(...:39)
at com.fs.starfarer.combat.entities.Missile.notifyDealtDamage(...)
at com.fs.starfarer.combat.CombatEngine.advanceInner(...)
```
**白话解释**:战斗中,人类联合帝国(`G:\Starsector\mods\人类联合帝国 v1.0.11`)的 **Silent Forever Night 脊柱炮**(导弹武器)命中敌舰、且未命中护盾时,回调 `onHit` 要计算命中点所在的目标舰船 "碰撞段",但该舰船此刻没有可用的碰撞段,函数返回了 `null`。mod 代码**没有判空就直接调用 `seg.getP1()`**,抛出空指针异常;异常发生在战斗引擎主循环里、未被捕获,游戏当场崩溃闪退。
### 代码级证据(源码已核实)
`Silent_ForeverNightSpinalGunOnHit.java` 第 37–39 行:
```
if (!shieldHit) {
var seg = getNearestSegmentOnBounds(point, targetShip);
var dir = Vector2f.sub(seg.getP1(), seg.getP2(), null); // ← 第39行,seg 为 null 时崩溃
```
而 `getNearestSegmentOnBounds()`(第 74–93 行)在目标碰撞段列表为空时,按设计就返回 `null`(`closestSeg` 初始为 null,循环没跑就返回 null)—— 即**该武器命中 "没有碰撞段" 的舰船**(例如正在解体消散、或结构异常的模块化舰船)时必崩。这是 mod 脚本的经典漏判空 bug,玩家侧配置无法修复。
### 崩溃链路可视化
可以提供一下船插“特化供能网络”的具体作用吗
这贴图帅啊
人联荣光永存这一块的(
silent_forever_night_spinal 命中时发生空指针崩溃
内容:
游戏版本:Starsector 0.98a-RC8
模组版本:人类联合帝国 v1.0.11
模组 ID:Silence_K1eer4y
相关模组:
- Nexerelin 0.12.2c
- Console Commands 4.0.8
问题:
使用/遭遇“落槌”复合推进火炮(silent_forever_night_spinal)时,炮弹命中目标会导致游戏直接崩溃。
日志错误:
java.lang.NullPointerException: Cannot invoke
"com.fs.starfarer.api.combat.BoundsAPI.update(org.lwjgl.util.vector.Vector2f, float)"
because "bounds" is null
at
data.scripts.weapons.Silent_ForeverNightSpinalGunOnHit.getNearestSegmentOnBounds(Silent_ForeverNightSpinalGunOnHit.ja
va:80)
at data.scripts.weapons.Silent_ForeverNightSpinalGunOnHit.onHit(Silent_ForeverNightSpinalGunOnHit.java:38)
at com.fs.starfarer.combat.entities.Missile.notifyDealtDamage(...)
at com.fs.starfarer.combat.CombatEngine.advance(...)
初步判断:
Silent_ForeverNightSpinalGunOnHit.java 中直接调用了:
final BoundsAPI bounds = entity.getExactBounds();
bounds.update(entity.getLocation(), entity.getFacing());
但部分目标的 getExactBounds() 会返回 null,导致崩溃。
建议在调用 bounds.update() 前增加 null/空线段判断,并在 getNearestSegmentOnBounds() 返回 null 时使用备用方向,避免整场
战斗崩溃。
弄了一艘相位战列舰,打架,演习都卡的要命,其他船没试过,不行了,这么帅的船开不了好难受
南地 发表于 2026-9-26 18:23
我这也是,解决了吗
沉寂是那个mod啊,有英文名吗,没搜到…
再次灭霸 发表于 2026-10-20 11:54
沉寂是那个mod啊,有英文名吗,没搜到…
叫做Silence,mod_info文件里ID重复
再次灭霸 发表于 2026-10-20 11:54
沉寂是那个mod啊,有英文名吗,没搜到…
3Q
不知道为什么开极昼进战斗就报错
问一下主线是到打完极昼结束吗,也就是目前长夜级还没有开局之外的获取方式那样?另外我现在把终夜直接拿了会有事情吗,还是说还没有做相关剧情?
3968798 INFOsound.O- Cleaning up music with id
3968893 INFOsound.O- Creating streaming player for music with id
3968893 INFOsound.H- Playing music with id
3969069 ERROR com.fs.starfarer.combat.CombatMain- java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.loading.specs.FighterWingSpec.getVariantId()" because "<local16>" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.loading.specs.FighterWingSpec.getVariantId()" because "<local16>" is null
at com.fs.starfarer.campaign.ui.trade.Object.renderShipWithCorners(Unknown Source)
at com.fs.starfarer.api.campaign.impl.items.ShipBlueprintItemPlugin.render(ShipBlueprintItemPlugin.java:85)
at com.fs.starfarer.campaign.ui.trade.Object.render(Unknown Source)
at com.fs.starfarer.campaign.ui.trade.CargoStackView.renderAtCenter(Unknown Source)
at com.fs.starfarer.campaign.ui.trade.CargoStackView.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.campaign.ui.trade.CargoDataGridView.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.g$Oo.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.g.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.campaign.ui.G.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.campaign.ui.class.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.newui.o0OO.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.oo0O.renderImpl(Unknown Source)
at com.fs.starfarer.ui.newui.L.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.ui.interfacenew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.render(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.render(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
本帖最后由 SSL154623 于 2026-11-2 18:48 编辑