传奇NPC脚本添加后游戏点击无反应M2日志编码命令重载全排查修复教程

来源: 作者: 点击:
先开M2控制台看有没有红色报错。NPC点不开、菜单不弹、点了没任何反馈,优先看M2的Script Error、cannot open file、label not found、Syntax error这类信息,报错会带文件名和行号,直接定位比盲改快。M2没报错但游戏没反应,再走路径、加载、编码、命令、客户端这几条线。

Market_Def里的NPC脚本先核对文件命名和挂载。NPC文本放Mir200\Envir\Market_Def,部分引擎要求按“NPC名-地图号.txt”或带子目录,且MerChant.txt里NPC名、地图、坐标、脚本文件名、入口标签要一致;入口标签一般是[@main],菜单选项用#act跳转@子标签。MerChant里写错文件名、写@start但脚本只有@main、坐标不在该地图可行走点,都会点了没反应。 改完别只存文件,M2控制台做重新加载NPC/重载脚本;部分版本清Mir200\Log\ScriptCache.dat再重启M2更稳。

QuestDiary里的功能脚本看调用关系。NPC用#CALL调用QuestDiary子文件时,子文件路径、文件名、标签名必须存在。比如NPC写#CALL[QuestDiary\抽奖\抽奖.txt]@ChouJiang,实际文件在Market_Def或路径拼错,就会无反应或报cannot open file。外部标签跳转用[@ChouJiang]接收,少写标签、标签重名、CALL路径用绝对盘符都可能失效。 机器人/自动脚本不归NPC点击,走RobotManage.txt、AutoRunRobot.txt、M2的@ReloadRobot重载;标签名、RunOnHour/RunOnDay格式、HUMAN/GLOBAL变量作用域不对也会完全不跑。

编码问题最常见。老GOM/HERO/BLUE很多要求ANSI,新GOM/GEE部分要求UTF-8无BOM;用记事本另存为UTF-8带BOM,首行命令或中文会被解析异常,表现就是NPC空白、点不动、菜单乱码。Notepad++里看编码,ANSI版转ANSI,要求UTF-8无BOM的转对应格式,别混用。全角逗号、全角括号、全角空格、中文分号也会导致整段不执行,所有#IF、#ACT、命令参数、变量名用半角。

命令按引擎替换,别跨引擎抄。HERO用GIVE 元宝、CHECKGAMEGOLD等自有写法;GOM/GEE常用GAMEGOLD加减、CHECKGAMEGOLD、GIVE物品、SENDMSG,GEE部分用SendCenterMsg代替SENDMSG;BLUE很多功能脚本文件名和命令固定,LEG要在头部开#DEFINE触发宏;翎风、彩虹还有各自变量和DLL。把GOM脚本直接塞HERO、把GEE脚本塞BLUE,不识别的命令会静默失败或整段中断。 不确定命令就查服务端里的脚本命令说明.txt或引擎命令表,按本服M2名称对号。

条件判断写错会让“点击没反应”像没加载。#IF下面放CHECKGAMEGOLD、CHECKITEM、CHECKLVL、ISONMAP、CHECKJOINGUILD等,条件不满足本就不执行#ACT,只走#ELSESAY;如果#ELSESAY也写错或不写,玩家看到的就是点一下没动静。排查时把复杂条件临时删掉,只留[@main]直接#SAY出一行字,能出字说明加载和点击正常,再逐步加条件。变量没定义、没SAVEVAR、HUMAN/GLOBAL用混、P变量当G变量用,也会导致看起来没反应。

物品名、货币名、地图名必须和数据库一致。GIVE 屠龙 1但ItemDB里叫“屠龙刀”,发不出来;TAKE 金币不写数量、CHECKGAMEGOLD参数格式不对,条件直接失败;MapMove/ChangeMap地图号在MapInfo.txt不存在,点击后不跳也不报错。先在M2物品管理、地图配置、行会/元宝设置里抄准确名称,再写进脚本。货币类型尤其容易错,元宝、金币、点券、积分不是同一个检测命令,混用就无反应。

M2插件和DLL缺失也会让高级脚本哑火。用到商业活动、ESP、合击、连击、自定义CALLDLL时,M2插件管理里没勾、DLL被杀软删、插件版本和引擎不匹配,脚本调用命令会报未识别或直接跳过。看M2启动日志有没有plugin/dll加载失败,杀软把Mir200加白名单,缺插件从同版本完整包恢复,不要拿别的引擎dll硬塞。

客户端UI按钮、自定义界面点了没反应,和服务端NPC两回事。GOM类看ButtonConfig.ini、UIConfig,GEE类看UI脚本和Button条目,按钮ID、脚本路径、点击事件要绑定;按钮权限看DB\AdminList.txt或脚本里CheckPermission/CheckVIP,普通玩家权限配成GM专用就会不显示或点了无回调。 客户端Data里NPCData.cfg、Npc.ini、PAK/补丁缺失,NPC能看见但点不动;微端没重开UpdateServer,新按钮素材没下发,也会只显示空框。分辨率改了、全屏缩放、窗口比例和脚本坐标不一致,自定义按钮会出现“看得见点不到”,调回版本标准分辨率或重做UI布局。

如果是模拟点击/辅助宏点了没反应,不按服务端脚本处理。先确认游戏窗口模式、分辨率固定,模拟器或连点器用管理员权限,坐标按当前窗口实际像素重抓;全屏模式、DPI缩放、后台模式、反作弊模块都会让模拟输入失效。这类问题不属于NPC脚本 bug,按“换窗口模式—重抓坐标—管理员运行—关冲突安全软件—看游戏保护日志”处理,但用第三方自动点击仍存在协议和处罚风险,正版环境优先用游戏内置挂机。

标准排查顺序就六步。第一步M2看报错文件和行号,改对应行;第二步确认文件在Market_Def或QuestDiary正确子目录、MerChant/NPC刷新配置绑定、[@main]存在;第三步M2重新加载NPC/重载脚本,必要时清缓存重启;第四步用Notepad++把编码转ANSI或UTF-8无BOM、全文件搜全角符号和重复标签;第五步把跨引擎命令按本服命令表替换、删复杂条件做最小可点菜单;第六步NPC能出字再接GIVE/TAKE/跳转,UI按钮再查ButtonConfig、PAK、权限、分辨率。按这个顺序基本能分出是没加载、加载了但语法断、条件不满足、命令不兼容,还是客户端按钮/补丁问题。