提示进入GM模式、隐身模式、无敌模式,但GM命令输入后没有任何反应,这种情况在单机架设中非常典型。出现这个现象说明QManage脚本中的ISADMIN判断已经生效,角色确实被识别为管理员,但M2引擎底层的命令执行权限没有真正打开。问题出在权限配置文件、引擎命令开关或脚本授权逻辑这三个层面,与GM命令本身是否正确无关。
先做一项快速验证:在游戏聊天框中输入“@检查权限”或“@gmlevel”(不同引擎命令略有差异),观察返回结果。如果返回“普通玩家”或“权限不足”,说明AdminList.txt的权限配置没有被M2正确加载。如果没有任何返回,说明M2可能根本没有加载GM命令列表。如果返回了权限等级数字,但命令仍然无效,问题在命令前缀或引擎命令开关上。这一步可以快速缩小排查范围。
**AdminList.txt的路径、编码与格式**
很多教程只说把名字加到AdminList.txt里,但没有强调路径的严格性。文件必须位于MirServer\Mir200\Envir\AdminList.txt,部分魔改版本可能放在Mir200\Envir\GmList.txt或Mir200\AdminList.txt。最可靠的确认方式是打开M2Server,点击顶部菜单“查看”,选择“列表信息”,进入“管理员列表”,这个界面能看到M2实际读取的是哪个文件。手动在错误目录下新建的AdminList.txt,M2不会读取。
编码是最高频的失效原因。AdminList.txt必须保存为ANSI编码,UTF-8或UTF-8带BOM格式会导致M2读取时把角色名识别为乱码,ISADMIN判断随之失败。用记事本打开文件,点击“文件”菜单中的“另存为”,在编码下拉框中选择ANSI,覆盖保存后重启M2Server。
格式方面,不同引擎的写法有差异。传统Hero、Blue引擎使用“*角色名”格式,星号代表最高权限。GOM、GEE引擎对这种格式不识别,会默认分配最低的1级权限,需要改成“角色名10”的写法,10代表最高权限等级。LM引擎即使格式正确,如果M2Server的“选项→参数设置”中勾选了“GM权限验证”,权限也会被限制,需要取消该勾选。
角色名的匹配精度也需要逐字符核对。AdminList.txt中填写的必须是游戏内角色名,不是登录账号。角色名区分大小写,不能包含前后空格或全角符号。如果角色名中包含中文或特殊符号,建议新建一个纯英文加数字的角色名,例如“GM001”,写入AdminList.txt后重新登录测试,排除字符编码层面的干扰。
**M2引擎的命令开关与重载机制**
修改AdminList.txt后,仅仅小退角色是不够的。M2Server在启动时将管理员列表加载到内存中,文件改动不会自动同步。必须完全关闭M2Server进程,再重新启动。部分架设包还可能需要连同DBServer和LoginSrv一起重启。如果M2控制台有“重载”按钮,也可以尝试点击重载管理员列表,但重启是最彻底的方式。
M2Server自身可能关闭了GM命令功能。进入M2控制台,找到“选项”菜单下的“游戏命令”或“命令设置”,查看GM命令列表是否处于启用状态。部分精简版架设包默认关闭了高阶GM命令,需要逐项勾选启用。同时检查CommandLimit.ini或Command.ini文件,查看是否有类似“@make=0”的配置项,0代表禁用该命令,需要将其改为对应的权限等级数字,例如“@make=10”。
命令前缀也需要确认。多数传奇引擎的GM命令以“@”开头,但GOM引擎的部分版本使用“!”作为前缀。在聊天框中尝试输入“!Level 40”或“!Make 屠龙”,如果能执行,说明权限正常,只是前缀与你的输入习惯不一致。M2的命令列表中通常标注了每条命令的正确前缀格式。
**QManage脚本的授权逻辑问题**
你在QManage中写的CHANGEMODE代码,作用仅限于切换客户端显示状态,让角色进入隐身、无敌等视觉效果。CHANGEMODE不等于授予命令执行权。真正控制GM命令执行的是M2引擎的权限系统,QManage脚本需要通过专门的授权语句来显式赋予命令权限。
在QManage.txt原有代码的#ACT段落中补充以下语句:SETPERMISSION 255。这条指令的作用是给当前角色赋予全部命令权限,255是权限掩码的满值,适配多数服务端版本。添加后保存QManage.txt,关闭M2Server和所有相关进程,删除Envir文件夹下的Cache子文件夹(如果存在),再重新启动服务端,让脚本完全加载。
部分引擎对ISADMIN条件语句的支持不完整。如果补充SETPERMISSION后仍然无效,尝试将QManage中的ISADMIN替换为CHECKADMINLEVEL。具体写法为:#IF CHECKADMINLEVEL 1,后面接原有的#ACT段落。CHECKADMINLEVEL是多数引擎更底层的管理员检测指令,兼容性比ISADMIN更好。
还需要检查QManage.txt的编码格式。与AdminList.txt一样,QManage.txt也必须保存为ANSI编码。如果用UTF-8保存,脚本中的中文注释或角色名可能导致整个脚本文件读取异常,ISADMIN判断即使通过,后续的#ACT执行段也可能被跳过。
**引擎版本与命令配置文件的适配**
不同引擎版本对GM命令的存储和校验逻辑差异很大。打开Mir200文件夹,查看核心程序的文件名。M2Server_GOM.exe对应GOM引擎,M2Server_GEE.exe对应GEE引擎,M2Server.exe通常是Hero或Blue引擎。确认引擎类型后,才能判断AdminList.txt的正确格式和命令前缀。
GM命令的实际执行由QFunction-0.txt文件处理。这个文件位于Mir200\Envir\QuestDiary目录下,里面以[@@命令名]的格式定义了每条GM命令的处理逻辑。例如“@mapmove”对应[@@MAPMOVE]段落。如果QFunction-0.txt缺失、被重命名为.bak备份文件,或者保存为UTF-8编码,引擎无法识别命令标签,命令输入后不会有任何响应。检查该文件是否存在且为ANSI编码。
部分引擎在启动时会输出“LoadGMcommandlist”之类的日志。如果M2控制台的启动日志中没有类似信息,说明该引擎版本可能在编译时移除了GM命令模块,需要更换完整的M2Server.exe。这种情况在网上下载的精简版架设包中偶有出现。
**插件与脚本的权限覆盖**
带ESP、996、GK等插件的服务端,插件自身可能维护独立的GM白名单。插件控制台如果未将你的角色加入白名单,或者勾选了“限制GM”选项,即使M2引擎的权限配置完全正确,命令也会被插件层拦截。进入插件控制台,将角色名加入白名单,或暂时关闭插件的防外挂和权限限制功能进行测试。
检查QManage.txt中是否存在其他权限覆盖语句。部分架设包的登录脚本中可能包含无条件将权限设置为1的代码,例如“CHANGELEVEL 1”或“SETPERMISSION 1”,这类语句会在ISADMIN判断之后执行,把已经获得的权限覆盖掉。搜索QManage.txt中所有包含“PERMISSION”或“LEVEL”的行,确认没有与GM授权冲突的语句。
如果以上步骤都已完成,在M2控制台直接测试一条基础命令,例如在控制台的命令输入框中执行“@Level 40”。如果控制台执行成功而游戏内仍然失败,问题集中在客户端与M2之间的通信层面,检查登录器是否过滤了“@”字符的发送,尝试在游戏内切换为英文输入法,关闭搜狗等带云输入功能的工具,再输入命令测试。
单机传奇GM命令无效的完整排查与修复方法
来源:
作者:
点击:

