找回密码
 初始化身份识别芯片
查看: 1037|回复: 5

starfarer.api.campaign.SectorEntityToken.getContainingLocation() error

[复制链接]

星域军阀

杂鱼A核

译码专家

Mod译者

发表于 2025-3-16 18:07:48 | 显示全部楼层 |阅读模式
Mod Bug汇报
已解决
游戏版本: 0.97
Mod中文名: Starsector
Mod版本: 0.97
游戏日志:
53032 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.campaign.SectorEntityToken.getContainingLocation()" because "this.from" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.campaign.SectorEntityToken.getContainingLocation()" because "this.from" is null
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager$RouteSegment.isInSystem(RouteManager.java:152) ~[starfarer.api.jar:?]
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager$RouteData.getInterpolatedHyperLocation(RouteManager.java:395) ~[starfarer.api.jar:?]
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager.shouldSpawn(RouteManager.java:672) ~[starfarer.api.jar:?]
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager.spawnAndDespawn(RouteManager.java:638) ~[starfarer.api.jar:?]
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager.advance(RouteManager.java:598) ~[starfarer.api.jar:?]
at com.fs.starfarer.api.impl.campaign.CoreScript.advance(CoreScript.java:132) ~[starfarer.api.jar:?]
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.BaseGameState.traverse(Unknown Source) ~[port_obf.jar:?]
at com.fs.state.AppDriver.begin(Unknown Source) ~[port.common_obf.jar:?]
at com.fs.starfarer.combat.CombatMain.main(Unknown Source) [port_obf.jar:?]
at com.fs.starfarer.StarfarerLauncher.super(Unknown Source) [port_obf.jar:?]
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source) [port_obf.jar:?]
    复现步骤:
    各种操作均有可能触发此报错,与玩家的操作无直接关联。
    本帖最后由 没技术,是菜鸡 于 2025-3-16 18:09 编辑

    最近浏览Starsector的Discord社区时发现他们那边也有人汇报这个错误,但是我自己除非用控制台爆炸全星系殖民地否则很难遇到。

    时至今日,所有此类报错在中文论坛上均以存档损坏无法解决为终点解决。

    因此我在这里备注一下一种解决方法:(给 @forrevenge@Tick_Tock_Man
    英文原文(from Histidine,据说原始控制台代码来自Alex)
    Fixed the runcode in the linked thread, see if this helps (copypaste into console once you finish loading into the save) will find the affected routes and hack a fix for them
    1. runcode import com.fs.starfarer.api.impl.campaign.fleets.RouteManager;
    2.         RouteManager manager = RouteManager.getInstance();
    3.         Console.showMessage("Looking for routes with null from and null to");
    4.         for (LocationAPI location: Global.getSector().getAllLocations()) {
    5.             for (RouteManager.RouteData data: manager.getRoutesInLocation(location)) {
    6.                 if (data.getCurrent().from == null && data.getCurrent().to == null) {
    7.                     Console.showMessage("Faction: " + data.getFactionId() + " Market: " + data.getMarket() + " Source: " + data.getSource());
    8.                     data.getCurrent().from = (SectorEntityToken)location.getAllEntities().get(0);
    9.                 }
    10.             }
    11.         }
    复制代码


    翻译:一旦你成功读档就马上在控制台里复制黏贴这条命令并执行,它会检测所有两端有问题的航路,并通过一个hack来尝试将其修复。

    星域军阀

    经理&准执柄者

    学院教员

    发表于 2025-3-16 19:19:10 | 显示全部楼层
    行,也就是那个幽灵部队的闪退是吧

    点评

    并不是同一个,幽灵的那个最近更新修了  详情 回复 发表于 2025-3-17 22:27

    星域军阀

    发表于 2025-3-16 19:40:56 | 显示全部楼层
    还有这种问题吗。。。mark一下,出问题了就来拉代码修修

    势力巨擘

    高级机师

    发表于 2025-3-17 22:27:52 | 显示全部楼层
    forrevenge 发表于 2025-3-16 19:19
    行,也就是那个幽灵部队的闪退是吧

    并不是同一个,幽灵的那个最近更新修了

    巡洋大副

    发表于 2025-3-18 14:02:54 | 显示全部楼层
    我也出现这报错了,复制输入这代码后还是不行

    巡洋大副

    发表于 2025-3-18 16:45:05 | 显示全部楼层
    把之前的存档都删了后,只保留最后的几个存档,就没这问题了,奇怪

    本版积分规则

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

    GMT+8, 2025-12-6 04:44

    Powered by Discuz! X3.5

    © 2001-2077 Tencent Cloud | Durian Software Studio

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