工程参考/配置文件修改约定
配置文件应按实际读取它的程序修改。先确定文件位置和格式,再修改明确的一项,检查结果后继续下一项。
找到实际运行的文件
源码 resources 中的文件是样本。打开实际运行的 Server、Login、World、Billing、ShareMemory 所使用的工作目录,再定位 Config。多个进程可能共用一份 Config;复制服务目录后也可能各有一份。同名文件不能只按名称猜用途,索引保留 Server/Public 和子目录。
Public 表示资源组织位置,不自动证明客户端也读取。是否需要同步到客户端,以各页核对的读取路径及客户端资源形式为准,不把服务端配置整目录复制进客户端。
修改与恢复顺序
- 记录当前运行文件位置,确认原环境能够工作。
- 按平时正常流程保存、停服;涉及共享数据时等待 ShareMemory 完成保存。
- 复制原文件作备份,保留编码和换行。需要同时修改多个文件时分别备份。
- 只改实例指定的节、键或行列,保留其余项目。示例片段不能覆盖完整配置。
- 按文件页说明重启对应程序,检查启动、连接及具体功能。
- 失败时先查看报错对应文件、节、键和编号。需要恢复时正常停服,还原本批备份并重新启动;不要清空数据库或共享内存来代替恢复配置。
INI 的读取边界
当前服务端使用自己的 INI 读取器。字段不存在、字段为空和字段值为 0 是三种情况:缺项返回读取失败;已存在的空整数值经过 atoi 得到 0;非法数字文本也可能转成 0,不能把“能读取”当成“值有效”。不同字段随后还可能把 0 当关闭、无限制或非法值,须看具体字段说明。
节名和键名按大小写精确匹配。重复节或重复键首先匹配到前面的条目,不要依赖后写覆盖。保留原 CRLF 换行和行首节标题;不要擅自增加 BOM、缩进节名、在等号前加空格或自动转换换行。字符串在分号、回车、制表符等位置结束,引号不是通用转义机制。
TXT 数据表
扩展名为 txt 不表示普通文章。很多表有类型行、列名行及制表符分隔的数据;每份表以其读取器为准。空列、重复列组、末尾分隔符和列顺序可能都有意义。不要用空格代替 Tab,不用会自动转换编号、日期或科学计数法的方式保存。字段详解的列序号从 1 开始,源码从 0 开始的列下标另行说明。
编号与单位
文件行号不一定是配置 ID。场景 ID、地图资源号、物品编号、对象 ID、GUID 和背包位置不能互换。0、-1、空字符串、百分比和时间值须按字段逐项理解;样本值不自动等于默认值,也不证明所有值都有效。
ODBC 数据库连接
已核对的 Login、Billing、ShareMemory 连接把 DBName 作为 ODBC 数据源名传入 SQLConnect。数据库主机、端口和库名需要在对应 DSN 中核对;仅修改 DBIP/DBPort 不能保证切换数据库。使用与程序位数匹配的 ODBC 数据源管理器:64 位 Windows 的 System32/odbcad32.exe 管理 64 位数据源,SysWOW64/odbcad32.exe 管理 32 位数据源。数据库用户名和密码填写自己的值,不放进公开示例。
怎样理解核对状态
“待核对”表示还不能据此操作;“已核对源码”表示读取规则和说明有源码依据,但游戏运行效果仍需要实测。索引收录文件不等于全部说明已完成。修改前核对自己运行程序和文件格式与文档是否一致。