先分清报错在哪一层:M2弹窗红字是服务端脚本问题,登录器弹“当前页面脚本错误”是客户端/登录器环境,按键精灵报错是挂机前端问题。三层处理完全不一样,别混着改。
一、服务端脚本报错(M2红字/NPC点不开/标签跳转失败)
1.看M2控制台红色日志
格式一般是:
[Error]Scriptfile'QManage.txt'line105:Syntaxerror
记下文件名和行号,去Mir200\Envir下找对应文件,用Notepad++打开跳到那一行。
2.常见语法坑
•[@Login]、[@main]标签名拼错或少了冒号换行
•#IF没闭合,缺#ACT/#ELSE/结束标记
-全角空格、中文引号、特殊符号混进脚本
•发物品名和StdItems.DB不一致,日志会报“找不到物品”
•变量没初始化:登录段引用了没SET过的积分/次数变量
•#CALL路径写错,文件实际在Market_Def\功能\但脚本写错层级
3.编码与缓存
•所有脚本文件统一存ANSI/GBK,别用带BOM的UTF-8
•改完删Mir200\Log\ScriptCache.dat,重载NPC或重启M2
•一次只改一处,改完重启看报错数是否减少,别批量乱改
4.引擎不兼容
GOM的MapMove在Hero里要写ChangeMap;GEE自定义变量在Blue不认;翎风变量系统和Hero的P/G/A不通用。先确认M2主程序是GOM/GEE/Hero/Blue哪一系,再按对应引擎命令手册改命令,别跨引擎硬抄。
5.插件与路径
•插件类“命令未识别”:进M2插件管理看dll是否加载,杀软删了的加白恢复
•服务端路径别放中文/空格,放D:\Mir2Server这种纯英文目录
•C盘ProgramFiles下权限不足,改完不生效,换盘或给目录完全控制权限
二、登录器弹“脚本发生错误”
1.把服务端和登录器挪到纯英文无空格路径,重新用配置器生成登录器
2.注册VBScript/JScript组件,管理员身份运行配置器
3.关杀软、加白名单,检查DLL是否被拦
4.客户端Data/Envir脚本和服务端版本对齐,两端不一致会解析失败
5.账号进Administrators组,注册表LegendofMir键值有权限写
三、按键精灵挂机脚本报错/空跑/闪退
1.窗口绑定失败
•单开一个游戏窗口,不改窗口标题
•关掉多余客户端进程,避免句柄冲突
•按键精灵用管理员身份运行,开窗口抓取权限
2.找图找色失效
•用抓抓工具重新取色,加颜色容差
•分辨率固定、系统缩放调100%、画质恢复默认
-别开DWM合成器拦截,关游戏模式
3.运行到一半停
•关键操作前加SetForegroundWindow保焦点
•连续点击/循环里加Delay300~800,别零延时连发
•For/If首尾必须闭合,缺Return或Next会编译失败
4.调试方法
•关键步骤插TracePrint输出变量和步骤名,看调试窗口停在哪
•单步调试正常但直接跑崩,就是延时和焦点问题
•先还原未改过的原版脚本,确认环境没问题再逐步加功能
四、通用排错顺序(照做能解决80%)
1.备份原脚本,只在测试服改
2.看M2红字,记文件+行号
3.注释法:把QFunction-0.txt按段用;注释一半,重启定位区段
4.修语法→存ANSI→删缓存→重载NPC
5.复现触发,看日志是否还报
6.引擎/网关/插件版本成套,不混搭
五、几个容易忽略的点
•登录就报错的,优先查QuestDiary\Login.txt和QManage.txt的[@Login]段
•地图触发看MapQuest.txt指向的脚本是否存在
-装备显示??是DB编码问题,特效不触发是客户端补丁没对上
•端口10048冲突用netstat-ano查占用杀掉
•时间格式报错把系统改24小时制,或清掉Setup.txt里异常时间参数
改脚本别靠猜,日志给的行号就是答案。先定位再动手,改一处测一次,比整包替换文件稳得多。
一、服务端脚本报错(M2红字/NPC点不开/标签跳转失败)
1.看M2控制台红色日志
格式一般是:
[Error]Scriptfile'QManage.txt'line105:Syntaxerror
记下文件名和行号,去Mir200\Envir下找对应文件,用Notepad++打开跳到那一行。
2.常见语法坑
•[@Login]、[@main]标签名拼错或少了冒号换行
•#IF没闭合,缺#ACT/#ELSE/结束标记
-全角空格、中文引号、特殊符号混进脚本
•发物品名和StdItems.DB不一致,日志会报“找不到物品”
•变量没初始化:登录段引用了没SET过的积分/次数变量
•#CALL路径写错,文件实际在Market_Def\功能\但脚本写错层级
3.编码与缓存
•所有脚本文件统一存ANSI/GBK,别用带BOM的UTF-8
•改完删Mir200\Log\ScriptCache.dat,重载NPC或重启M2
•一次只改一处,改完重启看报错数是否减少,别批量乱改
4.引擎不兼容
GOM的MapMove在Hero里要写ChangeMap;GEE自定义变量在Blue不认;翎风变量系统和Hero的P/G/A不通用。先确认M2主程序是GOM/GEE/Hero/Blue哪一系,再按对应引擎命令手册改命令,别跨引擎硬抄。
5.插件与路径
•插件类“命令未识别”:进M2插件管理看dll是否加载,杀软删了的加白恢复
•服务端路径别放中文/空格,放D:\Mir2Server这种纯英文目录
•C盘ProgramFiles下权限不足,改完不生效,换盘或给目录完全控制权限
二、登录器弹“脚本发生错误”
1.把服务端和登录器挪到纯英文无空格路径,重新用配置器生成登录器
2.注册VBScript/JScript组件,管理员身份运行配置器
3.关杀软、加白名单,检查DLL是否被拦
4.客户端Data/Envir脚本和服务端版本对齐,两端不一致会解析失败
5.账号进Administrators组,注册表LegendofMir键值有权限写
三、按键精灵挂机脚本报错/空跑/闪退
1.窗口绑定失败
•单开一个游戏窗口,不改窗口标题
•关掉多余客户端进程,避免句柄冲突
•按键精灵用管理员身份运行,开窗口抓取权限
2.找图找色失效
•用抓抓工具重新取色,加颜色容差
•分辨率固定、系统缩放调100%、画质恢复默认
-别开DWM合成器拦截,关游戏模式
3.运行到一半停
•关键操作前加SetForegroundWindow保焦点
•连续点击/循环里加Delay300~800,别零延时连发
•For/If首尾必须闭合,缺Return或Next会编译失败
4.调试方法
•关键步骤插TracePrint输出变量和步骤名,看调试窗口停在哪
•单步调试正常但直接跑崩,就是延时和焦点问题
•先还原未改过的原版脚本,确认环境没问题再逐步加功能
四、通用排错顺序(照做能解决80%)
1.备份原脚本,只在测试服改
2.看M2红字,记文件+行号
3.注释法:把QFunction-0.txt按段用;注释一半,重启定位区段
4.修语法→存ANSI→删缓存→重载NPC
5.复现触发,看日志是否还报
6.引擎/网关/插件版本成套,不混搭
五、几个容易忽略的点
•登录就报错的,优先查QuestDiary\Login.txt和QManage.txt的[@Login]段
•地图触发看MapQuest.txt指向的脚本是否存在
-装备显示??是DB编码问题,特效不触发是客户端补丁没对上
•端口10048冲突用netstat-ano查占用杀掉
•时间格式报错把系统改24小时制,或清掉Setup.txt里异常时间参数
改脚本别靠猜,日志给的行号就是答案。先定位再动手,改一处测一次,比整包替换文件稳得多。

