zerograd 发表于 2026-9-6 22:31:55

解决更大的殖民地汉化版会在玩家拥有大型殖民地后导致贸易舰队无法生成的问题

本帖最后由 zerograd 于 2026-9-18 22:53 编辑

9月3日之前的V2.1.b(0.98) 和 如今的V2.1a(0.97)两个版本的Grand Colonies 更大的殖民地的jar包中的grandcolonies.plugins.ModPlugin是篡改过的,其会在玩家拥有特定大小或特定数量的殖民地时,使所有殖民地无法生成贸易舰队。
官方版ModPlugin类下onGameLoad方法具体实现如下:


汉化版ModPlugin类下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:(该步骤主要解决篡改逻辑每次读档时都会修改maxEconFleets和再次塞入114514天的冷却的问题)原版网站:https://fractalsoftworks.com/forum/index.php?topic=20986.0 (进入网站,找到并点击Manual Download)中文版的jar地址:~\mods\GrandColonies\jarsjar中无游戏内的文本内容,替换后不会使汉化失效
注:冷却表会随存档持久化,即保存于存档中,更换jar只是解决冷却表再次被塞入114514天的冷却的问题。
2、下载贸易舰队修复mod,加载此mod并进入游戏(可选择同时加载控制台mod):(该步骤主要解决冷却表被塞入114514天的冷却的问题)

包含mod源码

此mod主要实现以下功能:(1)进入存档运行10天后(游戏时间)自动进行检测,若检测到当前贸易舰队系统被封禁,则尝试修复(清空冷却表,失败则尝试复刻原版机制生成贸易舰队)。若贸易舰队系统被封禁,则游戏日志应如图2-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天才允许再次生成)



比比拉布 发表于 2026-9-16 23:52:16

nb,方法一是直接替换文件就可以了吗

还有怎么一个回复都没有啊

zerograd 发表于 2026-9-18 13:33:01

本帖最后由 zerograd 于 2026-9-18 14:20 编辑

比比拉布 发表于 2026-9-16 23:52
nb,方法一是直接替换文件就可以了吗

还有怎么一个回复都没有啊
1、2都要做,我可能表达有些不清楚。汉化版的jar会在每次加载存档都塞入114514天冷却,并修改内存中的maxEconFleets为1,所以需要先替换jar

zerograd 发表于 2026-9-18 13:46:03

本帖最后由 zerograd 于 2026-9-18 13:47 编辑

贸易舰队修复mod在修复失败时会尝试模仿原版贸易舰队生成机制进行手动生成舰队。如果你发现贸易舰队无法生成,不论是否加载更大的殖民地mod,都可以尝试加载本mod进行解决。

zerograd 发表于 2026-9-18 14:17:18

maxEconFleets贸易舰队上限原版是60。mod在不利用Lunalib前置mod的情况下,只能做到读取和修改游戏运行时内存中的设置,所以贸易舰队修复mod只会报告当前游戏运行时maxEconFleets的值,需要自行判断maxEconFleets是否被修改。
设置文件地址:~\starsector-core\data\config\settings.json

Spica 发表于 2026-9-18 14:48:59

所以直接用原版MOD就没有这个问题了是这样吗?

zerograd 发表于 2026-9-18 14:56:23

本帖最后由 zerograd 于 2026-9-18 15:04 编辑

Spica 发表于 2026-9-18 14:48
所以直接用原版MOD就没有这个问题了是这样吗?
对于加载过汉化版的更大的殖民地,并已经触发了封禁的存档,换mod是无法解决的。
游玩过程中对内存中的maxEconFleets的修改是不会保存的,但冷却表塞入的114514天的冷却会保存在存档中。
换mod无法解决冷却表被修改的问题。

zerograd 发表于 2026-9-18 15:13:41

Spica 发表于 2026-9-18 14:48
所以直接用原版MOD就没有这个问题了是这样吗?

对于新档或者还没有触发封禁的存档,可以使用原mod,或者使用最新版本的汉化版(9月3日更新的)

Spica 发表于 2026-9-18 16:35:18

zerograd 发表于 2026-9-18 15:13
对于新档或者还没有触发封禁的存档,可以使用原mod,或者使用最新版本的汉化版(9月3日更新的) ...

明白了,那么修复之后就可以移除那个贸易舰队修复模组了吧?

EririEX 发表于 2026-9-18 16:56:30

啊?这是何意味?是为了不让贸易舰队刷出来,那样就不会被打掉导致殖民地debuff吗?

zerograd 发表于 2026-9-18 18:42:24

Spica 发表于 2026-9-18 16:35
明白了,那么修复之后就可以移除那个贸易舰队修复模组了吧?

可以

zerograd 发表于 2026-9-18 18:45:35

EririEX 发表于 2026-9-18 16:56
啊?这是何意味?是为了不让贸易舰队刷出来,那样就不会被打掉导致殖民地debuff吗? ...

我不知道。我只是发现站内之前汉化版更大的殖民地被篡改了,至于为什么要添加封锁贸易舰队的逻辑,我并不清楚。

zerograd 发表于 2026-9-18 18:49:32

而且找这个更大的殖民地mod花了我不少时间,因为篡改后的逻辑静默了没有输出日志。导致为了排查贸易舰队无法生成的原因,需要在我加载的100多个mod里找

zerograd 发表于 2026-9-18 18:55:35

本帖最后由 zerograd 于 2026-9-18 18:57 编辑

最新的V2.1.b(0.98)版本的更大的殖民地已无篡改逻辑,但V2.1a(0.97)版本的更大的殖民地目前依旧拥有篡改逻辑,游玩0.97版本的玩家请注意

EririEX 发表于 2026-9-18 18:56:02

zerograd 发表于 2026-9-18 18:49
而且找这个更大的殖民地mod花了我不少时间,因为篡改后的逻辑静默了没有输出日志。导致为了排查贸易舰队无 ...

好绝望的文字

无意识妖怪 发表于 2026-9-18 19:42:06

我说玩的时候感觉不对劲,像是少什么东西,这是和意味啊?

无意识妖怪 发表于 2026-9-18 20:01:23

去汉化版看了下,个人猜测是不喜欢原版的贸易舰队,然后觉得大伙也不喜欢,就自作主张ban掉了原版的贸易舰队,顺便宣传下自已的另外优化MOD,我的评价是初心可能是好的,但不是人人都喜欢(耸肩摊手)

Spica 发表于 2026-9-18 22:42:52

24832612 发表于 2026-9-18 20:01
去汉化版看了下,个人猜测是不喜欢原版的贸易舰队,然后觉得大伙也不喜欢,就自作主张ban掉了原版的贸易舰 ...

“出发点是好的,但是你先别出发”
页: [1]
查看完整版本: 解决更大的殖民地汉化版会在玩家拥有大型殖民地后导致贸易舰队无法生成的问题