找回密码
 初始化身份识别芯片
搜索
楼主: 激流

[0.951-0.98] 星海集群 V1.13.7d Bug修复

 荐  火... [复制链接]

巡洋大副

发表于 2026-10-14 18:32:28 | 显示全部楼层
[游戏日志]

707290 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.bt_DerelictSpawner  - Generated a ork_supermule_standard (ork_supermule_standard) in orbit of Barax in the Elgava 星系 system.
707290 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.bt_DerelictSpawner  - Successfully spawned 9 derelicts out of 9 planned.
707306 [Thread-19] INFO  sound.O  - Cleaning up music with id [miscallenous_main_menu.ogg]
707384 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.campaign.PlanetAPI.isBlackHole()" because the return value of "com.fs.starfarer.api.campaign.StarSystemAPI.getStar()" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.campaign.PlanetAPI.isBlackHole()" because the return value of "com.fs.starfarer.api.campaign.StarSystemAPI.getStar()" is null
        at data.campaign.gr_TagshipSpawner.getRandomSystemWithBlacklist(gr_TagshipSpawner.java:145)
        at data.campaign.gr_TagshipSpawner.spawnPleiades(gr_TagshipSpawner.java:57)
        at data.scripts.gr_ModPlugin.onNewGameAfterTimePass(gr_ModPlugin.java:35)
        at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
        at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
        at com.fs.starfarer.ui.oo0O.dismiss(Unknown Source)
        at com.fs.starfarer.ui.impl.o0OO.dismiss(Unknown Source)
        at com.fs.starfarer.campaign.save.A.actionPerformed(Unknown Source)
        at com.fs.starfarer.ui.n.buttonPressed(Unknown Source)
        at com.fs.starfarer.ui.int.new(Unknown Source)
        at com.fs.starfarer.ui.int.processInput(Unknown Source)
        at com.fs.starfarer.ui.W.o00000(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)
        at java.base/java.lang.Thread.run(Unknown Source)
707676 [Thread-21] INFO  sound.O  - Creating streaming player for music with id [miscallenous_main_menu.ogg]
这个模组写的逻辑:
1. 遍历星系,想要找一个符合条件的星系来刷旗舰
2. 代码直接调用 `system.getStar().isBlackHole()`
3. **但是部分星系是无恒星星系(没有主星),`getStar()` 返回 null**
4. 代码**没有先判断 getStar () 是否为 null**,直接访问属性,导致游戏抛出 NPE 崩溃
前面 INFO 日志是正常的:在 Elgava 星系生成废弃船,9 艘全部生成成功,和这次崩溃无关。音乐加载日志只是菜单音乐,也不是报错源头。
昂宿不知道为什么生成失败,直接开不了新档  详情 回复 发表于 2026-10-14 18:33

巡洋大副

发表于 2026-10-14 18:33:46 | 显示全部楼层
念你成疾 发表于 2026-10-14 18:32
[游戏日志]

707290 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.bt_DerelictSpawner  - Generat ...

昂宿不知道为什么生成失败,直接开不了新档

巡洋大副

发表于 2026-10-22 18:34:00 | 显示全部楼层
如果有专属军官对应的骚话联动就好了qwq

驱逐技师

发表于 2026-10-26 05:50:34 | 显示全部楼层
老大,昂宿有专属军官吗?

巡洋大副

发表于 2026-10-27 12:16:12 | 显示全部楼层
本帖最后由 赤羽灵 于 2026-10-27 13:03 编辑


战列舰长

发表于 前天 04:07 | 显示全部楼层
找到了:这次卡死并非 VIC 造成,问题出在「星海集群(GalacticConstellate)1.13.7d」。

抓到的线程栈(PID 9480,Thread-3,RUNNABLE,累计 CPU 626 秒说明它一直在原地空转):

代码块


at java.lang.StringLatin1.toLowerCase
at com.fs.starfarer.campaign.StarSystem.getId
at data.campaign.gr_TagshipSpawner.getRandomSystemWithBlacklist(gr_TagshipSpawner.java:127)
at data.campaign.gr_TagshipSpawner.spawnHyades_Outframe(gr_TagshipSpawner.java:85)
at data.scripts.gr_ModPlugin.onNewGameAfterTimePass(gr_ModPlugin.java:36)
at com.fs.starfarer.campaign.save.CampaignGameManager.o00000
原因:spawnPleiades / spawnHyades_Outframe / spawnAldebaran 这三个方法都是下面这个结构:

java


while (placeToSpawn == null) {
    system = getRandomSystemWithBlacklist(...);   // 只挑黑洞星系
    placeToSpawn = BaseThemeGenerator.getLocations(...).pick();  // 这个星系取不到点就永远 null
}
这里没有尝试次数上限。一旦随机抽到“取不到 NEAR_STAR 位置点”的星系,它就会每轮重新计算一遍全星系 id(getId() 里带 toLowerCase),导致开局线程死转。你之前那 4 次能进,是因为运气好,没有抽到那种星系;这是概率触发的。

巡洋大副

发表于 前天 10:16 | 显示全部楼层
感觉有点三体人吊打原始人的感觉了

本版积分规则

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

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

Powered by Discuz! X3.5

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

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