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

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

[复制链接]

星域军阀

蓝莓冰激凌球

译码专家

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, 2026-10-30 07:26

    Powered by Discuz! X3.5

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

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