Warzone 2100

战地 2100(英语:Warzone 2100,有人译作战争地带 2100,台译2100全民开打)是一个未来背景的即时战略游戏。科技树中包含400多种组件,首创单位组合概念,各种车辆都可以从部件整合设计。支持单机任务和联机游戏。因为2004年的公开源代码,使得开发持续进行,出现了新的活力,也使得其拥有跨平台能力。

至少2.2版本以后,Warzone 2100在中文系统上100%会把中文全显示成小方块——部分Linux系统下甚至连调成英文凑合用都做不到。对于这一问题,网上有各种各样的教程,包括但不限于:

  • 修改config文件中的fontname字段——3.0版本以后根本没这个字段,写上也没用
  • 替换DejaVu字体,包括替换为其他字体并改名、删除系统中的同名字体、修改字体文件删除中文相关内容等,测试无效

测试过一遍之后,我发现问题在于:尽管Warzone 2100的安装包自带了字体(Windows安装包会自动解压一个字体,Linux会依赖一个字体包),但实际上在新版中用的根本不是磁盘上你看见的那个字体文件!实际上使用的字体文件被压缩在了一个名为base.wz的文件中,它的扩展名是.wz,实际上是个.zip文件。而程序运行时则无脑使用压缩包中fonts目录下的两个DejaVu字体文件,甚至不关心文件中字体的名字具体是什么。

理论上只要用一个支持.zip的软件强行打开该文件,再随便找两个中文ttf字体修改名字后替换进去即可。我用的是之前折腾其他方案时下载的一个叫MicroHei Faked的字体,但是从来没在任何配置文件中设置有关MicroHei Faked的内容,所以文件中字体的名字应该是无关紧要的。

字体文件放在这里备用

今天玩了一把4.4,改进是不错的,高分屏上也有了清晰显示的可能。但是,中文变方块问题依旧存在,并且解决方式不一样了。

上面说的base.wz文件中依旧有两个字体文件,但改这俩文件解决不了问题了。现在需要替换的字体是WarZone2100\data\fonts下面的两个字体,文件名依旧是DejaVuSans.ttfDejaVuSans-Bold.ttf。解决方法是把这俩文件替换成有中文字形的随便什么字体(字体名不一样也没关系)。我就直接用了网上下载的雅黑-consolas混合字体。

  • 最后更改: 2022/05/27 16:54