当前位置 : 145z游戏站 | 魔域 | 技术教程 | 

总是显示脚本错误怎么办:M2日志定位与按键句柄排查法

热度:
“总是显示脚本错误”不是单个毛病,是传奇 M2、按键精灵/大漠、网页游戏三类场景共用红字。先定性你属于哪一类,再按对应通道修,盲搜“脚本错误修复工具”没用。

传奇服务端 M2 反复报脚本错误
M2 控制台或 Mir200\Log\-M2Server-日期.log 里必带“文件名 + Line 行号 + 命令/标签错”,这是唯一坐标。
• 跳行:Notepad++ 打开报错文件(如 Market_Def\老兵.txt 第 967 行、QFunction-0.txt 第 1938 行),Ctrl+G 跳过去。

- 行号对不上文件行数:文件被存成 UTF-8 或 UTF-8 BOM,引擎只认 ANSI。记事本/Notepad++ 另存为 ANSI,换行符转 Windows(CRLF),覆盖原文件,M2 点“重新加载NPC”或重启 M2。
- 语法断点:#IF 没配 #ACT/#SAY、GOTO @xxx 但文件里没 [@xxx]、中文括号混进命令、GIVE 写 GIVe、TAKE 少数量参数、行尾藏全角空格。Notepad++ 开“显示符号→显示空格”把黄色空格删掉。
- 资源名不对:GIVE 裁决之杖 1 但 StdItems.DB 里叫“裁决之杖”多一空格也不行;MAPMOVE 地图号不在 MapInfo.txt;MonItems 怪物名拼错。抄 DB 字段原样粘。
- 跨引擎硬套:HERO 脚本丢 GOM、翎风函数(SetNewItemValue/CHECKVAR)低版不认,升引擎或改回本引擎命令。
• 改前备 Envir 整夹,用“;”分段注释法缩范围,别整段重写。

按键精灵/大漠脚本总是报错(找不到窗口/句柄=0/绑定失败)
• 游戏没起完就 BindWindow:脚本开头加 Delay 1500 等窗口,用 Plugin.Window.Find(0,"部分标题") 模糊匹配,别死磕精确标题(雷电-2、DNF 动态后缀都匹配不到)。

- 权限隔离:游戏以管理员跑、按键精灵普通权限,UAC 把句柄藏了。按键主程序和脚本都右键“以管理员身份运行”。
• 全屏独占 / DPI 缩放:游戏切窗口化或无边框,系统缩放锁 100%,大漠绑定参数 gdi 不行换 gdi2/dx2/dx3。

- 找图找色失败不算语法错:截图存 24 位 BMP,相似度从 0.9 降到 0.7,多点找色代替单点,重截客户区(GetClientRect)。
• 进魔域/DNF 录不到事件:游戏走 Raw Input 或 TP 清钩子,不是脚本错,放弃消息录制改坐标+图像识别或硬件宏。

网页游戏/大厅弹“脚本错误”(QQ 游戏、页游 H5)
清 IE/Edge 临时文件、Cookie、历史记录,重装游戏大厅或换 Chromium 内核浏览器进 H5 服;页游自身 JS 报错多因缓存残包,硬刷新 Ctrl+F5 比下辅助管用。

通用兜底顺序(任何场景先走这遍)
重启游戏/服务端排除临时锁 → 抄文件名行号不靠猜 → 备原文件 → 编码转 ANSI、命令全半角英文、路径纯英文无空格 → 跨版本脚本对照引擎 API 改命令名 → 缺运行库装 VC++ 2005-2022 合集与 .NET 4.8。
定位不到“哪一行+哪个文件+什么引擎”之前,任何“一键修复”都是改坏别处。M2 报 nil 类(m.PEnvir=nil)不是本脚本错,是 Merchant.txt 地图标识对不上 MapInfo,回地图层查;按键报“句柄无效”不是命令错,是窗口没交给脚本权限。
[顶部]