传奇M2Server脚本加载错误与SetOnTimer/ChangeSkill报错修复指南

来源: 作者: 点击:
M2Server日志中出现大量脚本错误,核心问题在于脚本命令与当前引擎版本不兼容。报错信息明确指出“打造配方”文件加载失败,以及“新人接待员”和“技能强化师”NPC脚本中的命令无法识别。解决这些问题需要针对性地修改脚本文件。

修复打造配方加载失败

日志提示“load fail: \打造配方\打造列表.txt”,说明M2引擎在指定路径找不到该文件。
• 检查文件路径:打开服务端Mir200目录,确认是否存在“打造配方”文件夹,以及文件夹内是否有“打造列表.txt”文件。如果没有,需要从版本源文件中提取该文件夹并放置到正确位置。

• 检查NPC指向:打开“新人接待员”或触发打造的NPC脚本,查找调用打造功能的命令,确认路径是否写为“打造配方\打造列表.txt”。如果文件夹名称是中文,确保引擎支持中文路径;如果不支持,需将文件夹重命名为英文(如MakeEquip),并同步修改脚本中的路径引用。

修复SetOnTimer命令报错

报错指向“新人接待员”脚本的第15行和第26行,命令为“SetOnTimer 1 1”和“SetOnTimer 2 1”。这通常是因为引擎不支持该写法或参数错误。
• 修改定时器命令:打开.\Envir\Market_Def\特殊NPC\新人接待员-0.txt,找到报错行。将“SetOnTimer 1 1”修改为标准的“SetOnTimer 1”。部分引擎版本中“SetOnTimer”命令后只需跟定时器编号,多余的参数会导致语法错误。

• 检查定时器标签:确认脚本下方是否存在对应的“[@OnTimer1]”和“[@OnTimer2]”标签。如果标签缺失,引擎在加载时会报错,需补全标签或注释掉无用的SetOnTimer命令。

修复ChangeSkill命令报错

大量报错集中在“技能强化师”脚本,提示“ChangeSkill”命令错误。这是因为当前使用的引擎(很可能是GOM或GEE的某个版本)不支持“ChangeSkill”这个命令,或者技能代码(如205、202)在该引擎中不存在。
• 注释错误命令:打开.\Envir\Market_Def\提供\技能强化师-3.txt,找到报错的第20、32、44等行。在这些行的开头加上“;”分号将其注释掉,或者直接删除这些行。例如将“ChangeSkill 3 205”改为“;ChangeSkill 3 205”。

• 替换为通用命令:如果想保留功能,需将“ChangeSkill”替换为引擎支持的命令。例如在部分引擎中,学习技能应使用“AddMagic”或“SetSkillLevel”。具体替换规则需参考当前引擎的脚本手册。

• 核对技能代码:报错中的数字(如205、213)代表特定技能。如果引擎数据库中不存在这些技能ID,命令必然执行失败。需打开数据库中的Magic.DB,核对技能编号是否存在,将脚本中的数字修改为数据库中真实存在的技能ID。

修复OpenUpgradeDialog命令

日志提示“脚本错误: OpenUpgradeDialog 0”,该命令通常用于开启装备升级界面。
• 检查参数格式:打开“特戒升级师”脚本,查看第56行。部分引擎要求该命令必须指定NPC编号或对话框ID。尝试将“OpenUpgradeDialog 0”修改为“OpenUpgradeDialog”或“OpenUpgradeDialog 1”。

• 确认功能支持:如果当前引擎不支持该功能模块,直接删除该行命令,改用传统的“SendMsg”或“Say”引导玩家进行升级操作。

最终处理步骤

完成上述修改后,务必执行以下操作:
1. 保存所有更改过的txt脚本文件。
2. 在M2Server控制台中点击“停止”按钮,完全关闭服务端。
3. 重新启动GameOfMir引擎控制器,观察日志窗口。
4. 如果日志中不再出现红色的“脚本错误”提示,说明修复成功。进入游戏测试NPC对话,确认功能是否正常。