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

修复势力争霸随机星域与兽耳助手的BUG

[复制链接]

巡洋大副

发表于 1 小时前 | 显示全部楼层 |阅读模式
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



    mimikko098v0.762随机星域修复.zip

    51.94 MB, 下载次数: 1

    本版积分规则

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

    GMT+8, 2026-9-7 12:58

    Powered by Discuz! X3.5

    © 2001-2077 Tencent Cloud | Durian Software Studio

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