|
|
Mod Bug汇报
|
已解决
|
| 游戏版本: |
0.98 |
| Mod中文名: |
兽耳助手! |
| Mod版本: |
098v0.762 |
游戏日志:
ERROR CombatMain - NullPointerException: Cannot invoke "StarSystemAPI.getStar()" because "system" is null
at data.scripts.world.systems.Mimikko_generate.generate7(Mimikko_generate.java:352)
at data.scripts.mimikkoModPlugin.onNewGameAfterTimePass(mimikkoModPlugin.java:182)
|
复现步骤:
勾选兽耳助手,选择势力争霸随机星域,开新档必崩
|
本帖最后由 Asta 于 2026-9-7 12:45 编辑
众所周知选择mod势力争霸与兽耳助手,势力争霸就不能开启随机星域。否则开新档就会直接崩溃!
直接原因:兽耳助手!098v0.762的星系生成代码里有一处判空顺序写反的 bug。
深层原因:你开新档时启用了 势力争霸 的「随机星域」 模式。这个模式下星域是随机生成的,原版星系 Aztlan根本不存在。而 兽耳助手 的 generate7() 去取这个星系时得到 null,却在判空之前就调用了 system.getStar(),于是抛空指针异常。
BUG代码:
StarSystemAPI system = sector.getStarSystem("Aztlan"); 随机星域里返回 null
PlanetAPI aztlan_star = system.getStar(); 先用了 → 直接崩
if (system != null) { ... } 判空写在了后面。
注:同一个类里 generate() 和 generate2() 都是先判空再使用,所以能安全跳过;只有 generate7() 把顺序写反了,一开新档必崩。
修复BUG后:
StarSystemAPI system = sector.getStarSystem("Aztlan");
if (system != null) { // 先判空
PlanetAPI aztlan_star = system.getStar(); // 再取星系,不会崩
...
}
附上修复后的mod
|
|