CHANGEMODE与GM权限的本质区别
QManage里用ISADMIN检测通过后执行CHANGEMODE 1 1、CHANGEMODE 2 1、CHANGEMODE 3 1,这几条仅仅是给角色开启了隐身模式、攻击模式、无敌模式的客户端显示状态,并不代表服务端已经正式授予该角色执行GM指令的底层权限。CHANGEMODE是人物状态切换命令,GM命令执行权完全依赖AdminList.txt被M2引擎正确加载以及M2内部GM命令开关是否开启。提示进入GM模式只是脚本发了一句SendMsg而已,和实际有没有管理员执行权是两回事。
AdminList.txt文件格式与编码问题
文件必须存放在Mir200\Envir目录下,内容格式为角色名后面跟一个英文空格再写号,例如GM001 ,不能有多余的中文空格、Tab符、句尾空格或空行里藏有特殊字符。最重要的一点是必须用ANSI编码保存,如果用UTF-8或带BOM的编码,M2读取时角色名会变成乱码,导致引擎根本没把这个名字识别成管理员,ISADMIN在脚本里能过是因为部分引擎ISADMIN检测宽松或缓存旧数据,但实际命令权限是查AdminList真实加载情况判定的,编码错了就加载失败。改完用记事本另存为ANSI覆盖原文件。
M2引擎GM命令全局开关未开启或被过滤
打开M2Server控制台,点选项、游戏选项、参数设置或功能设置,里面有个允许GM命令或启用GM指令的总开关,必须勾选。部分版本在查看、列表信息二、消息过滤里会把@开头的命令拦截,如果过滤列表里有@make、@mob、@level等,输入命令会无任何反应或被直接吞掉不返回提示。还有在命令管理里每个GM指令都有最低权限等级要求,虽然你是*号最高,但如果某条命令被单独设为权限10而引擎内部权限映射异常,也会用不了,需要在M2的GM命令管理里确认所有命令权限下限设为0或1。
AdminList修改后未重载或未彻底重启
修改AdminList.txt后必须让M2重新读取,可以在游戏里输入@ReloadAdmin让M2重新加载管理员列表,或者直接关掉所有服务端控制台再从头启动控制器。如果只是小退重登而不重载,M2内存里还驻留着旧的空权限表,就会出现在脚本里ISADMIN偶发能通过(脚本缓存)但真执行命令时被权限模块拦下来的情况。
角色名大小写与空格隐性不一致
游戏内创建角色时如果名字里带了尾部空格,或者你输入名字时用了中文括号、全角空格,AdminList里看起来一样但实际ASCII码不同,引擎判定为非同一人。建议在游戏里用小号查一下该GM角色的精确名字显示,复制出来粘到AdminList里,确保前后无空格。部分Hero引擎对大小写敏感,ABC和abc会被当成两个不同账号。
QManage脚本执行时机与权限覆盖冲突
QManage是登录时触发一次,如果服务端在其他地方如QFunction-0.txt的[@PlayLevelUp]或[@Login]段里有脚本把GM模式又给关掉了,或者某些插件、反外挂模块检测到权限10会自动限制命令执行,就会出现上线那一瞬间提示进入GM模式,随后权限被覆盖失效。可以试着上线后在聊天框手动输入@gmmode on或@GameMaster看能不能再开一次,如果提示没有权限,说明AdminList根本没加载成功。也可以在M2的查看、在线人物里找到你自己,看权限等级那一栏是不是显示为0还是10,显示0就是AdminList没读进去。
客户端输入格式与命令前缀错误
不同引擎GM命令前缀不一样,Hero、GOM、BLUE常用@开头,部分版本用!或/,如果M2里设置的命令前缀是@但你输入了!make,系统当普通喊话处理无反应。还有部分是全角半角问题,输入了全角@或全角空格在参数里也会失效。对照M2里列出的GM命令表严格按那个前缀和格式输,比如@make 屠龙刀 1,物品名和数量间是英文空格,数量不能漏。
引擎版本与权限符号差异
少数引擎的AdminList.txt最高权限不是而是10,写可能被当成普通文本忽略导致权限为0,虽然有些版本兼容*号,但稳妥起见可以试写角色名 10看看。如果是GEE或翎风类引擎还可能要求在M2里手动在管理员列表点添加把名字录进去并选等级10,纯文本改文件在某些情况下不被自动读取。
传奇单机AdminList添加GM名权限星号脚本开启模式仍不能用命令
来源:
作者:
点击:

