3 步装好 CK2dll 双字节补丁:CK2 3.3.4 中文正常显示完整指南
【免费下载链接】CK2dllCrusader Kings II double byte patch /production : 3.3.4 /dev : 3.3.4项目地址: https://gitcode.com/gh_mirrors/ck/CK2dll
地图上的中文地名变成方框和问号,对话框里长段文字被压成一团,存档想起个中文名直接被拒绝。这不是字体没装好,而是 CK2 的引擎按单字节字符设计,双字节文字一进界面就会出问题。CK2dll 是一个双字节补丁,它注入游戏进程,在字体加载、地图文字、文本排版等环节做字节级修补,让中文正常显示、正常输入、正常存档。
CK2dll 是什么:非官方的 CK2 3.3.4 双字节补丁
CK2dll 是一个非官方项目的 DLL 补丁,MIT 协议,当前生产版本针对 Steam 版 3.3.4。它的工作方式是注入游戏进程后直接修改内存中的字节码,所以装完即生效,不需要手动配置。启动时它先识别游戏版本,再逐项初始化各个修补模块,全部成功才放行游戏。
兼容边界:只支持 Steam 版 3.3.4,没有 macOS
安装前先确认三件事,否则装了也跑不起来:
| 条件 | 要求 |
|---|---|
| 平台 | 仅 Windows,官方明确没有 macOS 计划 |
| 渠道 | 仅 Steam 版,非 Steam 版不支持 |
| 版本 | 当前补丁针对 3.3.4 |
如果你玩的是 macOS 或非 Steam 版本,这条路线走不通,只能换环境。
安装 4 步:从解压 release 包到开玩
最短主路径如下:
- 下载最新 release 的压缩包并解压,把全部文件拷入游戏根目录
- 在 Steam 上订阅多字节 mod,或手动把 mod 放入文档目录下 Paradox Interactive/Crusader Kings II 的 mod 目录
- 在游戏启动器里勾选启用该 mod
- 启动游戏,插件自动完成检测和修补,无需额外配置
如果你手上是仓库源码而非 release 包,也可以直接拉取:
git clone https://gitcode.com/gh_mirrors/ck/CK2dll修了什么:从地图地名到存档文件名
站在玩家视角,它实际解决的场景大致有这六类,每个模块对应 Plugin/dllmain.cpp 里的一个初始化入口:
- 地图标签:Plugin/MapView.cpp 修地图字体显示,Plugin/MapAdj.cpp、Plugin/MapAdj2.cpp、Plugin/MapAdj3.cpp 负责标签对齐与解除强制大写,Plugin/MapJustify.cpp 处理对齐。效果是中文地名不再乱码错位。
- 对话框排版:Plugin/MainText.cpp 处理主文本显示,Plugin/MainTextLineBreak.cpp 修对话框内换行,Plugin/TextOerflow.cpp 处理文字溢出,长段中文不再被截断。
- 游戏内输入:Plugin/IME.cpp 和 Plugin/Input.cpp 修复 SDL 层对系统输入法的调用,给角色起名时可以直接用输入法打字,不用切出窗口。
- 存档文件名:Plugin/FileSave.cpp 绕过了原版把非 ASCII 文件名当非法输入拒绝的检查逻辑,中文命名存档不再报错。
- 日期与姓名格式:Plugin/DateFormat.cpp 修正菜单栏日期显示,Plugin/NickNameFix.cpp 调整姓名排列。
- 其他细节:三个 DecorativeLetter 相关文件修对话框花字乱码,Plugin/ButtonAndTooltip.cpp 修按钮和工具提示。
plugin.ini 两个选项:日期格式与姓名顺序
配置文件在 plugins 目录下的 plugin.ini(仓库中对应 other/plugin.ini),两个选项的默认值已经合理,按需调整:
| 选项 | 取值 | 默认值 | 作用 |
|---|---|---|---|
| DATE_FORMAT | yes / no | no(代码默认),release 包设为 yes | 是否启用日期格式修正 |
| NICKNAME_FORMAT | NICKNAME_FIRSTNAME_TITLE / FIRSTNAME_NICKNAME_TITLE / disable | NICKNAME_FIRSTNAME_TITLE | 控制名、昵称、头衔的排列顺序,disable 关闭该项 |
读取逻辑见 Plugin/version.cpp:只认 yes 开启日期项,昵称项不写或写成其他值一律按 disable 处理。
排查清单:弹窗、离线与日志检查
| 症状 | 原因 | 处理 |
|---|---|---|
| 启动弹窗"Multibyte DLL 尚未支持此游戏版本"并退出 | 游戏版本与 DLL 不匹配,当前支持 3.3.4 | 确认 Steam 版为 3.3.4;联网状态下新补丁发布后插件会自动更新 |
| 离线玩游戏,不想要每次联网拉取更新 | 默认每次运行游戏都会执行自动更新 | 删除 plugins 目录下的 autoupdate.bat 即可关闭 |
| macOS 上想安装 / 非 Steam 版 | 官方不支持 | 换 Windows + Steam 版 |
| 想确认插件是否正常工作 | 启动时插件会写运行日志 | 在文档目录下 Paradox Interactive/Crusader Kings II 查看 ck2jps 日志,成功时输出DLL [OK],失败输出DLL [NG] |
| 遇到疑似 bug | 可能是已知问题 | 到项目仓库提交 issue,写清复现步骤、截图和系统环境,建议英文,其他语言也可以 |
自动更新的细节:other/autoupdate.bat 会先对 Plugin.dll 和 ck2game.exe 各算一次 MD5,再按 exe 的哈希去拉取匹配的新版 DLL。更新和游戏版本绑定,不会出现 DLL 和游戏错配的情况。
装完 CK2dll 之后:让中文显示、输入、存档各归其位
CK2dll 把双字节文字在 CK2 里的显示、输入、存档三条链路都打通了,4 步安装、零配置。装好开一局,如果还有问题,先对照上面的排查表,搞不定的直接去仓库提 issue。
【免费下载链接】CK2dllCrusader Kings II double byte patch /production : 3.3.4 /dev : 3.3.4项目地址: https://gitcode.com/gh_mirrors/ck/CK2dll
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考