【Mod维护】关于商人传奇的维护
本人,一名远神小白,通过@Tourist_翔的视频知晓了mod 一个商人的传奇,但该mod的作者@马某已停止更新并公开授权。{:tieba_36:}本人对mod制作方面一窍不通,但仍期望有modder维护。(暂无需新内容,仅维护即可。但本人仍私心希望mod少女星域 @常规型妹抖为深蓝搭配一个娘化肖像。)
目前已知的bug有:
098原版/mod环境下的部分独特舰船(例如攻势mk1,098银光)无法进行民用伪装
突袭被辛达占领的卢左球抢夺普罗米修斯之赐的配方(畅饮美酒mod)后不到一天内必定报错。当时卢左已经被灭了,已经没有任何市场消费普罗米修斯之赐,且那个星球是唯一生产普罗米修斯之赐的市场。根据报错文件猜测是一个商人的传奇mod的贸易管理界面某个商品既无生产又无消费时UI会出错。
[游戏日志]
1829287 INFOsound.O- Cleaning up music with id
1829407 INFOsound.O- Creating streaming player for music with id
1829428 INFOsound.OooO- Playing music with id
1831148 ERROR com.fs.starfarer.combat.CombatMain- java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.campaign.econ.MarketAPI.getSupplyPrice(String, double, boolean)" because the return value of "maru.plugins.AML_BusinessEffect.getMinBuyPriceMarketWithFlow(String, float)" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.campaign.econ.MarketAPI.getSupplyPrice(String, double, boolean)" because the return value of "maru.plugins.AML_BusinessEffect.getMinBuyPriceMarketWithFlow(String, float)" is null
at maru.plugins.AML_BusinessEffect.CalcBestFlowTradeCommodityToBuy(AML_BusinessEffect.java:305) ~[?:?]
at maru.plugins.AML_BusinessEffect.CalcFlowTrade(AML_BusinessEffect.java:134) ~[?:?]
at maru.plugins.AML_BusinessEffect.advanceInCampaign(AML_BusinessEffect.java:45) ~[?:?]
at maru.plugins.AML_CampaignPlugin.advance(AML_CampaignPlugin.java:103) ~[?:?]
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source) ~
at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source) ~
at com.fs.starfarer.BaseGameState.traverse(Unknown Source) ~
at com.fs.state.AppDriver.begin(Unknown Source) ~
at com.fs.starfarer.combat.CombatMain.main(Unknown Source) ~
at com.fs.starfarer.StarfarerLauncher.super(Unknown Source) ~
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source) ~
以及https://www.fossic.org/forum.php?mod=viewthread&tid=16174&highlight=%E4%B8%80%E4%B8%AA%E5%95%86%E4%BA%BA
坐等有心维护者ing...{:5_123:}
::) 把军事船减cr给他改咯,每条船+5%。美酒的话是不是可以想办法屏蔽掉。不知道,代码小白全靠ai AML_BusinessEffect.java,这个是开展贸易的代码
潜在问题
空指针风险: 代码中有几处对 market.getPrimaryEntity() 和 market.getSubmarket("open_market") 的结果直接使用,没有进行非空判断。如果市场没有实体或没有开放市场,可能会导致游戏崩溃。
整数转换: 在计算交易量 amount 时,使用了 (int)(amount * flow / needflow) 的强制转换。这可能会导致浮点数精度丢失,使实际交易量与理论值有微小偏差。
硬编码字符串: 子市场 ID "open_market" 在多个地方作为字符串硬编码使用,如果游戏核心或其它模改改变了这个 ID,代码将无法工作。建议定义为常量。
贪婪买入逻辑: CalcBestGreedTradeCommodityToBuy 函数假设能同时找到最低买入价和最高卖出价的市场来计算差价,但没有处理找不到最高卖出价市场的情况,这可能会导致空指针异常。
至于怎么改,我也不知道 无名007 发表于 2026-3-2 12:19
AML_BusinessEffect.java,这个是开展贸易的代码
潜在问题
空指针风险: 代码中有几处对 market.getPrimaryE ...
以上分析来自deepseek
页:
[1]