脚本错误“exit 第:130 行”表明引擎在解析QManage.txt文件时,在第130行遇到了一个无法识别的命令“exit”。根据提供的脚本片段,核心问题在于命令拼写错误、标签结构不完整及语法格式混乱。该错误会导致角色登录时脚本执行中断,可能影响封号、禁言解除等功能的正常触发。
一、错误根源与逐行分析
1. 命令拼写错误
在 [@jiechu] 段落末尾,错误地使用了 eixt 和 } 字符。引擎无法识别这些字符,从而抛出错误。正确的结束命令应为 close 或 break。
错误代码:
[@jiechu]
#act
Gmexecute ReleaseShutup Self close break
eixt
}
修正:
• 删除错误的 eixt 和 }。
• 根据逻辑,该段只需保留 Gmexecute ReleaseShutup Self 命令即可,close break 在此上下文中也可能引发问题,建议移除。
2. 标签结构缺失与语法错误
• [@denglu] 标签后直接调用了两个 #CALL 命令,但随后又出现了独立的 #IF 和 #SAY 段落,这不符合引擎的解析规则。#IF 必须与 #ACT 或 #ELSESAY 等配对使用,单独的 #IF 会被视为错误。
• 脚本中混入了网页换行符 <br>,这会导致引擎无法识别,必须彻底删除。
二、完整修正后QManage.txt脚本参考
根据常规登录脚本结构,修正内容如下。请用此内容替换原有出错的QManage.txt文件。
[@Login]
#CALL [\登陆\登陆脚本.txt] @登陆设置
#CALL [\封号系统\封号系统.txt] @封号分类
#IF
#ACT
#CALL [\系统功能\登录奖励.txt] @检测奖励
#IF
CHECK [001] 1
#ACT
SENDMSG 6 欢迎您回到游戏!
break
#IF
CHECKNAMELIST ..\QuestDiary\封禁名单\禁言.txt
#ACT
goto @jiechu1
break
[@jiechu1]
#SAY
╔┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╗ \
┆ 本窗口进行再次解除禁言操作! ┆ \
┆ 您可以按下面的提示帮助进行操作恢复发言. ┆ \
┆ 请点击 [<解除禁言/@jiechu>],为自己恢复发言! ┆ \
┆ —暴雪神话2007— ┆ \
╚┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╝ \ \ \ \
[@jiechu]
#ACT
GMEXECUTE ReleaseShutup Self
SENDMSG 6 您的禁言状态已解除。
goto @Login
三、关键修正点说明
1. 统一登录标签:将 [@denglu] 更改为引擎标准识别的 [@Login] 标签。这是角色登录时引擎自动触发的入口。
2. 删除非法字符:彻底清除了脚本中的所有 <br> 网页标签、错误的 eixt 及孤立的 } 符号。
3. 修正语法结构:为独立的 #IF 段落补全了对应的 #ACT 和执行逻辑。将 [@jiechu1] 段落前的 #IF 和 #SAY 整合到标准标签结构中。
4. 规范GM命令:将 Gmexecute 修正为 GMEXECUTE(注意大小写,部分引擎对命令大小写敏感),并移除了后面冗余的 close break。
5. 完善逻辑流程:在 [@jiechu] 段落后添加了反馈消息 SENDMSG 和跳转回登录流程的 goto @Login,使流程更完整。
四、修正后操作与测试步骤
1. 备份与替换:备份原始的 D:\mirserver\Mir200\Envir\MapQuest_def\QManage.txt 文件,然后用上方修正后的完整脚本内容替换。
2. 重载脚本:在M2Server(游戏主控台)的命令输入框中,输入 @ReloadManage 并回车,重载登录脚本。这是最关键的一步,使修改立即生效,无需重启服务端。
3. 测试功能:
◦ 创建一个新角色登录,检查是否正常触发封号系统和登录奖励。
◦ 将某角色名单加入 ..\QuestDiary\封禁名单\禁言.txt 文件,然后登录该角色,检查是否会弹出禁言解除对话框 ([@jiechu1])。
◦ 点击对话框中的“解除禁言”,检查是否成功解除并收到提示消息。
五、后续错误排查
若修正后仍报错,请注意M2Server控制台提示的新错误行号与命令。
• 检查调用路径:确认 \登陆\登陆脚本.txt 和 \封号系统\封号系统.txt 等被调用文件存在于 QuestDiary 目录下,且内部标签(如 @登陆设置、@封号分类)存在。
• 检查编码:使用记事本或Notepad++打开QManage.txt,确保文件编码为 ANSI,而非UTF-8。编码错误会导致所有中文和符号变成乱码,引发脚本错误。
核心错误是无效命令“eixt”和混乱的脚本结构。按照上述方案修正并重载后,登录流程即可恢复正常。

