本帖最后由 zerograd 于 2026-9-6 22:31 编辑
9月3日之前的V2.1.b(0.98) 和 如今的V2.1a(0.97)两个版本的Grand Colonies 更大的殖民地的jar包中的grandcolonies.plugins.ModPlugin是篡改过的,其会在玩家拥有特定大小或特定数量的殖民地时,使所有殖民地无法生成贸易舰队。
官方版ModPlugin类下onGameLoad方法具体实现如下:
英文原版onGameLoad
汉化版ModPlugin类下onGameLoad方法具体实现如下:
汉化版onGameLoad
汉化版onGameLoad方法通过使用某些手段绕过了游戏安全检测,并试图通过静默吞异常无日志的方式隐藏该方法。其具体实现了以下逻辑(从82行开始):
1、该方法只在读档时执行
2、玩家是否有一颗殖民地的规模大于等于5
3、玩家每个殖民地的规模与2之间的差值总和是否大于等于4(每个殖民地的规模-2后相加是否大于等于4)
4、如果玩家满足条件2或条件3,则执行以下逻辑:
4.1、将游戏中maxEconFleets(贸易舰队上限)设置为1
4.2、反射窃取原版贸易舰队管理器的私有冷却表,清空冷却表,并对所有殖民地(不论是原版还是mod)塞入114514天的冷却
5、静默吞掉所有异常,不输出任何日志
如果你发现游玩过程中没有贸易舰队生成、加载的mod中包含更大的殖民地且在游戏中自势力满足以上条件2和3,则可进行以下过程尝试修复: 符号~指远行星号根目录 1、下载原版mod,并用原版jar替换中文版的jar: 中文版的jar地址:~\mods\GrandColonies\jars jar中无游戏内的文本内容,替换后不会使汉化失效
2、下载贸易舰队修复mod,加载此mod并进入游戏(可选择同时加载控制台mod):
此mod主要实现以下功能: (1)进入存档10天后自动进行检测,若检测到当前贸易舰队系统被封禁,则尝试修复(清空冷却表,失败则尝试复刻原版机制生成贸易舰队)。若贸易舰队系统被封禁,则游戏日志应如图2-1:
游戏测试1
图2-1游戏日志 其中makets为游戏当前殖民地数量;hidden为隐藏殖民地;noSpaceport为无太空港殖民地数量;inNoSpawnSet为被特殊任务封锁的殖民地数量;routes为当前存活商路数;maxEconFleets为当前游戏贸易舰队上限;pickSourceMarket为尝试筛选殖民地,NULL表示无殖民地通过筛选(筛选机制请看2.1);verdict为当前冷却表状态,BLOCKED表示当前冷却表异常,NORMAL表示正常
(2)当同时加载控制台mod时,增加控制台指令qsm_diag cooldown(手动进行检测),qsm_diag clear(手动进行修复)。
检测与修复动作都会在执行后1秒(游戏时间)内产生对应的游戏日志、滚动消息和情报信息。
此mod可被安全移除。此mod与部分修改或替换了原版贸易舰队系统的mod不兼容。
2.1、原版贸易舰队系统对殖民地的筛选机制主要包含以下4个条件:
(1)殖民地是否隐藏
(2)殖民地有没有太空港
(3)殖民地是否在「禁止生成贸易舰队」名单里
(4)殖民地是否在冷却中(生成过贸易舰队的殖民地默认要冷却至少10天才允许再次生成)
|