传奇脚本添加后点击无反应:服务端报错、标签缺失与重载生效排查

来源: 作者: 点击:
脚本已经放进目录,但游戏里点击没反应,通常不是“脚本没添加”,而是脚本加载失败、标签对不上、条件不满足、引擎没重载,或者客户端没有真正执行到脚本。先按下面顺序排查。

一、先看M2Server控制台有没有报错

GOM、GEE等引擎,脚本出错时通常会在M2Server控制台弹出错误提示,或在日志里显示错误行。

常见报错形式:

脚本错误:NPC名称-地图坐标 第X行
命令参数错误
标签不存在
IF条件错误
GOTO指向错误
脚本段落缺少#IF、#ACT、#SAY

如果控制台有报错,先根据提示找到对应NPC脚本文件,再定位到错误行。多数点击无反应,都是因为脚本在报错行中断,导致界面不弹出或按钮不执行。

二、检查脚本文件路径是否正确

NPC脚本一般放在:

MirServerMir200EnvirMarket_Def

文件名和NPC名称要对应。如果脚本放错目录,或者文件名写错,游戏里虽然能看到NPC,但点击后可能不执行正确脚本。

还要注意:

文件后缀必须是.txt
文件名不要带多余空格
不要用中文符号混写路径
修改后必须重新保存为ANSI或UTF-8,具体看引擎要求
不要同时存在两个同名NPC脚本

三、检查按钮跳转标签是否匹配

点击没反应,很多时候是按钮调用的标签不存在。

例如按钮写成:

[@Main]
IF
ACT
GOTO @高价回收

那脚本里必须有:

[@高价回收]
IF
ACT
SAY

如果标签写成[@高价回手]、[@高价回收1]、[@高价回收 ],都会导致点击后没有反馈。

重点检查:

GOTO后面的标签名是否完全一致
标签前后是否有多余空格
标签是否被注释或删除
是否跳转到了空段落
是否有多个同名标签造成冲突

四、检查#IF条件是否卡住

有些脚本点击后不报错,也不弹窗,是因为条件没满足,且没有配置后续提示。

例如:

IF
CHECKLEVEL 50
ACT

如果角色只有48级,这个条件不成立,脚本就会停在#IF处,点击后看起来像没反应。

常见卡条件情况:

等级不足
金币不足
元宝不足
物品不足
任务未完成
地图不对
职业不对
转生不足
行会条件不满足

排查方法:把#IF条件临时注释或放宽,再重载脚本,看是否能弹出界面。如果能弹出,说明问题在条件判断,不在脚本加载。

五、检查脚本结构是否完整

传奇NPC脚本通常需要完整段落:

[@Main]
IF
ACT
SAY

如果缺少#IF、#ACT、#SAY,或者段落顺序混乱,脚本可能无法正常运行。

还要注意:

每个段落要有明确标签
GOTO不能跳到不存在的标签
BREAK使用要正确
DelayGoto间隔不能过短
定时器脚本不要每秒大量循环
避免死循环导致脚本卡死

六、修改后必须重载脚本

脚本改完不重载,游戏里仍然执行旧版本。常见做法是在M2Server控制台执行重载脚本命令,或直接重启服务端。

如果不确定是否生效,可以改一个明显提示,例如在#SAY里加一行测试文字,重载后再点NPC。如果测试文字出现,说明脚本已生效;如果没有出现,说明还没加载成功。

七、客户端缓存也可能导致不刷新

有时服务端脚本已经改好,但客户端仍显示旧界面。可以尝试:

大退重进
重新登录角色
清理客户端缓存
重新生成登录器
重启客户端

如果其他玩家点击正常,只有本机不行,多半是客户端缓存或登录器版本问题。

八、版本不匹配也会失效

脚本必须和当前引擎版本匹配。GOM、GEE、HERO、V8、翎风等引擎,命令不完全通用。用错命令时,有的引擎会直接报错,有的引擎会静默跳过,表现就是点击没反应。

排查时注意:

脚本来源是否对应当前引擎
是否混用了不同引擎的命令
是否使用了当前版本不支持的插件命令
登录器是否与服务端引擎配套
客户端插件是否需要PlugClient支持

九、如果是外部辅助脚本点击无反应

如果不是NPC脚本,而是外部挂机脚本、连点脚本、自动拾取脚本点击没反应,常见原因不同。

可能情况:

脚本没有以管理员权限运行
游戏窗口没有获取焦点
分辨率变化导致坐标偏移
脚本版本与游戏版本不匹配
安全软件拦截脚本注入
游戏反作弊拦截模拟点击
脚本热键被其他程序占用

这类问题先看脚本日志,确认脚本是否真正执行到点击步骤。如果日志显示已执行,但游戏里没反应,通常是权限、焦点、分辨率或拦截问题。

十、快速定位顺序

先看M2Server控制台有没有报错。
确认脚本文件在Market_Def目录下。
检查按钮GOTO标签是否存在。
检查#IF条件是否满足。
检查#IF、#ACT、#SAY结构是否完整。
重载脚本或重启服务端。
大退重进,排除客户端缓存。
确认引擎版本和脚本版本匹配。
外部脚本则检查权限、焦点、分辨率和拦截。