工程参考/配置文件/辅助资源
Server/Config 下的两个 .cpf 是图形验证码用的字库,不是配置文件:chs.cpf 提供汉字字形,ascii.cpf 提供数字字形。
GameServer 启动时分别把它们绑到两个生成器上,之后画验证码时从对应字库取字形。LoginServer 另外用 ascii.cpf 作为自己的字体。
文件位置与生效
| 项目 | 说明 |
|---|---|
| 运行文件 | ./Config/chs.cpf 与 ./Config/ascii.cpf,相对于 GameServer 工作目录;LoginServer 也按 ./Config/ascii.cpf 打开自己的字体。源码 resources/Server/Config 是样本位置。
|
| 读取程序 | GameServer:Server.cpp 里 g_pGlobalCaptchaFontFile->openFromFile("./Config/chs.cpf") 与 g_pGlobalCaptchaFontFileDigit->openFromFile("./Config/ascii.cpf");LoginServer:Login.h 的 FILE_LOGIN_FONT 指向 "./Config/ascii.cpf" |
| 生效方法 | 停服后备份并整体替换,再重启对应进程。字形在进程启动时随生成器绑定一次加载,当前检索未发现运行时重载入口。 |
| 样本格式 | resource,LF。保留原编码;源码读取器不会自动把中文转为 UTF-8。
|
系列成员
| 文件 | 用途与打开方式 | 说明 |
|---|---|---|
Server/chs.cpf
|
GameServer 的验证码中文(汉字)字库g_pGlobalCaptchaFontFile->openFromFile("./Config/chs.cpf")
|
1152392 字节。生成器 g_pGenerator 绑定它,用于升级等场景的汉字验证码。 |
Server/ascii.cpf
|
GameServer 数字验证码字库与 LoginServer 字体g_pGlobalCaptchaFontFileDigit->openFromFile("./Config/ascii.cpf")
|
7792 字节。另一个生成器 g_pGeneratorDigit 绑定它,只画数字;Login.h 里还有 FILE_LOGIN_FONT 指向同名文件。 |
| 检查项 | 结论 |
|---|---|
| 为什么有两个字库 | 汉字验证码与纯数字验证码用不同生成器,升级输入框只接受数字,所以单独绑了数字字库。 |
| 文件内容会被解析吗 | 不会。程序按原始字节打开,交给生成器自行解释。 |
| 改了会立刻生效吗 | 不会。生成器在启动时绑定字库,需要重启进程。 |
| 能用文本编辑器改吗 | 不能。另存或转码会破坏字节,导致验证码画不出来。 |
| 字库缺失会怎样 | 生成器拿不到字形,验证码无法生成,相关流程会失败。 |
文件格式
二进制字库文件,程序把它当作原始字节打开,不解析文本。扩展名、文件名与字节内容都不能改动,也不要用文本编辑器另存或转码。
字段详解
按文件整体替换,不改内部字段。
本文件是二进制字库,程序按原始字节打开,没有类型行、列名行,也没有可逐项修改的字段。
验证与排查
重启后触发一次需要验证码的流程(例如升级确认),确认验证码图片能正常生成、汉字或数字清晰可辨。若图片空白或报错,先核对两个文件是否完整存在于进程工作目录的 Config 下、字节数是否与备份一致。失败时恢复备份并重启。
这是资源不是配置
.cpf 没有类型行、列名行,也没有可逐项修改的字段。要换字库就整体替换文件,不要试图改里面的文本。
路径相对于进程工作目录
代码里写的是 ./Config/,实际取的是各进程自己的 Config 目录。复制服务目录后每份都可能各有一套。
数字字库被两个进程用
GameServer 的 g_pGeneratorDigit 与 LoginServer 的 FILE_LOGIN_FONT 都指向 ascii.cpf。替换它要同时考虑两个进程。
不要和客户端字体混为一谈
这是服务端画验证码用的字库,与客户端界面字体无关,也不要把它复制到客户端资源目录。
关联与依据
其他配置及整理状态 · 服务端外网设置 · Lua 接口索引
Server/Server/GameServer/Server/Main/Server.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Packets/CGReqLevelUpHandler.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/LoginServer/Login/Main/Login.h:实际加载、解析、字段使用或示例关联依据resources/Server/Config/ascii.cpf:实际加载、解析、字段使用或示例关联依据resources/Server/Config/chs.cpf:实际加载、解析、字段使用或示例关联依据
本页核对两个 .cpf 的打开位置与绑定生成器(g_pGenerator、g_pGeneratorDigit)、LoginServer 的 FILE_LOGIN_FONT 指向、以及它们按原始字节打开不被解析的事实;样本字节数与路径经脚本核算。未启动服务端,验证码图片的实际效果需要实测。