查看“︁工程参考/配置文件/辅助资源”︁的源代码
来自天龙知识库
←
工程参考/配置文件/辅助资源
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:<span style="font-size:24px;line-height:1.4;overflow-wrap:anywhere;">工程参考/配置文件/辅助资源</span>}} __NOTOC__ <div class="config-file-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;"> [[首页|首页]] · [[工程参考/配置文件索引|配置文件索引]] · [[工程参考/配置文件修改约定|修改约定]] Server/Config 下的两个 .cpf 是图形验证码用的字库,不是配置文件:chs.cpf 提供汉字字形,ascii.cpf 提供数字字形。 GameServer 启动时分别把它们绑到两个生成器上,之后画验证码时从对应字库取字形。LoginServer 另外用 ascii.cpf 作为自己的字体。 [[#文件位置与生效|位置与生效]] · [[#文件格式|文件格式]] · [[#字段详解|字段详解]] · [[#常用修改实例|修改实例]] == 文件位置与生效 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 项目 ! scope="col" style="width:76%;text-align:left;background:#edf3f2;padding:8px;" | 说明 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 运行文件 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">./Config/chs.cpf</code> 与 <code style="white-space:normal;overflow-wrap:anywhere;">./Config/ascii.cpf</code>,相对于 GameServer 工作目录;LoginServer 也按 <code style="white-space:normal;overflow-wrap:anywhere;">./Config/ascii.cpf</code> 打开自己的字体。源码 resources/Server/Config 是样本位置。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 读取程序 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | GameServer:Server.cpp 里 g_pGlobalCaptchaFontFile->openFromFile("./Config/chs.cpf") 与 g_pGlobalCaptchaFontFileDigit->openFromFile("./Config/ascii.cpf");LoginServer:Login.h 的 FILE_LOGIN_FONT 指向 "./Config/ascii.cpf" |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 生效方法 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 停服后备份并整体替换,再重启对应进程。字形在进程启动时随生成器绑定一次加载,当前检索未发现运行时重载入口。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 样本格式 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">resource</code>,<code style="white-space:normal;overflow-wrap:anywhere;">LF</code>。保留原编码;源码读取器不会自动把中文转为 UTF-8。 |} === 系列成员 === {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:34%;text-align:left;background:#edf3f2;padding:8px;" | 文件 ! scope="col" style="width:42%;text-align:left;background:#edf3f2;padding:8px;" | 用途与打开方式 ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 说明 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <span id="file-5e9340742f0d"></span><code style="white-space:normal;overflow-wrap:anywhere;">Server/chs.cpf</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | GameServer 的验证码中文(汉字)字库<br><code style="white-space:normal;overflow-wrap:anywhere;">g_pGlobalCaptchaFontFile->openFromFile("./Config/chs.cpf")</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 1152392 字节。生成器 g_pGenerator 绑定它,用于升级等场景的汉字验证码。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <span id="file-8a114707a244"></span><code style="white-space:normal;overflow-wrap:anywhere;">Server/ascii.cpf</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | GameServer 数字验证码字库与 LoginServer 字体<br><code style="white-space:normal;overflow-wrap:anywhere;">g_pGlobalCaptchaFontFileDigit->openFromFile("./Config/ascii.cpf")</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 7792 字节。另一个生成器 g_pGeneratorDigit 绑定它,只画数字;Login.h 里还有 FILE_LOGIN_FONT 指向同名文件。 |} {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 检查项 ! scope="col" style="width:76%;text-align:left;background:#edf3f2;padding:8px;" | 结论 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 为什么有两个字库 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 汉字验证码与纯数字验证码用不同生成器,升级输入框只接受数字,所以单独绑了数字字库。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 文件内容会被解析吗 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不会。程序按原始字节打开,交给生成器自行解释。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 改了会立刻生效吗 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不会。生成器在启动时绑定字库,需要重启进程。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 能用文本编辑器改吗 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不能。另存或转码会破坏字节,导致验证码画不出来。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 字库缺失会怎样 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 生成器拿不到字形,验证码无法生成,相关流程会失败。 |} == 文件格式 == 二进制字库文件,程序把它当作原始字节打开,不解析文本。扩展名、文件名与字节内容都不能改动,也不要用文本编辑器另存或转码。 == 字段详解 == 按文件整体替换,不改内部字段。 本文件是二进制字库,程序按原始字节打开,没有类型行、列名行,也没有可逐项修改的字段。 == 验证与排查 == 重启后触发一次需要验证码的流程(例如升级确认),确认验证码图片能正常生成、汉字或数字清晰可辨。若图片空白或报错,先核对两个文件是否完整存在于进程工作目录的 Config 下、字节数是否与备份一致。失败时恢复备份并重启。 === 这是资源不是配置 === .cpf 没有类型行、列名行,也没有可逐项修改的字段。要换字库就整体替换文件,不要试图改里面的文本。 === 路径相对于进程工作目录 === 代码里写的是 <code style="white-space:normal;overflow-wrap:anywhere;">./Config/</code>,实际取的是各进程自己的 Config 目录。复制服务目录后每份都可能各有一套。 === 数字字库被两个进程用 === GameServer 的 <code style="white-space:normal;overflow-wrap:anywhere;">g_pGeneratorDigit</code> 与 LoginServer 的 FILE_LOGIN_FONT 都指向 ascii.cpf。替换它要同时考虑两个进程。 === 不要和客户端字体混为一谈 === 这是服务端画验证码用的字库,与客户端界面字体无关,也不要把它复制到客户端资源目录。 == 关联与依据 == [[工程参考/配置文件索引|其他配置及整理状态]] · [[工程参考/服务端外网设置|服务端外网设置]] · [[Lua接口/服务端函数索引|Lua 接口索引]] * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/GameServer/Server/Main/Server.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/GameServer/Server/Packets/CGReqLevelUpHandler.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/LoginServer/Login/Main/Login.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">resources/Server/Config/ascii.cpf</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">resources/Server/Config/chs.cpf</code>:实际加载、解析、字段使用或示例关联依据 本页核对两个 .cpf 的打开位置与绑定生成器(g_pGenerator、g_pGeneratorDigit)、LoginServer 的 FILE_LOGIN_FONT 指向、以及它们按原始字节打开不被解析的事实;样本字节数与路径经脚本核算。未启动服务端,验证码图片的实际效果需要实测。 </div> [[Category:工程参考]]
返回
工程参考/配置文件/辅助资源
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息