查看“︁工程参考/配置文件/Server/GMList.ini”︁的源代码
来自天龙知识库
←
工程参考/配置文件/Server/GMList.ini
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:<span style="font-size:24px;line-height:1.4;overflow-wrap:anywhere;">工程参考/配置文件/Server/GMList.ini</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;"> [[首页|首页]] · [[工程参考/配置文件索引|配置文件索引]] · [[工程参考/配置文件修改约定|修改约定]] GMList.ini 登记哪些角色可以通过游戏内指令入口执行管理命令,以及各角色的权限档位。这里使用角色的持久 GUID,不使用场景中的对象 ID、账号 ID、角色名字或背包位置。 [[#文件位置与生效|位置与生效]] · [[#文件格式|文件格式]] · [[#字段详解|字段详解]] · [[#常用修改实例|修改实例]] == 文件位置与生效 == {| 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/GMList.ini</code>,相对于读取程序的工作目录。源码 resources/Server/Config 是样本位置,实际部署可能另有副本。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 读取程序 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | Server 游戏进程 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 生效方法 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 可正常停服后重启 Server;已有权限足够的管理员也可通过现有 GM 指令入口执行 reloadgmlist(别名 debug_reloadconfig),重读当前 Server 的 GMList.ini。这不是 Lua 函数,也不重载全部配置。该命令要求旧名单中的 access=0 权限;首次配置或已失去权限时使用重启方式。多个 Server 需分别生效。 |- | 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;">GB18030-compatible</code>,<code style="white-space:normal;overflow-wrap:anywhere;">CRLF</code>。保留原编码;源码读取器不会自动把中文转为 UTF-8。 |} 所有项目位于 [gm]。count 控制读取 guid0/access0、guid1/access1 等连续条目;样本即使保留了更多 guid 行,超出 count 的部分也不参与本轮读取。 == 文件格式 == 使用 [节名] 与 Key=Value,节名和键名区分大小写,保持节标题位于行首。用单独一行分号写注释,保留原编码及 CRLF 换行;重复节或键取先匹配项,不依赖后写覆盖。缺项、空值与 0 分别按下表处理。 == 字段详解 == 模板 [n] 表示从 0 开始的序号,写入时应展开为实际数字;不是字面键名。 === [gm] === {| 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;" | <code style="white-space:normal;overflow-wrap:anywhere;">count</code><br>整数,0 到 256 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 实际启用的角色条目数,按 n=0 到 count-1 读取。0 表示本名单没有任何角色;源码的循环没有可靠上限防护,不能超过数组容量 256。 | 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;">guid[n]</code><br>十进制整数,角色 GUID | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 同序号的 access[n] 属于此角色。GUID 在换场景后保持角色身份;日志中 GUID=%X 是十六进制显示,须先转换为十进制,不能把 0x 前缀直接交给 atoi 读取。GUID 重复时指令入口使用第一条匹配记录。 | 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;">access[n]</code><br>整数,0 到 4 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 0 对应 ALL,允许全部已实现且列入权限表的指令;1 对应 ADMIN(含物品、经验等修改);2 对应 GMADMIN(含传送、查询等);3 对应 GM(含系统消息等);4 映射到等级 0,权限表拒绝所有指令。数值越小权限越高,具体命令仍受各自处理条件约束。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 可选;缺失、负数或超过 4 都回退为 0,即最高档。空值经 atoi 也为 0。应明确填写合法值。 |} == 常用修改实例 == 示例为局部教学片段,先备份原运行文件,再修改对应行并保留其余配置。教学值不是程序默认值。 === 降低已有测试管理员的权限 === 修改前: <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">[gm] count=1 guid0=123456 access0=0</pre> 修改后: <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">[gm] count=1 guid0=123456 access0=3</pre> 123456 是教学 GUID,操作时保留目标角色原有的 guid 值与 count,只把它对应的 access 从 0 改为 3。若原文件还有其他管理员,全部保留。修改前由另一名 access=0 的管理员准备重载,或采用停服重启;降权后该角色不能再靠 reloadgmlist 自行恢复最高档。预期是该角色仅通过最低一档指令检查,具体操作仍须测试。 == 验证与排查 == 确认启动参数与共享内存模式,再核对角色 GUID、count 和每项 access。重载后检查 Server 日志的 GMAccess 与 Deny/执行结果;日志将 GUID 打印成十六进制。分别用目标角色和普通测试角色确认权限,不执行发物品、删角色等有副作用的命令来试探。失败时正常停服并恢复备份。 名单生效还有前提:正常命令开关关闭、且 Server 启用共享内存时才按此名单核对角色。Server 启动参数 -commandenable 会跳过名单并沿用 access=0;关闭共享内存的分支也把当前角色视作可执行管理命令。不能仅检查名单就认定普通玩家没有 GM 权限,也不要用这两个开关来修复名单。移除管理员时删除对应整对条目并压紧后续序号、减少 count;保留恢复路径。 == 关联与依据 == [[工程参考/配置文件/Server/ServerInfo.ini|Server/ServerInfo.ini]] [[工程参考/配置文件索引|其他配置及整理状态]] · [[工程参考/服务端外网设置|服务端外网设置]] · [[Lua接口/服务端函数索引|Lua 接口索引]] * <code style="white-space:normal;overflow-wrap:anywhere;">Common/ServerBase/Ini.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Common/ServerBase/Ini.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Common/ServerBase/FileDef.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Common/GameDefine2.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/GameServer/Server/Main/GameTable.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/GameServer/Server/Main/GameTable.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/GameServer/Server/Packets/CGCommandHandler.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/GameServer/Server/Main/Server.cpp</code>:实际加载、解析、字段使用或示例关联依据 本页核对源码读取、字段使用与样本格式,未启动游戏、服务端或数据库。解析验证不等于游戏实测;广播、权限、客户端交互等运行结果需要实测。 </div> [[Category:工程参考]]
返回
工程参考/配置文件/Server/GMList.ini
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息