
Mod译者
|
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
- runcode import com.fs.starfarer.api.impl.campaign.fleets.RouteManager;
- RouteManager manager = RouteManager.getInstance();
- Console.showMessage("Looking for routes with null from and null to");
- for (LocationAPI location: Global.getSector().getAllLocations()) {
- for (RouteManager.RouteData data: manager.getRoutesInLocation(location)) {
- if (data.getCurrent().from == null && data.getCurrent().to == null) {
- Console.showMessage("Faction: " + data.getFactionId() + " Market: " + data.getMarket() + " Source: " + data.getSource());
- data.getCurrent().from = (SectorEntityToken)location.getAllEntities().get(0);
- }
- }
- }
复制代码
翻译:一旦你成功读档就马上在控制台里复制黏贴这条命令并执行,它会检测所有两端有问题的航路,并通过一个hack来尝试将其修复。
|
|