|
|
Mod Bug汇报
|
已解决
|
| 游戏版本: |
0.98 |
| Mod中文名: |
中文输入修复 |
| Mod版本: |
|
游戏日志:
闪退日志:
EXCEPTION_ACCESS_VIOLATION at MSCTF.dll+0x845f (mov rax,[rax+0x10],vtable 已是 0/垃圾的 COM 对象)
Java frames: org.lwjgl.opengl.WindowsDisplay.nUpdate() ← LWJGL 消息泵 PeekMessage/TranslateMessage
栈上模块: textinputframework.dll → 搜狗 SogouTSF.ime → MSCTF.dll
|
复现步骤:
非全屏状态下进游戏,且不切换窗口直接输入中文会闪退。
全屏状态下,或者非全屏状态下进游戏但切换过窗口,会出现重复输入(“wode”变成“我的我的”)
|
本帖最后由 Darren 于 2026-10-11 00:40 编辑
【临时解决方案】关闭游戏主体的中文输入法相关支持
如果同时装了「中文输入修复(ChineseInputFix)」和最新版汉化(优化测试版自带中文输入支持),
两套输入法会把同一段上屏文字各送进输入框一次,所以打一个词得到两份;严重时还会直接 Fatal 闪退。
临时办法:打开游戏目录下的 vmparams,在主类 com.fs.starfarer.StarfarerLauncher 前面加一个参数
-Dfossic.ime.enabled=false(用空格与前面的参数隔开,不要换行),保存后彻底重启游戏。
原理:这版汉化自带的输入法留了开关(系统属性 fossic.ime.enabled,源码里只认小写 false),
一旦为 false,汉化的 ssime.dll 根本不会被加载,汉化那套上屏通道整体停用,只剩 CIF 一条通道,
于是不再重复,CIF 的候选框也照常显示;汉化的字体与加速不受影响。
注意三点:① 这只治重复,输入中文时 CIF 仍有概率 Fatal 闪退(崩了会在 starsector-core 生成
hs_err_pid*.log,建议回帖给作者);② 打字快时会吞字——CIF 是"先把词写进剪贴板、约 120 毫秒后
才模拟 Ctrl+V",而游戏在按下那一刻才读剪贴板,后一个字会把前一个字顶掉;
③ 想还原就把这个参数删掉重启;以后若在启动器里改过内存设置,记得确认这个参数还在。
修改后如图(绿色是空格,记得加)
————————————————更新——————————————————
修改了主体之后还得加一个补丁,把附件的压缩包解压到mod里面Starsector\mods\ChineseInputFix 中文输入修复\jars中,替换原有jar,现在中文输入法状态下进游戏之后可以自动根据焦点来切换状态。
副作用还是有的,mod相当于是自动帮你切换焦点,输入法还是开着的,这意味着如果你自己手动按了shift,就会在不该切出输入法的地方切出来……比如大地图
|
|