工程参考/配置文件/辅助资源:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞留言 | 贡献
维护配置文件知识库:完整字段、读取范围、手工修改实例与核对状态
 
雪舞留言 | 贡献
维护配置文件知识库:完整字段、读取范围、手工修改实例与核对状态
 
第8行: 第8行:
GameServer 启动时分别把它们绑到两个生成器上,之后画验证码时从对应字库取字形。LoginServer 另外用 ascii.cpf 作为自己的字体。
GameServer 启动时分别把它们绑到两个生成器上,之后画验证码时从对应字库取字形。LoginServer 另外用 ascii.cpf 作为自己的字体。


[[#文件位置与生效|位置与生效]] · [[#文件格式|文件格式]] · [[#字段详解|字段详解]] · [[#常用修改实例|修改实例]]
[[#文件位置与生效|位置与生效]] · [[#文件格式|文件格式]] · [[#字段详解|字段详解]]


== 文件位置与生效 ==
== 文件位置与生效 ==

2026年9月12日 (六) 02:06的最新版本


首页 · 配置文件索引 · 修改约定

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"
生效方法 停服后备份并整体替换,再重启对应进程。字形在进程启动时随生成器绑定一次加载,当前检索未发现运行时重载入口。
样本格式 resourceLF。保留原编码;源码读取器不会自动把中文转为 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 指向、以及它们按原始字节打开不被解析的事实;样本字节数与路径经脚本核算。未启动服务端,验证码图片的实际效果需要实测。